不知道如何精确复制。它发生在我们的生产服务器上,但不是每次都发生。
部署之后,我们将发布bundle exec pumactl -S pids/puma.state -F config/puma.rb restart
(在Ubuntu 14.04和Ubuntu 16.04上)。但有时,我们遇到其中一个puma服务器在重启很长时间后挂起,我们只能kill -9
再次启动它。没有确定何时/将会卡住的特定模式。
如下所示,15分钟后发出重启命令,我仍然看到:
$ ps -ef | grep puma
deployer 2535 6533 99 10:11 ? 08:33:16 puma: cluster worker 3: 6533
deployer 2910 6533 99 10:14 ? 08:31:22 puma: cluster worker 2: 6533
deployer 6533 1 0 01:08 ? 00:00:23 puma 3.8.2 (tcp://0.0.0.0:2801)
deployer 9973 9683 0 18:47 pts/0 00:00:00 grep --color=auto puma
如果我运行strace -p 6533 -q -f
来附加并检查内部美洲进程,我会得到:https://gist.github.com/larryzhao/446234a3af91bec917119494f9bc2384
不知道该去哪里研究。
我正在使用ruby 2.3.4p301 (2017-03-30 revision 58214) [x86_64-linux]
和Rails 5.0.5
Puma 3.8.2
上投放