[Ultramonkey-l7-develop 912] Re: V3.1.0試験状況

Back to archive index

Shinya TAKEBAYASHI takeb****@nttco*****
2013年 5月 9日 (木) 17:02:30 JST


竹林です.


> # ・・・ユーザ設定の文字をそのままsystem関数に突っ込むのは
> # やめようよ(ノД`)
> # root権限でしか実行できないコマンドだとしても、さ。

  Ubuntu なんかの sudo が freedom な環境だと・・・ orz



中野 宏朗 <nakan****@nttco*****> wrote in message <518B5****@nttco*****>
*** Subject: [Ultramonkey-l7-develop 911] Re: V3.1.0試験状況
***    Date: Thu, 09 May 2013 16:58:07 +0900

> 中野@幕張です。
> 
> v3.1.0-develでURLモジュールの試験をしようとしていて、
> 以下の問題を発見しました。
> あとでチケット発行します。
> 
> [事象]
> l7directord.cfのmoduleオプションで、特定の文字列後に
> 任意のコマンドを実行できる。
> 
> URLモジュールで正規表現を使おうとして、正規表現の「または」
> にあたる「|」を使ったのですが、エラーになりました。
> l7directord.logを見ると、そこには「コマンドが見つかりません」
> という、見慣れない日本語のエラーメッセージが・・・(゜▽゜;)
> 
> [原因]
> わかる人はすぐわかったと思いますが、l7directordでmodule
> オプションを「"」と「'」をご丁寧にも削除の上、system関数に
> 突っ込んでやがったせいです。
> そのため、「|」を使うとそれがshellのパイプだと認識され、
> 「|」以降の文字がコマンドとしてサブシェルで実行されます。
> # "|rm -rf /"なんて書いたらどうなるか・・・((((;゜Д゜)))
> # ファーストサーバのこと、笑えませんorz
> 
> [対処案]
> 「"」「'」を取り除いたオプション文字列に対して、改めて
> 「"」で全体をくくってしまおうと思っています。
> それで問題の出るmoduleは無いとは思っていますが・・・
> 自分も確認しますが、思い当たるところがあった人は報告
> してくれるとありがたいです。
> 本当はl7directordからプロセス間通信でオプション文字列だけ
> 渡すほうが安全ですが・・・かなり仕様の改造になるので、
> とりあえずの対処です。
> 
> モジュール名チェックを以前削除しましたが、モジュール名も
> ヤバイと思うので、シェルに解釈されそうな文字を弾く処理を
> 追加したほうがいいかも。
> 
> 
> # ・・・ユーザ設定の文字をそのままsystem関数に突っ込むのは
> # やめようよ(ノД`)
> # root権限でしか実行できないコマンドだとしても、さ。
> 
> (2013/04/18 14:49), 中野 宏朗 wrote:
> > 中野@幕張です。
> > 
> > v3.1.0-develの負荷試験ですが、sessionlessモジュールで
> > non-SSL, SSL共にTPC-W負荷試験を終えました。
> > 
> > いくつかバグを叩きだしたので、報告します。
> > 以下について、バグチケットを発行してもいいでしょうか。
> > 
> > 1)
> > l7vsdを起動したまま、VirutalServiceの追加と削除を
> > 繰り返すと、スレッド数が増えていく。
> > 
> > /etc/init.d/l7directordのstartとstopを繰り返すと、
> > 1VSあたり2ずつスレッドが増え続けていきます。
> > 
> > 私が解析したところ、スレッドプールから取り出して
> > accept待ちをしているスレッドを終了させる処理が
> > 抜けていることが原因でした。
> > 終了させる処理を追加したところ、直っています。
> > 
> > 2)
> > l7vsdを起動したまま、VirutalServiceの追加と削除を
> > 繰り返すと、たまにcoreを吐いて落ちる。
> > 
> > 再現方法は1と同様です。
> > 
> > 私が解析したところ、virtualservice_tcpのrunを
> > 終了する時、activeなセッションを停止させていますが、
> > それをvirtualserviceのスレッド上という非同期な
> > コンテキストの上で行っているため、その次の
> > finalizeが先に実行されると、停止より先に
> > activeなセッションのclearでセッション情報が消滅し、
> > 停止時にSIGSEGVが発行されます。
> > 
> > 停止をfinalizeの先頭にもってきて、clearと同一
> > コンテキスト上で先に実行するようにしたら直りました。
> > 
> > 3)
> > TPC-W負荷試験で、SSLで、かつクラスタ切り替えを
> > 伴う時、切り替わって暫くしてcoreを出力。
> > 
> > SSL, sessionlessでクラスタ切り替わりをしたところ、
> > 切り替わって1分後くらいにcoreを吐いて落ちました。
> > 非常に発生確率が低いです。
> > 
> > 現在解析中ですが、SSL socketのresetを非同期
> > スレッドで実行中に落ちています。
> > resetをするとSSLソケットの場合はboost内から
> > SSL_freeが呼ばれ、その先のglibcのfreeで
> > Illigal pointerアクセスでabortされています。
> > ポインタ値がずれるのは考えにくいことから、
> > 非同期処理との兼ね合いで二重freeが
> > 行われていると思われます。
> > 
> > 以上です。
> > 
> > (2013/04/09 17:12), 中野 宏朗 wrote:
> >> 中野@幕張です。
> >>
> >> v3.1.0ですが、現在負荷試験を実施中です。
> >>
> >> 超基本の、sessionlessでHTTPによるTPC-W負荷試験で、
> >> 以下の項目を消化しています。
> >>
> >> ・Pacemakerで冗長化させた環境でのスイッチオーバ、スイッチバック
> >> ・Pacemaker, UltraMonkey-L7の各プロセスをkillしての
> >>     フェイルオーバ、フェイルバック
> >> ・VIPを設定しているネットワークの切断によるフェイルオーバ、
> >>     フェイルバック
> >> ・リアルサーバの一つを切断、および復帰
> >>
> >> 2つ目〜4つ目の項目は、30回繰り返す試験も実施しています。
> >> 今のところ、問題は出ていません。
> >>
> >> 上記項目以外で、ちょっと気になる事象が発生したので、
> >> それについてチケット発行と対処パッチを後日投稿します。
> >>
> > 
> 
> -- 
> 中野 宏朗 (NAKANO Hiroaki)
> NTTコムウェア 品質生産性技術本部 技術SE部
> 基盤ソフトSE・OSS部門 OSS・DB技術担当
> Tel: 043-211-2452 (Ext: 特番+26-8341), Fax: 043-211-5086
> Zip/Address: 261-0023 千葉県千葉市美浜区中瀬1-6 NTT幕張ビル21F-En
> 
> _______________________________________________
> Ultramonkey-l7-develop mailing list
> Ultra****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-develop
> 
> 


------------------------------------------------------
NTT コムウェア 株式会社 品質生産性技術本部 技術 SE 部
基盤ソフト SE・OSS 推進部門
 
竹林 信哉

TEL: 043-211-2392(ext. +26-8185)
E-mail: takeb****@nttco*****
------------------------------------------------------




Ultramonkey-l7-develop メーリングリストの案内
Back to archive index