• R/O
  • HTTP
  • SSH
  • HTTPS

提交

標籤
無標籤

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

修訂a43097d3ea8f47bded1069a3b9adb332c0c502f7 (tree)
時間2014-06-16 17:44:00
作者Hiroaki Nakano <nakano.hiroaki@nttc...>
CommiterHiroaki Nakano

Log Message

Merge branch 'master' of file:///var/www/html/ultramonkey-l7-v3.git

Change Summary

差異

--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
1+[Mar. 9 2014] 3.1.1-1 HIBARI Michiro, Hiroaki Nakano
2+ - #33102 fix memory leak.
3+ - #33255 fix accessing endpoint at deleted realserver.
4+
15 [Sep. 8 2012] 3.1.0-1 HIBARI Michiro, Hiroaki Nakano
26 - Add "session_thread_pool_size" option for l7vsadm and l7directord.
37 - Change spec file. Make devel package.
--- a/configure.in
+++ b/configure.in
@@ -1,7 +1,7 @@
11 AC_PREREQ(2.59)
22 AC_INIT(l7vsd)
33 PACKAGENAME=l7vsd
4-VERSION=3.1.0
4+VERSION=3.1.1
55
66 AM_INIT_AUTOMAKE($PACKAGENAME, $VERSION, no-define )
77 AC_CONFIG_SRCDIR([config.h.in])
--- a/doc/heartbeat-ra/L7directord
+++ b/doc/heartbeat-ra/L7directord
@@ -145,6 +145,12 @@ l7directord_status(){
145145 # Get Resource Monitor Method
146146 ###############################
147147 l7directord_monitor() {
148+ local loglevel
149+ loglevel=${1:-err}
150+ if ocf_is_probe; then
151+ loglevel="info"
152+ fi
153+
148154 isRunning;
149155 RET=$?
150156 if [ $RET -eq 1 ]; then
@@ -158,7 +164,7 @@ l7directord_monitor() {
158164 fi
159165 elif [ $RET -eq 0 ]; then
160166 MSG="l7direcotrd is not running."
161- outputLog err ${OCF_NOT_RUNNING} ${MSG}
167+ outputLog $loglevel ${OCF_NOT_RUNNING} ${MSG}
162168 return ${OCF_NOT_RUNNING}
163169 fi
164170 MSG="l7direcotrd does not work. (ps=$RET) "
@@ -171,7 +177,7 @@ l7directord_monitor() {
171177 ###############################
172178 l7directord_start() {
173179 outputLog info "l7directord is starting ..."
174- l7directord_monitor
180+ l7directord_monitor info
175181 RET=$?
176182 if [ $RET -eq ${OCF_SUCCESS} ]; then
177183 MSG="l7directord is already running."
--- a/doc/heartbeat-ra/L7vsd
+++ b/doc/heartbeat-ra/L7vsd
@@ -67,7 +67,7 @@ END
6767 ###############################
6868 l7vsd_start() {
6969 ocf_log info "l7vsd is starting ..."
70- l7vsd_monitor
70+ l7vsd_monitor info
7171 RET=$?
7272 if [ $RET -eq $OCF_SUCCESS ]; then
7373 ocf_log info "l7vsd is already running."
@@ -182,6 +182,12 @@ l7vsd_status(){
182182 # Get Resource Monitor Method
183183 ###############################
184184 l7vsd_monitor() {
185+ local loglevel
186+ loglevel=${1:-err}
187+ if ocf_is_probe; then
188+ loglevel="info"
189+ fi
190+
185191 isRunning;
186192 RET=$?
187193 if [ $RET -eq 1 ]; then
@@ -195,7 +201,7 @@ l7vsd_monitor() {
195201 fi
196202 elif [ $RET -eq 0 ]; then
197203 MSG="l7vsd is not running."
198- outputLog err ${OCF_NOT_RUNNING} ${MSG}
204+ outputLog $loglevel ${OCF_NOT_RUNNING} ${MSG}
199205 return $OCF_NOT_RUNNING
200206 fi
201207 MSG="l7vsd does not work. (ps=$RET) "
--- a/l7vsd/include/virtualservice.h
+++ b/l7vsd/include/virtualservice.h
@@ -621,6 +621,8 @@ public:
621621 void run();
622622 void stop();
623623
624+ boost::shared_ptr<boost::thread> vs_thread_ptr;
625+
624626 void connection_active(const boost::asio::ip::tcp::endpoint &);
625627 void connection_inactive(const boost::asio::ip::tcp::endpoint &);
626628 void release_session(const tcp_session *session_ptr);
--- a/l7vsd/src/l7vsd.cpp
+++ b/l7vsd/src/l7vsd.cpp
@@ -254,7 +254,7 @@ void l7vsd::add_virtual_service(const virtualservice_element *in_vselement, e
254254 try {
255255
256256 // create thread and run
257- vs_threads.create_thread(boost::bind(&virtual_service::run, vsptr));
257+ (*vsptr).vs_thread_ptr = boost::shared_ptr<boost::thread>(vs_threads.create_thread(boost::bind(&virtual_service::run, vsptr)));
258258
259259 } catch (...) {
260260 std::stringstream buf;
@@ -357,6 +357,8 @@ void l7vsd::del_virtual_service(const virtualservice_element *in_vselement, e
357357 if (vslist.end() != vsitr) {
358358 // vs stop
359359 (*vsitr)->stop();
360+ (*vsitr)->vs_thread_ptr->join();
361+ vs_threads.remove_thread((*vsitr)->vs_thread_ptr.get());
360362 // vs finalize
361363 (*vsitr)->finalize(err);
362364
@@ -800,14 +802,14 @@ void l7vsd::flush_virtual_service(error_code &err)
800802
801803 // vs stop
802804 (*itr)->stop();
805+ // join virtualservice threads
806+ (*itr)->vs_thread_ptr->join();
807+ vs_threads.remove_thread((*itr)->vs_thread_ptr.get());
803808 // vs finalize
804809 (*itr)->finalize(err);
805810 }
806811 }
807812
808- // join virtualservice threads
809- vs_threads.join_all();
810-
811813 // replication switch to slave
812814 rep->switch_to_slave();
813815 }
--- a/l7vsd/src/virtualservice_tcp.cpp
+++ b/l7vsd/src/virtualservice_tcp.cpp
@@ -936,12 +936,10 @@ void l7vs::virtualservice_tcp::finalize(l7vs::error_code &err)
936936 __FILE__, __LINE__);
937937 }
938938 }
939- //waiting session delete
940- delete waiting_session;
941- waiting_session = NULL;
942-
943- //waiting thread delete
939+ //release waiting session
944940 waiting_stc->join();
941+ delete waiting_stc;
942+ waiting_stc = NULL;
945943
946944 //unload ProtocolModule
947945 if (protomod) {
@@ -1531,8 +1529,9 @@ void l7vs::virtualservice_tcp::del_realserver(const l7vs::virtualservice_element
15311529 for (std::list<realserver>::iterator rs_itr = rs_list.begin();
15321530 rs_itr != rs_list.end(); ++rs_itr) {
15331531 if (itr->tcp_endpoint == rs_itr->tcp_endpoint) {
1532+ boost::asio::ip::tcp::endpoint del_endpoint = rs_itr->tcp_endpoint;
15341533 rs_list.erase(rs_itr);
1535- active_sessions.do_all(boost::bind(&session_thread_control::session_realserver_remove, _1, rs_itr->tcp_endpoint));
1534+ active_sessions.do_all(boost::bind(&session_thread_control::session_realserver_remove, _1, del_endpoint));
15361535 break;
15371536 }
15381537 }
--- a/ultramonkeyl7.spec
+++ b/ultramonkeyl7.spec
@@ -6,7 +6,7 @@ Name: %define l7vs_moddir %{_libdir}/l7vs
66
77 Summary: The Layer-7 Virtual Server
88 Name: ultramonkeyl7
9-Version: 3.1.0
9+Version: 3.1.1
1010 Release: 1%{?dist}
1111 License: LGPLv2.1
1212 Group: System Environment/Daemons
@@ -133,6 +133,14 @@ fi
133133 %{moduledevel_tempdir}/*
134134
135135 %changelog
136+* Fri Mar 7 2014 Hiroaki Nakano <nakano.hiroaki@nttcom.co.jp> 3.1.1-1
137+- Update for 3.1.1-1
138+- Marge from 3.1.1-devel to master. And modefy version.
139+
140+* Fri Feb 7 2014 Hiroaki Nakano <nakano.hiroaki@nttcom.co.jp> 3.1.1-devel
141+- Update for 3.1.1-devel
142+- Bugfix
143+
136144 * Sat Sep 8 2012 HIBARI Michiro <l05102@shibaura-it.ac.jp> 3.1.0-devel
137145 - Update for 3.1.0-devel
138146 - Change spec file for generate devel package.