Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 598121 - qpid c++ client occasionly hangs in __tcf_2 () at ../include/qpid/sys/posix/Condition.h:63
Summary: qpid c++ client occasionly hangs in __tcf_2 () at ../include/qpid/sys/posix/C...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: Development
Hardware: All
OS: Linux
medium
medium
Target Milestone: 1.3
: ---
Assignee: Gordon Sim
QA Contact: Frantisek Reznicek
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-05-31 13:42 UTC by Frantisek Reznicek
Modified: 2015-11-16 01:12 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-10-20 11:30:55 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Frantisek Reznicek 2010-05-31 13:42:15 UTC
Description of problem:

Testing purpose client qc_client hangs continuously at main's() return statement in __tcf_2 () at ../include/qpid/sys/posix/Condition.h:63 (qpid c++ client library)

(gdb) info thre
  2 Thread 0x42844950 (LWP 23025)  0x0000003d736d50d8 in epoll_wait () from /lib64/libc.so.6
* 1 Thread 0x7f000804f730 (LWP 23024)  0x0000003d7420a8f9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
(gdb) thre apply all bt

Thread 2 (Thread 0x42844950 (LWP 23025)):
#0  0x0000003d736d50d8 in epoll_wait () from /lib64/libc.so.6
#1  0x0000003402730f63 in qpid::sys::Poller::wait (this=<value optimized out>, timeout=<value optimized out>)
    at qpid/sys/epoll/EpollPoller.cpp:524
#2  0x00000034027319ef in qpid::sys::Poller::run (this=<value optimized out>) at qpid/sys/epoll/EpollPoller.cpp:479
#3  0x0000003402727e9a in runRunnable (p=<value optimized out>) at qpid/sys/posix/Thread.cpp:35
#4  0x0000003d74206407 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#5  0x0000003d736d4b0d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f000804f730 (LWP 23024)):
#0  0x0000003d7420a8f9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000003402c65201 in __tcf_2 () at ../include/qpid/sys/posix/Condition.h:63
#2  0x0000003d73634029 in exit (status=<value optimized out>) at exit.c:75
#3  0x0000003d7361e07b in __libc_start_main (main=<value optimized out>, argc=<value optimized out>, ubp_av=<value optimized out>,
    init=<value optimized out>, fini=<value optimized out>, rtld_fini=<value optimized out>, stack_end=Could not find the frame base for "__libc_start_main".
) at libc-start.c:252
#4  0x0000000000407439 in _start ()
Current language:  auto; currently c
Current language:  auto; currently asm
(gdb) detach
Detaching from program: /home/freznice/prjs/rh/rhts_tests/tests/distribution/MRG/Messaging/qpid_common/clients/c++/qc_client, process 23024


This behavior seen on both RHEL4 / RHEL5.


Testing client can be downloaded from here:
http://cvs.devel.redhat.com/cgi-bin/cvsweb.cgi/tests/distribution/MRG/Messaging/qpid_common/clients/c++/


Version-Release number of selected component (if applicable):
qpid-cpp-server-0.7.946106-1

How reproducible:
100%

Steps to Reproduce:
1. run the broker (service qpidd start)
2. compile the client qc_client (name rb)
3. run the client against the broker (qc_client --user guest --password guest)
  
Actual results:
client hangs.

Expected results:
client should PASS with exit code of 0.

Additional info:

[root@mrg-qe-03 Messaging]# qpid_common/clients/c++/qc_client --user guest --password guest

