Bug #38569 | Falcon assertion in SRLUpdateIndex::thaw : type == srlUpdateIndex | ||
---|---|---|---|
Submitted: | 5 Aug 2008 12:01 | Modified: | 13 Dec 2008 9:04 |
Reporter: | Philip Stoev | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S1 (Critical) |
Version: | 6.0-falcon | OS: | Any |
Assigned to: | Christopher Powers | CPU Architecture: | Any |
Tags: | F_CHILL THAW |
[5 Aug 2008 12:01]
Philip Stoev
[5 Aug 2008 12:04]
Philip Stoev
To reproduce this bug, please clone the mysql-test-extra-6.0 repository and execute $ cd mysql-test-extra-6.0/mysqltest/gentest $ perl runall.pl \ --basedir=/path/to/6.0-falcon/ \ --engine=falcon \ --grammar=conf/chill_thaw.yy \ --threads=20 --queries=100000 \ --mysqld=--falcon_debug_mask=7167 \ --mysqld=--falcon_index_chill_threshold=4K \ --mysqld=--falcon_record_chill_threshold=4K The crash should happen within less than a mintute, after a few dozen chill/thaw operations. During the Falcon Boston meeting, it was agreed that 4K is an acceptable value for those parameters, that is why I am testing with it. Values at least up to 32K will also produce crashes. The required grammar file is part of the mysql-test-extra-6.0 repository and does not have to be obtained separately. If the chill options are set to their default values, no crash occurs.
[19 Aug 2008 20:53]
Kevin Lewis
Related to falcon_index_chill_threshold=4K
[24 Oct 2008 5:09]
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/56961 2880 Christopher Powers 2008-10-24 Bug#36631,"Assertion in SerialLogControl::nextRecord" Bug#38541,"Falcon RecordVersion::thaw assertion """"bytesRestored > 0 || data.record == NULL""" Bug#38567,"Falcon crash in Record::getEncodedRecord at Record.cpp:743" Bug#38569,"Falcon assertion in SRLUpdateIndex::thaw : type == srlUpdateIndex" Bug#39694,"Crash in StorageTable::setRecord during falcon_chill_thaw test" Bug#39695,"Crash in SRLUpdateRecords::thaw during falcon_chill_thaw test" Bug#39696,"Assertion in Table.cpp (dup->state == recDeleted) fails during falcon_chill_thaw" Fix 1 of 3 for chill/thaw bugs. Modified Record::hasRecord() to thaw if necessary, removed redundant record thaws, added exception handling
[24 Oct 2008 5:38]
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/56962 2881 Christopher Powers 2008-10-24 Bug#36631,"Assertion in SerialLogControl::nextRecord" Bug#38541,"Falcon RecordVersion::thaw assertion """"bytesRestored > 0 || data.record == NULL""" Bug#38567,"Falcon crash in Record::getEncodedRecord at Record.cpp:743" Bug#38569,"Falcon assertion in SRLUpdateIndex::thaw : type == srlUpdateIndex" Bug#39694,"Crash in StorageTable::setRecord during falcon_chill_thaw test" Bug#39695,"Crash in SRLUpdateRecords::thaw during falcon_chill_thaw test" Bug#39696,"Assertion in Table.cpp (dup->state == recDeleted) fails during falcon_chill_thaw" Fix 2 of 3 for chill/thaw bugs. Synchronized record thaw operations using a pool of sync objects in the associated table. Record chill operations do not need to be synchronized because chills are performed in one place, and only by the active Transaction.
[26 Oct 2008 15:54]
Kevin Lewis
Two patches approved to problems with concurent thaws. 1) enhance hasRecord to thaw when needed. 2) serialize thaws with a hash table of SyncOjects.
[28 Oct 2008 8:09]
Bugs System
Pushed into 6.0.8-alpha (revid:cpowers@mysql.com-20081024053538-6y1ma8lydl93oxza) (version source revid:alik@mysql.com-20081028074021-o49ijs3x4pxj1gbm) (pib:5)
[11 Nov 2008 22:37]
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/58507 2908 Christopher Powers 2008-11-11 Bug#38569, "Falcon assertion in SRLUpdateIndex::thaw : type == srlUpdateIndex" The fix for Bug#39696, "Assertion in Table.cpp (dup->state == recDeleted)" exposed another problem with chill/thaw for deferred indexes. Changed SRLUpdateIndex::append() to advance past srlVersion records written at the top of each block within a window. Also removed a gap in mutex protection in the loop that reconstructs the DeferredIndex from multiple serial log records.
[20 Nov 2008 12:55]
Bugs System
Pushed into 6.0.9-alpha (revid:cpowers@mysql.com-20081111223327-wwdaexuslbhub3ec) (version source revid:cpowers@mysql.com-20081111223327-wwdaexuslbhub3ec) (pib:5)
[13 Dec 2008 9:04]
MC Brown
No documentation needed (internal change only)