Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 580824

Summary: qpid c++ client library crash in qpid::client::ConnectionHandler::close() when authenticating SASL PLAIN
Product: Red Hat Enterprise MRG Reporter: Frantisek Reznicek <freznice>
Component: qpid-cppAssignee: Gordon Sim <gsim>
Status: CLOSED ERRATA QA Contact: Frantisek Reznicek <freznice>
Severity: high Docs Contact:
Priority: high    
Version: DevelopmentCC: aconway, esammons, gsim
Target Milestone: 1.3   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-10-20 11:30:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Frantisek Reznicek 2010-04-09 07:32:45 UTC
Description of problem:

There are observed crashes when c++ client (perftest) runs against broker with
SASL PLAIN authentication enabled.

The backtrace ends in qpid::client::ConnectionHandler::close():
#0  0x0000000000000000 in ?? ()
#1  0x00002b6d5449cefd in boost::function2<void, unsigned short, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::al
locator<void> >::operator() (this=0x1da2c90, a0=320, a1=...)
    at /usr/include/boost/function/function_template.hpp:576
#2  0x00002b6d54497c04 in qpid::client::ConnectionHandler::close (
    this=0x1da2a48, replyCode=8416, replyText=...)
    at qpid/client/ConnectionHandler.cpp:281
#3  0x00002b6d548d76be in invoke<qpid::framing::AMQP_ClientOperations::ConnectionHandler> (this=0x4170df50, body=...) at qpid/framing/ConnectionCloseBo
dy.h:71
#4  qpid::framing::AMQP_ClientOperations::ConnectionHandler::Invoker::visit (
    this=0x4170df50, body=...) at qpid/framing/ClientInvoker.cpp:286
#5  0x00002b6d5449de64 in qpid::framing::invoke<qpid::framing::AMQP_ClientOperations::ConnectionHandler> (target=<value optimized out>,
    body=<value optimized out>) at qpid/framing/Invoker.h:80
...

Would it be possible that current saslwrapper (saslwrapper-0.1.897961-3) is not compatible with latest build of client library? (qpid-cpp-client-0.7.929717-1)

Observed on RHEL 5.5 x86_64.


Version-Release number of selected component (if applicable):
[root@mrg-qe-02 qpid_ptest_authentication_plain]# rpm -qa | grep -E '(qpid|qmf|sasl)' | sort
cyrus-sasl-2.1.22-5.el5_4.3
cyrus-sasl-devel-2.1.22-5.el5_4.3
cyrus-sasl-devel-2.1.22-5.el5_4.3
cyrus-sasl-lib-2.1.22-5.el5_4.3
cyrus-sasl-lib-2.1.22-5.el5_4.3
cyrus-sasl-md5-2.1.22-5.el5_4.3
cyrus-sasl-plain-2.1.22-5.el5_4.3
cyrus-sasl-plain-2.1.22-5.el5_4.3
python-qmf-0.7.930108-1.el5
python-qpid-0.7.930108-1.el5
python-saslwrapper-0.1.897961-3.el5
qmf-0.7.929717-1.el5
qmf-devel-0.7.929717-1.el5
qpid-cpp-client-0.7.929717-1.el5
qpid-cpp-client-devel-0.7.929717-1.el5
qpid-cpp-client-devel-docs-0.7.929717-1.el5
qpid-cpp-client-ssl-0.7.929717-1.el5
qpid-cpp-mrg-debuginfo-0.7.929717-1.el5
qpid-cpp-server-0.7.929717-1.el5
qpid-cpp-server-cluster-0.7.929717-1.el5
qpid-cpp-server-devel-0.7.929717-1.el5
qpid-cpp-server-ssl-0.7.929717-1.el5
qpid-cpp-server-store-0.7.929717-1.el5
qpid-cpp-server-xml-0.7.929717-1.el5
qpid-java-client-0.7.918215-1.el5
qpid-java-common-0.7.918215-1.el5
qpid-tools-0.7.930108-1.el5
ruby-qpid-0.7.904654-1.el5
ruby-saslwrapper-0.1.897961-3.el5
saslwrapper-0.1.897961-3.el5
saslwrapper-devel-0.1.897961-3.el5


How reproducible:
~20% (quite hard)

Steps to Reproduce:
1. set-up SASL PLAIN authentication
2. start broker
3. run perftest client
   perftest --mechanism PLAIN --count 1 -p 40763 \
   --password <invalid-pass>  --broker 127.0.0.1 --user <invalid-user-id>