[1]+  Stopped                 qpid_common/clients/c++/qc_client --user guest --password guest
[root@mrg-qe-03 Messaging]# bg
[1]+ qpid_common/clients/c++/qc_client --user guest --password guest &
[root@mrg-qe-03 Messaging]# ps auxw | grep qc_clie
root     13311  0.5  0.0 64112 6420 pts/3    Sl   09:36   0:00 qpid_common/clients/c++/qc_client --user guest --password guest
root     13314  0.0  0.0 51120  676 pts/3    S+   09:36   0:00 grep qc_clie
[root@mrg-qe-03 Messaging]# gdb
GNU gdb Red Hat Linux (6.3.0.0-1.162.el4rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
(gdb) attach 13311
Attaching to process 13311
Reading symbols from /root/MRG/Messaging/qpid_common/clients/c++/qc_client...done.
Using host libthread_db library "/lib64/tls/libthread_db.so.1".
Reading symbols from /usr/lib64/libboost_regex.so.1...done.
Loaded symbols for /usr/lib64/libboost_regex.so.1
Reading symbols from /usr/lib64/libboost_thread.so.1...done.
Loaded symbols for /usr/lib64/libboost_thread.so.1
Reading symbols from /usr/lib64/libqpidclient.so.2...Reading symbols from /usr/lib/debug/usr/lib64/libqpidclient.so.2.0.0.debug...done.
done.
Loaded symbols for /usr/lib64/libqpidclient.so.2
Reading symbols from /usr/lib64/libstdc++.so.6...done.
Loaded symbols for /usr/lib64/libstdc++.so.6
Reading symbols from /lib64/tls/libm.so.6...done.
Loaded symbols for /lib64/tls/libm.so.6
Reading symbols from /lib64/libgcc_s.so.1...done.
Loaded symbols for /lib64/libgcc_s.so.1
Reading symbols from /lib64/tls/libc.so.6...done.
Loaded symbols for /lib64/tls/libc.so.6
Reading symbols from /usr/lib64/libqpidcommon.so.2...Reading symbols from /usr/lib/debug/usr/lib64/libqpidcommon.so.2.0.0.debug...indone.
done.
Loaded symbols for /usr/lib64/libqpidcommon.so.2
Reading symbols from /usr/lib64/libboost_program_options.so.1...done.
Loaded symbols for /usr/lib64/libboost_program_options.so.1
Reading symbols from /lib64/tls/librt.so.1...done.
Loaded symbols for /lib64/tls/librt.so.1
Reading symbols from /lib64/tls/libpthread.so.0...done.
[Thread debugging using libthread_db enabled]
[New Thread 182896952896 (LWP 13311)]
[New Thread 1084229984 (LWP 13312)]
Loaded symbols for /lib64/tls/libpthread.so.0
Reading symbols from /lib64/tls/libuuid.so.1...done.
Loaded symbols for /lib64/tls/libuuid.so.1
Reading symbols from /lib64/ld-linux-x86-64.so.2...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /usr/lib64/libboost_filesystem.so.1...done.
Loaded symbols for /usr/lib64/libboost_filesystem.so.1
Reading symbols from /lib64/libdl.so.2...done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /usr/lib64/libsasl2.so.2...done.
Loaded symbols for /usr/lib64/libsasl2.so.2
Reading symbols from /lib64/libresolv.so.2...done.
Loaded symbols for /lib64/libresolv.so.2
Reading symbols from /lib64/libcrypt.so.1...done.
Loaded symbols for /lib64/libcrypt.so.1
Reading symbols from /usr/lib64/qpid/client/sslconnector.so...Reading symbols from /usr/lib/debug/usr/lib64/qpid/client/sslconnector.so.debug...done.
done.
Loaded symbols for /usr/lib64/qpid/client/sslconnector.so
Reading symbols from /usr/lib64/libsslcommon.so.2...Reading symbols from /usr/lib/debug/usr/lib64/libsslcommon.so.2.0.0.debug...done.
done.
Loaded symbols for /usr/lib64/libsslcommon.so.2
Reading symbols from /usr/lib64/libnss3.so...done.
Loaded symbols for /usr/lib64/libnss3.so
Reading symbols from /usr/lib64/libssl3.so...done.
Loaded symbols for /usr/lib64/libssl3.so
Reading symbols from /usr/lib64/libnspr4.so...done.
fLoaded symbols for /usr/lib64/libnspr4.so
Reading symbols from /usr/lib64/libnssutil3.so...done.
Loaded symbols for /usr/lib64/libnssutil3.so
Reading symbols from /usr/lib64/libplc4.so...done.
Loaded symbols for /usr/lib64/libplc4.so
Reading symbols from /usr/lib64/libplds4.so...done.
Loaded symbols for /usr/lib64/libplds4.so
Reading symbols from /usr/lib64/libz.so.1...done.
Loaded symbols for /usr/lib64/libz.so.1
Reading symbols from /usr/lib64/sasl2/libplain.so.2...done.
Loaded symbols for /usr/lib64/sasl2/libplain.so.2
Reading symbols from /usr/lib64/sasl2/libdigestmd5.so.2...done.
Loaded symbols for /usr/lib64/sasl2/libdigestmd5.so.2
Reading symbols from /lib64/libcrypto.so.4...done.
Loaded symbols for /lib64/libcrypto.so.4
Reading symbols from /usr/lib64/libgssapi_krb5.so.2...done.
Loaded symbols for /usr/lib64/libgssapi_krb5.so.2
Reading symbols from /usr/lib64/libkrb5.so.3...done.
Loaded symbols for /usr/lib64/libkrb5.so.3
Reading symbols from /lib64/libcom_err.so.2...done.
Loaded symbols for /lib64/libcom_err.so.2
Reading symbols from /usr/lib64/libk5crypto.so.3...done.
Loaded symbols for /usr/lib64/libk5crypto.so.3
Reading symbols from /usr/lib64/sasl2/liblogin.so.2...done.
Loaded symbols for /usr/lib64/sasl2/liblogin.so.2
Reading symbols from /usr/lib64/sasl2/libsasldb.so.2...done.
Loaded symbols for /usr/lib64/sasl2/libsasldb.so.2
Reading symbols from /usr/lib64/sasl2/libcrammd5.so.2...done.
Loaded symbols for /usr/lib64/sasl2/libcrammd5.so.2
Reading symbols from /usr/lib64/sasl2/libanonymous.so.2...done.
Loaded symbols for /usr/lib64/sasl2/libanonymous.so.2
0x0000003f30d08d1a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/tls/libpthread.so.0
o(gdb) info threads
  2 Thread 1084229984 (LWP 13312)  0x0000003f300ca39c in epoll_wait () from /lib64/tls/libc.so.6
  1 Thread 182896952896 (LWP 13311)  0x0000003f30d08d1a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/tls/libpthread.so.0
(gdb) thre apply all bt

Thread 2 (Thread 1084229984 (LWP 13312)):
#0  0x0000003f300ca39c in epoll_wait () from /lib64/tls/libc.so.6
#1  0x00000037da76a819 in qpid::sys::Poller::wait (this=0x528750, timeout=Variable "timeout" is not available.
) at qpid/sys/epoll/EpollPoller.cpp:524
#2  0x00000037da76b256 in qpid::sys::Poller::run (this=0x528750) at qpid/sys/epoll/EpollPoller.cpp:479
#3  0x00000037da760d6a in qpid::sys::(anonymous namespace)::runRunnable (p=0x8) at qpid/sys/posix/Thread.cpp:35
#4  0x0000003f30d06317 in start_thread () from /lib64/tls/libpthread.so.0
#5  0x0000003f300c9fc3 in clone () from /lib64/tls/libc.so.6

