今天犯的低级错误

今天将Erlang代码打包上线到生产环境中时发现点小问题。

发现工程能正常的启动,但是stop的时候会卡在那不动。

一开始认为是自己写的部署脚本的问题,遂尝试直接启动和停止工程,但是依旧有问题。

然后仔细的读了下rebar的脚本中的start和stop的部分,无任何异常状况,然后直接尝试在console模式下使用init

:stop(0)停止掉项目。结果发现依然不能停止,同时发现application_controller卡住不动了,然后所有的非关键supervisor和自己的application已经消失了,但是gen_server没有消失。

瞬间感觉无比之崩溃,直接回到项目下查看application启动和停止的代码。application中竟然在stop的时候,用application:stop去stop别的otp应用。删除掉所有的appliation:stop,重新打包,问题消失。

具体原因见http://blog.yufeng.info/archives/1411的文章。

你可能感兴趣的:(今天犯的低级错误)