4. repeat 3 in loop
  
Actual results:
C++ client crashes.

Expected results:
C++ client should not crash.

Additional info:


rough log
~~~~~~~~~

[02:22:41] .running auth. clients (_^_hE67pCcM1tY1cs1kKhReHModZC_^_:_I_93tsV06_I_.0.1 mode:failure)
/root/MRG/Messaging/qpid_ptest_authentication_plain/functions.inc: line 21: 13279 Segmentation fault      (core dumped) perftest --mechanism PLAIN --co
unt 1 ${common_params} >> $LOGDIR/perftest_cpp.log 2>&1
/root/MRG/Messaging/qpid_ptest_authentication_plain/functions.inc: line 21: 13281 Aborted                 (core dumped) ${RHTS_TEST_MRGM_COMMON_QC_DIR}
/c++/qc_client ${common_params} --conn-auth-mechanism PLAIN >> $LOGDIR/qc_client_cpp.log 2>&1
[02:22:41] ..brief summary (perftest|qc_client|qc_client.py|qc_client.rb, ecode:139 134 1 1)
[02:22:41] ..ecode:139 (normal failure expected)
[02:22:41] ..ecode:134 (normal failure expected)
[02:22:41] ..ecode:1 (normal failure expected)
[02:22:41] ..ecode:1 (normal failure expected)

perftest log
~~~~~~~~~~~~

perftest --mechanism PLAIN --count 1 -p 40763 --password _I_93tsV06_I_ --broker 127.0.0.1 --user _^_hE67pCcM1tY1cs1kKhReHModZC_^_

connection-forced: Authentication failed
2010-04-09 02:22:41 warning Broker closed connection: 320, connection-forced: Authentication failed


perftest crash
~~~~~~~~~~~~~~

