Bug #41850 | Falcon reports 0 rows in table under concurrent workload | ||
---|---|---|---|
Submitted: | 4 Jan 2009 17:24 | Modified: | 15 May 2009 13:39 |
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: | Olav Sandstå | CPU Architecture: | Any |
Tags: | F_ISOLATION, pb2, pushbuild, test failure |
[4 Jan 2009 17:24]
Philip Stoev
[4 Jan 2009 17:47]
Philip Stoev
Grammar file for bug 41850
Attachment: bug41850.yy (application/octet-stream, text), 1.47 KiB.
[4 Jan 2009 18:14]
Philip Stoev
To reproduce this bug, please pull from the mysql-test-extra-6.0 tree and then execute: $ cd mysql-test/gentest $ perl runall.pl \ --threads=32 \ --queries=1000000 \ --duration=300 \ --basedir=/build/bzr/6.0-falcon-team \ --engine=Falcon \ --grammar=conf/bug41850.yy \ --gendata=conf/transactions.zz \ --validator=DatabaseConsistency \ --mysqld=--loose-falcon-lock-wait-timeout=1 \ --mysqld=--log-output=none \ --mem This will output lines like # 20:11:49 Bad average for table: table10_falcon_int_autoinc; average1: ; average2: ; count: 0; which mean that a query of the form: SELECT AVG(`int_key`) + AVG(`int`) AS average1, (SUM(`int_key`) + SUM(`int`)) / COUNT(*) AS average2, COUNT(*) AS count FROM `table10_falcon_int_autoinc`; returned 0 rows, even though the table contains over 1000 records. Errors like # 20:11:51 Bad average for table: table10_falcon_int_autoinc; average1: 200.0205; average2: 200.0205; count: 1461; that is, with COUNT(*) != 0, are caused by other Falcon bugs which have been filed separately.
[30 Mar 2009 21:50]
Kevin Lewis
Philip reported that this problem cannot be repeated after the changes to create a TransactionState object and the addition of the CycleManager to protect doomed records until after all temporary stack pointers to them have gone away.
[17 Apr 2009 17:00]
Olav Sandstå
Fix is in 6.0.11
[15 May 2009 13:39]
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.