Bug #42824 | Falcon assertion (lockType == Exclusive) in Bdb::mark on REPAIR | ||
---|---|---|---|
Submitted: | 13 Feb 2009 10:37 | Modified: | 15 May 2009 15:59 |
Reporter: | Philip Stoev | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S1 (Critical) |
Version: | 6.0-falcon-team | OS: | Any |
Assigned to: | Vladislav Vaintroub | CPU Architecture: | Any |
Tags: | F_PAGE IO |
[13 Feb 2009 10:37]
Philip Stoev
[13 Feb 2009 10:39]
Philip Stoev
The tablespace has been uploaded to http://fedora10.dyndns.org/bug42824-2.zip
[13 Feb 2009 21:20]
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/66302 3019 Vladislav Vaintroub 2009-02-13 Bug #42824 Falcon assertion (lockType == Exclusive) in Bdb::mark on REPAIR Problem :repairof a Falcon tqable can crash if it finds orphan pages (PageinventoryPage is marked dirty but not locked exclusively) Fix :fetch PageInventoryPage in for exclusive access inshead of shared. modified: storage/falcon/PageInventoryPage.cpp === modified file 'storage/falcon/PageInventoryPage.cpp' --- a/storage/falcon/PageInventoryPage.cpp 2009-01-27 20:44:30 +0000 +++ b/storage/falcon/PageInventoryPage.cpp 2009-02-13 21:19:58 +0000 @@ -333,7 +333,7 @@ void PageInventoryPage::validateInventor else freePage(dbb, pageNumber, NO_TRANSACTION); - pipBdb = dbb->fetchPage (pageNumber, PAGE_any, Shared); + pipBdb = dbb->fetchPage (pageNumber, PAGE_any, Exclusive); BDB_HISTORY(pipBdb); page = (PageInventoryPage*) pipBdb->buffer; } -- MySQL Code Commits Mailing List For list archives: http://lists.mysql.com/commits To unsubscribe: http://lists.mysql.com/commits?unsub=commits@bugs.mysql.com
[18 Feb 2009 19:13]
Kevin Lewis
I guess the only way to prove that this works is to watch for this same call stack again. Patch approved.
[2 Mar 2009 14:13]
Bugs System
Pushed into 6.0.11-alpha (revid:alik@sun.com-20090302140208-lfdejjbcyezlhhjt) (version source revid:vvaintroub@mysql.com-20090213211958-t4jiz0vyms4zee0s) (merge vers: 6.0.10-alpha) (pib:6)
[15 May 2009 15:59]
MC Brown
An update has been added to the 6.0.11 changelog: When running REPAIR on a crashed Falcon table can crash mysqld if pages have been incorrectly marked dirty, but not locked, during write