Red Hat Bugzilla – Bug 228103
Crash at __lll_mutex_timedlock_wait+148 caused by uninitialized %rdi register
Last modified: 2010-10-22 08:56:38 EDT
Description of problem:
Crashing at __lll_mutex_timedlock_wait+148 (/lib64/tls/libpthread.so.0):
lock cmpxchg %edx,(%rdi)
Because the syscall wasn't made and %rdi hasn't been loaded with %r12 yet.
Version-Release number of selected component (if applicable):
How to fix:
Move the mov %r12,%rdi instruction up somewhere before the je 8f.
How to reproduce:
This isn't easy to reproduce and I'm not going to write a testcase for it since
it's a very obvious bug in the code. But, my from the situation I get it in is
that it requires a 2nd thread to signal the condition variable / mutex (I'm not
quite sure which it is) while the crashing thread is engaging a sleep.
Fixed in CVS, thanks:
Will be backported for RHEL4.6.
Fixed in rawhide glibc-2.5.90-17 so far.
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release. Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products. This request is not yet committed for inclusion in an Update
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 the 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.