Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 959184 - Corosync can exit because of SIGPIPE
Corosync can exit because of SIGPIPE
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: corosync (Show other bugs)
Unspecified Unspecified
urgent Severity urgent
: rc
: ---
Assigned To: Jan Friesse
Cluster QE
Depends On:
  Show dependency treegraph
Reported: 2013-05-03 06:03 EDT by Jan Friesse
Modified: 2013-11-20 23:34 EST (History)
4 users (show)

See Also:
Fixed In Version: corosync-1.4.1-16.el6
Doc Type: Bug Fix
Doc Text:
Cause: IPC client exits in very specific time-frame of connection handshake. Consequence: Corosync receives SIGPIPE and dies. Fix: Function which is responsible for SIGPIPE (sendto) is called with flag which makes SIGPIPE handled by sendto function. Result: Corosync doesn't receive SIGPIPE and doesn't die.
Story Points: ---
Clone Of:
Last Closed: 2013-11-20 23:34:09 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
Proposed patch - Handle SIGPIPE in req_setup_send (1.02 KB, patch)
2013-05-03 06:03 EDT, Jan Friesse
no flags Details | Diff

External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2013:1531 normal SHIPPED_LIVE corosync bug fix and enhancement update 2013-11-20 19:40:57 EST

  None (edit)
Description Jan Friesse 2013-05-03 06:03:20 EDT
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):

How reproducible:

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

"Unit" test:

Actual results:
$res != 0

Expected results:
$res == 0

Additional info:
Problem is NOT specific to confdb, but it's a way how to reproduce problem reliably.
Comment 7 Jaroslav Kortus 2013-09-11 09:19:09 EDT

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)
Comment 9 errata-xmlrpc 2013-11-20 23:34:09 EST
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.


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