Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.3(EOL)
-
None
Description
The semisync ack thread finds LOCK_plugin mutex uninitialized at time
the thread is shut down due to an error in init_server_components():
#1 0x00007ffff64f337a in __GI_abort () at abort.c:89
|
#2 0x00005555566a0ce3 in safe_mutex_lock (mp=0x5555573a1dc0 <LOCK_plugin>, my_flags=0, file=0x5555567bb750 "/home/andrei/MDB/WTs/10.3/sql/sql_plugin.cc", line=3254) at thr_mutex.c:246
|
#3 0x0000555555c1dc9c in inline_mysql_mutex_lock (that=0x5555573a1dc0 <LOCK_plugin>, src_file=0x5555567bb750 "/home/andrei/MDB/WTs/10.3/sql/sql_plugin.cc", src_line=3254) at mysql_thread.h:710
|
#4 0x0000555555c26bae in plugin_thdvar_cleanup (thd=0x7fffe0001b98) at sql_plugin.cc:3254
|
#5 0x0000555555ba6833 in THD::free_connection (this=0x7fffe0001b98) at sql_class.cc:1650
|
#6 0x0000555555ba6bee in THD::~THD (this=0x7fffe0001b98, __in_chrg=<optimized out>) at sql_class.cc:1725
|
#7 0x0000555555ba7098 in THD::~THD (this=0x7fffe0001b98, __in_chrg=<optimized out>) at sql_class.cc:1780
|
#8 0x0000555555de24bf in Ack_receiver::run (this=0x5555573c4e00 <ack_receiver>) at semisync_master_ack_receiver.cc:301
|
#9 0x0000555555de1561 in ack_receive_handler (arg=0x5555573c4e00 <ack_receiver>) at semisync_master_ack_receiver.cc:35
|
#10 0x0000555556635872 in pfs_spawn_thread (arg=0x555557da92a8) at pfs.cc:1862
|
The mutex is actually destroyed few instructions earlier by another thread that
initiates the Ack thread exit:
#0 inline_mysql_mutex_destroy (that=0x5555573a1dc0 <LOCK_plugin>, src_file=0x5555567bb750 "/home/andrei/MDB/WTs/10.3/sql/sql_plugin.cc", src_line=2078) at mysql_thread.h:662
|
#1 0x0000555555c2347e in plugin_shutdown () at sql_plugin.cc:2078
|
#2 0x0000555555ae931e in clean_up (print_message=true) at mysqld.cc:2243
|
#3 0x0000555555ae9028 in unireg_abort (exit_code=2) at mysqld.cc:2159
|
#4 0x0000555555aefaf9 in init_server_components () at mysqld.cc:5421
|
#5 0x0000555555af0b1c in mysqld_main (argc=153, argv=0x555557c51698) at mysqld.cc:
|
Relocation semi_sync_master_deinit() to run before plugin_shutdown() deems to fix this case.