Bug #42484 Falcon temporary data inconsistency with LIMIT
Submitted: 30 Jan 2009 15:19 Modified: 26 May 2010 17:51
Reporter: Philip Stoev Email Updates:
Status: Unsupported Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S2 (Serious)
Version:6.0-falcon-team OS:Any
Assigned to: Kevin Lewis CPU Architecture:Any
Tags: F_LIMIT, ISOLATION

[30 Jan 2009 15:19] Philip Stoev
Description:
When executing a non-concurrent workload containing simple UPDATES on a key, SELECT statements will temporarily return different results when executed with and without the Falcon LIMIT optimization.

The failure is temporary and the table remains consistent in the long term. No range scans or NULLS are involved.

How to repeat:
A test case will be uploaded shortly.
[30 Jan 2009 15:20] Philip Stoev
ZZ file for bug 42484

Attachment: bug42484.zz (text/plain), 336 bytes.

[30 Jan 2009 15:20] Philip Stoev
YY file for bug 42484

Attachment: bug42484.yy (application/octet-stream, text), 177 bytes.

[30 Jan 2009 15:24] Philip Stoev
To reproduce:

$ runall.pl \
 --basedir=/build/bzr/6.0-falcon-team \
 --mysqld=--loose-innodb-lock-wait-timeout=1 \
 --mysqld=--table-lock-wait-timeout=1 \
 --mysqld=--loose-falcon-lock-wait-timeout=1 \
 --mysqld=--loose-falcon-debug-mask=2 \
 --mysqld=--skip-safemalloc \
 --grammar=bug42484.yy \
 --gendata=bug42484.zz \
 --threads=1 \
 --validator=Limit \
 --duration=1200 \
 --mysqld=--log-output=file \
 --queries=100000 \
 --engine=falcon

This test will fail immediately after takeoff, reporting the query that returns the inconsistent result. Re-executing the query manually shows that the inconsistency was transient. 10 inserts and 11 updates, all prerfectly valid queries.