Details
-
Bug
-
Status: In Progress (View Workflow)
-
Critical
-
Resolution: Unresolved
-
10.11, 11.4, 11.8, 12.3, 13.0, 13.1
-
Q4/2026 Replic. Maintenance
Description
On a Galera node, a foreign key column of type UUID, INET6 or INET4 gets two different certification keys for the same parent row. The parent row key comes from wsrep_store_key_val_for_row(), which normalizes the value with the charset of the field. The child's reference key comes from wsrep_rec_get_foreign_key() in storage/innobase/rem/rem0rec.cc, where DATA_FIXBINARY sits with DATA_BLOB, DATA_BINARY and DATA_GEOMETRY and the bytes are copied raw. A UUID column is latin1, so it is DATA_FIXBINARY with DATA_BINARY_TYPE clear, and five of the sixteen bytes differ. Certification then sees no dependency between the child row insert and the parent row update, both write sets apply in parallel, and the two appliers deadlock on the parent row. Neither can be aborted, so the node stops applying.
INET6 behaves the same way, BINARY(16) does not, because its charset is binary and the transform is the identity. Some load is needed; one transaction inserts 2000 filler rows before the child row, so the foreign key check lands late while the parent row update applies alongside it. An optimised build does not abort, the node stops applying and the testcase reaches its --die at line 35, which the Yes cells report. A Community Server debug build aborts in wsrep_assert_valid_bf_bf_wait(); the Enterprise Server copy of that function only reports the lock pair, which is the INNODB_ERROR cell.
MTR Testcase:
--source include/galera_cluster.inc
|
--source include/have_innodb.inc
|
--source include/have_sequence.inc
|
|
|
--connection node_1
|
CREATE TABLE p (id UUID PRIMARY KEY, v INT) ENGINE=InnoDB; |
CREATE TABLE c (id INT AUTO_INCREMENT PRIMARY KEY, p_id UUID NOT NULL, KEY k (p_id), FOREIGN KEY (p_id) REFERENCES p (id)) ENGINE=InnoDB; |
CREATE TABLE f (id INT AUTO_INCREMENT PRIMARY KEY, pad CHAR(255)) ENGINE=InnoDB; |
INSERT INTO p VALUES ('c0a8016b-9e4d-4f7a-b3d2-6a1e8f9c0d1b', 0); |
|
|
--connection node_2
|
SET GLOBAL wsrep_slave_threads = 2; |
|
|
--connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2
|
SET SESSION wsrep_sync_wait = 0; |
|
|
--let $round = 10
|
while ($round)
|
{
|
--connection node_1 |
BEGIN; |
INSERT INTO f (pad) SELECT REPEAT('x',255) FROM seq_1_to_2000; |
INSERT INTO c (p_id) VALUES ('c0a8016b-9e4d-4f7a-b3d2-6a1e8f9c0d1b'); |
COMMIT; |
UPDATE p SET v = v + 1 WHERE id = 'c0a8016b-9e4d-4f7a-b3d2-6a1e8f9c0d1b'; |
--let $want = `SELECT COUNT(*) FROM c` |
--connection node_2a |
--let $wait_timeout = 30 |
--let $wait_condition = SELECT COUNT(*) = $want FROM c |
--source include/wait_condition.inc |
if (!$success) |
{
|
SELECT ID, STATE, INFO FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user'; |
SELECT trx_id, trx_state, trx_mysql_thread_id, trx_query FROM INFORMATION_SCHEMA.INNODB_TRX; |
--die Node 2 stopped applying. |
}
|
--dec $round |
}
|
|
|
--connection node_2
|
SET GLOBAL wsrep_slave_threads = 1; |
--disconnect node_2a
|
--connection node_1
|
DROP TABLE c, p, f; |
Leads to:
|
ES 11.8.9-6 4694e931d10fecf733c34f83ea2146d31b708eb3 (Debug, Clang 22.1.8-20260622) Build 18/08/2026 |
ID STATE INFO
|
10 Waiting for certification NULL
|
2 wsrep aborter idle NULL
|
1 Write_rows_log_event::write_row() INSERT INTO c (p_id) VALUES ('c0a8016b-9e4d-4f7a-b3d2-6a1e8f9c0d1b')
|
|
|
trx_id trx_state trx_mysql_thread_id trx_query
|
56 RUNNING 10 NULL
|
53 LOCK WAIT 1 INSERT INTO c (p_id) VALUES ('c0a8016b-9e4d-4f7a-b3d2-6a1e8f9c0d1b')
|
The wait does not time out. The error log of that node:
[ERROR] WSREP: BF request is not compatible with victim
|
[ERROR] WSREP: BF requesting lock:
|
RECORD LOCKS space id 12 page no 3 n bits 320 index PRIMARY of table `test`.`p` trx id 53 lock mode S locks rec but not gap waiting
|
[ERROR] WSREP: victim holding lock:
|
RECORD LOCKS space id 12 page no 3 n bits 320 index PRIMARY of table `test`.`p` trx id 56 lock_mode X locks rec but not gap
|
[ERROR] WSREP: Thread BF trx_id: 53 thread: 1 seqno: 7 client_state: exec client_mode: high priority transaction_mode: executing applier: 1 toi: 0 local: 0 query: INSERT INTO c (p_id) VALUES ('c0a8016b-9e4d-4f7a-b3d2-6a1e8f9c0d1b')
|
[ERROR] WSREP: Thread BF trx_id: 56 thread: 10 seqno: 8 client_state: exec client_mode: high priority transaction_mode: committing applier: 1 toi: 0 local: 0 query: NULL
|
|
CS 13.1.0 da18481158c81ca94689702073c3e04aad85a6a3 (Debug, Clang 22.1.8-20260622) Build 18/08/2026 |
Core was generated by `/tmp/MD180826-mariadb-13.1.0-linux-x86_64-dbg_g5cs/bin/mariadbd --defaults-grou'.
|
Program terminated with signal SIGABRT, Aborted.
|
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
|
|
|
[Current thread is 1 (LWP 3612558)]
|
(gdb) bt
|
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
|
#1 __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78
|
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89
|
#3 0x000072afc4a4527e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
|
#4 0x000072afc4a288ff in __GI_abort () at ./stdlib/abort.c:79
|
#5 0x00005a147123041d in ut_dbg_assertion_failed (expr=0x0, file=0x5a14719026fe "/test/13.1_dbg/storage/innobase/lock/lock0lock.cc", line=575) at /test/13.1_dbg/storage/innobase/ut/ut0dbg.cc:60
|
#6 0x00005a147101d1fe in wsrep_assert_valid_bf_bf_wait (lock=0x72afc1c7cc80, trx=0x72afc1c7d680, type_mode=1026)at /test/13.1_dbg/storage/innobase/lock/lock0lock.cc:575
|
#7 0x00005a1471002fe5 in wsrep_BF_has_to_wait (lock=0x72afc1c7cc80, trx=0x72afc1c7d680, report_bf_bf_wait=false, type_mode=1026)at /test/13.1_dbg/storage/innobase/lock/lock0lock.cc:627
|
#8 0x00005a1471002e49 in lock_rec_has_to_wait_wsrep (trx=0x72afc1c7d680, type_mode=1026, lock2=0x72afc1c7cc80)at /test/13.1_dbg/storage/innobase/lock/lock0lock.cc:733
|
#9 0x00005a147100351e in lock_rec_has_to_wait (trx=0x72afc1c7d680, type_mode=1026, lock2=0x72afc1c7cc80, lock_is_on_supremum=false)at /test/13.1_dbg/storage/innobase/lock/lock0lock.cc:848
|
#10 0x00005a14710161a7 in lock_rec_other_has_conflicting (mode=1026, cell=@0x5a1496d46a28: {node = 0x72afc1c7cc80}, id={m_id = 51539607555}, heap_no=2, trx=0x72afc1c7d680)at /test/13.1_dbg/storage/innobase/lock/lock0lock.cc:1254
|
#11 0x00005a147101866f in lock_rec_lock (impl=false, mode=1026, block=0x6aaee380ea00, heap_no=2, index=0x72af6002f608, thr=0x72af5803b398)at /test/13.1_dbg/storage/innobase/lock/lock0lock.cc:1987
|
#12 0x00005a1471019e7f in lock_clust_rec_read_check_and_lock (flags=0, block=0x6aaee380ea00, rec=0x6aaee3cf807e "j\036\217\234\r\033\263\322Oz\236M\300\250\001k", index=0x72af6002f608, offsets=0x72afc0845fb0, mode=LOCK_S, gap_mode=1024, thr=0x72af5803b398)at /test/13.1_dbg/storage/innobase/lock/lock0lock.cc:6669
|
#13 0x00005a147112d491 in row_ins_set_shared_rec_lock (type=1024, block=0x6aaee380ea00, rec=0x6aaee3cf807e "j\036\217\234\r\033\263\322Oz\236M\300\250\001k", index=0x72af6002f608, offsets=0x72afc0845fb0, thr=0x72af5803b398)at /test/13.1_dbg/storage/innobase/row/row0ins.cc:1407
|
#14 0x00005a147112c74e in row_ins_check_foreign_constraint (check_ref=1, foreign=0x72af60007f18, table=0x72af6003b0f8, entry=0x72af1c072cd8, thr=0x72af5803b398) at /test/13.1_dbg/storage/innobase/row/row0ins.cc:1709
|
#15 0x00005a1471135128 in row_ins_check_foreign_constraints (table=0x72af6003b0f8, index=0x72af6003f778, pk=false, entry=0x72af1c072cd8, thr=0x72af5803b398)at /test/13.1_dbg/storage/innobase/row/row0ins.cc:1951
|
#16 0x00005a1471135206 in row_ins_sec_index_entry (index=0x72af6003f778, entry=0x72af1c072cd8, thr=0x72af5803b398, check_foreign=true)at /test/13.1_dbg/storage/innobase/row/row0ins.cc:3378
|
#17 0x00005a147113c8c7 in row_ins_index_entry (index=0x72af6003f778, entry=0x72af1c072cd8, thr=0x72af5803b398)at /test/13.1_dbg/storage/innobase/row/row0ins.cc:3469
|
#18 0x00005a147113bc6d in row_ins_index_entry_step (node=0x72af5803b170, thr=0x72af5803b398) at /test/13.1_dbg/storage/innobase/row/row0ins.cc:3633
|
#19 0x00005a1471135c77 in row_ins (node=0x72af5803b170, thr=0x72af5803b398)at /test/13.1_dbg/storage/innobase/row/row0ins.cc:3750
|
#20 0x00005a147113594a in row_ins_step (thr=0x72af5803b398)at /test/13.1_dbg/storage/innobase/row/row0ins.cc:3879
|
#21 0x00005a147115c0f9 in row_insert_for_mysql (mysql_rec=0x72af58039340 "\377\001", prebuilt=0x72af5803aae8, ins_mode=ROW_INS_NORMAL)at /test/13.1_dbg/storage/innobase/row/row0mysql.cc:1311
|
#22 0x00005a1470f5eb8f in ha_innobase::write_row (this=0x72af58038ab0, record=0x72af58039340 "\377\001")at /test/13.1_dbg/storage/innobase/handler/ha_innodb.cc:7974
|
#23 0x00005a1470b955d0 in handler::ha_write_row (this=0x72af58038ab0, buf=0x72af58039340 "\377\001") at /test/13.1_dbg/sql/handler.cc:8536
|
#24 0x00005a147070a562 in Write_record::single_insert (this=0x72afc08477e8, inserted=0x72afc0847210) at /test/13.1_dbg/sql/sql_insert.cc:2396
|
#25 0x00005a14707085b3 in Write_record::write_record (this=0x72afc08477e8)at /test/13.1_dbg/sql/sql_insert.cc:2438
|
#26 0x00005a1470d67e64 in Write_rows_log_event::write_row (this=0x72af1c0556a0, rgi=0x72af1c028480, overwrite=false)at /test/13.1_dbg/sql/log_event_server.cc:7776
|
#27 0x00005a1470d68316 in Write_rows_log_event::do_exec_row (this=0x72af1c0556a0, rgi=0x72af1c028480)at /test/13.1_dbg/sql/log_event_server.cc:7858
|
#28 0x00005a1470d60650 in Rows_log_event::do_apply_event (this=0x72af1c0556a0, rgi=0x72af1c028480) at /test/13.1_dbg/sql/log_event_server.cc:5473
|
#29 0x00005a1470d4c692 in Log_event::apply_event (this=0x72af1c0556a0, rgi=0x72af1c028480) at /test/13.1_dbg/sql/log_event.cc:4319
|
#30 0x00005a1470f3088d in apply_events (thd=0x72af1c001f00, rli=0x72af1c01a820, events_buf=0x72afc2804ee8, buf_len=0, savepoint=@0x5a1472cc23a0: {str = 0x5a1472263650 <wsrep_apply_events(THD*, Relay_log_info*, wsrep::const_buffer const&, wsrep::mutable_buffer&, bool)::savepoint_name> "wsrep_retry", length = 11}, set_savepoint=true)at /test/13.1_dbg/sql/wsrep_applier.cc:355
|
#31 0x00005a1470f30180 in wsrep_apply_events (thd=0x72af1c001f00, rli=0x72af1c01a820, data=@0x72afc0848870: {ptr_ = 0x72afc2804ee8, size_ = 524536}, err=@0x72afc0848058: {buffer_ = std::vector of length 0, capacity 0}, include_msg=true) at /test/13.1_dbg/sql/wsrep_applier.cc:408
|
#32 0x00005a1470f01853 in Wsrep_applier_service::apply_write_set (this=0x72afc0849af8, ws_meta=@0x72afc0848aa0: {gtid_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = '\000' <repeats 15 times>}}, seqno_ = {seqno_ = -1}}, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = "\3075\261\263\247#\021\361\244\375\206%5\343b"}}, seqno_ = {seqno_ = 7}}, stid_ = {server_id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = "\3074Ճ\247#\021\361\203\v\306V\201q\363", <incomplete sequence \336>}}, transaction_id_ = {id_ = 62}, client_id_ = {id_ = 12}}, depends_on_ = {seqno_ = 5}, flags_ = 3}, data=@0x72afc0848870: {ptr_ = 0x72afc2804ee8, size_ = 524536}, err=@0x72afc0848058: {buffer_ = std::vector of length 0, capacity 0})at /test/13.1_dbg/sql/wsrep_high_priority_service.cc:605
|
#33 0x00005a147172390c in apply_write_set (server_state=Python Exception <class 'AttributeError'>: 'NoneType' object has no attribute 'pointer'
|
Python Exception <class 'AttributeError'>: 'NoneType' object has no attribute 'pointer'
|
@0x5a14969afda0: {static n_states_ = 9, mutex_ = @0x5a14969b00a8, cond_ = @0x5a14969b00b8, server_service_ = @0x5a14969b00c8, encryption_service_ = 0x0, state_ = wsrep::server_state::s_synced, state_hist_ = std::vector of length 6, capacity 8 = {wsrep::server_state::s_disconnected, wsrep::server_state::s_connected, wsrep::server_state::s_joiner, wsrep::server_state::s_initializing, wsrep::server_state::s_initialized, wsrep::server_state::s_joined}, state_waiters_ = std::vector of length 9, capacity 9 = {0, 0, 0, 0, 0, 0, 0, 0, 0}, bootstrap_ = false, initial_position_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = '\000' <repeats 15 times>}}, seqno_ = {seqno_ = -1}}, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = '\000' <repeats 15 times>}}, seqno_ = {seqno_ = -1}}, init_initialized_ = true, init_synced_ = true, sst_gtid_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = '\000' <repeats 15 times>}}, seqno_ = {seqno_ = -1}}, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = '\000' <repeats 15 times>}}, seqno_ = {seqno_ = -1}}, desync_count_ = 0, desynced_on_pause_ = false, pause_count_ = 0, pause_seqno_ = {seqno_ = -1}, streaming_clients_ = std::map with 0 elements, streaming_appliers_ = std::map with 0 elements, streaming_appliers_recovered_ = true, provider_ = std::unique_ptr<class wsrep::provider> = { get() = 0x5a14969b62c0 }, provider_factory_ = {<std::_Maybe_unary_or_binary_function<std::unique_ptr<wsrep::provider, std::default_delete<wsrep::provider> >, wsrep::server_state&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wsrep::provider::services const&>> = {<No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x5a14717163b0 <wsrep::provider::make_provider(wsrep::server_state&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wsrep::provider::services const&)>, _M_const_object = 0x5a14717163b0 <wsrep::provider::make_provider(wsrep::server_state&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wsrep::provider::services const&)>, _M_function_pointer = 0x5a14717163b0 <wsrep::provider::make_provider(wsrep::server_state&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wsrep::provider::services const&)>, _M_member_pointer = (void (std::_Undefined_class::*)(class std::_Undefined_class * const)) 0x5a14717163b0 <wsrep::provider::make_provider(wsrep::server_state&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wsrep::provider::services const&)>}, _M_pod_data = "\260cqq\024Z\000\000\000\000\000\000\000\000\000"}, _M_manager = 0x5a1470f05880 <std::_Function_handler<std::unique_ptr<wsrep::provider, std::default_delete<wsrep::provider> > (wsrep::server_state&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wsrep::provider::services const&), std::unique_ptr<wsrep::provider, std::default_delete<wsrep::provider> > (*)(wsrep::server_state&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wsrep::provider::services const&)>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>}, _M_invoker = 0x5a1470f05820 <std::_Function_handler<std::unique_ptr<wsrep::provider, std::default_delete<wsrep::provider> > (wsrep::server_state&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wsrep::provider::services const&), std::unique_ptr<wsrep::provider, std::default_delete<wsrep::provider> > (*)(wsrep::server_state&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wsrep::provider::services const&)>::_M_invoke(std::_Any_data const&, wsrep::server_state&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wsrep::provider::services const&)>}, name_ = "qa-roel-2", id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = "\307z\253f\247#\021\361\201\311#\004\200w\214\221"}}, incoming_address_ = "127.0.0.1:28001", address_ = "127.0.0.1:28005", working_dir_ = "/tmp/MD180826-mariadb-13.1.0-linux-x86_64-dbg_g5cs/mariadb-test/var/mysqld.2/data/", encryption_key_ = std::vector of length 0, capacity 0, max_protocol_version_ = 4, rollback_mode_ = wsrep::server_state::rm_sync, connected_gtid_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = '\000' <repeats 15 times>}}, seqno_ = {seqno_ = -1}}, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = "\3075\261\263\247#\021\361\244\375\206%5\343b"}}, seqno_ = {seqno_ = 2}}, previous_primary_view_ = {state_id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = '\000' <repeats 15 times>}}, seqno_ = {seqno_ = -1}}, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = '\000' <repeats 15 times>}}, seqno_ = {seqno_ = -1}}, view_seqno_ = {seqno_ = -1}, status_ = wsrep::view::disconnected, capabilities_ = 0, own_index_ = -1, protocol_version_ = 0, members_ = std::vector of length 0, capacity 0}, current_view_ = {state_id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = '\000' <repeats 15 times>}}, seqno_ = {seqno_ = -1}}, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = "\3075\261\263\247#\021\361\244\375\206%5\343b"}}, seqno_ = {seqno_ = 2}}, view_seqno_ = {seqno_ = 2}, status_ = wsrep::view::primary, capabilities_ = 184703, own_index_ = 1, protocol_version_ = 4, members_ = std::vector of length 2, capacity 2 = {{id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = "\3074Ճ\247#\021\361\203\v\306V\201q\363", <incomplete sequence \336>}}, name_ = "qa-roel-2", incoming_ = "127.0.0.1:28000"}, {id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = "\307z\253f\247#\021\361\201\311#\004\200w\214\221"}}, name_ = "qa-roel-2", incoming_ = "127.0.0.1:28001"}}}, rollback_event_queue_ = std::deque with 0 elements, disable_node_reset_ = false}, high_priority_service=@0x72afc0849af8: {_vptr$high_priority_service = 0x5a1472203e70 <vtable for Wsrep_applier_service+16>, server_state_ = @0x5a14969afda0, must_exit_ = false, static _vtable$ = <optimized out>}, ws_handle=@0x72afc0848860: {transaction_id_ = {id_ = 62}, opaque_ = 0x72af1c029110}, ws_meta=@0x72afc0848aa0: {gtid_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = '\000' <repeats 15 times>}}, seqno_ = {seqno_ = -1}}, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = "\3075\261\263\247#\021\361\244\375\206%5\343b"}}, seqno_ = {seqno_ = 7}}, stid_ = {server_id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = "\3074Ճ\247#\021\361\203\v\306V\201q\363", <incomplete sequence \336>}}, transaction_id_ = {id_ = 62}, client_id_ = {id_ = 12}}, depends_on_ = {seqno_ = 5}, flags_ = 3}, data=@0x72afc0848870: {ptr_ = 0x72afc2804ee8, size_ = 524536})at /test/13.1_dbg/wsrep-lib/src/server_state.cpp:333
|
#34 0x00005a14717231a2 in wsrep::server_state::on_apply (this=0x5a14969afda0, high_priority_service=@0x72afc0849af8: {_vptr$high_priority_service = 0x5a1472203e70 <vtable for Wsrep_applier_service+16>, server_state_ = @0x5a14969afda0, must_exit_ = false, static _vtable$ = <optimized out>}, ws_handle=@0x72afc0848860: {transaction_id_ = {id_ = 62}, opaque_ = 0x72af1c029110}, ws_meta=@0x72afc0848aa0: {gtid_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = '\000' <repeats 15 times>}}, seqno_ = {seqno_ = -1}}, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = "\3075\261\263\247#\021\361\244\375\206%5\343b"}}, seqno_ = {seqno_ = 7}}, stid_ = {server_id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = "\3074Ճ\247#\021\361\203\v\306V\201q\363", <incomplete sequence \336>}}, transaction_id_ = {id_ = 62}, client_id_ = {id_ = 12}}, depends_on_ = {seqno_ = 5}, flags_ = 3}, data=@0x72afc0848870: {ptr_ = 0x72afc2804ee8, size_ = 524536})at /test/13.1_dbg/wsrep-lib/src/server_state.cpp:1139
|
#35 0x00005a14717404e1 in wsrep::high_priority_service::apply (this=0x72afc0849af8, ws_handle=@0x72afc0848860: {transaction_id_ = {id_ = 62}, opaque_ = 0x72af1c029110}, ws_meta=@0x72afc0848aa0: {gtid_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = '\000' <repeats 15 times>}}, seqno_ = {seqno_ = -1}}, id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = "\3075\261\263\247#\021\361\244\375\206%5\343b"}}, seqno_ = {seqno_ = 7}}, stid_ = {server_id_ = {static undefined_ = {static undefined_ = <same as static member of an already seen type>, data_ = {buf = '\000' <repeats 15 times>}}, data_ = {buf = "\3074Ճ\247#\021\361\203\v\306V\201q\363", <incomplete sequence \336>}}, transaction_id_ = {id_ = 62}, client_id_ = {id_ = 12}}, depends_on_ = {seqno_ = 5}, flags_ = 3}, data=@0x72afc0848870: {ptr_ = 0x72afc2804ee8, size_ = 524536})at /test/13.1_dbg/wsrep-lib/include/wsrep/high_priority_service.hpp:47
|
#36 0x00005a147173be14 in (anonymous namespace)::apply_cb (ctx=0x72afc0849af8, wsh=0x72afc0848b30, flags=65, buf=0x72afc0848bb0, meta=0x72afc0848de0, exit_loop=0x72afc0848d9f)at /test/13.1_dbg/wsrep-lib/src/wsrep_provider_v26.cpp:510
|
#37 0x000072afc3857ccf in galera::TrxHandleSlave::apply(void*, wsrep_cb_status (*)(void*, wsrep_ws_handle const*, unsigned int, wsrep_buf const*, wsrep_trx_meta const*, bool*), wsrep_trx_meta const&, bool&) ()
|
from /test/ACTUAL_RELEASE_BUILDS/mariadb-13.1.0-linux-systemd-x86_64/lib/galera/libgalera_smm.so
|
#38 0x000072afc38795c0 in galera::ReplicatorSMM::apply_trx(void*, galera::TrxHandleSlave&) ()
|
from /test/ACTUAL_RELEASE_BUILDS/mariadb-13.1.0-linux-systemd-x86_64/lib/galera/libgalera_smm.so
|
#39 0x000072afc387b5a2 in galera::ReplicatorSMM::process_trx(void*, boost::shared_ptr<galera::TrxHandleSlave> const&) ()
|
from /test/ACTUAL_RELEASE_BUILDS/mariadb-13.1.0-linux-systemd-x86_64/lib/galera/libgalera_smm.so
|
#40 0x000072afc38a549b in galera::GcsActionSource::process_writeset(void*, gcs_action const&, bool&) ()
|
from /test/ACTUAL_RELEASE_BUILDS/mariadb-13.1.0-linux-systemd-x86_64/lib/galera/libgalera_smm.so
|
#41 0x000072afc38a5dc2 in galera::GcsActionSource::dispatch(void*, gcs_action const&, bool&) ()
|
from /test/ACTUAL_RELEASE_BUILDS/mariadb-13.1.0-linux-systemd-x86_64/lib/galera/libgalera_smm.so
|
#42 0x000072afc38a6a3b in galera::GcsActionSource::process(void*, bool&) ()
|
from /test/ACTUAL_RELEASE_BUILDS/mariadb-13.1.0-linux-systemd-x86_64/lib/galera/libgalera_smm.so
|
#43 0x000072afc387cb10 in galera::ReplicatorSMM::async_recv(void*) ()
|
from /test/ACTUAL_RELEASE_BUILDS/mariadb-13.1.0-linux-systemd-x86_64/lib/galera/libgalera_smm.so
|
#44 0x000072afc3848468 in galera_recv ()
|
from /test/ACTUAL_RELEASE_BUILDS/mariadb-13.1.0-linux-systemd-x86_64/lib/galera/libgalera_smm.so
|
#45 0x00005a147173c896 in wsrep::wsrep_provider_v26::run_applier (this=0x5a14969b62c0, applier_ctx=0x72afc0849af8)at /test/13.1_dbg/wsrep-lib/src/wsrep_provider_v26.cpp:903
|
#46 0x00005a1470f31733 in wsrep_replication_process (thd=0x72af1c001f00, arg=0x72aefc1db410) at /test/13.1_dbg/sql/wsrep_thd.cc:56
|
#47 0x00005a1470f18d1f in start_wsrep_THD (arg=0x72aefc1db410)at /test/13.1_dbg/sql/wsrep_mysqld.cc:4148
|
#48 0x000072afc4a9cb84 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
|
#49 0x000072afc4b29d6c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
|
|
Bug Detection Matrix |
Rel o/d Build Commit Affected
|
CS 10.11 dbg 180826 8f00e6caca633c783140db86d3a48a96de67cf38 SIGABRT|ut_dbg_assertion_failed|wsrep_assert_valid_bf_bf_wait|wsrep_BF_has_to_wait|lock_rec_has_to_wait_wsrep
|
CS 10.11 opt 180826 8f00e6caca633c783140db86d3a48a96de67cf38 Yes
|
CS 11.4 dbg 180826 1a052f27e374fc9b4cb5b1fd098cf10f0e1381cc SIGABRT|ut_dbg_assertion_failed|wsrep_assert_valid_bf_bf_wait|wsrep_BF_has_to_wait|lock_rec_has_to_wait_wsrep
|
CS 11.4 opt 180826 1a052f27e374fc9b4cb5b1fd098cf10f0e1381cc Yes
|
CS 11.8 dbg 180826 d26f9ab217a7fcf9d4eccc62c01020ff275ff42e SIGABRT|ut_dbg_assertion_failed|wsrep_assert_valid_bf_bf_wait|wsrep_BF_has_to_wait|lock_rec_has_to_wait_wsrep
|
CS 11.8 opt 180826 d26f9ab217a7fcf9d4eccc62c01020ff275ff42e Yes
|
CS 12.3 dbg 180826 add63991988734383c5e942de2a19c6c45f511f7 SIGABRT|ut_dbg_assertion_failed|wsrep_assert_valid_bf_bf_wait|wsrep_BF_has_to_wait|lock_rec_has_to_wait_wsrep
|
CS 12.3 opt 180826 add63991988734383c5e942de2a19c6c45f511f7 Yes
|
CS 13.0 dbg 180826 a848493c6fe031f23606144420c1ca1e467cbd81 SIGABRT|ut_dbg_assertion_failed|wsrep_assert_valid_bf_bf_wait|wsrep_BF_has_to_wait|lock_rec_has_to_wait_wsrep
|
CS 13.0 opt 180826 a848493c6fe031f23606144420c1ca1e467cbd81 Yes
|
CS 13.1 dbg 180826 da18481158c81ca94689702073c3e04aad85a6a3 SIGABRT|ut_dbg_assertion_failed|wsrep_assert_valid_bf_bf_wait|wsrep_BF_has_to_wait|lock_rec_has_to_wait_wsrep
|
CS 13.1 opt 180826 da18481158c81ca94689702073c3e04aad85a6a3 Yes
|
ES 10.6 dbg 180826 fcecb2620f25965723d640decede7c018bcb1dcc INNODB_ERROR|Requested lock on record RECORD LOCK_X
|
ES 10.6 opt 180826 fcecb2620f25965723d640decede7c018bcb1dcc Yes
|
ES 11.4 dbg 180826 3b34189bfe675c18c4ced3ef531d016ea74c76f4 INNODB_ERROR|Requested lock on record RECORD LOCK_X
|
ES 11.4 opt 180826 3b34189bfe675c18c4ced3ef531d016ea74c76f4 Yes
|
ES 11.8 dbg 180826 4694e931d10fecf733c34f83ea2146d31b708eb3 INNODB_ERROR|Requested lock on record RECORD LOCK_X
|
ES 11.8 opt 180826 4694e931d10fecf733c34f83ea2146d31b708eb3 Yes
|
ES 12.3 dbg 180826 f513f503feacabfb219d4a6f965b5f72b86d4db0 INNODB_ERROR|Requested lock on record RECORD LOCK_X
|
ES 12.3 opt 180826 f513f503feacabfb219d4a6f965b5f72b86d4db0 Yes
|
Attachments
Issue Links
- relates to
-
MDEV-23851 Galera assertion at lock0lock.cc line 655 because of BF-BF lock wait
-
- Closed
-
-
MDEV-38310 SIGABRT in wsrep_assert_valid_bf_bf_wait | wsrep_BF_has_to_wait | lock_rec_has_to_wait_wsrep
-
- Open
-
-
MDEV-39681 delayed BF abort with multi-master load
-
- Closed
-
-
MDEV-41028 Galera appliers deadlock on a foreign key referencing a CHAR column in a multi-byte character set
-
- In Review
-