Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
5.5.25-galera
-
None
-
None
Description
mysqld: sql/sql_error.cc:422: void Diagnostics_area::set_error_status(THD*, uint, const char*, const char*): Assertion `! is_set() || can_overwrite_status' failed.
|
120920 22:53:22 [ERROR] mysqld got signal 6 ;
|
#6 0x00007fec6af93d4d in __GI___assert_fail (assertion=0xd51db0 "! is_set() || can_overwrite_status", file=<optimized out>, line=422, function=<optimized out>) at assert.c:8 1
|
#7 0x00000000005f34d7 in Diagnostics_area::set_error_status (this=0x7fec58078830, thd=0x7fec58074f10, sql_errno_arg=1213, message_arg=0x7fec6c5a40b0 "Deadlock found when try ing to get lock; try restarting transaction", sqlstate=0xd672db "40001") at /home/elens t/maria-5.5-galera/sql/sql_error.cc:422
|
#8 0x00000000005db7a0 in THD::raise_condition (this=0x7fec58074f10, sql_errno=1213, sqlstate=0xd672db "40001", level=MYSQL_ERROR::WARN_LEVEL_ERROR, msg=0x7fec6c5a40b0 "Deadl ock found when trying to get lock; try restarting transaction") at maria-5 .5-galera/sql/sql_class.cc:1256
|
#9 0x0000000000566121 in my_message_sql (error=1213, str=0x7fec6c5a40b0 "Deadlock found when trying to get lock; try restarting transaction", MyFlags=0) at mari a-5.5-galera/sql/mysqld.cc:3273
|
#10 0x0000000000cd65e3 in my_error (nr=1213, MyFlags=0) at maria-5.5-galera/mysys/my_error.c:96
|
#11 0x00000000007e33df in ha_commit_trans (thd=0x7fec58074f10, all=false) at maria-5.5-galera/sql/handler.cc:1286
|
#12 0x000000000072c089 in trans_commit_stmt (thd=0x7fec58074f10) at maria-5.5-galera/sql/transaction.cc:325
|
#13 0x000000000060272c in select_create::send_eof (this=0x371c150) at maria-5.5-galera/sql/sql_insert.cc:4173
|
#14 0x0000000000650176 in JOIN::exec (this=0x371c228) at maria-5.5-galera/sql/sql_select.cc:2236
|
#15 0x0000000000652f7f in mysql_select (thd=0x7fec58074f10, rref_pointer_array=0x7fec58077e68, tables=0x0, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2416184064, result=0x371c150, unit=0x7fec580 77538, select_lex=0x7fec58077c10) at maria-5.5-galera/sql/sql_select.cc:30 53
|
#16 0x0000000000649ab5 in handle_select (thd=0x7fec58074f10, lex=0x7fec58077488, result=0x371c150, setup_tables_done_option=0) at maria-5.5-galera/sql/sql_select .cc:316
|
#17 0x000000000061848b in mysql_execute_command (thd=0x7fec58074f10) at maria-5.5-galera/sql/sql_parse.cc:2859
|
#18 0x000000000062307c in mysql_parse (thd=0x7fec58074f10, rawbuf=0x371b718 "CREATE TABLE test.t1 AS SELECT SLEEP(5)", length=39, parser_state=0x7fec6c5a5550) at /home/elenst /maria-5.5-galera/sql/sql_parse.cc:6271
|
#19 0x0000000000622216 in wsrep_mysql_parse (thd=0x7fec58074f10, rawbuf=0x371b718 "CREATE TABLE test.t1 AS SELECT SLEEP(5)", length=39, parser_state=0x7fec6c5a5550) at /home/ elenst/maria-5.5-galera/sql/sql_parse.cc:6047
|
#20 0x0000000000614787 in dispatch_command (command=COM_QUERY, thd=0x7fec58074f10, packet=0x7fec580cfa21 "CREATE TABLE test.t1 AS SELECT SLEEP(5)", packet_length=39) at /home /elenst/maria-5.5-galera/sql/sql_parse.cc:1227
|
#21 0x00000000006135ef in do_command (thd=0x7fec58074f10) at maria-5.5-galera/sql/sql_parse.cc:891
|
#22 0x000000000071a3a0 in do_handle_one_connection (thd_arg=0x7fec58074f10) at maria-5.5-galera/sql/sql_connect.cc:1278
|
#23 0x0000000000719d78 in handle_one_connection (arg=0x7fec58074f10) at maria-5.5-galera/sql/sql_connect.cc:1186
|
Query (0x371b718): CREATE TABLE test.t1 AS SELECT SLEEP(5)
|
Connection ID (thread ID): 4
|
Status: KILL_QUERY
|
How to reproduce manually
# Start cluster (1 node is enough, or it can be more)
|
# connect to a node
|
# run
|
USE test;
|
DROP TABLE IF EXISTS t1;
|
CREATE TABLE t1 AS SELECT SLEEP(30);
|
|
# while the last statement is running, open another connection to the same node and run
|
DROP TABLE IF EXISTS test.t1;
|
|
# Observe the crash
|
MTR test case
# Run as
|
# perl --mysqld=--wsrep_provider=/home/elenst/galera-23.2.1-src/libgalera_smm.so --mysqld=--binlog-format=row --mysqld=--innodb --mysqld=--default-storage-engine=InnoDB --mysqld=--innodb_autoinc_lock_mode=2 --mysqld=--innodb_locks_unsafe_for_binlog=1 --mysqld=--innodb_flush_log_at_trx_commit=0 --mysqld=--wsrep_cluster_address=gcomm:// ./mtr main.t1
|
|
DROP TABLE IF EXISTS t1;
|
--send CREATE TABLE t1 AS SELECT SLEEP(3)
|
--sleep 1
|
--connect (con1,localhost,root,,)
|
DROP TABLE IF EXISTS t1;
|
--connection default
|
--reap
|
Shell script
#!/bin/bash
|
|
port=${1:-3306}
|
client=${2:-mysql}
|
|
$client --no-defaults -uroot --protocol=tcp --port=$port -e "DROP TABLE IF EXISTS test.t1"
|
$client --no-defaults -uroot --protocol=tcp --port=$port -e "CREATE TABLE test.t1 AS SELECT SLEEP(5)" &
|
sleep 1
|
$client --no-defaults -uroot --protocol=tcp --port=$port -e "DROP TABLE IF EXISTS test.t1"
|
|
fg
|
$client --no-defaults -uroot --protocol=tcp --port=$port -e "SHOW STATUS LIKE 'wsrep%'"
|
|
My server command line
maria-5.5-galera/sql/mysqld --no-defaults --datadir=maria-5.5-galera/data1 --wsrep_provider=galera-23.2.1-src/libgalera_smm.so --wsrep_sst_method=rsync --core --binlog-format=row --default-storage-engine=InnoDB --innodb_autoinc_lock_mode=2 --innodb_locks_unsafe_for_binlog=1 --innodb_flush_log_at_trx_commit=0 --log-error=log.err --basedir=maria-5.5-galera/ --port=8306 --loose-lc-messages-dir=maria-5.5-galera/sql/share --socket=/tmp/galera-1.sock --tmpdir=maria-5.5-galera/data1/tmp --general-log=1 --wsrep_cluster_address=gcomm:// --core
|
Reproducible on revno 3354 and revno 3351.
Attachments
Issue Links
- relates to
-
MDEV-468 Galera: Server does not honor metadata locking (even inside the same node)
- Closed