Bug 690202 - QPID-3147: Misconfigured tracing/logging can lead to hung threads in logging stack
Summary: QPID-3147: Misconfigured tracing/logging can lead to hung threads in logging ...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: 1.3
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
: ---
Assignee: Alan Conway
QA Contact: Alan Conway
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-03-23 15:07 UTC by Alan Conway
Modified: 2012-12-10 22:36 UTC (History)
1 user (show)

Fixed In Version: qpid-cpp-client-0.10
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-12-10 22:36:01 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Apache JIRA QPID-3147 0 None None None Never

Description Alan Conway 2011-03-23 15:07:50 UTC
Description of problem:

Given the following trace and logging environment variable mix-up like this:

QPID_TRACE=debug+
QPID_LOG_ENABLE=

A C++ client that embeds the Qpid runtime can get hung although it has recognized the misconfiguration.

#0 0x00555416 in __kernel_vsyscall ()
#1 0x00f49367 in syscall () at ../sysdeps/unix/sysv/linux/i386/syscall.S:30
#2 0x002bbfca in _cxxabiv1::_cxa_guard_acquire (g=0x2171ea0)
at ../../../../libstdc+-v3/libsupc+/guard.cc:293
#3 0x020ca3b8 in instance ()
at /usr/include/boost/pool/detail/singleton.hpp:83
#4 qpid::log::Logger::instance () at qpid/log/Logger.cpp:47
#5 0x020cd324 in qpid::log::Statement::Initializer::Initializer (
this=0x2171b88, s=...) at qpid/log/Statement.cpp:61
#6 0x02075b6c in qpid::Exception::Exception (this=0x880b370, msg=
"Error in environment variables: in option 'trace': invalid bool value\n")
at qpid/Exception.cpp:31
#7 0x0208095d in Exception (this=0xbf8d0df0, argc=0, argv=0x0, configFile="",
allowUnknown=false) at ../include/qpid/Options.h:210
#8 qpid::Options::parse (this=0xbf8d0df0, argc=0, argv=0x0, configFile="",
allowUnknown=false) at qpid/Options.cpp:352
#9 0x020c9c57 in qpid::log::Logger::Logger (this=0x2171ec0)
at qpid/log/Logger.cpp:55
#10 0x020ca330 in instance ()
at /usr/include/boost/pool/detail/singleton.hpp:83
#11 object_creator () at /usr/include/boost/pool/detail/singleton.hpp:66
#12 __static_initialization_and_destruction_0 ()
at /usr/include/boost/pool/detail/singleton.hpp:95
#13 global constructors keyed to Logger.cpp(void) () at qpid/log/Logger.cpp:156
#14 0x020ebc6d in __do_global_ctors_aux () from /usr/lib/libqpidcommon.so.2
#15 0x01fc2a84 in _init () from /usr/lib/libqpidcommon.so.2
#16 0x004f68fc in call_init (l=<value optimized out>, argc=3, argv=0xbf8d1634,
env=0x87feb58) at dl-init.c:68
#17 0x004f6a19 in _dl_init (main_map=<value optimized out>, argc=3,
argv=0xbf8d1634, env=0x87feb58) at dl-init.c:132
#18 0x004fa74f in dl_open_worker (a=0xbf8d10d0) at dl-open.c:464
#19 0x004f6786 in _dl_catch_error (objname=0xbf8d10f8, errstring=0xbf8d10f4,
mallocedp=0xbf8d10ff, operate=0x4fa3b0 <dl_open_worker>, args=0xbf8d10d0)
at dl-error.c:178


Version-Release number of selected component (if applicable):


How reproducible: 100%


Steps to Reproduce:
1. Set environment 
QPID_TRACE=debug+
QPID_LOG_ENABLE=

2. run any qpid client, e.g. qpid-perftest

  
Actual results: Client hangs


Expected results: Exits with a message indicating mis-configuration.


Additional info:

Comment 1 Alan Conway 2011-03-23 15:18:57 UTC
Comitted to mrg_2.0.x

124ec08 Bug 690202 - QPID-3147: Misconfigured tracing/logging can lead to hung threads in logging stack
1ff6a40 Bug 690202 - QPID-3147: Misconfigured tracing/logging can lead to hung threads in logging stack


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