Bug 679531 - read/write syscalls are suspect in that they do not handle signal interrupts
Summary: read/write syscalls are suspect in that they do not handle signal interrupts
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: corosync
Version: 6.2
Hardware: All
OS: All
low
medium
Target Milestone: rc
: ---
Assignee: Angus Salkeld
QA Contact: Cluster QE
URL:
Whiteboard:
Depends On:
Blocks: 679534
TreeView+ depends on / blocked
 
Reported: 2011-02-22 19:40 UTC by Steven Dake
Modified: 2016-04-26 16:31 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 679534 (view as bug list)
Environment:
Last Closed: 2011-02-23 16:45:31 UTC
Target Upstream Version:


Attachments (Terms of Use)
patch that shows read is restarted if interrupted by signal (567 bytes, patch)
2011-02-23 16:46 UTC, Steven Dake
no flags Details | Diff

Description Steven Dake 2011-02-22 19:40:53 UTC
Description of problem:
If a read/write occurs while a signal is delivered to corosync, the signal could interrupt the read/write operation.  Hunt down all read/write operations in corosync of fixed length and add mechanism to handle interrupted read/write system calls.

Version-Release number of selected component (if applicable):
corosync-1.2.3

How reproducible:
theoretical problem, could be cause of ring id file being zero.

Steps to Reproduce:
1. none known
2.
3.
  
Actual results:
read and write operations on files read or write may only return partial read or  partial write.

Expected results:
read or write operations should return full length of read/write even when signals interrupt the operation.

Additional info:

Comment 3 Steven Dake 2011-02-23 16:45:31 UTC
Reading signal(7) man page isn't very clear about restarts (it says disks do not count as "slow medium" and don't return EINTR if interrupted with SIGACTION but other mediums do.

I wrote a test case attached which verifies this manpage behavior with 1gb of reads couldn't get a short read operation.  It says this may be linux specific, so if people report this in the future on other platforms we can reopen.

Comment 4 Steven Dake 2011-02-23 16:46:44 UTC
Created attachment 480526 [details]
patch that shows read is restarted if interrupted by signal


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