Red Hat Bugzilla – Bug 507413
Broker with single IO thread gets stuck looping if it runs out of file handles
Last modified: 2010-10-14 12:11:33 EDT
Description of problem: If your run the C++ broker --worker-threads=1 and create enough connections to make the broker run out of sockets then the broker will no longer shutdown in respose to ^c or SIGINT. How reproducible: 100% Steps to Reproduce: (untested steps, but I reproduced this in another test) In one terminal: ulimit -n 20 qpidd --port 21022 --auth no --worker-threads 1 --no-data-dir In 6 others: perftest -p 21022 This should bew sufficient to run out of sockets. When this happens the broker will no longer stop if you use ^c on it.
Created attachment 349025 [details] Fix for bug
This patch has been applied to qpidc-752581-19
Created attachment 349029 [details] Corrected (not reversed) patch
This change has been applied to trunk too
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: A broker with a single I/O thread no longer stops responding to the SIGINT (interrupt) signal when it runs out of file handles.
Technical note updated. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. Diffed Contents: @@ -1 +1 @@ -A broker with a single I/O thread no longer stops responding to the SIGINT (interrupt) signal when it runs out of file handles.+A broker with a single I/O thread stopped responding to the SIGINT (interrupt) signal when it ran out of file handles.
Technical note updated. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. Diffed Contents: @@ -1 +1 @@ -A broker with a single I/O thread stopped responding to the SIGINT (interrupt) signal when it ran out of file handles.+Due to missing "break" statement in the "catch" clause, a broker with a single I/O thread stopped responding to the SIGINT (interrupt) signal when it ran out of file handles. With this update, the relevant "catch" clause has been corrected, and brokers now respond to the interrupt signal as expected.
Don't you think this tech note is unnecessarily detailed for an end user release note?
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. http://rhn.redhat.com/errata/RHSA-2010-0773.html