Bug #41564 | Falcon; incorrect lock wait timeouts can occur | ||
---|---|---|---|
Submitted: | 17 Dec 2008 18:35 | Modified: | 19 Dec 2008 6:03 |
Reporter: | Kevin Lewis | Email Updates: | |
Status: | Duplicate | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S3 (Non-critical) |
Version: | 6.0.9 | OS: | Any |
Assigned to: | Assigned Account | CPU Architecture: | Any |
Tags: | F_SYNCHRONIZATION |
[17 Dec 2008 18:35]
Kevin Lewis
[17 Dec 2008 19:37]
Hakan Küçükyılmaz
lock wait timeout is seen in Bug#41521, too.
[19 Dec 2008 5:59]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/62041 2939 Kevin Lewis 2008-12-18 Bug#41521 and Bug#41564. Sometimes a call to Thread::sleep(timeout, callersMutex) from SyncObject::wait() can wakeup before the lock has been granted. If it does this, the code was taking the thread off the SyncObject queue and then calling the sleep again. This time, the lock cannot be granted because the lock owner does not signal the waiting thread. It is not queued. A lock wait timeout will then occur. The thread should only be taken off the queue if a lock wait timeout really does occur.
[19 Dec 2008 6:03]
Kevin Lewis
Since this bug has no testcase, and I think it would cause the same affect as what is seem in Bug#41521, I will call it a duplicate of that one, which has a testcase.
[19 Dec 2008 18:31]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/62151 2948 Kevin Lewis 2008-12-19 Bug#41521 and Bug#41564. Sometimes a call to Thread::sleep(timeout, callersMutex) from SyncObject::wait() can wakeup before the lock has been granted. If it does this, the code was taking the thread off the SyncObject queue and then calling the sleep again. This time, the lock cannot be granted because the lock owner does not signal the waiting thread. It is not queued. A lock wait timeout will then occur. The thread should only be taken off the queue if a lock wait timeout really does occur.
[13 Feb 2009 7:23]
Bugs System
Pushed into 6.0.10-alpha (revid:alik@sun.com-20090211182317-uagkyj01fk30p1f8) (version source revid:klewis@mysql.com-20081219183049-0h8nib65189lh4lr) (merge vers: 6.0.9-alpha) (pib:6)