[pgsql-jp: 38516] Re: pgpoolがささり、子プロセスがゾンビになる現象が発生
Yoshiyuki Asaba
y-asaba @ sraoss.co.jp
2007年 6月 20日 (水) 10:12:09 JST
浅羽です。
From: TAKAO Kouji <kouji @ netlab.jp>
Subject: [pgsql-jp: 38512] pgpoolがささり、子プロセスがゾンビになる現象が発生
Date: Tue, 19 Jun 2007 23:28:05 +0900
> pgpool-3.1.2をDebian GNU/Linux sargeで使用しています。
> ある程度pgpoolを動かし続けていると、pgpoolのプロセスがささり、未接続の
> pgpoolの子プロセスがゾンビ状態になる現象が発生しています。3日で発生す
> ることもあれば、1ヶ月なこともあり、とりあえず、1日1回pgpoolを再起動さ
> せるようにして、その場をしのいでいます。
>
> それで、pgpoolがささったときにgdbでアタッチしてバックトレースを確認しました。
> それが以下です。
トレースありがとうございます。見てみましたが、再入可能でない関数内でシ
グナルが入っているのが問題みたいです。
(http://www.unix.org/single_unix_specification/ :2.4.3 Signal Actions)
> 上記はかなり前の話しなので、修正されているのかなと思っていましたが、
> ソースコードを確認したところ、現在も同様の状態だと考えています。
> 「main() のメインループの中から定期的にキックするようにする」というの
> は、どうなのでしょうか。何か難しい点や、問題などがあったのでしょうか。
はい、おっしゃる通り、シグナルハンドラ内でフラグをセットするだけで、メ
インループ内でフラグをチェックして処理を起動するのが一番安全です。
どのポイントだと遅延もなく安全にシグナルを配送できるかを検討してみます。
--
Yoshiyuki Asaba
y-asaba @ sraoss.co.jp
pgsql-jp メーリングリストの案内