リアルサーバ削除時、削除後の要素へアクセスする箇所がある
diff --git a/l7vsd/src/virtualservice_tcp.cpp b/l7vsd/src/virtualservice_tcp.cpp index af9a027..feb905f 100644 --- a/l7vsd/src/virtualservice_tcp.cpp +++ b/l7vsd/src/virtualservice_tcp.cpp @@ -1530,8 +1530,9 @@ void l7vs::virtualservice_tcp::del_realserver(const l7vs::virtualservice_element for (std::list<realserver>::iterator rs_itr = rs_list.begin(); rs_itr != rs_list.end(); ++rs_itr) { if (itr->tcp_endpoint == rs_itr->tcp_endpoint) { + boost::asio::ip::tcp::endpoint del_endpoint = rs_itr->tcp_endpoint; rs_list.erase(rs_itr); - active_sessions.do_all(boost::bind(&session_thread_control::session_realserver_rem + active_sessions.do_all(boost::bind(&session_thread_control::session_realserver_rem break; } }
修正案をmodify_del_rs_codeというブランチにpushしました。 http://sourceforge.jp/projects/ultramonkey-l7/scm/git/ultramonkey-l7-v3/commits/0fac6b368daa7b4458f3547761e8ff9e782c2a09
詳細