2016.05.20   |   Python

Circusctlが OK を返した後も制御が戻らない問題

UbuntuにCircusをいれてプロセス管理をしているのですが、circusctl start hogehoge した後、3回に1回くらいの割合で制御が戻ってこない問題が発生してます。正常時と同じようにOK という標準出力はされるのですが、その後フリーズしてしまいます。ターミナルで実行してる時はそのまま抜ければ問題ないのですが、AnsibleとかでCircusの再起動をした時などは制御が戻らないと、プロビジョニング自体がタイムアウトで失敗してしまいます。

回避策

Circusctl hangs. · Issue #962 · circus-tent/circus
Githubの方にIssueを見つけましたが依然としてOpenのままでした。
スクリプトのバグというよりは環境依存の何かみたいですね…。
幸いにして、回避方法が書かれています。

circusctl start hogehoge

の代わりに

python -m circus.circusctl start hogehoge

というふうにモジュールを直で呼び出して上げれば、ハングすることなく実行できるみたいです。

自分の環境で試した所無事100%通るようになりました。
なんか実行時間も早くなってるような…。