Core was generated by `perftest --mechanism PLAIN --count 1 -p 40763 --password _I_93tsV06_I_ --broker'.
Program terminated with signal 11, Segmentation fault.
#0  0x0000000000000000 in ?? ()
(gdb)
(gdb)   2 Thread 13279  0x00000036a1c07b35 in pthread_join ()
   from /lib64/libpthread.so.0
* 1 Thread 13280  0x0000000000000000 in ?? ()
(gdb)
Thread 2 (Thread 13279):
#0  0x00000036a1c07b35 in pthread_join () from /lib64/libpthread.so.0
#1  0x00002b6d5489690d in qpid::sys::Thread::join (this=<value optimized out>)
    at qpid/sys/posix/Thread.cpp:58
#2  0x00002b6d544a0c76 in ~IOThread () at qpid/client/ConnectionImpl.cpp:130
#3  __tcf_2 () at qpid/client/ConnectionImpl.cpp:136
#4  0x00000036a103368e in __cxa_finalize () from /lib64/libc.so.6
#5  0x00002b6d5447e3b6 in __do_global_dtors_aux ()
   from /usr/lib64/libqpidclient.so.2
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 13280):
#0  0x0000000000000000 in ?? ()
#1  0x00002b6d5449cefd in boost::function2<void, unsigned short, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::al
locator<void> >::operator() (this=0x1da2c90, a0=320, a1=...)
    at /usr/include/boost/function/function_template.hpp:576
#2  0x00002b6d54497c04 in qpid::client::ConnectionHandler::close (
    this=0x1da2a48, replyCode=8416, replyText=...)
    at qpid/client/ConnectionHandler.cpp:281
#3  0x00002b6d548d76be in invoke<qpid::framing::AMQP_ClientOperations::ConnectionHandler> (this=0x4170df50, body=...) at qpid/framing/ConnectionCloseBo
dy.h:71
#4  qpid::framing::AMQP_ClientOperations::ConnectionHandler::Invoker::visit (
    this=0x4170df50, body=...) at qpid/framing/ClientInvoker.cpp:286
#5  0x00002b6d5449de64 in qpid::framing::invoke<qpid::framing::AMQP_ClientOperations::ConnectionHandler> (target=<value optimized out>,
    body=<value optimized out>) at qpid/framing/Invoker.h:80
#6  0x00002b6d5449aeda in qpid::client::ConnectionHandler::incoming (
    this=0x1da2a48, frame=...) at qpid/client/ConnectionHandler.cpp:105
#7  0x00002b6d544ef07b in qpid::client::TCPConnector::decode (this=0x1da2f50,
    buffer=<value optimized out>, size=<value optimized out>)
    at qpid/client/TCPConnector.cpp:304
#8  0x00002b6d544ee460 in qpid::client::TCPConnector::readbuff (
    this=<value optimized out>, aio=..., buff=0x1da3720)
    at qpid/client/TCPConnector.cpp:272
#9  0x00002b6d548943af in boost::function2<void, qpid::sys::AsynchIO&, qpid::sys::AsynchIOBufferBase*, std::allocator<boost::function_base> >::operator
() (
    this=0x1da2c90, a0=..., a1=0x1da34f0)
    at /usr/include/boost/function/function_template.hpp:576
#10 0x00002b6d54892913 in qpid::sys::posix::AsynchIO::readable (
    this=0x1da8c00, h=...) at qpid/sys/posix/AsynchIO.cpp:418
#11 0x00002b6d54979047 in boost::function1<void, qpid::sys::DispatchHandle&, std::allocator<boost::function_base> >::operator() (this=0x1da2c90, a0=...
)
    at /usr/include/boost/function/function_template.hpp:576
#12 0x00002b6d54973edf in qpid::sys::DispatchHandle::processEvent (
    this=0x1da8c08, type=<value optimized out>)
    at qpid/sys/DispatchHandle.cpp:278
#13 0x00002b6d548a052f in process (this=0x1da2420) at qpid/sys/Poller.h:123
#14 qpid::sys::Poller::run (this=0x1da2420)
    at qpid/sys/epoll/EpollPoller.cpp:483
#15 0x00002b6d5489670a in qpid::sys::(anonymous namespace)::runRunnable (p=0x0)
    at qpid/sys/posix/Thread.cpp:35
#16 0x00000036a1c0673d in start_thread () from /lib64/libpthread.so.0
#17 0x00000036a10d3d1d in clone () from /lib64/libc.so.6

Comment 1 Gordon Sim 2010-04-09 15:45:00 UTC
This looks like perhaps the ConnectionImpl instance is deleted before the associated DispatchHandle is removed from the poller?

Comment 2 Frantisek Reznicek 2010-04-14 08:12:47 UTC
An update, this failure is seen very frequently on both RHEL4.8 and 5.5.

Here is another variant of the crash:

core.8968: ELF 32-bit LSB core file Intel 80386, version 1 (SYSV), SVR4-style, from 'perftest'
  GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-23.el5)
  Copyright (C) 2009 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
  and "show warranty" for details.
  This GDB was configured as "i386-redhat-linux-gnu".
  For bug reporting instructions, please see:
  warning: section .gnu.liblist not found in /usr/lib/debug/usr/bin/perftest.debug
  warning: section .dynbss not found in /usr/lib/debug/usr/bin/perftest.debug
  warning: section .gnu.conflict not found in /usr/lib/debug/usr/bin/perftest.debug
  [New Thread 8968]
  warning: section .gnu.liblist not found in /usr/lib/debug/usr/bin/perftest.debug
  warning: section .dynbss not found in /usr/lib/debug/usr/bin/perftest.debug
  warning: section .gnu.conflict not found in /usr/lib/debug/usr/bin/perftest.debug
  warning: .dynamic section for "/usr/lib/libgssapi_krb5.so.2" is not at the expected address
  warning: difference appears to be caused by prelink, adjusting expectations
  warning: .dynamic section for "/usr/lib/libkrb5.so.3" is not at the expected address
  warning: difference appears to be caused by prelink, adjusting expectations
  warning: .dynamic section for "/usr/lib/libk5crypto.so.3" is not at the expected address
  warning: difference appears to be caused by prelink, adjusting expectations
  warning: .dynamic section for "/usr/lib/libkrb5support.so.0" is not at the expected address
  warning: difference appears to be caused by prelink, adjusting expectations
  warning: .dynamic section for "/lib/libselinux.so.1" is not at the expected address
  warning: difference appears to be caused by prelink, adjusting expectations
  warning: .dynamic section for "/lib/libsepol.so.1" is not at the expected address
  warning: difference appears to be caused by prelink, adjusting expectations
  warning: section .gnu.liblist not found in /usr/lib/debug/usr/bin/perftest.debug
  warning: section .dynbss not found in /usr/lib/debug/usr/bin/perftest.debug
  warning: section .gnu.conflict not found in /usr/lib/debug/usr/bin/perftest.debug
  Core was generated by `perftest --mechanism PLAIN --count 1 -p 28486 --password SpzxRvD --broker mrg-q'.
  Program terminated with signal 6, Aborted.
  #0  0x00f12410 in __kernel_vsyscall ()
  (gdb) eax            0x0      0
  ecx            0x230a 8970
  edx            0x6    6
  ebx            0x2308 8968
  esp            0xb7f52f84     0xb7f52f84
  ebp            0xb7f52f9c     0xb7f52f9c
  esi            0xb7f5303c     -1208668100
  edi            0x368ff4       3575796
  eip            0xf12410       0xf12410 <__kernel_vsyscall+16>
  eflags         0x202  [ IF ]
  cs             0x73   115
  ss             0x7b   123
  ds             0x7b   123
  es             0x7b   123
  fs             0x0    0
  gs             0x33   51
  st0            0      (raw 0x00000000000000000000)
  st1            0      (raw 0x00000000000000000000)
  st2            0      (raw 0x00000000000000000000)
  st3            0      (raw 0x00000000000000000000)
  st4            0      (raw 0x00000000000000000000)
  st5            0      (raw 0x00000000000000000000)
  st6            0      (raw 0x00000000000000000000)
  st7            0      (raw 0x00000000000000000000)
  fctrl          0x0    0
  fstat          0x0    0
  ftag           0x0    0
  fiseg          0x0    0
  fioff          0x0    0
  foseg          0x0    0
  fooff          0x0    0
  fop            0x0    0
  (gdb) Using memory regions provided by the target.
  There are no memory regions defined.
  (gdb) From        To          Syms Read   Shared Object Library
  0x00421ea0  0x004ee824  Yes (*)     /usr/lib/libqpidclient.so.2
  0x00c158c0  0x00d33ae4  Yes (*)     /usr/lib/libqpidcommon.so.2
  0x006bf970  0x006de524  Yes (*)     /usr/lib/libboost_program_options.so.2
  0x006a39a0  0x006ac614  Yes (*)     /usr/lib/libboost_filesystem.so.2
  0x00398a50  0x00399a84  Yes (*)     /lib/libdl.so.2
  0x003ce880  0x003d2b04  Yes (*)     /lib/librt.so.1
  0x077da190  0x077ea774  Yes (*)     /usr/lib/libsasl2.so.2
  0x077ccee0  0x077ce954  Yes (*)     /lib/libuuid.so.1
  0x071dac50  0x07256134  Yes (*)     /usr/lib/libstdc++.so.6
  0x00372410  0x0038d594  Yes (*)     /lib/libm.so.6
  0x00b37660  0x00b3ef34  Yes (*)     /lib/libgcc_s.so.1
  0x0023cc80  0x00337c40  Yes (*)     /lib/libc.so.6
  0x002097f0  0x0021eebf  Yes (*)     /lib/ld-linux.so.2
  0x003a2210  0x003ada74  Yes (*)     /lib/libpthread.so.0
  0x0073b0c0  0x00746054  Yes (*)     /lib/libresolv.so.2
  0x074326e0  0x07439314  Yes (*)     /lib/libcrypt.so.1
  0x00117050  0x001249f4  Yes (*)     /usr/lib/qpid/client/sslconnector.so
  0x009ee760  0x00a07b74  Yes (*)     /usr/lib/libsslcommon.so.2
  0x04d7afc0  0x04e5ea04  Yes (*)     /usr/lib/libnss3.so
  0x04efb480  0x04f21664  Yes (*)     /usr/lib/libssl3.so
  0x04e9a7a0  0x04ebd3f4  Yes (*)     /usr/lib/libnspr4.so
  0x04d4db40  0x04d59284  Yes (*)     /usr/lib/libnssutil3.so
  0x04d64df0  0x04d66704  Yes (*)     /usr/lib/libplc4.so
  0x00204a30  0x002059a4  Yes (*)     /usr/lib/libplds4.so
  0x003b96a0  0x003c48d4  Yes (*)     /usr/lib/libz.so.1
  0x0018e8c0  0x00195264  Yes (*)     /lib/libnss_files.so.2
  0x00129b80  0x0012bb74  Yes (*)     /usr/lib/sasl2/libplain.so.2
  0x0089fb80  0x008a1a04  Yes (*)     /usr/lib/sasl2/libanonymous.so.2
  0x00ac70a0  0x00acb584  Yes (*)     /usr/lib/sasl2/libgssapiv2.so.2
  0x001353d0  0x00156374  Yes (*)     /usr/lib/libgssapi_krb5.so.2
  0x0053d160  0x005ac884  Yes (*)     /usr/lib/libkrb5.so.3
  0x0015f790  0x00177564  Yes (*)     /usr/lib/libk5crypto.so.3
  0x00a397e0  0x00a39f94  Yes (*)     /lib/libcom_err.so.2
  0x00183960  0x001881b4  Yes (*)     /usr/lib/libkrb5support.so.0
  0x00afa8d0  0x00afb014  Yes (*)     /lib/libkeyutils.so.1
  0x0019b530  0x001a8504  Yes (*)     /lib/libselinux.so.1
  0x001b2f40  0x001e0e34  Yes (*)     /lib/libsepol.so.1
  0x005d7a00  0x00682094  Yes (*)     /usr/lib/sasl2/libsasldb.so.2
  0x00a70b70  0x00a72a94  Yes (*)     /usr/lib/sasl2/liblogin.so.2
  (*): Shared library is missing debugging information.
  (gdb)   2 Thread 8968  0x0021a1bc in _dl_check_caller () from /lib/ld-linux.so.2
  * 1 Thread 8970  0x00f12410 in __kernel_vsyscall ()
  Thread 2 (Thread 8968):
  #0  0x0021a1bc in _dl_check_caller () from /lib/ld-linux.so.2
  #1  0x0021a9cc in dl_open_worker () from /lib/ld-linux.so.2
  #2  0x00216e66 in _dl_catch_error () from /lib/ld-linux.so.2
  #3  0x0021a4b2 in _dl_open () from /lib/ld-linux.so.2
  #4  0x00398c4d in dlopen_doit () from /lib/libdl.so.2
  #5  0x00216e66 in _dl_catch_error () from /lib/ld-linux.so.2
  #6  0x003992cc in _dlerror_run () from /lib/libdl.so.2
  #7  0x00398b84 in dlopen@@GLIBC_2.1 () from /lib/libdl.so.2
  #8  0x04ea323a in ?? () from /usr/lib/libnspr4.so
  #9  0x04ea94ef in ?? () from /usr/lib/libnspr4.so
  #10 0x04eb8275 in PR_GetCurrentThread () from /usr/lib/libnspr4.so
  #11 0x04ea8757 in PR_SetError () from /usr/lib/libnspr4.so
  #12 0x04d58125 in PORT_SetError_Util () from /usr/lib/libnssutil3.so
  #13 0x04d7b563 in NSS_Shutdown () from /usr/lib/libnss3.so
  #14 0x009f6b87 in qpid::sys::ssl::shutdownNSS () at qpid/sys/ssl/util.cpp:115
  #15 0x001171a7 in ~StaticInit () at qpid/client/SslConnector.cpp:165
  #16 __tcf_1 () at qpid/client/SslConnector.cpp:166
  #17 0x00253059 in __cxa_finalize () from /lib/libc.so.6
  #18 0x001170b4 in __do_global_dtors_aux ()
     from /usr/lib/qpid/client/sslconnector.so
  #19 0x00124a0c in _fini () from /usr/lib/qpid/client/sslconnector.so
  #20 0x0021780e in _dl_fini () from /lib/ld-linux.so.2
  #21 0x00252da9 in exit () from /lib/libc.so.6
  #22 0x0023cea4 in __libc_start_main () from /lib/libc.so.6
  #23 0x080510c1 in _start ()
  Thread 1 (Thread 8970):
  #0  0x00f12410 in __kernel_vsyscall ()
  #1  0x0024fdf0 in raise () from /lib/libc.so.6
  #2  0x00251701 in abort () from /lib/libc.so.6
  #3  0x07251b10 in __gnu_cxx::__verbose_terminate_handler() ()
     from /usr/lib/libstdc++.so.6
  #4  0x0724f515 in ?? () from /usr/lib/libstdc++.so.6
  #5  0x0724e8aa in ?? () from /usr/lib/libstdc++.so.6
  #6  0x0724f379 in __gxx_personality_v0 () from /usr/lib/libstdc++.so.6
  #7  0x00b3c7e6 in ?? () from /lib/libgcc_s.so.1
  #8  0x00b3ce2b in _Unwind_RaiseException () from /lib/libgcc_s.so.1
  #9  0x0724f67d in __cxa_throw () from /usr/lib/libstdc++.so.6
  #10 0x0043839e in qpid::sys::Mutex::unlock (this=0x8545f90)
      at ../include/qpid/sys/posix/Mutex.h:120
  #11 0x004488cc in ~ScopedLock (this=0x8545d88, code=320, text=...)
      at ../include/qpid/sys/Mutex.h:34
  #12 qpid::client::ConnectionImpl::closed (this=0x8545d88, code=320, text=...)
      at qpid/client/ConnectionImpl.cpp:332
  #13 0x0044d86d in operator() (function_obj_ptr=..., a0=320, a1=...)
      at /usr/include/boost/bind/mem_fn_template.hpp:252
  #14 operator()<boost::_mfi::mf2<void, qpid::client::ConnectionImpl, unsigned short, std::string const&>, boost::_bi::list2<unsigned short&, std
