[PATCH] misc/tst-clone3: Fix waiting for exited thread.

Stefan Liebler stli@linux.ibm.com
Fri Feb 8 15:13:00 GMT 2019


Hi,

from time to time the test misc/tst-clone3 fails with an timeout.  Then 
futex_wait is blocking.  Usually ctid should be set to zero due to 
CLONE_CHILD_CLEARTID and the futex should be waken up.  But the fail 
occures if the thread has already exited before ctid is set to the 
return value of clone().  Then futex_wait() will block as there will be 
nobody who wakes the futex up again.

This patch initializes ctid to a known value before calling clone and 
the kernel is the only one who updates the value to zero after clone. 
If futex_wait is called then it is either waked up due to the exited 
thread or the futex syscall fails as *ctid_ptr is already zero instead 
of the specified value 1.

Okay to commit?

Bye
Stefan

ChangeLog:

	* sysdeps/unix/sysv/linux/tst-clone3.c (do_test):
	Initialize ctid with a known value and remove update of ctid
	after clone.
	(wait_tid): Adjust arguments and call futex_wait with ctid_val
	as assumed current value of ctid_ptr.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 20190208_misc_tst-clone3.patch
Type: text/x-patch
Size: 2582 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20190208/972513fd/attachment.bin>


More information about the Libc-alpha mailing list