| Bug #42824 | Falcon assertion (lockType == Exclusive) in Bdb::mark on REPAIR | ||
|---|---|---|---|
| Submitted: | 13 Feb 11:37 | Modified: | 15 May 17:59 |
| Reporter: | Philip Stoev | ||
| Status: | Closed | ||
| Category: | Server: Falcon | Severity: | S1 (Critical) |
| Version: | 6.0-falcon-team | OS: | Any |
| Assigned to: | Vladislav Vaintroub | Target Version: | 6.0-beta |
| Tags: | F_PAGE IO | ||
| Triage: | Triaged: D1 (Critical) | ||
[13 Feb 11:37]
Philip Stoev
[13 Feb 11:39]
Philip Stoev
The tablespace has been uploaded to bug42824-2.zip">http://fedora10.dyndns.org/bug42824-2.zip
[13 Feb 22: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 20: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 15: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 17: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