::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > (
      function_obj_ptr=..., a0=320, a1=...) at /usr/include/boost/bind.hpp:348
  #15 operator()<unsigned short, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const> (function_obj_ptr=..., a0=320, a1=
...)
      at /usr/include/boost/bind/bind_template.hpp:44
  #16 boost::detail::function::void_function_obj_invoker2<boost::_bi::bind_t<void, boost::_mfi::mf2<void, qpid::client::ConnectionImpl, unsigned
short, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, boost::_bi::list3<boost::_bi::value<qpid::client::Connecti
onImpl*>, boost::arg<1>, boost::arg<2> > >, void, unsigned short, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>:
:invoke (function_obj_ptr=..., a0=320, a1=...)
      at /usr/include/boost/function/function_template.hpp:136
  #17 0x0044322f in boost::function2<void, unsigned short, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::al
locator<void> >::operator() (this=0x8545f64, a0=320, a1=...)
      at /usr/include/boost/function/function_template.hpp:576
  #18 0x0043fbf3 in qpid::client::ConnectionHandler::close (this=0x8545e18,
      replyCode=320, replyText=...) at qpid/client/ConnectionHandler.cpp:281
  #19 0x00c6d821 in invoke<qpid::framing::AMQP_ClientOperations::ConnectionHandler> (this=0xb7f53868, body=...) at qpid/framing/ConnectionCloseBo
