Red Hat Bugzilla – Bug 456991
C++ client consumes 100% CPU when idle
Last modified: 2011-08-12 12:20:12 EDT
The C++ client consumes 100% of the CPU (one core on multi-core systems) even
when idle, waiting for messages on a subscription.
To reproduce, simply run the "listener" program in the C++ "direct" example (you
will need to run "declare-queues" first). While the program waits for incoming
messages, measure the CPU usage of the "lt-listener" process.
Note that this problem only appears to occur on 32-bit architectures.
I believe this is a result of the fact that Condition::wait(FAR_FUTURE) returns
immediately with ETIMEDOUT.
Fixed on qpid.0-10 by r680695 and on trunk by r680691.
There is now RHTS automated test MRG_Messaging/qpid_cpp_client_load_bz456991 which shows that bug has been fixed. (ON_QA->VERIFIED)
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.