Description:
Slave instance of mysql server crashes on assertion below during simultaneously execution of following of SP by several threads.(5 at least).
from slave.err:
mysqld: log_event.cc:5407: virtual int Rows_log_event::exec_event(st_relay_log_info*): Assertion `rli->tables_to_
lock == __null && rli->tables_to_lock_count == 0' failed.
mysqld got signal 6;
SP from test case:
CREATE PROCEDURE test.viewer_sp()
BEGIN
DECLARE ins_count INT DEFAULT 100;
DELETE FROM test.viewer_tbl2;
START TRANSACTION;
WHILE ins_count > 0 DO
IF (!@RPL_SYS_SBR)
THEN
INSERT INTO test.viewer_tbl1 VALUES (NULL,RAND() * 10, RAND() * 100);
END IF;
SET ins_count = ins_count - 1;
END WHILE;
INSERT INTO test.viewer_tbl2 SELECT * FROM test.viewer;
END|
I am working on reducing of test case.
Backtrace from slave core for debug version of server:
(gdb) bt
#0 0xffffe410 in ?? ()
#1 0x403b4de4 in ?? ()
#2 0x00000006 in ?? ()
#3 0x00004a73 in ?? ()
#4 0x4003e838 in pthread_kill () from /lib/tls/libpthread.so.0
#5 0x082d6264 in write_core (sig=6) at stacktrace.c:220
#6 0x08196da2 in handle_segfault (sig=6) at mysqld.cc:2168
#7 <signal handler called>
#8 0xffffe410 in ?? ()
#9 0x403b511c in ?? ()
#10 0x00000006 in ?? ()
#11 0x00004a73 in ?? ()
#12 0x400da2c1 in raise () from /lib/tls/libc.so.6
#13 0x400dbb75 in abort () from /lib/tls/libc.so.6
#14 0x400d3903 in __assert_fail () from /lib/tls/libc.so.6
#15 0x0823f5f4 in Rows_log_event::exec_event (this=0x86561b0, rli=0x863182c) at log_event.cc:5407
#16 0x082c4102 in exec_relay_log_event (thd=0x865c3a8, rli=0x863182c) at slave.cc:3057
#17 0x082c555b in handle_slave_sql (arg=0x86309d0) at slave.cc:3599
#18 0x4003baa7 in start_thread () from /lib/tls/libpthread.so.0
#19 0x4016cc2e in clone () from /lib/tls/libc.so.6
How to repeat:
I will provide more details soon when test case will be reduced.