dy.h:71
  #20 qpid::framing::AMQP_ClientOperations::ConnectionHandler::Invoker::visit (
      this=0xb7f53868, body=...) at qpid/framing/ClientInvoker.cpp:286
  #21 0x00c6a328 in qpid::framing::ConnectionCloseBody::accept (this=0x874e2d0,
      v=...) at qpid/framing/ConnectionCloseBody.h:75
  #22 0x00443e68 in qpid::framing::invoke<qpid::framing::AMQP_ClientOperations::ConnectionHandler> (target=..., body=...) at qpid/framing/Invoker
.h:80
  #23 0x0043e163 in qpid::client::ConnectionHandler::incoming (this=0x8545e18,
      frame=...) at qpid/client/ConnectionHandler.cpp:105
  #24 0x00443f54 in qpid::client::ConnectionHandler::received (this=0x8545e18,
      f=...) at qpid/client/ConnectionHandler.h:107
  #25 0x004a1473 in qpid::client::TCPConnector::decode (this=0x8546038,
      buffer=0x855c960 "\017", size=59) at qpid/client/TCPConnector.cpp:304
  #26 0x0049d606 in qpid::client::TCPConnector::readbuff (this=0x8546038,
      aio=..., buff=0x8546d40) at qpid/client/TCPConnector.cpp:272
  #27 0x004a2674 in operator() (function_obj_ptr=..., a0=..., a1=0x8546d40)
      at /usr/include/boost/bind/mem_fn_template.hpp:252
  #28 operator()<bool, boost::_mfi::mf2<bool, qpid::client::TCPConnector, qpid::sys::AsynchIO&, qpid::sys::AsynchIOBufferBase*>, boost::_bi::list
