[
https://issues.apache.org/jira/browse/QPID-2048?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gordon Sim reassigned QPID-2048:
--------------------------------
Assignee: Alan Conway (was: Gordon Sim)
> Client can hang on close() if broker is simultaenously killed
> -------------------------------------------------------------
>
> Key: QPID-2048
> URL: https://issues.apache.org/jira/browse/QPID-2048
> Project: Qpid
> Issue Type: Bug
> Components: C++ Client
> Affects Versions: 0.5
> Reporter: Gordon Sim
> Assignee: Alan Conway
> Fix For: 0.6
>
>
> There is a race between ConnectionHandler::close() and
> ConnectionHandler::failed(). If the closing thread is 'between' checking for
> OPEN state and setting to CLOSING state (lines 149 and 150 as of r803787)
> when the failing thread sets the state to FAILED (line 181 as of r803787),
> then the FAILED state will be overwritten and the closing thread will hang.
> E.g., from a run of ais_check with store loaded:
> Thread 1 (Thread 0xb7fb3720 (LWP 11644)):
> #0 0x00975410 in __kernel_vsyscall ()
> #1 0x0032d595 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
> #2 0x00a53b3d in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libc.so.6
> #3 0x001b973e in qpid::client::StateManager::waitFor ()
> #4 0x00166e52 in qpid::client::ConnectionHandler::close ()
> #5 0x0016f2fb in qpid::client::ConnectionImpl::close ()
> #6 0x0015dde4 in qpid::client::Connection::close ()
> #7 0x0808d5da in ClusterFixture::killWithSilencer ()
> #8 0x0806dab4 in testConnectionKnownHosts ()
> #9 0x0807cacc in
> boost::unit_test::ut_detail::callback0_impl_t<boost::unit_test::ut_detail::unused,
> void (*)()>::invoke ()
> #10 0x007ad48d in ?? () from /usr/lib/libboost_unit_test_framework.so.2
> #11 0x0079df35 in boost::execution_monitor::catch_signals ()
> #12 0x0079e2c6 in boost::execution_monitor::execute ()
> #13 0x007ad599 in boost::unit_test::unit_test_monitor_t::execute_and_translate
> #14 0x007a1194 in boost::unit_test::framework_impl::visit ()
> #15 0x007b3ef7 in boost::unit_test::traverse_test_tree ()
> #16 0x007b46a0 in boost::unit_test::traverse_test_tree ()
> #17 0x007b44d8 in boost::unit_test::traverse_test_tree ()
> #18 0x007b46d5 in boost::unit_test::traverse_test_tree ()
> #19 0x007b44d8 in boost::unit_test::traverse_test_tree ()
> #20 0x007b46d5 in boost::unit_test::traverse_test_tree ()
> #21 0x007a0169 in boost::unit_test::framework::run ()
> #22 0x007ad249 in main () from /usr/lib/libboost_unit_test_framework.so.2
> #23 0x0098be8c in __libc_start_main () from /lib/libc.so.6
> #24 0x080568b1 in _start ()
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]