• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javaandroidc++linuxc#windowsobjective-ccocoaqtpython誰得phprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revisión28b420eca59093f563ed9bbb1250e3cccea366dd (tree)
Tiempo2013-05-14 13:16:02
AutorHiroaki Nakano <nakano.hiroaki@nttc...>
CommiterHiroaki Nakano

Log Message

#31199: VS削除でもスレッドが残る

Cambiar Resumen

Diferencia incremental

--- a/doc/heartbeat-ra/sample.crm
+++ b/doc/heartbeat-ra/sample.crm
@@ -37,34 +37,34 @@ group grpUltraMonkey \
3737 ### Primitive Configuration ###
3838 primitive prmVIPcheck ocf:heartbeat:VIPcheck \
3939 params \
40- target_ip="MODIFY_TARGET_VIP" \
40+ target_ip="" \
4141 count="1" \
4242 wait="10" \
43- op start interval="0s" timeout="90s" on-fail="restart" start_delay="4s"
43+ op start interval="0s" timeout="90s" on-fail="restart" start_delay="4s“
4444
45-primitive prmVIP ocf:heartbeat:IPaddr2 \
45+primitive prmVIP1 ocf:heartbeat:IPaddr2 \
4646 params \
47- ip="MODIFY_VIP_IP" \
48- nic="MODIFY_VIP_NIC" \
49- cidr_netmask="MODIFY_VIP_NETMASK" \
47+ ip="" \
48+ nic="" \
49+ cidr_netmask="" \
5050 op start interval="0s" timeout="60s" on-fail="restart" \
5151 op monitor interval="10s" timeout="60s" on-fail="restart" \
52- op stop interval="0s" timeout="60s" on-fail="block"
52+ op stop interval="0s" timeout="60s" on-fail="fence"
5353
5454 primitive prmL7directord ocf:heartbeat:L7directord \
5555 op start interval="0s" timeout="60s" on-fail="restart" \
5656 op monitor interval="10s" timeout="60s" on-fail="restart" \
57- op stop interval="0s" timeout="60s" on-fail="block"
57+ op stop interval="0s" timeout="60s" on-fail="fence"
5858
5959 primitive prmL7vsd ocf:heartbeat:L7vsd \
6060 op start interval="0s" timeout="60s" on-fail="restart" \
6161 op monitor interval="10s" timeout="60s" on-fail="restart" \
62- op stop interval="0s" timeout="60s" on-fail="block"
62+ op stop interval="0s" timeout="60s" on-fail="fence"
6363
6464 primitive prmPingd ocf:pacemaker:pingd \
6565 params \
6666 name="default_ping_set" \
67- host_list="MODIFY_PING_TARGET_IP" \
67+ host_list="" \
6868 multiplier="100" \
6969 op start interval="0s" timeout="60s" on-fail="restart" \
7070 op monitor interval="10s" timeout="60s" on-fail="restart" \
@@ -73,7 +73,7 @@ primitive prmPingd ocf:pacemaker:pingd \
7373 primitive prmDiskd ocf:pacemaker:diskd \
7474 params \
7575 name="diskcheck_status_internal" \
76- device="MODIFY_TARGET_DISK_DEV" \
76+ device="" \
7777 interval="10" \
7878 op start interval="0s" timeout="60s" on-fail="restart" \
7979 op monitor interval="10s" timeout="60s" on-fail="restart" \
@@ -83,8 +83,8 @@ primitive prmDiskd ocf:pacemaker:diskd \
8383 # params \
8484 # priority="1" \
8585 # stonith-timeout="40s" \
86-# hostlist="MODIFY_PRYMARY_HOST" \
87-# dead_check_target="MODIFY_TARGET_IP MODIFY_TARGET_IP ..." \
86+# hostlist="" \
87+# dead_check_target="" \
8888 # standby_check_command="/usr/sbin/crm_resource -r prmVIP -W | grep -q `hostname`" \
8989 # op start interval="0s" timeout="60s" \
9090 # op monitor interval="10s" timeout="60s" \
@@ -92,12 +92,12 @@ primitive prmDiskd ocf:pacemaker:diskd \
9292
9393 #primitive prmStonith1-2 stonith:external/ipmi \
9494 # params \
95-# passwd="MODIFY_IPMI_PASSWORD" \
96-# ipaddr="MODIFY_IPMI_IP" \
95+# passwd="" \
96+# ipaddr="" \
9797 # priority="2" \
98-# userid="MODIFY_IPMI_USER" \
99-# hostname="MODIFY_PRYMARY_HOST" \
100-# interface="MODIFY_IPMI_INTERFACE" \
98+# userid="" \
99+# hostname="" \
100+# interface="" \
101101 # stonith-timeout="60s" \
102102 # op start interval="0s" timeout="60s" \
103103 # op monitor interval="3600s" timeout="60s" \
@@ -107,7 +107,7 @@ primitive prmDiskd ocf:pacemaker:diskd \
107107 # params \
108108 # priority="3" \
109109 # stonith-timeout="600s" \
110-# hostlist="MODIFY_PRYMARY_HOST" \
110+# hostlist="" \
111111 # op start interval="0s" timeout="60s" \
112112 # op monitor interval="3600s" timeout="60s" \
113113 # op stop interval="0s" timeout="60s"
@@ -116,8 +116,8 @@ primitive prmDiskd ocf:pacemaker:diskd \
116116 # params \
117117 # priority="1" \
118118 # stonith-timeout="40s" \
119-# hostlist="MODIFY_SECONDARY_HOST" \
120-# dead_check_target="MODIFY_TARGET_IP MODIFY_TARGET_IP ..." \
119+# hostlist="" \
120+# dead_check_target="" \
121121 # standby_check_command="/usr/sbin/crm_resource -r prmVIP -W | grep -q `hostname`" \
122122 # op start interval="0s" timeout="60s" \
123123 # op monitor interval="10s" timeout="60s" \
@@ -125,12 +125,12 @@ primitive prmDiskd ocf:pacemaker:diskd \
125125
126126 #primitive prmStonith2-2 stonith:external/ipmi \
127127 # params \
128-# passwd="MODIFY_IPMI_PASSWORD" \
129-# ipaddr="MODIFY_IPMI_IP" \
128+# passwd="" \
129+# ipaddr="" \
130130 # priority="2" \
131-# userid="MODIFY_IPMI_USER" \
132-# hostname="MODIFY_SECONDARY_HOST" \
133-# interface="MODIFY_IPMI_INTERFACE" \
131+# userid="" \
132+# hostname="" \
133+# interface="" \
134134 # stonith-timeout="60s" \
135135 # op start interval="0s" timeout="60s" \
136136 # op monitor interval="3600s" timeout="60s" \
@@ -140,21 +140,21 @@ primitive prmDiskd ocf:pacemaker:diskd \
140140 # params \
141141 # priority="3" \
142142 # stonith-timeout="600s" \
143-# hostlist="MODIFY_SECONDARY_HOST" \
143+# hostlist="" \
144144 # op start interval="0s" timeout="60s" \
145145 # op monitor interval="3600s" timeout="60s" \
146146 # op stop interval="0s" timeout="60s"
147147
148148 ### Resource Location ###
149149 location rsc_location-grpUltraMonkey-1 grpUltraMonkey \
150- rule 200: #uname eq MODIFY_PRYMARY_HOST \
151- rule 100: #uname eq MODIFY_SECONDARY_HOST \
150+ rule 200: #uname eq \
151+ rule 100: #uname eq \
152152 rule -INFINITY: not_defined default_ping_set or default_ping_set lt 100 \
153153 rule -INFINITY: not_defined diskcheck_status_internal or diskcheck_status_internal eq ERROR
154154 #location rsc_location-grpStonith1-2 grpStonith1 \
155-# rule -INFINITY: #uname eq MODIFY_PRYMARY_HOST
155+# rule -INFINITY: #uname eq
156156 #location rsc_location-grpStonith2-3 grpStonith2 \
157-# rule -INFINITY: #uname eq MODIFY_SECONDARY_HOST
157+# rule -INFINITY: #uname eq
158158
159159 ### Resource Colocation ###
160160 colocation rsc_colocation-grpUltraMonkey-clnPingd-1 INFINITY: grpUltraMonkey clnPingd
--- a/l7vsd/include/virtualservice.h
+++ b/l7vsd/include/virtualservice.h
@@ -451,6 +451,8 @@ protected:
451451 session_map_type active_sessions;
452452 l7vs::atomic<unsigned long long>
453453 active_count;
454+ session_thread_control *waiting_stc;
455+ //! session_thread_control waiting accept
454456
455457 bool defer_accept_opt;
456458 //! is set option TCP_DEFER_ACCEPT
--- a/l7vsd/src/virtualservice_tcp.cpp
+++ b/l7vsd/src/virtualservice_tcp.cpp
@@ -432,6 +432,7 @@ void l7vs::virtualservice_tcp::handle_accept(const l7vs::session_thread_control
432432 stc_ptr_noconst->session_access_log_output_mode_change(access_log_flag);
433433
434434 active_sessions.insert(tmp_session, stc_ptr_noconst);
435+ waiting_stc = NULL;
435436
436437 //check sorry flag and status
437438 if (unlikely(
@@ -502,6 +503,7 @@ void l7vs::virtualservice_tcp::handle_accept(const l7vs::session_thread_control
502503 boost::mutex::scoped_lock down_wait_lk(stc_ptr_register_accept->get_downthread_mutex());
503504
504505 waiting_session = stc_ptr_register_accept->get_session().get();
506+ waiting_stc = stc_ptr_register_accept;
505507
506508 if (unlikely(LOG_LV_DEBUG == Logger::getLogLevel(LOG_CAT_L7VSD_VIRTUALSERVICE))) {
507509 boost::format fmt1("active session thread id = %d");
@@ -914,7 +916,7 @@ void l7vs::virtualservice_tcp::finalize(l7vs::error_code &err)
914916 delete stc;
915917 stc = NULL;
916918 if (unlikely(LOG_LV_DEBUG == Logger::getLogLevel(LOG_CAT_L7VSD_VIRTUALSERVICE))) {
917- boost::format fmt("join pool session: pool_sessions.size = %d");
919+ boost::format fmt("join pool session: pool_session.size = %d");
918920 fmt % pool_sessions.size();
919921 Logger::putLogDebug(LOG_CAT_L7VSD_VIRTUALSERVICE, 55, fmt.str(),
920922 __FILE__, __LINE__);
@@ -924,6 +926,9 @@ void l7vs::virtualservice_tcp::finalize(l7vs::error_code &err)
924926 delete waiting_session;
925927 waiting_session = NULL;
926928
929+ //waiting thread delete
930+ waiting_stc->join();
931+
927932 //unload ProtocolModule
928933 if (protomod) {
929934 //finalize ProtocolModule
@@ -1591,6 +1596,7 @@ void l7vs::virtualservice_tcp::run()
15911596 } while (!stc_ptr);
15921597
15931598 waiting_session = stc_ptr->get_session().get();
1599+ waiting_stc = stc_ptr;
15941600
15951601 if (!ssl_virtualservice_mode_flag) {
15961602 acceptor_->async_accept(waiting_session->get_client_socket().get_socket(),