2<qpid::sys::AsynchIO&, qpid::sys::AsynchIOBufferBase*&> > (function_obj_ptr=..., a0=...,
      a1=0x8546d40) at /usr/include/boost/bind.hpp:338
  #29 operator()<qpid::sys::AsynchIO, qpid::sys::AsynchIOBufferBase*> (
      function_obj_ptr=..., a0=..., a1=0x8546d40)
      at /usr/include/boost/bind/bind_template.hpp:44
  #30 boost::detail::function::void_function_obj_invoker2<boost::_bi::bind_t<bool, boost::_mfi::mf2<bool, qpid::client::TCPConnector, qpid::sys::
AsynchIO&, qpid::sys::AsynchIOBufferBase*>, boost::_bi::list3<boost::_bi::value<qpid::client::TCPConnector*>, boost::arg<1>, boost::arg<2> > >, v
oid, qpid::sys::AsynchIO&, qpid::sys::AsynchIOBufferBase*>::invoke (function_obj_ptr=..., a0=..., a1=0x8546d40)
      at /usr/include/boost/function/function_template.hpp:136
  #31 0x00c2a68e in boost::function2<void, qpid::sys::AsynchIO&, qpid::sys::AsynchIOBufferBase*, std::allocator<boost::function_base> >::operator
() (
      this=0x85475b4, a0=..., a1=0x8546d40)
      at /usr/include/boost/function/function_template.hpp:576
  #32 0x00c27e90 in qpid::sys::posix::AsynchIO::readable (this=0x8547510, h=...)
      at qpid/sys/posix/AsynchIO.cpp:418
  #33 0x00c28fbd in operator() (function_obj_ptr=..., a0=...)
      at /usr/include/boost/bind/mem_fn_template.hpp:149
  #34 operator()<boost::_mfi::mf1<void, qpid::sys::posix::AsynchIO, qpid::sys::DispatchHandle&>, boost::_bi::list1<qpid::sys::DispatchHandle&> >
