Red Hat Bugzilla – Bug 959184
Corosync can exit because of SIGPIPE
Last modified: 2013-11-20 23:34:09 EST
Created attachment 743139 [details]
Proposed patch - Handle SIGPIPE in req_setup_send
Description of problem:
When IPC client exits exactly when req_setup_send function calls send,
SIGPIPE is generated and corosync (because SIGPIPE is not handled)
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Execute corosync without RR scheduling (pass -p parameter)
2. Execute many confdb IPC clients where each of them is tracking some key(s) and makes changes to that key(s) (or use https://github.com/jfriesse/csts/blob/master/apps/confdb-track-and-change.c)
3. send SIGINT to IPC clients
4. *Corosync* receives SIGPIPE and dies
$res != 0
$res == 0
Problem is NOT specific to confdb, but it's a way how to reproduce problem reliably.
Verified using sigpipe-on-confdb-exit.sh test:
FAIL on corosync-1.4.1-15.el6.x86_64 (RHEL6.4)
PASS on corosync-1.4.1-17.el6.x86_64 (RHEL6.5)
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.