Jun Sugiura
sugiu****@oss*****
2010年 6月 15日 (火) 19:01:44 JST
杉浦です。お疲れ様です。 本件につきまして、ultramonkey-l7-2.1.3-1 のリリース準備を 実施しています。 添付の変更内容にてビルド中ですので、 何か問題がありましたらお知らせください。 できれば明日(6/16)中に検証実施したいと考えています。 以上、よろしくお願い致します。 On Thu, 03 Jun 2010 18:18:24 +0900 Jun Sugiura <sugiu****@oss*****> wrote: > 杉浦です。 > > ultramonkey-l7-2.1.3-0 において、同梱の Heartbeat2.1.4 用 RA > (L7directord / L7vsd / SSLProxy)の以下のような不具合について > 報告を受けましたので、情報展開します。 > > 尚、この不具合解消についてユーザからの強い要望がありますので > 今回、ultramonkey-l7-2.1.3-0 に添付の修正パッチのみをあてた > ultramonkey-l7-2.1.3-1 をリリースしたいと考えています。 > 以下の不具合情報と合わせてご確認下さい。 > > ●リリース日は 6/17 までを目処に考えています。 > ●6/10(木)までに、ご意見等ありましたらよろしくお願い致します。 > > <不具合概要> > > Heartbeat の管理リソース稼動チェック時に、対象プロセスが正常に > 1つのみ存在していたとしても、プロセス名に類似の文字列を含む > なんらかの操作がなされていた場合、プロセスが2個以上存在すると > 判断されフェイルオーバが発生する可能性があります。 > > <不具合箇所> > > 下記の★の部分の処理において、プロセス稼動確認の為に > ps + grep + wc を実施していますが、この際に例えば > > # vi "grep対象文字列" > > 等の操作がなされていた場合、その操作についても ps で拾ってしまい > 結果が 2 となります。 > Heartbeat へはこの結果を「0(停止)/ 1(稼働中)/ 2以上(異常発生)」 > として返しますので、<概要>に記載したような予期せぬフェイルオーバが > 発生してしまいます。 > > 【L7directord】 > 107 ############################### > 108 # Resource Running Check Method > 109 ############################### > 110 isRunning(){ > 111 RET=0 > ★ 112 RET=`ps -ef | grep "/usr/sbin/l7directord start" | grep -v grep | wc -l` > 113 return $RET > 114 } > > 【L7vsd】 > 157 ############################### > 158 # Resource Running Check Method > 159 ############################### > 160 isRunning(){ > 161 RET=0 > ★ 162 RET=`ps -ef | grep /usr/sbin/l7vsd | grep -v grep | wc -l` > 163 return $RET > 164 } > > 【SSLProxy】 > 103 ############################### > 104 # Resource Running Check Method > 105 ############################### > 106 isRunning(){ > 107 RET=0 > ★ 108 RET=`ps -ef | grep "/usr/sbin/sslproxy" | grep -v grep | wc -l` > 109 return $RET > 110 } > > <パッチの内容> > > 上記★の箇所の「ps -ef | grep "<パターン>" | grep -v grep」の部分について、 > 以下の2つの状況において本問題が発生する可能性があることを踏まえ、 > 「pgrep -fox "<パターン>"」に変更しています。 > > ・<パターン> を引数として実行している別のコマンドが存在する場合がある > ・l7vsd, l7directord プロセスが同時に2つになる可能性がある > > 使用している pgrep の各オプションの意味は以下の通りです。 > > -f: コマンド名ではなく、パス、引数を含めたコマンドライン全体を > マッチング対象とする。 > > -o: 該当プロセスのうち、もっとも古いPIDのみを出力する。 > これはPIDの大小ではなくプロセスの起動時間を見ているため、 > PIDがローテーションしても古いPIDを表示する。 > > このオプションにより、監視対象プロセスがfork()等の呼び出しにより > 複数存在する瞬間があったとしても誤検知しない。 > > -x: 指定したパターンに正確にマッチするもののみを抽出する。 > > このオプションにより、他のコマンドがその引数に <パターン> と同じ > 文字列を指定した場合、例えば「<他のコマンド> <パターン>」のような名前 > で実行されているコマンドがあったとしても、それを拾うことはなくなる。 > > マッチングさせる <パターン> については上記オプションの使用にあわせて > 一部変更しました。 > > > 以上、ご確認よろしくお願い致します。 > > -- > Jun Sugiura <sugiu****@oss*****> -- Jun Sugiura <sugiu****@oss*****> -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: gitshow_FixRAforHBv2.txt 型: application/octet-stream サイズ: 3881 バイト 説明: 無しDownload -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: gitshow_2.1.3-1release.txt 型: application/octet-stream サイズ: 1071 バイト 説明: 無し URL: http://lists.sourceforge.jp/mailman/archives/ultramonkey-l7-develop/attachments/20100615/8a36bda7/attachment-0001.obj