Red Hat Bugzilla – Bug 712126
corosync coroipcc doesn't handle case when recvmsg can return 0
Last modified: 2011-12-06 06:51:07 EST
Description of problem: According specification recvmsg can return 0, which means that connection is closed. We had this check, but limited only for systems other then Linux. recvmsg can return 0 even on Linux, so check is now applied on all systems. Version-Release number of selected component (if applicable): Corosync master How reproducible: Without change in code it's almost impossible Steps to Reproduce: 1. Run corosync restart in cycle + IPC client connection is cycle 2. After few hundred years on solar and eclipse IPC will starts eating a lot of CPU and will cycle in recvmsg . Client never exits and loops forever Actual results: Sometime IPC never exists Expected results: IPC exits Additional info: Best way to reproduce is to use code change in corosync (sleep before recvmsg, kill corosync)
Created attachment 503915 [details] Proposed patch sent to ML
Patch commited in GIT master as 2e5dc5f322a5a852d31f5775debbf51e062695ba
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: Do not document.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2011-1515.html