This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug nptl/14232] New: tst-cancel7 and tst-cancelx7 race condition
- From: "jsm28 at gcc dot gnu.org" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sources dot redhat dot com
- Date: Wed, 13 Jun 2012 19:12:11 +0000
- Subject: [Bug nptl/14232] New: tst-cancel7 and tst-cancelx7 race condition
- Auto-submitted: auto-generated
http://sourceware.org/bugzilla/show_bug.cgi?id=14232
Bug #: 14232
Summary: tst-cancel7 and tst-cancelx7 race condition
Product: glibc
Version: 2.15
Status: NEW
Severity: normal
Priority: P2
Component: nptl
AssignedTo: unassigned@sourceware.org
ReportedBy: jsm28@gcc.gnu.org
CC: drepper.fsp@gmail.com
Classification: Unclassified
The test nptl/tst-cancel7 (and so tst-cancelx7) has a race condition that can
cause failures with "could not read pid" in tst-cancel7.out.
Suppose the function sl waits a while between opening the output file and
writing to it. Then cancellation of that thread takes effect without the
output having been written and flushed. This can be reproduced reliably on
x86_64 by inserting a delay loop, e.g.:
diff --git a/nptl/tst-cancel7.c b/nptl/tst-cancel7.c
index 0a972e6..efe46ef 100644
--- a/nptl/tst-cancel7.c
+++ b/nptl/tst-cancel7.c
@@ -42,6 +42,7 @@ tf (void *arg)
return NULL;
}
+volatile unsigned long long ll = 0;
static void
sl (void)
@@ -50,6 +51,9 @@ sl (void)
if (f == NULL)
exit (1);
+ for (ll = 0; ll < (1ULL << 34); ll++)
+ ;
+
fprintf (f, "%lld\n", (long long) getpid ());
fflush (f);
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.