@slavivanyuk Thank you for testing the fix.

I've also verified the fix in 2.31-0ubuntu9.3 on Focal with repro-
lp1899800.c in a 4 core VM running on a 4 core machine.

The reproducer did hang after a half hour with unfixed glibc:

$ gcc -pthread repro-lp1899800.c
$ unbuffer ./a.out | ts | tee -a run1.log
Apr 22 20:52:04 Total Threads Count; 12
Apr 22 20:52:04 RefereeThread - (null) started
Apr 22 20:52:04 LoopCriticalSectionThread - 1 started
Apr 22 20:52:04 LoopCriticalSectionThread - 2 started
Apr 22 20:52:04 LoopCriticalSectionThread - 3 started
Apr 22 20:52:04 LoopCriticalSectionThread - 4 started
Apr 22 20:52:04 LoopCriticalSectionThread - 6 started
Apr 22 20:52:04 LoopCriticalSectionThread - 7 started
Apr 22 20:52:04 LoopCriticalSectionThread - 8 started
Apr 22 20:52:04 LoopCriticalSectionThread - 9 started
Apr 22 20:52:04 LoopCriticalSectionThread - 10 started
Apr 22 20:52:04 LoopCriticalSectionThread - 12 started
Apr 22 20:52:04 LoopCriticalSectionThread - 5 started
Apr 22 20:52:04 LoopCriticalSectionThread - 11 started
Apr 22 20:52:06 Monitor - g_counter 974610000, loop_round 12494, 
threads_finished 12
Apr 22 20:52:08 Monitor - g_counter 1852531000, loop_round 23750, 
threads_finished 7
Apr 22 20:52:10 Monitor - g_counter -1586651296, loop_round 34721, 
threads_finished 12
Apr 22 20:52:12 Monitor - g_counter -757148296, loop_round 45356, 
threads_finished 8
...
Apr 22 21:20:59 Monitor - g_counter 1484067600, loop_round 8278578, 
threads_finished 0
Apr 22 21:21:01 Monitor - g_counter -2055625696, loop_round 8288261, 
threads_finished 12
Apr 22 21:21:03 Monitor - g_counter -1700741696, loop_round 8292811, 
threads_finished 8
Apr 22 21:21:05 Monitor - g_counter -1700741696, loop_round 8292811, 
threads_finished 8
Apr 22 21:21:07 Monitor - g_counter -1700741696, loop_round 8292811, 
threads_finished 8
Apr 22 21:21:09 Monitor - g_counter -1700741696, loop_round 8292811, 
threads_finished 8
$

With the fixed version I have not observed the hang in a day:

$ head run2.log 
Apr 22 21:23:36 Total Threads Count; 12
Apr 22 21:23:36 RefereeThread - (null) started
Apr 22 21:23:36 LoopCriticalSectionThread - 3 started
...
ubuntu@ff-glibc-hang:~$ tail run2.log 
Apr 23 22:50:07 Monitor - g_counter 2116331568, loop_round 435966312, 
threads_finished 12
Apr 23 22:50:09 Monitor - g_counter -1409321728, loop_round 435976175, 
threads_finished 12
Apr 23 22:50:11 Monitor - g_counter -656621728, loop_round 435985825, 
threads_finished 0
Apr 23 22:50:13 Monitor - g_counter 80942716, loop_round 435995281, 
threads_finished 11


** Tags removed: verification-needed-focal
** Tags added: verification-done-focal

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1899800

Title:
  Runtime deadlock: pthread_cond_signal failed to wake up
  pthread_cond_wait due to a bug in undoing stealing

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1899800/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to