(
      function_obj_ptr=..., a0=...) at /usr/include/boost/bind.hpp:287
  #35 operator()<qpid::sys::DispatchHandle> (function_obj_ptr=..., a0=...)
      at /usr/include/boost/bind/bind_template.hpp:32
  #36 boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, qpid::sys::posix::AsynchIO, qpid::sys::
DispatchHandle&>, boost::_bi::list2<boost::_bi::value<qpid::sys::posix::AsynchIO*>, boost::arg<1> > >, void, qpid::sys::DispatchHandle&>::invoke
(function_obj_ptr=..., a0=...)
      at /usr/include/boost/function/function_template.hpp:136
  #37 0x00d2c0d4 in boost::function1<void, qpid::sys::DispatchHandle&, std::allocator<boost::function_base> >::operator() (this=0x854751c, a0=...
)
      at /usr/include/boost/function/function_template.hpp:576
  #38 0x00d27cb8 in qpid::sys::DispatchHandle::processEvent (this=0x8547514,
      type=READABLE) at qpid/sys/DispatchHandle.cpp:278
  #39 0x00c38054 in process (this=0x8545998) at qpid/sys/Poller.h:123
  #40 qpid::sys::Poller::run (this=0x8545998)
      at qpid/sys/epoll/EpollPoller.cpp:483
  #41 0x00c2cd21 in qpid::sys::(anonymous namespace)::runRunnable (p=0x8545998)
      at qpid/sys/posix/Thread.cpp:35
  #42 0x003a3832 in start_thread () from /lib/libpthread.so.0
  #43 0x002f8e0e in clone () from /lib/libc.so.6
  (gdb) quit

Comment 3 Gordon Sim 2010-04-15 21:56:46 UTC
Fixed by r934503.

Comment 4 Gordon Sim 2010-04-15 21:57:11 UTC
*** Bug 582133 has been marked as a duplicate of this bug. ***

Comment 5 Gordon Sim 2010-04-15 21:57:31 UTC
*** Bug 582141 has been marked as a duplicate of this bug. ***

Comment 6 Gordon Sim 2010-04-15 21:58:41 UTC
*** Bug 582136 has been marked as a duplicate of this bug. ***

Comment 7 Gordon Sim 2010-04-15 22:02:44 UTC
*** Bug 568831 has been marked as a duplicate of this bug. ***

Comment 8 Frantisek Reznicek 2010-04-28 14:11:12 UTC
The issue has been fixed, 
tested on RHEL 4.8 / 5.5 i386 / x86_64 on packages:
qpid-cpp-server-0.7.935473-1.el[4|5]

-> VERIFIED