[MDEV-25731] Assertion `mode_ == m_local' failed in void wsrep::client_state::streaming_params(wsrep::streaming_context::fragment_unit, size_t) Created: 2021-05-19  Updated: 2024-01-30

Status: In Review
Project: MariaDB Server
Component/s: Galera
Affects Version/s: 10.4, 10.5, 10.6
Fix Version/s: 10.4, 10.5

Type: Bug Priority: Major
Reporter: Ramesh Sivaraman Assignee: Julius Goryavsky
Resolution: Unresolved Votes: 1
Labels: not-10.2, not-10.3


 Description   

The assertion is similar to MDEV-24062 but the crash is in difference place

SET @@global.wsrep_load_data_splitting=ON;
SET GLOBAL wsrep_replicate_myisam=ON;
CREATE TABLE t1 (c1 int) ENGINE=MYISAM;
LOAD DATA INFILE './t1.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\n';

Leads to:

10.6.1 370b310b1d67ad42df96b75c3876fdcf67a8694f (Debug)

mysqld: /test/10.6_dbg/wsrep-lib/src/client_state.cpp:329: void wsrep::client_state::streaming_params(wsrep::streaming_context::fragment_unit, size_t): Assertion `mode_ == m_local' failed.

10.6.1 370b310b1d67ad42df96b75c3876fdcf67a8694f (Debug)

Core was generated by `/test/GAL_MD120521-mariadb-10.6.1-linux-x86_64-dbg/bin/mysqld --defaults-file=/'.
Program terminated with signal SIGABRT, Aborted.
#0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6)
    at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
[Current thread is 1 (Thread 0x1462bcda7700 (LWP 824065))]
(gdb) bt
#0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
#1  0x000055dd41d051f1 in my_write_core (sig=sig@entry=6) at /test/10.6_dbg/mysys/stacktrace.c:424
#2  0x000055dd4149dd3e in handle_fatal_signal (sig=6) at /test/10.6_dbg/sql/signal_handler.cc:343
#3  <signal handler called>
#4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#5  0x00001462ce028859 in __GI_abort () at abort.c:79
#6  0x00001462ce028729 in __assert_fail_base (fmt=0x1462ce1be588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55dd42402d2e "mode_ == m_local", file=0x55dd42401ad8 "/test/10.6_dbg/wsrep-lib/src/client_state.cpp", line=329, function=<optimized out>) at assert.c:92
#7  0x00001462ce039f36 in __GI___assert_fail (assertion=assertion@entry=0x55dd42402d2e "mode_ == m_local", file=file@entry=0x55dd42401ad8 "/test/10.6_dbg/wsrep-lib/src/client_state.cpp", line=line@entry=329, function=function@entry=0x55dd42401cc8 "void wsrep::client_state::streaming_params(wsrep::streaming_context::fragment_unit, size_t)") at assert.c:101
#8  0x000055dd41e1be55 in wsrep::client_state::streaming_params (this=this@entry=0x146258007540, fragment_unit=fragment_unit@entry=wsrep::streaming_context::bytes, fragment_size=fragment_size@entry=0) at /test/10.6_dbg/wsrep-lib/include/wsrep/transaction.hpp:223
#9  0x000055dd411bdd42 in Wsrep_load_data_split::~Wsrep_load_data_split (this=<synthetic pointer>, __in_chrg=<optimized out>) at /test/10.6_dbg/sql/sql_class.h:5329
#10 mysql_load (thd=thd@entry=0x146258000db8, ex=0x1462580140f0, table_list=table_list@entry=0x146258014178, fields_vars=@0x146258006008: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x146258014a28, last = 0x146258014a28, elements = 1}, <No data fields>}, set_fields=@0x146258006038: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55dd427be480 <end_of_list>, last = 0x146258006038, elements = 0}, <No data fields>}, set_values=@0x146258006020: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55dd427be480 <end_of_list>, last = 0x146258006020, elements = 0}, <No data fields>}, handle_duplicates=DUP_ERROR, ignore=<optimized out>, read_file_from_client=false) at /test/10.6_dbg/sql/sql_load.cc:356
#11 0x000055dd411d78b2 in mysql_execute_command (thd=thd@entry=0x146258000db8) at /test/10.6_dbg/sql/sql_parse.cc:5017
#12 0x000055dd411c0a81 in mysql_parse (thd=thd@entry=0x146258000db8, rawbuf=rawbuf@entry=0x146258013fe0 "LOAD DATA INFILE './t1.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\\n'", length=length@entry=73, parser_state=parser_state@entry=0x1462bcda6410) at /test/10.6_dbg/sql/sql_parse.cc:8018
#13 0x000055dd411c041a in wsrep_mysql_parse (thd=thd@entry=0x146258000db8, rawbuf=0x146258013fe0 "LOAD DATA INFILE './t1.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\\n'", length=73, parser_state=parser_state@entry=0x1462bcda6410) at /test/10.6_dbg/sql/sql_parse.cc:7832
#14 0x000055dd411cf994 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x146258000db8, packet=packet@entry=0x14625800b799 "LOAD DATA INFILE './t1.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\\n'", packet_length=packet_length@entry=73, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_class.h:1333
#15 0x000055dd411d2d79 in do_command (thd=0x146258000db8, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_parse.cc:1406
#16 0x000055dd4132ede7 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55dd436f37e8, put_in_cache=put_in_cache@entry=true) at /test/10.6_dbg/sql/sql_connect.cc:1410
#17 0x000055dd4132f3ef in handle_one_connection (arg=arg@entry=0x55dd436f37e8) at /test/10.6_dbg/sql/sql_connect.cc:1312
#18 0x000055dd417e4bc1 in pfs_spawn_thread (arg=0x55dd4376f348) at /test/10.6_dbg/storage/perfschema/pfs.cc:2201
#19 0x00001462ce536609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#20 0x00001462ce125293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

10.5.11 4d53a7585c532c2cfcea184259e3153f95b35683 (Debug)

mysqld: /test/10.5_dbg/wsrep-lib/src/client_state.cpp:329: void wsrep::client_state::streaming_params(wsrep::streaming_context::fragment_unit, size_t): Assertion `mode_ == m_local' failed.

