2012年5月13日

[pgsql-jp: 41108] Re:pgpool.pid ファイルの削除タイミングとその条件について

石井です。

> kawahara と申します。
>
> RHEL 5
> postgresSQL 8.3.7
> pgpool? 2.2.2
> のバージョンでデータベース環境を作成しております。

>
> 先日、UPSでシャットダウン後起動すると、pgpoolサービスが起動しません。
> pgpoolのログを確認すると、以下の文字が。
>
> pid file found. is anothser pgpool(pid 実際は数値) is running?
>
> 確かに、pgpool.pid ファイルが存在し、ファイルに記載された数値は、
> 上記ログに記載された数値。
>
> リネーム後pgpoolサービス起動すると、起動できました。
>
> pgpool.pid は、pgpoolサービス停止によりファイル削除されると
> 推測しており、UPSシャットダウン時にpgpoolサービスが停止できていないと
> 思われます。
> 環境構築後3年経過しており、過去のシャットダウン時は
> 発生しなかった現象です。
>
>
> pgpool.pid ファイルが削除されるタイミングとその条件について、
> 御教示いただけないでしょうか。

このあたりはpgpoolの親プロセスが管理しています。

pgpoolの親プロセスは、終了シグナル(SIGTERMなど)を受信すると、子プロセス
にもそれを送信し、子プロセスの終了を待ちます。子プロセスは、終了シグナ
ルの種類により動作が変わります。SIGTERMならば、クライアントからのセッショ
ンが終了するまで待ちます。SIGINT, SIGQUIT ならばクライアントからのセッ
ションの終了を待たずに終了します。

つまり、pgpoolへの終了シグナルが SIGTERM でかつクライアントのセッション
が残っている状態だと、pgpoolの親プロセスは子プロセスの終了を待ち続ける
ので、pgpoolの親プロセスがpidファイルを削除する前にシステム全体が終了し
てしまうことになります。

このあたりはお使いのシステムのpgpool用のinitスクリプトの作り次第ですね。
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp


投稿者 xml-rpc : 2012年5月13日 09:42
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/110369
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。