From tateishi.katsuyuki @ oss.ntt.co.jp Wed Feb 8 17:45:24 2012 From: tateishi.katsuyuki @ oss.ntt.co.jp (TATEISHI Katsuyuki) Date: Wed, 08 Feb 2012 17:45:24 +0900 (JST) Subject: [Ultramonkey-l7-develop 788] Re: =?iso-2022-jp?b?GyRCO0QlQSUxJUMlSCRLJEQkJCRGGyhC?= In-Reply-To: <20110128.163333.1292160186345660919.tateishi.katsuyuki@oss.ntt.co.jp> References: <20110127173923.E796.9A97E586@oss.ntt.co.jp> <4D4268B3.7030608@nttcom.co.jp> <20110128.163333.1292160186345660919.tateishi.katsuyuki@oss.ntt.co.jp> Message-ID: <20120208.174524.55371338090680337.tateishi.katsuyuki@oss.ntt.co.jp> 雲雀さん、 立石です。お疲れさまです。 遥か昔の話で申し訳ないのですが、このパッチの件を詰めて次期リ リースに盛り込んでいただけないでしょうか。 ご検討、よろしくお願い致します。 -- TATEISHI Katsuyuki On Fri, 28 Jan 2011 16:33:33 +0900 (JST), TATEISHI Katsuyuki wrote: > 雲雀さま、 > 立石です。お疲れさまです。 > > 雲雀 路朗 -san wrote: > >> 現状の実装を確認したところ、l7vsdが上がりきる前にl7directordからl7vsadmが >> 呼ばれた場合にNGになってしまう動きについて、特に救済されるような仕組みは >> 備わってないようです。 > > 了解です。 > 調査ありがとうございます。 > >> チケット #19261 にあるとおり、 >> /etc/init.d/l7vsd の start 時、l7vsadm がエラー無くつながるまでスクリプトを >> 終わらないように修正する必要があると思います。 >> >> 直すとしたら、こんな感じですかね? >> >> ########################################## >> diff -Narup /etc/init.d/l7vsd /tmp/l7vsd >> --- /etc/init.d/l7vsd 2011-01-28 10:46:33.000000000 +0900 >> +++ /tmp/l7vsd 2011-01-28 11:41:14.000000000 +0900 >> @@ -37,6 +37,12 @@ start() { >> echo "error occurred." >> echo "$PROG was not started." >> else >> + L7VSADM_RETVAL=255 >> + while [ $L7VSADM_RETVAL -ne 0 ] >> + do >> + l7vsadm > /dev/null 2>&1 >> + L7VSADM_RETVAL=$? >> + done >> echo "done." >> pidof $PROG > $PIDFILE >> touch $LOCKFILE >> ########################################## > > パッチありがとうございます。いくつかコメントです。 > > 1. initscirpt で直すのが妥当かどうか > そもそも論になってしまうのですが、initscriptを直す場合、 > RAの方も直す必要がありますので、l7vsd 本体あるいは > l7directord 本体側で対応したほうがいいかなと思います。 > > l7directord に実装する場合、起動直後、l7振り分けルールを > 投入する前にパッチのような l7vsadm 呼び出しが成功するかど > うか、何回か試行するという方式でいいと思います。 > > l7vsd に実装する場合、起動された l7vsd の端末制御を持った > プロセスは daemon(3)呼び出しによって、(daemon()から戻るこ > と無く)すぐにexitしてしまっていたと思うので、ちょっと変更 > が大きくなる可能性があります。(daemon()を使わずにdaemon化 > を行い、親プロセスはすぐにexit()せずに l7vsadm 呼び出しが > 成功するまで待つ、という感じになると思います) > > > 2. 無限ループが妥当かどうか > このスクリプトはOS起動時に呼ばれるわけですが、何らかの不 > 具合によりl7vsdが起動しなかった場合、ここで止まってしま > う可能性があります。 > > 一番良いのはどれだけ待つか設定可能にすることですが、これ > まで ipvsadm で1秒間隔で10回、合計 10 秒まっていたわけで > すので、同様の試行で十分かなとも思います。 > > ちなみにinitscriptにおいて設定可能にする場合、スクリプト > のあたまで/etc/sysconfig/l7vsd 等のファイルを読み込ませる > のがよくある手法のようです(ほかのinitscriptを見てみてくだ > さい) > > > あと内容と直接関係ないのですが、上記パッチはスペースが省略さ > れていて、不正なパッチとみなされたため手で編集してあてる必要 > がありました。git diffの出力をそのまま張り付けるか、それが不 > 可能な場合は添付ファイル等にすると便利だと思います。(メーラに > よってはスペースを勝手に省略してしまうものもあったかもしれま > せん) > > -- > TATEISHI Katsuyuki > > >> >> >> >> >> (2011/01/27 17:51), Jun Sugiura wrote: >>> 杉浦です。 >>> >>> すみません、ちょっと実際に確認しきれていないのでコメントだけで >>> 申し訳ないのですが… >>> >>>>>  →3.0.0ではinit.d/l7vsdの対処なし。con_interval, con_count廃止済み。 >>> この点に関してですが、con_interval, con_countが廃止されたことによって >>> l7vsd 起動前の l7vsadm 実行が1度きりでNGとなって終了する動作となって >>> いますので、l7vsd を start → l7directord を start と >>> 立て続けに実行された場合に、タイミングによっては l7vsdが上がりきる前に >>> l7directord の起動処理にて l7vsadm が発行され、バーチャルサービスを追加 >>> NGとなる可能性があるのではと考えられますが、その辺りがうまく救済される >>> ようになっているかどうかというのを懸念していますがどうでしょうか。 >>> >>> 以上、ご確認ください。 >>> >>> >>> On Wed, 26 Jan 2011 16:55:15 +0900 (JST) >>> TATEISHI Katsuyuki wrote: >>> >>>> 立石です。 >>>> >>>> チェックありがとうございます。 >>>> >>>> morisita -san wrote: >>>> >>>>> 19261 l7vsadm の無駄なタイムアウト待ちを修正する >>>>>  →3.0.0ではinit.d/l7vsdの対処なし。con_interval, con_count廃止済み。 >>>>>   2.1.3-1ではinit.d/l7vsdの対処なし。con_interval, con_count未廃止。 >>>>>   (修正されていない?) >>>> 2.1.3-1についての認識はあっています。 >>>> >>>> 3.0.0 の状況については把握していませんでしたが、そうなってい >>>> ると思われる事象が発生していますので、上記のとおりかと。 >>>> >>>> 詳しくは杉浦さんからレポートがあると思いますが、l7directord >>>> が l7vsdが上がりきっていないうちに起動して l7vsadm を発行し、 >>>> エラーが記録されている、というものです。 >>>> >>>> ** >>>> >>>> 以前杉浦さんが2.1系で判明している不具合についてまとめてくれ >>>> ていましたが、あれも登録したほうがよさそうですね・・・ >>>> >>>> -- >>>> TATEISHI Katsuyuki >>>> >>>> _______________________________________________ >>>> Ultramonkey-l7-develop mailing list >>>> Ultramonkey-l7-develop @ lists.sourceforge.jp >>>> http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-develop >> >> >> -- >> ============================================== >> NTTコムウェア株式会社 >> 基盤技術本部 技術SE部 基盤ソフトSE・OSS部門 >> 雲雀 路朗(ひばり みちろう) >> E-Mail:hibari.michirou @ nttcom.co.jp >> TEL:043-211-2452 >> ============================================== >> >> _______________________________________________ >> Ultramonkey-l7-develop mailing list >> Ultramonkey-l7-develop @ lists.sourceforge.jp >> http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-develop From tateishi.katsuyuki @ oss.ntt.co.jp Wed Feb 8 17:55:23 2012 From: tateishi.katsuyuki @ oss.ntt.co.jp (TATEISHI Katsuyuki) Date: Wed, 08 Feb 2012 17:55:23 +0900 (JST) Subject: [Ultramonkey-l7-develop 789] Re: =?iso-2022-jp?b?GyRCO0QlQSUxJUMlSCRLJEQkJCRGGyhC?= In-Reply-To: <20120208.174524.55371338090680337.tateishi.katsuyuki@oss.ntt.co.jp> References: <4D4268B3.7030608@nttcom.co.jp> <20110128.163333.1292160186345660919.tateishi.katsuyuki@oss.ntt.co.jp> <20120208.174524.55371338090680337.tateishi.katsuyuki@oss.ntt.co.jp> Message-ID: <20120208.175523.1764418933095120279.tateishi.katsuyuki@oss.ntt.co.jp> 雲雀さん、 立石です。補足です。 On Wed, 08 Feb 2012 17:45:24 +0900 (JST), TATEISHI Katsuyuki wrote: >> パッチありがとうございます。いくつかコメントです。 >> >> 1. initscirpt で直すのが妥当かどうか >> そもそも論になってしまうのですが、initscriptを直す場合、 >> RAの方も直す必要がありますので、l7vsd 本体あるいは >> l7directord 本体側で対応したほうがいいかなと思います。 これは勘違いでした。initscript 側だけ直せば RA は initscript を呼んで start しているので、RAの対応は不要でした。 >> 2. 無限ループが妥当かどうか >> このスクリプトはOS起動時に呼ばれるわけですが、何らかの不 >> 具合によりl7vsdが起動しなかった場合、ここで止まってしま >> う可能性があります。 >> >> 一番良いのはどれだけ待つか設定可能にすることですが、これ >> まで ipvsadm で1秒間隔で10回、合計 10 秒まっていたわけで >> すので、同様の試行で十分かなとも思います。 >> >> ちなみにinitscriptにおいて設定可能にする場合、スクリプト >> のあたまで/etc/sysconfig/l7vsd 等のファイルを読み込ませる >> のがよくある手法のようです(ほかのinitscriptを見てみてくだ >> さい) ここは↑のような対応が必要かと思います。 -- TATEISHI Katsuyuki