Bug #28767 Falcon: falcon_select.test regressed, EXPLAIN results differ
Submitted: 30 May 2007 8:55 Modified: 15 Jun 2007 8:30
Reporter: Hakan Küçükyılmaz Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S2 (Serious)
Version:6.0.1-alpha OS:Any
Assigned to: CPU Architecture:Any

[30 May 2007 8:55] Hakan Küçükyılmaz
Description:
Running falcon_select.test shows different output for EXPLAIN statements.

How to repeat:
Run falcon_select.test several times like

./mysql-test-run.pl --mem falcon_select falcon_select falcon_select
[30 May 2007 9:00] Hakan Küçükyılmaz
Added simplified test case falcon_select_explain.test. Run it like:

./mysql-test-run.pl --mem falcon_select_explain falcon_select_explain falcon_select_explain

TEST                           RESULT         TIME (ms)
-------------------------------------------------------

falcon_select_explain          [ fail ]

Errors are (from /home/hakan/work/mysql/mysql-5.1-falcon/mysql-test/var/log/mysqltest-time) :
mysqltest: Result content mismatch
(the last lines may be the most important ones)
Below are the diffs between actual and expected results:
-------------------------------------------------------
*** r/falcon_select_explain.result      2007-05-30 11:57:19.000000000 +0300
--- r/falcon_select_explain.reject      2007-05-30 11:59:48.000000000 +0300
***************
*** 23,34 ****
  ) MAX_ROWS=50 PACK_KEYS=1 COMMENT='companynames';
  explain select t1.companynr,companyname from t1 left join t2 using (companynr) where t2.companynr is null;
  id    select_type     table   type    possible_keys   key     key_len ref     rows    Extra
! 1     SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    1200
  1     SIMPLE  t2      eq_ref  PRIMARY PRIMARY 1       test.t1.companynr       1       Using where; Not exists
  explain select t1.companynr,companyname from t2 left join t1 using (companynr) where t1.companynr is null;
  id    select_type     table   type    possible_keys   key     key_len ref     rows    Extra
  1     SIMPLE  t2      ALL     NULL    NULL    NULL    NULL    12
! 1     SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    1200    Using where; Not exists
  SELECT count(*) FROM t1;
  count(*)
  1200
--- 23,34 ----
  ) MAX_ROWS=50 PACK_KEYS=1 COMMENT='companynames';
  explain select t1.companynr,companyname from t1 left join t2 using (companynr) where t2.companynr is null;
  id    select_type     table   type    possible_keys   key     key_len ref     rows    Extra
! 1     SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    1071
  1     SIMPLE  t2      eq_ref  PRIMARY PRIMARY 1       test.t1.companynr       1       Using where; Not exists
  explain select t1.companynr,companyname from t2 left join t1 using (companynr) where t1.companynr is null;
  id    select_type     table   type    possible_keys   key     key_len ref     rows    Extra
  1     SIMPLE  t2      ALL     NULL    NULL    NULL    NULL    12
! 1     SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    1071    Using where; Not exists
  SELECT count(*) FROM t1;
  count(*)
  1200
-------------------------------------------------------
Please follow the instructions outlined at
http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html
to find the reason to this problem and how to report this.
[30 May 2007 9:00] 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/27653

ChangeSet@1.2520, 2007-05-30 10:58:58+02:00, hakank@lu0011.wdf.sap.corp +2 -0
  Added simplified test case for Bug#28767.
[4 Jun 2007 13:01] MySQL Verification Team
Thank you for the bug report.

Installing Master Database
Installing Master Database
=======================================================
Starting Tests in the 'main' suite

TEST                           RESULT         TIME (ms)
-------------------------------------------------------

falcon_select_explain          [ fail ]
[7 Jun 2007 18:52] Jim Starkey
There was a race condition between the commit and post-commit (called
from serial log gopher thread) processing that was screwing up record
cardinality.
[8 Jun 2007 6:35] Hakan Küçükyılmaz
Works now.

hakan@lu0011:~/work/mysql/mysql-5.1-falcon/mysql-test$ ./mysql-test-run.pl --mem falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain
Logging: ./mysql-test-run.pl --mem falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain falcon_select_explain
070608  8:34:44 [Note] /home/hakan/work/mysql/mysql-5.1-falcon/sql/mysqld: Shutdown complete

MySQL Version 6.0.1
Using binlog format 'mixed'
Using tmpfs in /dev/shm
Skipping ndbcluster, mysqld not compiled with ndbcluster
Setting mysqld to support SSL connections
Binaries are debug compiled
Using MTR_BUILD_THREAD      = 0
Using MASTER_MYPORT         = 9306
Using MASTER_MYPORT1        = 9307
Using SLAVE_MYPORT          = 9308
Using SLAVE_MYPORT1         = 9309
Using SLAVE_MYPORT2         = 9310
Using IM_PORT               = 9312
Using IM_MYSQLD1_PORT       = 9313
Using IM_MYSQLD2_PORT       = 9314
Killing Possible Leftover Processes
Removing Stale Files
Creating Directories
Symlinking 'var' to '/dev/shm/var'
Installing Master Database
Installing Master Database
=======================================================
Starting Tests in the 'main' suite

TEST                           RESULT         TIME (ms)
-------------------------------------------------------

falcon_select_explain          [ pass ]            407
falcon_select_explain          [ pass ]            248
falcon_select_explain          [ pass ]            251
falcon_select_explain          [ pass ]            277
falcon_select_explain          [ pass ]            288
falcon_select_explain          [ pass ]            299
falcon_select_explain          [ pass ]            311
falcon_select_explain          [ pass ]            328
falcon_select_explain          [ pass ]            345
falcon_select_explain          [ pass ]            348
falcon_select_explain          [ pass ]            367
falcon_select_explain          [ pass ]            431
falcon_select_explain          [ pass ]            506
falcon_select_explain          [ pass ]            570
falcon_select_explain          [ pass ]            647
falcon_select_explain          [ pass ]            735
falcon_select_explain          [ pass ]            812
falcon_select_explain          [ pass ]            981
-------------------------------------------------------
Stopping All Servers
All 18 tests were successful.
The servers were restarted 1 times
Spent 8.151 seconds actually executing testcases

Best regards,

Hakan
[15 Jun 2007 8:30] MC Brown
Internal test only, no documentation required.