10.5.11 4d53a7585c532c2cfcea184259e3153f95b35683 (Debug)

Core was generated by `/test/GAL_MD120521-mariadb-10.5.11-linux-x86_64-dbg/bin/mysqld --defaults-file='.
Program terminated with signal SIGABRT, Aborted.
#0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6)
    at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
[Current thread is 1 (Thread 0x14a264066700 (LWP 857593))]
(gdb) bt
#0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
#1  0x000055bca800233c in my_write_core (sig=sig@entry=6) at /test/10.5_dbg/mysys/stacktrace.c:424
#2  0x000055bca7748830 in handle_fatal_signal (sig=6) at /test/10.5_dbg/sql/signal_handler.cc:343
#3  <signal handler called>
#4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#5  0x000014a267d83859 in __GI_abort () at abort.c:79
#6  0x000014a267d83729 in __assert_fail_base (fmt=0x14a267f19588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55bca86fcbe9 "mode_ == m_local", file=0x55bca86fb998 "/test/10.5_dbg/wsrep-lib/src/client_state.cpp", line=329, function=<optimized out>) at assert.c:92
#7  0x000014a267d94f36 in __GI___assert_fail (assertion=assertion@entry=0x55bca86fcbe9 "mode_ == m_local", file=file@entry=0x55bca86fb998 "/test/10.5_dbg/wsrep-lib/src/client_state.cpp", line=line@entry=329, function=function@entry=0x55bca86fbb88 "void wsrep::client_state::streaming_params(wsrep::streaming_context::fragment_unit, size_t)") at assert.c:101
#8  0x000055bca811a617 in wsrep::client_state::streaming_params (this=this@entry=0x14a1d8007240, fragment_unit=fragment_unit@entry=wsrep::streaming_context::bytes, fragment_size=fragment_size@entry=0) at /test/10.5_dbg/wsrep-lib/include/wsrep/transaction.hpp:223
#9  0x000055bca7468d10 in Wsrep_load_data_split::~Wsrep_load_data_split (this=<synthetic pointer>, __in_chrg=<optimized out>) at /test/10.5_dbg/sql/sql_class.h:5102
#10 mysql_load (thd=thd@entry=0x14a1d8000db8, ex=0x14a1d8013e00, table_list=table_list@entry=0x14a1d8013e88, fields_vars=@0x14a1d8005e38: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x14a1d8014730, last = 0x14a1d8014730, elements = 1}, <No data fields>}, set_fields=@0x14a1d8005e68: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55bca8ab6f00 <end_of_list>, last = 0x14a1d8005e68, elements = 0}, <No data fields>}, set_values=@0x14a1d8005e50: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55bca8ab6f00 <end_of_list>, last = 0x14a1d8005e50, elements = 0}, <No data fields>}, handle_duplicates=DUP_ERROR, ignore=<optimized out>, read_file_from_client=false) at /test/10.5_dbg/sql/sql_load.cc:356
#11 0x000055bca7483377 in mysql_execute_command (thd=thd@entry=0x14a1d8000db8) at /test/10.5_dbg/sql/sql_parse.cc:5086
#12 0x000055bca746bc3e in mysql_parse (thd=thd@entry=0x14a1d8000db8, rawbuf=rawbuf@entry=0x14a1d8013cf0 "LOAD DATA INFILE './t1.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\\n'", length=length@entry=73, parser_state=parser_state@entry=0x14a2640653d0, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.5_dbg/sql/sql_parse.cc:8099
#13 0x000055bca746b569 in wsrep_mysql_parse (thd=thd@entry=0x14a1d8000db8, rawbuf=0x14a1d8013cf0 "LOAD DATA INFILE './t1.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\\n'", length=73, parser_state=parser_state@entry=0x14a2640653d0, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.5_dbg/sql/sql_parse.cc:7902
#14 0x000055bca747af48 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x14a1d8000db8, packet=packet@entry=0x14a1d800b4a9 "LOAD DATA INFILE './t1.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\\n'", packet_length=packet_length@entry=73, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.5_dbg/sql/sql_class.h:1271
#15 0x000055bca747e7b6 in do_command (thd=0x14a1d8000db8) at /test/10.5_dbg/sql/sql_parse.cc:1370
#16 0x000055bca75dc0e2 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55bcab3dc9b8, put_in_cache=put_in_cache@entry=true) at /test/10.5_dbg/sql/sql_connect.cc:1410
#17 0x000055bca75dc7e9 in handle_one_connection (arg=arg@entry=0x55bcab3dc9b8) at /test/10.5_dbg/sql/sql_connect.cc:1312
#18 0x000055bca7a988b5 in pfs_spawn_thread (arg=0x55bcab430e98) at /test/10.5_dbg/storage/perfschema/pfs.cc:2201
#19 0x000014a268291609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#20 0x000014a267e80293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

10.4.20 b2bb747f8cf56cf01dc571ffd8be195b95f0c0e8 (Debug)

mysqld: /test/10.4_dbg/wsrep-lib/src/client_state.cpp:329: void wsrep::client_state::streaming_params(wsrep::streaming_context::fragment_unit, size_t): Assertion `mode_ == m_local' failed.

