Bug #42956 | SBL, INSERT .. SELECT .. LIMIT error,STRICT_TRANS_TABLES mode, even MyISAM table | ||
---|---|---|---|
Submitted: | 18 Feb 2009 5:10 | Modified: | 16 Jun 2009 15:43 |
Reporter: | Guangbao Ni | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server: Replication | Severity: | S3 (Non-critical) |
Version: | 5.1-bugteam, 5.1, 6.0 bzr | OS: | Any |
Assigned to: | Luis Soares | CPU Architecture: | Any |
[18 Feb 2009 5:10]
Guangbao Ni
[18 Feb 2009 6:30]
Sveta Smirnova
Thank you for the report. I can not repeat described behavior. Additionally test contains misprint; insert into r1 select * from t2 limit 1; instead of insert into r1 select * from r2 limit 1; (I guess) Please check if you tested with correct query.
[18 Feb 2009 7:26]
Guangbao Ni
Sorry, misspelling. Did you turn on logging function and binlog-fromat=statement? /Guangbao
[18 Feb 2009 7:36]
Sveta Smirnova
Thank you for the feedback. You are right: I forgot about binary logging. Bot mysql-5.1 and mysql-5.1-bugteam crash for me with following backtrace: Thread 1 (process 20534): #0 0x002ce402 in __kernel_vsyscall () #1 0x0046264f in pthread_kill () from /lib/libpthread.so.0 #2 0x085a3775 in my_write_core (sig=6) at stacktrace.c:310 #3 0x0824c139 in handle_segfault (sig=6) at mysqld.cc:2505 #4 <signal handler called> #5 0x002ce402 in __kernel_vsyscall () #6 0x00314f90 in raise () from /lib/libc.so.6 #7 0x00316678 in abort () from /lib/libc.so.6 #8 0x0030e269 in __assert_fail () from /lib/libc.so.6 #9 0x08232681 in Diagnostics_area::set_ok_status (this=0x9ed8f34, thd=0x9ed8188, affected_rows_arg=0, last_insert_id_arg=0, message_arg=0xb74ba080 "Records: 0 Duplicates: 0 Warnings: 0") at sql_class.cc:436 #10 0x08174c4f in my_ok (thd=0x9ed8188, affected_rows=0, id=0, message=0xb74ba080 "Records: 0 Duplicates: 0 Warnings: 0") at sql_class.h:2253 #11 0x082f86f8 in select_insert::send_eof (this=0x9f3b7c0) at sql_insert.cc:3215 #12 0x082eb060 in return_zero_rows (join=0x9f3b838, result=0x9f3b7c0, tables=0x9f3b570, fields=@0x9ed95b0, send_row=false, select_options=3489942016, info=0x86d35c8 "no matching row in const table", having=0x0) at sql_select.cc:7071 #13 0x082eb70f in JOIN::exec (this=0x9f3b838) at sql_select.cc:1725 #14 0x082ed809 in mysql_select (thd=0x9ed8188, rref_pointer_array=0x9ed9614, tables=0x9f3b570, wild_num=1, fields=@0x9ed95b0, conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=3489942016, result=0x9f3b7c0, unit=0x9ed92ac, select_lex=0x9ed951c) at sql_select.cc:2378 #15 0x082edb57 in handle_select (thd=0x9ed8188, lex=0x9ed9250, result=0x9f3b7c0, setup_tables_done_option=1073741824) at sql_select.cc:268 #16 0x08264260 in mysql_execute_command (thd=0x9ed8188) at sql_parse.cc:3142 #17 0x0826a85e in mysql_parse (thd=0x9ed8188, inBuf=0x9f3b210 "insert into r1 select * from r2 limit 1", length=39, found_semicolon=0xb74bb2fc) at sql_parse.cc:5810 #18 0x0826b49a in dispatch_command (command=COM_QUERY, thd=0x9ed8188, packet=0x9f282f1 "insert into r1 select * from r2 limit 1", packet_length=39) at sql_parse.cc:1216 #19 0x0826c6b8 in do_command (thd=0x9ed8188) at sql_parse.cc:857 #20 0x08259315 in handle_one_connection (arg=0x9ed8188) at sql_connect.cc:1115 #21 0x0045fbd4 in start_thread () from /lib/libpthread.so.0 #22 0x003b74fe in clone () from /lib/libc.so.6
[18 Feb 2009 7:37]
Sveta Smirnova
Version 6.0 crashes as well.
[18 Feb 2009 8:02]
Guangbao Ni
Hi Sveta, The crash is caused by bug#42640, but the bug is report another issues. :)
[16 Jun 2009 15:42]
Sveta Smirnova
To clarify: in 5.1.31 "Statement is not safe to log in statement format." was error, but not warning: $cat src/tests/t/bug42956.test -n 1 --source include/have_log_bin.inc 2 3 set binlog_format='statement'; 4 5 drop table if exists r1; 6 7 drop table if exists r2; 8 9 create table r1 (a int primary key) ENGINE=MyISAM; 10 11 create table r2 (a int primary key)ENGINE=MyISAM; 12 13 SET @@SQL_MODE = STRICT_TRANS_TABLES; 14 15 insert into r1 select * from r2 limit 1; $do_test.sh -b mysql-5.1.31-linux-i686-glibc23 -s . Logging: ./mysql-test-run.pl --record --force bug42956 090616 17:40:21 [Warning] Forcing shutdown of 1 plugins MySQL Version 5.1.31 Using dynamic switching of binlog format Skipping ndbcluster, mysqld not compiled with ndbcluster Setting mysqld to support SSL connections 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 = 9313 Using IM_MYSQLD1_PORT = 9314 Using IM_MYSQLD2_PORT = 9315 Killing Possible Leftover Processes Removing Stale Files Creating Directories Installing Master Database Saving snapshot of installed databases ======================================================= TEST RESULT TIME (ms) ------------------------------------------------------- main.bug42956 [ fail ] mysqltest: At line 15: query 'insert into r1 select * from r2 limit 1' failed: 1592: Statement is not safe to log in statement format. With current 5.1 sources bug is not repeatable.