Hibari Michiro
hibar****@lab*****
2012年 12月 10日 (月) 12:51:03 JST
雲雀です。 userのML投稿で見つかった、ipモジュールで-Fオプションを 使用した際に、HTTPリクエストが壊れる問題の修正patchです。 コードを解析したところ、本問題はipモジュールでSorryURIオプションを 利用したときにも発生します。 添付のpatchで、-Fオプション利用時とSorryURIオプション利用時、 どちらの場合でも、事象が解消します。 本修正は、v3.1.0に取り込むのが良いと思います。 (修正内容) put_data_into_sendbuffer()関数内で、送信データがsend_bufferを 上回った場合に、残ったデータの開始位置とサイズが更新されていな かった箇所を修正しました。 以上、宜しくお願いいたします。 -------- Original Message -------- Subject: [Ultramonkey-l7-users 524] UltraMonkey-L7 v3系の処理異常事象報告 Date: Tue, 04 Dec 2012 16:23:51 +0900 From: 株式会社ジーシーシー 太田 立志 <t-oot****@gcc*****> To: ultra****@lists***** 開発者の皆様 太田と申します。 UltraMonkey-L7を大変有意義に使用させていただいております。 この場を借りて感謝の言葉を述べさせていただきます。 さて、 UltraMonkey-L7 v3系において、 ロードバランサー経由のPost処理後のWeb画面が正常に 表示されない事象が発生しましたので、 ご報告いたします。 パケットキャプチャ等取得しましたので、 ご確認いただけますと幸いです。 【事象】 クライアントPCから、 UltraMonkey-l7-3.0.3-1経由でWebシステムのPost処理を 行った際に処理後のWeb画面が正常に表示されない場合がある。 (事象を記したpdfファイルを別途お送りします) 【検証】 ・Webサーバに直接アクセスして処理を行った場合、正常に動作します。 ・UltraMonkey-l7-2.1.3-1であれば問題なく動作します。 ・UltraMonkey-l7-3.0.4-2では同様に処理異常となります。 ・処理異常が発生する前に「Malformed Packet」が発生しております。 【環境】 <ロードバランサー> OS:Cent OS 5.6 32bit Kernel:2.6.18-238.el5 UltraMonkey-l7バージョン:3.0.3-1 振り分け方法:IPモジュール( module = ip -F -R ) <Webサーバー> OS:RHEL 5.4 Kernel:2.6.18-164.el5 32bit Apache:2.2.15 【お送りする情報】 ※各種取得情報を竹林様宛に別途送らせていただきます。 ・Ultramonkeyl7-3.0.3.1経由の処理異常画面.pdf ・パケットキャプチャ <UltraMonkey-l7-3.0.3-1経由> 1.クライアントPCパケットキャプチャ「PC_dump_UMv3.pcap」 2.ロードバランサーパケットキャプチャ「LB_dump_UMv3.pcap」 3.WEBサーバーパケットキャプチャ「WEB_dump_UMv3.pcap」 <UltraMonkey-l7-2.1.3-1経由> 4.クライアントPCパケットキャプチャ 「PC_dump_UMv2.pcap」 ・l7directord.cf ※その他必要な情報がありましたら、 お申し付けください。 以上、よろしくお願いいたします。 _______________________________________________ Ultramonkey-l7-users mailing list Ultra****@lists***** http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-users _______________________________________________ Ultramonkey-l7-users mailing list Ultra****@lists***** http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-users -------------- next part -------------- --- protocol_module_ip.cpp.org 2012-12-10 11:10:51.240650941 +0900 +++ protocol_module_ip.cpp 2012-12-10 11:14:07.519280924 +0900 @@ -5657,6 +5657,11 @@ bool protocol_module_ip::put_data_into_s buffer_element.first += sendbuffer_rest_size; buffer_element.second -= sendbuffer_rest_size; sendbuffer_rest_size = 0; + + //add remain item + data_ptr->buffer_sequence.push_back(buffer_element); + //delete the item + data_ptr->buffer_sequence.pop_front(); break; } }