Public bug reported: pthread_cond_wait() fails to re-acquire the provided mutex when acting on a deferred cancellation event from another thread. I initially hit the bug from the VLC media player test suite, but I wrote a simple reduced test case (attached).
# gcc -O2 -Wall condfail.c -lpthread -o condfail # ./condfail 1 2 a.out: condfail.c:18: cleanup_lock: Assertion `val == 0' failed. Aborted This is a violation of POSIX threads semantics. This also renders VLC media player debug versions completely unusable on affected systems. As a side note, this bug looks awfully similar to old Debian bug http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=551903 Running stock Ubuntu 2.6.38-11-generic kernel and libc6 2.13-0ubuntu13. If this is any use, CPU information follows: % cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 14 model name : Genuine Intel(R) CPU T2400 @ 1.83GHz stepping : 8 cpu MHz : 1000.000 cache size : 2048 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon bts aperfmperf pni monitor vmx est tm2 xtpr pdcm dts bogomips : 3657.21 clflush size : 64 cache_alignment : 64 address sizes : 32 bits physical, 32 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 14 model name : Genuine Intel(R) CPU T2400 @ 1.83GHz stepping : 8 cpu MHz : 1000.000 cache size : 2048 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 1 initial apicid : 1 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon bts aperfmperf pni monitor vmx est tm2 xtpr pdcm dts bogomips : 3657.55 clflush size : 64 cache_alignment : 64 address sizes : 32 bits physical, 32 bits virtual power management: ** Affects: eglibc (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/841634 Title: libc6 pthread_cond_wait fails to reacquire mutex upon cancellation To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/841634/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
