Bug #46082 Assertion failed: !(start_key == 0 && end_key == 0), file .\ha_federated.cc, lin
Submitted: 9 Jul 2009 13:14 Modified: 10 Jan 2013 11:29
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Federated storage engine Severity:S1 (Critical)
Version:5.0.84, 5.1.37, 5.4.4, 5.5.27 OS:Any
Assigned to: CPU Architecture:Any

[9 Jul 2009 13:14] Shane Bester
Description:
5.1.37-debug stack trace:

Version: '5.1.37-debug'  socket: ''  port: 3306  Source distribution
Assertion failed: !(start_key == 0 && end_key == 0), file .\ha_federated.cc, line 2482

mysqld.exe!my_sigabrt_handler()[mysqld.cc:2014]
mysqld.exe!raise()[winsig.c:590]
mysqld.exe!abort()[abort.c:71]
mysqld.exe!_wassert()[assert.c:212]
mysqld.exe!ha_federated::read_range_first()[ha_federated.cc:2482]
mysqld.exe!handler::read_multi_range_first()[handler.cc:4058]
mysqld.exe!QUICK_RANGE_SELECT::get_next()[opt_range.cc:8467]
mysqld.exe!rr_quick()[records.cc:313]
mysqld.exe!join_init_read_record()[sql_select.cc:11809]
mysqld.exe!sub_select()[sql_select.cc:11137]
mysqld.exe!do_select()[sql_select.cc:10894]
mysqld.exe!JOIN::exec()[sql_select.cc:2199]
mysqld.exe!mysql_select()[sql_select.cc:2388]
mysqld.exe!handle_select()[sql_select.cc:268]
mysqld.exe!execute_sqlcom_select()[sql_parse.cc:5013]
mysqld.exe!mysql_execute_command()[sql_parse.cc:2208]
mysqld.exe!mysql_parse()[sql_parse.cc:5933]
mysqld.exe!dispatch_command()[sql_parse.cc:1213]
mysqld.exe!do_command()[sql_parse.cc:854]
mysqld.exe!handle_one_connection()[sql_connect.cc:1127]
mysqld.exe!pthread_start()[my_winthread.c:85]
mysqld.exe!_callthreadstart()[thread.c:293]
mysqld.exe!_threadstart()[thread.c:277]
kernel32.dll!FlsSetValue()

debug binary asserts, non-debug binary gives incorrect results back.
maybe this is optimizer bug only exposed in federated engine?

How to repeat:
start full debug server with --federated option and run the sql

drop table if exists `t1_local`,`t1_fed`;
create table `t1_local` (`c1` int,primary key(`c1`)) engine=myisam;
create table `t1_fed` (`c1` int,primary key(`c1`)) engine=federated
connection='mysql://root:12345@127.0.0.1:3306/test/t1_local';
insert into `t1_fed`(`c1`) values (1),(2);
select 1 from `t1_fed` where (c1<>'ch') or (c1>='cb');
[9 Jul 2009 14:40] Valeriy Kravchuk
Thank you for the bug report. Verified just as described with -debug binaries built from recent bzr code on Linux.

With older non-debug 5.0.79 on Windows, though, I've got results that look corect to me:

mysql> drop table if exists `t1_local`,`t1_fed`;
Query OK, 0 rows affected, 2 warnings (0.25 sec)

mysql> create table `t1_local` (`c1` int,primary key(`c1`)) engine=myisam;
Query OK, 0 rows affected (0.30 sec)

mysql> create table `t1_fed` (`c1` int,primary key(`c1`)) engine=federated
    -> connection='mysql://root:root@127.0.0.1:3308/test/t1_local';
Query OK, 0 rows affected (0.06 sec)

mysql> insert into `t1_fed`(`c1`) values (1),(2);
Query OK, 2 rows affected (0.67 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select 1 from `t1_fed` where (c1<>'ch') or (c1>='cb');
+---+
| 1 |
+---+
| 1 |
| 1 |
+---+
2 rows in set, 4 warnings (0.27 sec)

mysql> show warnings\G
*************************** 1. row ***************************
  Level: Warning
   Code: 1292
Message: Truncated incorrect DOUBLE value: 'ch'
*************************** 2. row ***************************
  Level: Warning
   Code: 1292
Message: Truncated incorrect DOUBLE value: 'ch'
*************************** 3. row ***************************
  Level: Warning
   Code: 1292
Message: Truncated incorrect DOUBLE value: 'ch'
*************************** 4. row ***************************
  Level: Warning
   Code: 1292
Message: Truncated incorrect DOUBLE value: 'ch'
4 rows in set (0.03 sec)

mysql> select version();
+--------------------------+
| version()                |
+--------------------------+
| 5.0.79-enterprise-gpl-nt |
+--------------------------+
1 row in set (0.08 sec)
[20 Jul 2012 7:23] Valeriy Kravchuk
Same assertion still happens in 5.5.27-debug.
[10 Jan 2013 11:29] Erlend Dahl
Can't repeate on 5.6.7 and 5.7.0.