Thread 1 (Thread 182896952896 (LWP 13311)):
#0  0x0000003f30d08d1a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/tls/libpthread.so.0
#1  0x00000037da38c333 in __tcf_2 () at ../include/qpid/sys/posix/Condition.h:63
#2  0x0000003f30030d55 in exit () from /lib64/tls/libc.so.6
#3  0x0000003f3001c4d2 in __libc_start_main () from /lib64/tls/libc.so.6
#4  0x0000000000405f4a in _start ()
#5  0x0000007fbffff888 in ?? ()
#6  0x000000000000001c in ?? ()
#7  0x0000000000000005 in ?? ()
#8  0x0000007fbffffabd in ?? ()
#9  0x0000007fbffffadf in ?? ()
#10 0x0000007fbffffae6 in ?? ()
#11 0x0000007fbffffaec in ?? ()
#12 0x0000007fbffffaf7 in ?? ()
#13 0x0000000000000000 in ?? ()
(gdb) detach
Detaching from program: /root/MRG/Messaging/qpid_common/clients/c++/qc_client, process 13311
(gdb) [root@mrg-qe-03 Messaging]#
[root@mrg-qe-03 Messaging]# rpm -q qpid-cpp-server
qpid-cpp-server-0.7.946106-1.el4

Comment 1 Frantisek Reznicek 2010-05-31 14:32:56 UTC
The issue seems to be solved by qpid-cpp-server-0.7.946106-2.
Retesting in progress.

Comment 2 Frantisek Reznicek 2010-06-01 14:27:32 UTC
The issue is fixed by qpid-cpp-server-0.7.946106-2 fixes.

Retested on RHEL 4.8 / 5.5 i386 /x86_64 on packages:
qpid-cpp-server-0.7.946106-2.el4|5

-> VERIFIED


Note You need to log in before you can comment on or make changes to this bug.