10.4.20 b2bb747f8cf56cf01dc571ffd8be195b95f0c0e8 (Debug)

Core was generated by `/test/GAL_MD120521-mariadb-10.4.20-linux-x86_64-dbg/bin/mysqld --defaults-file='.
Program terminated with signal SIGABRT, Aborted.
#0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6)
    at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
[Current thread is 1 (Thread 0x14d63c080700 (LWP 862566))]
(gdb) bt
#0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
#1  0x0000560b982064bd in my_write_core (sig=sig@entry=6) at /test/10.4_dbg/mysys/stacktrace.c:386
#2  0x0000560b9790e360 in handle_fatal_signal (sig=6) at /test/10.4_dbg/sql/signal_handler.cc:356
#3  <signal handler called>
#4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#5  0x000014d673c06859 in __GI_abort () at abort.c:79
#6  0x000014d673c06729 in __assert_fail_base (fmt=0x14d673d9c588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x560b9882faa9 "mode_ == m_local", file=0x560b9882e858 "/test/10.4_dbg/wsrep-lib/src/client_state.cpp", line=329, function=<optimized out>) at assert.c:92
#7  0x000014d673c17f36 in __GI___assert_fail (assertion=assertion@entry=0x560b9882faa9 "mode_ == m_local", file=file@entry=0x560b9882e858 "/test/10.4_dbg/wsrep-lib/src/client_state.cpp", line=line@entry=329, function=function@entry=0x560b9882ea48 "void wsrep::client_state::streaming_params(wsrep::streaming_context::fragment_unit, size_t)") at assert.c:101
#8  0x0000560b9828baf3 in wsrep::client_state::streaming_params (this=this@entry=0x14d5d8006f68, fragment_unit=fragment_unit@entry=wsrep::streaming_context::bytes, fragment_size=fragment_size@entry=0) at /test/10.4_dbg/wsrep-lib/include/wsrep/transaction.hpp:223
#9  0x0000560b976287bc in Wsrep_load_data_split::~Wsrep_load_data_split (this=<synthetic pointer>, __in_chrg=<optimized out>) at /test/10.4_dbg/sql/sql_class.h:4939
#10 mysql_load (thd=thd@entry=0x14d5d8000d90, ex=0x14d5d8013348, table_list=table_list@entry=0x14d5d80133d0, fields_vars=@0x14d5d8005ba0: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x14d5d8013c38, last = 0x14d5d8013c38, elements = 1}, <No data fields>}, set_fields=@0x14d5d8005bd0: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x560b98bb98e0 <end_of_list>, last = 0x14d5d8005bd0, elements = 0}, <No data fields>}, set_values=@0x14d5d8005bb8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x560b98bb98e0 <end_of_list>, last = 0x14d5d8005bb8, elements = 0}, <No data fields>}, handle_duplicates=DUP_ERROR, ignore=<optimized out>, read_file_from_client=false) at /test/10.4_dbg/sql/sql_load.cc:356
#11 0x0000560b9763a144 in mysql_execute_command (thd=thd@entry=0x14d5d8000d90) at /test/10.4_dbg/sql/sql_parse.cc:5013
#12 0x0000560b97640b9c in mysql_parse (thd=thd@entry=0x14d5d8000d90, rawbuf=rawbuf@entry=0x14d5d8013238 "LOAD DATA INFILE './t1.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\\n'", length=length@entry=73, parser_state=parser_state@entry=0x14d63c07f490, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.4_dbg/sql/sql_parse.cc:7995
#13 0x0000560b97641c51 in wsrep_mysql_parse (thd=thd@entry=0x14d5d8000d90, rawbuf=0x14d5d8013238 "LOAD DATA INFILE './t1.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\\n'", length=73, parser_state=parser_state@entry=0x14d63c07f490, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.4_dbg/sql/sql_parse.cc:7799
#14 0x0000560b976435ba in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x14d5d8000d90, packet=packet@entry=0x14d5d801b671 "LOAD DATA INFILE './t1.dat' IGNORE INTO TABLE t1 LINES TERMINATED BY '\\n'", packet_length=packet_length@entry=73, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.4_dbg/sql/sql_class.h:1184
#15 0x0000560b97646e46 in do_command (thd=0x14d5d8000d90) at /test/10.4_dbg/sql/sql_parse.cc:1373
#16 0x0000560b977820bd in do_handle_one_connection (connect=connect@entry=0x560b9aea71b0) at /test/10.4_dbg/sql/sql_connect.cc:1412
#17 0x0000560b977821dc in handle_one_connection (arg=0x560b9aea71b0) at /test/10.4_dbg/sql/sql_connect.cc:1316
#18 0x000014d674114609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#19 0x000014d673d03293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Bug confirmed present in:
MariaDB: 10.4.20 (dbg), 10.5.11 (dbg), 10.6.1 (dbg)

Bug (or feature/syntax) confirmed not present in:
MariaDB: 10.2.39 (dbg), 10.2.39 (dbg)



 Comments   
Comment by Jan Lindström [ 2023-09-08 ]
Generated at Thu Feb 08 09:39:55 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.