Bug #34164 | falcon_bug_22151 test runs into assertion | ||
---|---|---|---|
Submitted: | 30 Jan 2008 13:11 | Modified: | 2 May 2008 1:36 |
Reporter: | Vladislav Vaintroub | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S3 (Non-critical) |
Version: | 6.0.5BK | OS: | Any |
Assigned to: | Kevin Lewis | CPU Architecture: | Any |
Tags: | assert serializable isolation |
[30 Jan 2008 13:11]
Vladislav Vaintroub
[30 Jan 2008 13:25]
MySQL Verification Team
Thank you for the bug report.
[30 Jan 2008 15:30]
Ann Harrison
Falcon does not yet support serializable mode. It does return an error from ha_falcon.cpp under some circumstances, but apparently misses this case.
[30 Jan 2008 19:37]
Kevin Lewis
Falcon returns a warning when you try to use an unsupported isolation level. 1568; Falcon does not support SERIALIZABLE ISOLATION, using REPEATABLE READ instead. As the warning indicates, it should use the default isolation instead. It should not crash. I think at some previous time it did actually convert serializable to repeatable-read. But now it asserts! This fix is easy and low-risk
[31 Jan 2008 17:17]
Kevin Lewis
Added code to allow serializable mode and read-uncommitted mode to be automatically switched with the current version of repeatable read. That is, it looks at the current value of falcon_consistent_read and sets the the atctual isolation accordingly.
[31 Jan 2008 17: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/41515 ChangeSet@1.2794, 2008-01-31 11:19:15-06:00, klewis@klewis-mysql. +2 -0 Bug#34164 - Added code to allow serializable mode and read-uncommitted mode to be automatically switched with the current version of repeatable read. That is, it looks at the current value of falcon_consistent_read and sets the the atctual isolation accordingly.
[31 Jan 2008 17:50]
Hakan Küçükyılmaz
What does that mean in practice? If I run in REPEATABLE-READ and set the isolation level to SERIALIZABLE, then Falcon will silently ignore it and stay with REPEATABLE-READ?
[31 Jan 2008 22:09]
Kevin Lewis
In practive, when someone chooses a serializable transaction and then access tables in Falcon, there will be a warning on each transactional SQL statement. But then, Falcon will use its default repeatable read isolation instead. No errors, just warnings. For example; SHOW VARIABLES LIKE 'tx_isolation'; Variable_name Value tx_isolation SERIALIZABLE SHOW VARIABLES LIKE 'falcon_consistent_read'; Variable_name Value falcon_consistent_read OFF START TRANSACTION; SELECT * FROM t1; a b Warnings: Warning 1568 Falcon does not support SERIALIZABLE ISOLATION, using REPEATABLE READ instead. INSERT INTO t1 VALUES (1,1); Warnings: Warning 1568 Falcon does not support SERIALIZABLE ISOLATION, using REPEATABLE READ instead. COMMIT; SELECT * FROM t1; a b 1 1
[31 Jan 2008 22:49]
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/41531 ChangeSet@1.2796, 2008-01-31 16:48:23-06:00, klewis@klewis-mysql. +3 -0 Bug#34164 - Add a testcase and improve code to convert serializable and read-uncommitted modes into the current version of repeatable-read.
[5 Feb 2008 7:06]
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/41687 ChangeSet@1.2804, 2008-02-05 01:05:47-06:00, klewis@klewis-mysql. +3 -0 Bug#34164 - Re-wrote test case for 34164 so that it displays the autoselected repetable-read mode in a more straightforward manner, using updates on previously committed record instead of inserts. Settings are made more carefully using 4 new connections.
[11 Feb 2008 20:54]
Kevin Lewis
Patch is in mysql-6.0-falcon-team and mysql-6.0-release version 6.0.4
[12 Mar 2008 23:02]
Bugs System
Pushed into 6.0.4-alpha
[2 May 2008 1:36]
Paul DuBois
Noted in 6.0.4 changelog. Attempting to set the isolation level to a value not supported by Falcon caused a Falcon assertion failure.