リアルサーバ全ダウン時に接続すると無応答状態となる
■本事象の原因
①UMがCLからのアクセスを受け付ける
②UMがRSに接続を試みる(失敗する)
③UMがSorryServerに接続を試みる(失敗する)
④UMがCLとの通信を切断する。
この③の処理に問題がありました。
接続が成功or失敗するまでループ処理で待ちに入るのですが、接続に失敗した場合にループから外れるためのフラグが立てられていませんでした。
そのため③から④に処理が進まず、無応答状態となっておりました。
修正patchを添付します。
・upthread_status がUPTHREAD_LOCKになったままで、UPTHREAD_ACTIVEに変更されていなかったた点を修正。
・sorryserver_socketの初期化処理が行われていなかったため、併せて修正。
v3.0.4にて修正済み。
Sorryサーバを設定していない状態で、リアルサーバが全ダウンした場合に、クライアントがUM-L7に接続すると、レスポンスが返ってこないため、応答を待ち続けてだんまり状態となる。
(クライアントによってはタイムアウトとなる)
Sorryサーバを設定している状態でも、リアルサーバが全ダウンかつ、Sorryサーバもダウンしている場合は上記と同じ症状となる。
本事象はUltraMonkey-L7-v3.0.3で発生しており、v3.0.1では発生しない。
v2.xやv3.0.1ではクライアントから接続すると UltraMonkey から即座に RST が返る。