Bug #43299 | Falcon crash in Record::addRef() - this=0xcccccccc00000000 | ||
---|---|---|---|
Submitted: | 2 Mar 2009 8:38 | Modified: | 15 May 2009 13:26 |
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: | Kevin Lewis | CPU Architecture: | Any |
Tags: | F_RECORD TREE |
[2 Mar 2009 8:38]
Philip Stoev
[2 Mar 2009 8:40]
Philip Stoev
To repeat within 10 seconds of test runtime: $ perl runall.pl \ --engine=Falcon \ --mysqld=--loose-falcon-lock-wait-timeout=1 \ --mysqld=--loose-innodb-lock-wait-timeout=1 \ --mysqld=--log-output=none \ --mysqld=--skip-safemalloc \ --mysqld=--falcon-page-size=4K \ --rows=100 \ --threads=16 \ --basedir=/build/bzr/6.0-falcon-team \ --mask=57595 \ --queries=100000000 \ --duration=900 \ --gendata=conf/combinations.zz \ --grammar=conf/combinations.yy
[30 Mar 2009 22:12]
Kevin Lewis
Philip reported that this problem cannot be repeated after the changes the following changes were added; 1) Olav created a TransactionState object that outlives the Transaction 2) A CycleManager was added to protect doomed records until after all temporary stack pointers to them have gone away.
[15 May 2009 13:26]
MC Brown
Internal/test fix only. No changelog entry required.
[15 May 2009 13:40]
MC Brown
A note have been added to the 6.0.11 changelog: The Falcon CycleManager has been updated, which addresses a number of issues when examining records in various transaction states and their visisbility/isolation in relation to other threads.