Bug 684808

Summary: PTHREAD_CANCEL_DISABLE does not disable cancellation
Product: Red Hat Enterprise Linux 5 Reporter: Per Mildner <per.mildner>
Component: glibcAssignee: Andreas Schwab <schwab>
Status: CLOSED ERRATA QA Contact: qe-baseos-tools-bugs
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 5.5CC: ebachalo, fweimer, mfranc, pmuller
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: glibc-2.5-64 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-07-21 08:31:48 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
Transcript and source code for reproducer. none

Description Per Mildner 2011-03-14 14:58:16 UTC
Created attachment 484208 [details]
Transcript and source code for reproducer.

Description of problem:
pthread_cancel can cancel I/O (e.g. write()) while PTHREAD_CANCEL_DISABLE is in effect

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


How reproducible:
See attached transcript

Steps to Reproduce:
1. compile and run the program as shown in transcript. It should exit successfully, eventually.
  
Actual results:
write() is cancelled despite PTHREAD_CANCEL_DISABLE being in effect. The test program then aborts (intentionally).

Expected results:


Additional info:

See the transcript for cancel_leak.c where I have described my (somewhat old) analysis of what I think happens.

I have reproduced this on RH 5.4 on PowerPC as well and on several versions of both x86 and x86_64 versions of Linux.

Comment 3 errata-xmlrpc 2011-07-21 08:31:48 UTC
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/RHBA-2011-1034.html