Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-26879

innodb_evict_tables_on_commit_debug=on makes table creation hang

Details

    Description

      After the set of commits for MDEV-25919 (I'm not sure which exactly commit, not all of them compile), setting innodb_evict_tables_on_commit_debug to ON makes table operations hang. It didn't happen before, and I don't see any obvious mention of it in commit comments, so I'm not sure whether it was intentional.

      --source include/have_innodb.inc
       
      SET GLOBAL innodb_evict_tables_on_commit_debug= on;
      CREATE TABLE t (a INT) ENGINE=InnoDB;
      

      10.6 0144d1d2

      [Thread debugging using libthread_db enabled]
      Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      0x00007fca779d3aff in __GI___poll (fds=0x55f6c2d15098, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
      29	../sysdeps/unix/sysv/linux/poll.c: No such file or directory.
       
      Thread 15 (Thread 0x7fca7417b700 (LWP 3457135)):
      #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
      #1  0x000055f6c06909e7 in srw_mutex_impl<false>::wait (this=0x55f6c1408188 <dict_sys+72>, lk=2147483650) at /data/src/10.6/storage/innobase/sync/srw_lock.cc:281
      #2  0x000055f6c068fa2c in srw_mutex_impl<false>::wait_and_lock (this=0x55f6c1408188 <dict_sys+72>) at /data/src/10.6/storage/innobase/sync/srw_lock.cc:391
      #3  0x000055f6c0483e51 in srw_mutex_impl<false>::wr_lock (this=0x55f6c1408188 <dict_sys+72>) at /data/src/10.6/storage/innobase/include/srw_lock.h:80
      #4  0x000055f6c048056e in ssux_lock_impl<false>::wr_lock (this=0x55f6c1408188 <dict_sys+72>) at /data/src/10.6/storage/innobase/include/srw_lock.h:228
      #5  0x000055f6c05623c0 in srw_lock_impl<false>::wr_lock (this=0x55f6c1408180 <dict_sys+64>, file=0x55f6c0d4da70 "/data/src/10.6/storage/innobase/lock/lock0lock.cc", line=3876) at /data/src/10.6/storage/innobase/include/srw_lock.h:469
      #6  0x000055f6c078b955 in dict_sys_t::lock_wait (this=0x55f6c1408140 <dict_sys>, file=0x55f6c0d4da70 "/data/src/10.6/storage/innobase/lock/lock0lock.cc", line=3876) at /data/src/10.6/storage/innobase/dict/dict0dict.cc:961
      #7  0x000055f6c047a66d in dict_sys_t::lock (this=0x55f6c1408140 <dict_sys>, file=0x55f6c0d4da70 "/data/src/10.6/storage/innobase/lock/lock0lock.cc", line=3876) at /data/src/10.6/storage/innobase/include/dict0dict.h:1571
      #8  0x000055f6c0512072 in lock_release (trx=0x7fca74a36390) at /data/src/10.6/storage/innobase/lock/lock0lock.cc:3876
      #9  0x000055f6c06c95ce in trx_t::release_locks (this=0x7fca74a36390) at /data/src/10.6/storage/innobase/trx/trx0trx.cc:490
      #10 0x000055f6c06ca199 in trx_t::commit_in_memory (this=0x7fca74a36390, mtr=0x7fca74177580) at /data/src/10.6/storage/innobase/trx/trx0trx.cc:1294
      #11 0x000055f6c06c5807 in trx_t::commit_low (this=0x7fca74a36390, mtr=0x7fca74177580) at /data/src/10.6/storage/innobase/trx/trx0trx.cc:1448
      #12 0x000055f6c06c5899 in trx_t::commit_persist (this=0x7fca74a36390) at /data/src/10.6/storage/innobase/trx/trx0trx.cc:1462
      #13 0x000055f6c07cbe4a in trx_t::commit (this=0x7fca74a36390, deleted=std::vector of length 0, capacity 0) at /data/src/10.6/storage/innobase/dict/drop.cc:233
      #14 0x000055f6c047fd00 in ha_innobase::create (this=0x7fca180322a0, name=0x7fca74179560 "./test/t", form=0x7fca74178100, create_info=0x7fca74179ac0, file_per_table=true, trx=0x7fca74a36390) at /data/src/10.6/storage/innobase/handler/ha_innodb.cc:13185
      #15 0x000055f6c04647ab in ha_innobase::create (this=0x7fca180322a0, name=0x7fca74179560 "./test/t", form=0x7fca74178100, create_info=0x7fca74179ac0) at /data/src/10.6/storage/innobase/handler/ha_innodb.cc:13212
      #16 0x000055f6c002d15c in handler::ha_create (this=0x7fca180322a0, name=0x7fca74179560 "./test/t", form=0x7fca74178100, info_arg=0x7fca74179ac0) at /data/src/10.6/sql/handler.cc:5422
      #17 0x000055f6c002e9c1 in ha_create_table (thd=0x7fca18000db8, path=0x7fca74179560 "./test/t", db=0x7fca18014938 "test", table_name=0x7fca18014220 "t", create_info=0x7fca74179ac0, frm=0x7fca74179550, skip_frm_file=false) at /data/src/10.6/sql/handler.cc:5887
      #18 0x000055f6bfd80360 in create_table_impl (thd=0x7fca18000db8, ddl_log_state_create=0x7fca741797f0, ddl_log_state_rm=0x7fca74179810, orig_db=..., orig_table_name=..., db=..., table_name=..., path=..., options=..., create_info=0x7fca74179ac0, alter_info=0x7fca741799d0, create_table_mode=0, is_trans=0x7fca741797ce, key_info=0x7fca74179530, key_count=0x7fca74179524, frm=0x7fca74179550) at /data/src/10.6/sql/sql_table.cc:4447
      #19 0x000055f6bfd8082d in mysql_create_table_no_lock (thd=0x7fca18000db8, ddl_log_state_create=0x7fca741797f0, ddl_log_state_rm=0x7fca74179810, db=0x7fca18014270, table_name=0x7fca18014280, create_info=0x7fca74179ac0, alter_info=0x7fca741799d0, is_trans=0x7fca741797ce, create_table_mode=0, table_list=0x7fca18014258) at /data/src/10.6/sql/sql_table.cc:4546
      #20 0x000055f6bfd80dbe in mysql_create_table (thd=0x7fca18000db8, create_table=0x7fca18014258, create_info=0x7fca74179ac0, alter_info=0x7fca741799d0) at /data/src/10.6/sql/sql_table.cc:4658
      #21 0x000055f6bfd96a45 in Sql_cmd_create_table_like::execute (this=0x7fca180141f8, thd=0x7fca18000db8) at /data/src/10.6/sql/sql_table.cc:11778
      #22 0x000055f6bfc8d03d in mysql_execute_command (thd=0x7fca18000db8, is_called_from_prepared_stmt=false) at /data/src/10.6/sql/sql_parse.cc:5997
      #23 0x000055f6bfc931e9 in mysql_parse (thd=0x7fca18000db8, rawbuf=0x7fca18014150 "CREATE TABLE t (a INT) ENGINE=InnoDB", length=36, parser_state=0x7fca7417a480) at /data/src/10.6/sql/sql_parse.cc:8030
      #24 0x000055f6bfc7f619 in dispatch_command (command=COM_QUERY, thd=0x7fca18000db8, packet=0x7fca1800b769 "CREATE TABLE t (a INT) ENGINE=InnoDB", packet_length=36, blocking=true) at /data/src/10.6/sql/sql_parse.cc:1896
      #25 0x000055f6bfc7dfb5 in do_command (thd=0x7fca18000db8, blocking=true) at /data/src/10.6/sql/sql_parse.cc:1404
      #26 0x000055f6bfe3c05f in do_handle_one_connection (connect=0x55f6c2d60fc8, put_in_cache=true) at /data/src/10.6/sql/sql_connect.cc:1418
      #27 0x000055f6bfe3bcef in handle_one_connection (arg=0x55f6c2d7dc78) at /data/src/10.6/sql/sql_connect.cc:1312
      #28 0x000055f6c036c941 in pfs_spawn_thread (arg=0x55f6c2c890a8) at /data/src/10.6/storage/perfschema/pfs.cc:2201
      #29 0x00007fca77e0d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #30 0x00007fca779e0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Thread 14 (Thread 0x7fca741c6700 (LWP 3457132)):
      #0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55f6c15d00e8 <COND_manager+40>) at ../sysdeps/nptl/futex-internal.h:183
      #1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55f6c15d0028 <LOCK_manager+40>, cond=0x55f6c15d00c0 <COND_manager>) at pthread_cond_wait.c:508
      #2  __pthread_cond_wait (cond=0x55f6c15d00c0 <COND_manager>, mutex=0x55f6c15d0028 <LOCK_manager+40>) at pthread_cond_wait.c:638
      #3  0x000055f6c0913ed4 in safe_cond_wait (cond=0x55f6c15d00c0 <COND_manager>, mp=0x55f6c15d0000 <LOCK_manager>, file=0x55f6c0a1d920 "/data/src/10.6/include/mysql/psi/mysql_thread.h", line=1072) at /data/src/10.6/mysys/thr_mutex.c:492
      #4  0x000055f6bfc78e44 in inline_mysql_cond_wait (that=0x55f6c15d00c0 <COND_manager>, mutex=0x55f6c15d0000 <LOCK_manager>, src_file=0x55f6c0a1df70 "/data/src/10.6/sql/sql_manager.cc", src_line=103) at /data/src/10.6/include/mysql/psi/mysql_thread.h:1072
      #5  0x000055f6bfc79268 in handle_manager (arg=0x0) at /data/src/10.6/sql/sql_manager.cc:103
      #6  0x000055f6c036c941 in pfs_spawn_thread (arg=0x55f6c2d14d48) at /data/src/10.6/storage/perfschema/pfs.cc:2201
      #7  0x00007fca77e0d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #8  0x00007fca779e0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Thread 13 (Thread 0x7fca337fe700 (LWP 3457131)):
      #0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fca337fdb90, clockid=<optimized out>, expected=0, futex_word=0x55f6c28892e8) at ../sysdeps/nptl/futex-internal.h:320
      #1  __pthread_cond_wait_common (abstime=0x7fca337fdb90, clockid=<optimized out>, mutex=0x55f6c2879a30, cond=0x55f6c28892c0) at pthread_cond_wait.c:520
      #2  __pthread_cond_timedwait (cond=0x55f6c28892c0, mutex=0x55f6c2879a30, abstime=0x7fca337fdb90) at pthread_cond_wait.c:656
      #3  0x000055f6c0869655 in __gthread_cond_timedwait (__cond=0x55f6c28892c0, __mutex=0x55f6c2879a30, __abs_timeout=0x7fca337fdb90) at /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:872
      #4  0x000055f6c086c495 in std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=0x55f6c28892c0, __lock=..., __atime=...) at /usr/include/c++/9/condition_variable:188
      #5  0x000055f6c086b569 in std::condition_variable::wait_until<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=0x55f6c28892c0, __lock=..., __atime=...) at /usr/include/c++/9/condition_variable:121
      #6  0x000055f6c086a822 in std::condition_variable::wait_for<long, std::ratio<1l, 1000l> > (this=0x55f6c28892c0, __lock=..., __rtime=...) at /usr/include/c++/9/condition_variable:152
      #7  0x000055f6c0867ddd in tpool::thread_pool_generic::wait_for_tasks (this=0x55f6c2879920, lk=..., thread_data=0x55f6c28892c0) at /data/src/10.6/tpool/tpool_generic.cc:449
      #8  0x000055f6c0867fed in tpool::thread_pool_generic::get_task (this=0x55f6c2879920, thread_var=0x55f6c28892c0, t=0x7fca337fdcf8) at /data/src/10.6/tpool/tpool_generic.cc:502
      #9  0x000055f6c0868287 in tpool::thread_pool_generic::worker_main (this=0x55f6c2879920, thread_var=0x55f6c28892c0) at /data/src/10.6/tpool/tpool_generic.cc:547
      #10 0x000055f6c086f3a6 in std::__invoke_impl<void, void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__f=@0x7fca3c001028: (void (tpool::thread_pool_generic::*)(class tpool::thread_pool_generic * const, struct tpool::worker_data *)) 0x55f6c0868222 <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>, __t=@0x7fca3c001020: 0x55f6c2879920) at /usr/include/c++/9/bits/invoke.h:73
      #11 0x000055f6c086f288 in std::__invoke<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__fn=@0x7fca3c001028: (void (tpool::thread_pool_generic::*)(class tpool::thread_pool_generic * const, struct tpool::worker_data *)) 0x55f6c0868222 <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>) at /usr/include/c++/9/bits/invoke.h:95
      #12 0x000055f6c086f1a7 in std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::_M_invoke<0ul, 1ul, 2ul> (this=0x7fca3c001018) at /usr/include/c++/9/thread:244
      #13 0x000055f6c086f142 in std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::operator() (this=0x7fca3c001018) at /usr/include/c++/9/thread:251
      #14 0x000055f6c086f122 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> > >::_M_run (this=0x7fca3c001010) at /usr/include/c++/9/thread:195
      #15 0x00007fca77cf2de4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #16 0x00007fca77e0d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #17 0x00007fca779e0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Thread 12 (Thread 0x7fca33fff700 (LWP 3457130)):
      #0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fca33ffeb90, clockid=<optimized out>, expected=0, futex_word=0x55f6c2889368) at ../sysdeps/nptl/futex-internal.h:320
      #1  __pthread_cond_wait_common (abstime=0x7fca33ffeb90, clockid=<optimized out>, mutex=0x55f6c2879a30, cond=0x55f6c2889340) at pthread_cond_wait.c:520
      #2  __pthread_cond_timedwait (cond=0x55f6c2889340, mutex=0x55f6c2879a30, abstime=0x7fca33ffeb90) at pthread_cond_wait.c:656
      #3  0x000055f6c0869655 in __gthread_cond_timedwait (__cond=0x55f6c2889340, __mutex=0x55f6c2879a30, __abs_timeout=0x7fca33ffeb90) at /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:872
      #4  0x000055f6c086c495 in std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=0x55f6c2889340, __lock=..., __atime=...) at /usr/include/c++/9/condition_variable:188
      #5  0x000055f6c086b569 in std::condition_variable::wait_until<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=0x55f6c2889340, __lock=..., __atime=...) at /usr/include/c++/9/condition_variable:121
      #6  0x000055f6c086a822 in std::condition_variable::wait_for<long, std::ratio<1l, 1000l> > (this=0x55f6c2889340, __lock=..., __rtime=...) at /usr/include/c++/9/condition_variable:152
      #7  0x000055f6c0867ddd in tpool::thread_pool_generic::wait_for_tasks (this=0x55f6c2879920, lk=..., thread_data=0x55f6c2889340) at /data/src/10.6/tpool/tpool_generic.cc:449
      #8  0x000055f6c0867fed in tpool::thread_pool_generic::get_task (this=0x55f6c2879920, thread_var=0x55f6c2889340, t=0x7fca33ffecf8) at /data/src/10.6/tpool/tpool_generic.cc:502
      #9  0x000055f6c0868287 in tpool::thread_pool_generic::worker_main (this=0x55f6c2879920, thread_var=0x55f6c2889340) at /data/src/10.6/tpool/tpool_generic.cc:547
      #10 0x000055f6c086f3a6 in std::__invoke_impl<void, void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__f=@0x7fca3c000e98: (void (tpool::thread_pool_generic::*)(class tpool::thread_pool_generic * const, struct tpool::worker_data *)) 0x55f6c0868222 <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>, __t=@0x7fca3c000e90: 0x55f6c2879920) at /usr/include/c++/9/bits/invoke.h:73
      #11 0x000055f6c086f288 in std::__invoke<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__fn=@0x7fca3c000e98: (void (tpool::thread_pool_generic::*)(class tpool::thread_pool_generic * const, struct tpool::worker_data *)) 0x55f6c0868222 <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>) at /usr/include/c++/9/bits/invoke.h:95
      #12 0x000055f6c086f1a7 in std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::_M_invoke<0ul, 1ul, 2ul> (this=0x7fca3c000e88) at /usr/include/c++/9/thread:244
      #13 0x000055f6c086f142 in std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::operator() (this=0x7fca3c000e88) at /usr/include/c++/9/thread:251
      #14 0x000055f6c086f122 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> > >::_M_run (this=0x7fca3c000e80) at /usr/include/c++/9/thread:195
      #15 0x00007fca77cf2de4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #16 0x00007fca77e0d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #17 0x00007fca779e0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Thread 11 (Thread 0x7fca50ffb700 (LWP 3457129)):
      #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
      #1  0x000055f6c06909e7 in srw_mutex_impl<false>::wait (this=0x55f6c1408188 <dict_sys+72>, lk=2147483652) at /data/src/10.6/storage/innobase/sync/srw_lock.cc:281
      #2  0x000055f6c068fa2c in srw_mutex_impl<false>::wait_and_lock (this=0x55f6c1408188 <dict_sys+72>) at /data/src/10.6/storage/innobase/sync/srw_lock.cc:391
      #3  0x000055f6c0483e51 in srw_mutex_impl<false>::wr_lock (this=0x55f6c1408188 <dict_sys+72>) at /data/src/10.6/storage/innobase/include/srw_lock.h:80
      #4  0x000055f6c0690516 in ssux_lock_impl<false>::rd_wait (this=0x55f6c1408188 <dict_sys+72>) at /data/src/10.6/storage/innobase/sync/srw_lock.cc:453
      #5  0x000055f6c05f98c1 in ssux_lock_impl<false>::rd_lock (this=0x55f6c1408188 <dict_sys+72>) at /data/src/10.6/storage/innobase/include/srw_lock.h:218
      #6  0x000055f6c0694c4e in srw_lock_impl<false>::rd_lock (this=0x55f6c1408180 <dict_sys+64>, file=0x55f6c0e138e0 "/data/src/10.6/storage/innobase/dict/dict0dict.cc", line=834) at /data/src/10.6/storage/innobase/include/srw_lock.h:456
      #7  0x000055f6c078bf2d in dict_sys_t::freeze (this=0x55f6c1408140 <dict_sys>, file=0x55f6c0e138e0 "/data/src/10.6/storage/innobase/dict/dict0dict.cc", line=834) at /data/src/10.6/storage/innobase/dict/dict0dict.cc:997
      #8  0x000055f6c078b328 in dict_table_open_on_id (table_id=1, dict_locked=false, table_op=DICT_TABLE_OP_NORMAL, thd=0x55f6c2c7f078, mdl=0x55f6c2bf9cc8) at /data/src/10.6/storage/innobase/dict/dict0dict.cc:834
      #9  0x000055f6c063eeed in row_purge_parse_undo_rec (node=0x55f6c2bf9b28, undo_rec=0x55f6c2c0b0e8 "", thr=0x55f6c2bf9938, updated_extern=0x7fca50ffab22) at /data/src/10.6/storage/innobase/row/row0purge.cc:1028
      #10 0x000055f6c063f86b in row_purge (node=0x55f6c2bf9b28, undo_rec=0x55f6c2c0b0e8 "", thr=0x55f6c2bf9938) at /data/src/10.6/storage/innobase/row/row0purge.cc:1206
      #11 0x000055f6c063fa26 in row_purge_step (thr=0x55f6c2bf9938) at /data/src/10.6/storage/innobase/row/row0purge.cc:1258
      #12 0x000055f6c05b1a16 in que_thr_step (thr=0x55f6c2bf9938) at /data/src/10.6/storage/innobase/que/que0que.cc:653
      #13 0x000055f6c05b1c8b in que_run_threads_low (thr=0x55f6c2bf9938) at /data/src/10.6/storage/innobase/que/que0que.cc:709
      #14 0x000055f6c05b1da3 in que_run_threads (thr=0x55f6c2bf9938) at /data/src/10.6/storage/innobase/que/que0que.cc:729
      #15 0x000055f6c068302d in srv_task_execute () at /data/src/10.6/storage/innobase/srv/srv0srv.cc:1711
      #16 0x000055f6c06835c7 in purge_worker_callback () at /data/src/10.6/storage/innobase/srv/srv0srv.cc:1954
      #17 0x000055f6c086f59e in tpool::task_group::execute (this=0x55f6c1e99dc0 <purge_task_group>, t=0x55f6c1e999e0 <purge_worker_task>) at /data/src/10.6/tpool/task_group.cc:55
      #18 0x000055f6c086f8d8 in tpool::task::execute (this=0x55f6c1e999e0 <purge_worker_task>) at /data/src/10.6/tpool/task.cc:32
      #19 0x000055f6c08682bb in tpool::thread_pool_generic::worker_main (this=0x55f6c2879920, thread_var=0x55f6c28893c0) at /data/src/10.6/tpool/tpool_generic.cc:549
      #20 0x000055f6c086f3a6 in std::__invoke_impl<void, void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__f=@0x55f6c2c0cc48: (void (tpool::thread_pool_generic::*)(class tpool::thread_pool_generic * const, struct tpool::worker_data *)) 0x55f6c0868222 <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>, __t=@0x55f6c2c0cc40: 0x55f6c2879920) at /usr/include/c++/9/bits/invoke.h:73
      #21 0x000055f6c086f288 in std::__invoke<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__fn=@0x55f6c2c0cc48: (void (tpool::thread_pool_generic::*)(class tpool::thread_pool_generic * const, struct tpool::worker_data *)) 0x55f6c0868222 <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>) at /usr/include/c++/9/bits/invoke.h:95
      #22 0x000055f6c086f1a7 in std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::_M_invoke<0ul, 1ul, 2ul> (this=0x55f6c2c0cc38) at /usr/include/c++/9/thread:244
      #23 0x000055f6c086f142 in std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::operator() (this=0x55f6c2c0cc38) at /usr/include/c++/9/thread:251
      #24 0x000055f6c086f122 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> > >::_M_run (this=0x55f6c2c0cc30) at /usr/include/c++/9/thread:195
      #25 0x00007fca77cf2de4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #26 0x00007fca77e0d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #27 0x00007fca779e0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Thread 10 (Thread 0x7fca74211700 (LWP 3457128)):
      #0  0x00007fca77905322 in __GI___sigtimedwait (set=0x7fca74210d50, info=0x7fca74210c70, timeout=0x0) at ../sysdeps/unix/sysv/linux/sigtimedwait.c:29
      #1  0x000055f6bfb28a79 in my_sigwait (set=0x7fca74210d50, sig=0x7fca74210d14, code=0x7fca74210d18) at /data/src/10.6/include/my_pthread.h:195
      #2  0x000055f6bfb2ed0e in signal_hand (arg=0x0) at /data/src/10.6/sql/mysqld.cc:3113
      #3  0x000055f6c036c941 in pfs_spawn_thread (arg=0x55f6c286b6a8) at /data/src/10.6/storage/perfschema/pfs.cc:2201
      #4  0x00007fca77e0d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #5  0x00007fca779e0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Thread 9 (Thread 0x7fca517fc700 (LWP 3457127)):
      #0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fca517fbb90, clockid=<optimized out>, expected=0, futex_word=0x55f6c2889468) at ../sysdeps/nptl/futex-internal.h:320
      #1  __pthread_cond_wait_common (abstime=0x7fca517fbb90, clockid=<optimized out>, mutex=0x55f6c2879a30, cond=0x55f6c2889440) at pthread_cond_wait.c:520
      #2  __pthread_cond_timedwait (cond=0x55f6c2889440, mutex=0x55f6c2879a30, abstime=0x7fca517fbb90) at pthread_cond_wait.c:656
      #3  0x000055f6c0869655 in __gthread_cond_timedwait (__cond=0x55f6c2889440, __mutex=0x55f6c2879a30, __abs_timeout=0x7fca517fbb90) at /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:872
      #4  0x000055f6c086c495 in std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=0x55f6c2889440, __lock=..., __atime=...) at /usr/include/c++/9/condition_variable:188
      #5  0x000055f6c086b569 in std::condition_variable::wait_until<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=0x55f6c2889440, __lock=..., __atime=...) at /usr/include/c++/9/condition_variable:121
      #6  0x000055f6c086a822 in std::condition_variable::wait_for<long, std::ratio<1l, 1000l> > (this=0x55f6c2889440, __lock=..., __rtime=...) at /usr/include/c++/9/condition_variable:152
      #7  0x000055f6c0867ddd in tpool::thread_pool_generic::wait_for_tasks (this=0x55f6c2879920, lk=..., thread_data=0x55f6c2889440) at /data/src/10.6/tpool/tpool_generic.cc:449
      #8  0x000055f6c0867fed in tpool::thread_pool_generic::get_task (this=0x55f6c2879920, thread_var=0x55f6c2889440, t=0x7fca517fbcf8) at /data/src/10.6/tpool/tpool_generic.cc:502
      #9  0x000055f6c0868287 in tpool::thread_pool_generic::worker_main (this=0x55f6c2879920, thread_var=0x55f6c2889440) at /data/src/10.6/tpool/tpool_generic.cc:547
      #10 0x000055f6c086f3a6 in std::__invoke_impl<void, void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__f=@0x7fca3c000d08: (void (tpool::thread_pool_generic::*)(class tpool::thread_pool_generic * const, struct tpool::worker_data *)) 0x55f6c0868222 <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>, __t=@0x7fca3c000d00: 0x55f6c2879920) at /usr/include/c++/9/bits/invoke.h:73
      #11 0x000055f6c086f288 in std::__invoke<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__fn=@0x7fca3c000d08: (void (tpool::thread_pool_generic::*)(class tpool::thread_pool_generic * const, struct tpool::worker_data *)) 0x55f6c0868222 <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>) at /usr/include/c++/9/bits/invoke.h:95
      #12 0x000055f6c086f1a7 in std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::_M_invoke<0ul, 1ul, 2ul> (this=0x7fca3c000cf8) at /usr/include/c++/9/thread:244
      #13 0x000055f6c086f142 in std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::operator() (this=0x7fca3c000cf8) at /usr/include/c++/9/thread:251
      #14 0x000055f6c086f122 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> > >::_M_run (this=0x7fca3c000cf0) at /usr/include/c++/9/thread:195
      #15 0x00007fca77cf2de4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #16 0x00007fca77e0d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #17 0x00007fca779e0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Thread 8 (Thread 0x7fca51ffd700 (LWP 3457126)):
      #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
      #1  0x000055f6c06909e7 in srw_mutex_impl<false>::wait (this=0x55f6c1408188 <dict_sys+72>, lk=2147483651) at /data/src/10.6/storage/innobase/sync/srw_lock.cc:281
      #2  0x000055f6c068fa2c in srw_mutex_impl<false>::wait_and_lock (this=0x55f6c1408188 <dict_sys+72>) at /data/src/10.6/storage/innobase/sync/srw_lock.cc:391
      #3  0x000055f6c0483e51 in srw_mutex_impl<false>::wr_lock (this=0x55f6c1408188 <dict_sys+72>) at /data/src/10.6/storage/innobase/include/srw_lock.h:80
      #4  0x000055f6c0690516 in ssux_lock_impl<false>::rd_wait (this=0x55f6c1408188 <dict_sys+72>) at /data/src/10.6/storage/innobase/sync/srw_lock.cc:453
      #5  0x000055f6c05f98c1 in ssux_lock_impl<false>::rd_lock (this=0x55f6c1408188 <dict_sys+72>) at /data/src/10.6/storage/innobase/include/srw_lock.h:218
      #6  0x000055f6c0694c4e in srw_lock_impl<false>::rd_lock (this=0x55f6c1408180 <dict_sys+64>, file=0x55f6c0e138e0 "/data/src/10.6/storage/innobase/dict/dict0dict.cc", line=834) at /data/src/10.6/storage/innobase/include/srw_lock.h:456
      #7  0x000055f6c078bf2d in dict_sys_t::freeze (this=0x55f6c1408140 <dict_sys>, file=0x55f6c0e138e0 "/data/src/10.6/storage/innobase/dict/dict0dict.cc", line=834) at /data/src/10.6/storage/innobase/dict/dict0dict.cc:997
      #8  0x000055f6c078b328 in dict_table_open_on_id (table_id=2, dict_locked=false, table_op=DICT_TABLE_OP_NORMAL, thd=0x55f6c2c378a8, mdl=0x55f6c2bf9f78) at /data/src/10.6/storage/innobase/dict/dict0dict.cc:834
      #9  0x000055f6c063eeed in row_purge_parse_undo_rec (node=0x55f6c2bf9dd8, undo_rec=0x55f6c2c0b0f8 "", thr=0x55f6c2bf9d38, updated_extern=0x7fca51ffca32) at /data/src/10.6/storage/innobase/row/row0purge.cc:1028
      #10 0x000055f6c063f86b in row_purge (node=0x55f6c2bf9dd8, undo_rec=0x55f6c2c0b0f8 "", thr=0x55f6c2bf9d38) at /data/src/10.6/storage/innobase/row/row0purge.cc:1206
      #11 0x000055f6c063fa26 in row_purge_step (thr=0x55f6c2bf9d38) at /data/src/10.6/storage/innobase/row/row0purge.cc:1258
      #12 0x000055f6c05b1a16 in que_thr_step (thr=0x55f6c2bf9d38) at /data/src/10.6/storage/innobase/que/que0que.cc:653
      #13 0x000055f6c05b1c8b in que_run_threads_low (thr=0x55f6c2bf9d38) at /data/src/10.6/storage/innobase/que/que0que.cc:709
      #14 0x000055f6c05b1da3 in que_run_threads (thr=0x55f6c2bf9d38) at /data/src/10.6/storage/innobase/que/que0que.cc:729
      #15 0x000055f6c069ab15 in trx_purge (n_tasks=2, truncate=false) at /data/src/10.6/storage/innobase/trx/trx0purge.cc:1276
      #16 0x000055f6c0684945 in purge_coordinator_state::do_purge (this=0x55f6c1e99c40 <purge_state>) at /data/src/10.6/storage/innobase/srv/srv0srv.cc:1809
      #17 0x000055f6c0683691 in purge_coordinator_callback () at /data/src/10.6/storage/innobase/srv/srv0srv.cc:1963
      #18 0x000055f6c086f59e in tpool::task_group::execute (this=0x55f6c1e99e60 <purge_coordinator_task_group>, t=0x55f6c1e99f00 <purge_coordinator_task>) at /data/src/10.6/tpool/task_group.cc:55
      #19 0x000055f6c086f8d8 in tpool::task::execute (this=0x55f6c1e99f00 <purge_coordinator_task>) at /data/src/10.6/tpool/task.cc:32
      #20 0x000055f6c08682bb in tpool::thread_pool_generic::worker_main (this=0x55f6c2879920, thread_var=0x55f6c28894c0) at /data/src/10.6/tpool/tpool_generic.cc:549
      #21 0x000055f6c086f3a6 in std::__invoke_impl<void, void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__f=@0x7fca3c000b78: (void (tpool::thread_pool_generic::*)(class tpool::thread_pool_generic * const, struct tpool::worker_data *)) 0x55f6c0868222 <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>, __t=@0x7fca3c000b70: 0x55f6c2879920) at /usr/include/c++/9/bits/invoke.h:73
      #22 0x000055f6c086f288 in std::__invoke<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__fn=@0x7fca3c000b78: (void (tpool::thread_pool_generic::*)(class tpool::thread_pool_generic * const, struct tpool::worker_data *)) 0x55f6c0868222 <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>) at /usr/include/c++/9/bits/invoke.h:95
      #23 0x000055f6c086f1a7 in std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::_M_invoke<0ul, 1ul, 2ul> (this=0x7fca3c000b68) at /usr/include/c++/9/thread:244
      #24 0x000055f6c086f142 in std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::operator() (this=0x7fca3c000b68) at /usr/include/c++/9/thread:251
      #25 0x000055f6c086f122 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> > >::_M_run (this=0x7fca3c000b60) at /usr/include/c++/9/thread:195
      #26 0x00007fca77cf2de4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #27 0x00007fca77e0d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #28 0x00007fca779e0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Thread 7 (Thread 0x7fca527fe700 (LWP 3457125)):
      #0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fca527fdb90, clockid=<optimized out>, expected=0, futex_word=0x55f6c288956c) at ../sysdeps/nptl/futex-internal.h:320
      #1  __pthread_cond_wait_common (abstime=0x7fca527fdb90, clockid=<optimized out>, mutex=0x55f6c2879a30, cond=0x55f6c2889540) at pthread_cond_wait.c:520
      #2  __pthread_cond_timedwait (cond=0x55f6c2889540, mutex=0x55f6c2879a30, abstime=0x7fca527fdb90) at pthread_cond_wait.c:656
      #3  0x000055f6c0869655 in __gthread_cond_timedwait (__cond=0x55f6c2889540, __mutex=0x55f6c2879a30, __abs_timeout=0x7fca527fdb90) at /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:872
      #4  0x000055f6c086c495 in std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=0x55f6c2889540, __lock=..., __atime=...) at /usr/include/c++/9/condition_variable:188
      #5  0x000055f6c086b569 in std::condition_variable::wait_until<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=0x55f6c2889540, __lock=..., __atime=...) at /usr/include/c++/9/condition_variable:121
      #6  0x000055f6c086a822 in std::condition_variable::wait_for<long, std::ratio<1l, 1000l> > (this=0x55f6c2889540, __lock=..., __rtime=...) at /usr/include/c++/9/condition_variable:152
      #7  0x000055f6c0867ddd in tpool::thread_pool_generic::wait_for_tasks (this=0x55f6c2879920, lk=..., thread_data=0x55f6c2889540) at /data/src/10.6/tpool/tpool_generic.cc:449
      #8  0x000055f6c0867fed in tpool::thread_pool_generic::get_task (this=0x55f6c2879920, thread_var=0x55f6c2889540, t=0x7fca527fdcf8) at /data/src/10.6/tpool/tpool_generic.cc:502
      #9  0x000055f6c0868287 in tpool::thread_pool_generic::worker_main (this=0x55f6c2879920, thread_var=0x55f6c2889540) at /data/src/10.6/tpool/tpool_generic.cc:547
      #10 0x000055f6c086f3a6 in std::__invoke_impl<void, void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__f=@0x7fca70002248: (void (tpool::thread_pool_generic::*)(tpool::thread_pool_generic * const, tpool::worker_data *)) 0x55f6c0868222 <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>, __t=@0x7fca70002240: 0x55f6c2879920) at /usr/include/c++/9/bits/invoke.h:73
      #11 0x000055f6c086f288 in std::__invoke<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__fn=@0x7fca70002248: (void (tpool::thread_pool_generic::*)(tpool::thread_pool_generic * const, tpool::worker_data *)) 0x55f6c0868222 <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>) at /usr/include/c++/9/bits/invoke.h:95
      #12 0x000055f6c086f1a7 in std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::_M_invoke<0ul, 1ul, 2ul> (this=0x7fca70002238) at /usr/include/c++/9/thread:244
      #13 0x000055f6c086f142 in std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::operator() (this=0x7fca70002238) at /usr/include/c++/9/thread:251
      #14 0x000055f6c086f122 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> > >::_M_run (this=0x7fca70002230) at /usr/include/c++/9/thread:195
      #15 0x00007fca77cf2de4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #16 0x00007fca77e0d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #17 0x00007fca779e0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Thread 6 (Thread 0x7fca52fff700 (LWP 3457124)):
      #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
      #1  0x000055f6c06909e7 in srw_mutex_impl<false>::wait (this=0x55f6c1408188 <dict_sys+72>, lk=2147483653) at /data/src/10.6/storage/innobase/sync/srw_lock.cc:281
      #2  0x000055f6c068fa2c in srw_mutex_impl<false>::wait_and_lock (this=0x55f6c1408188 <dict_sys+72>) at /data/src/10.6/storage/innobase/sync/srw_lock.cc:391
      #3  0x000055f6c0483e51 in srw_mutex_impl<false>::wr_lock (this=0x55f6c1408188 <dict_sys+72>) at /data/src/10.6/storage/innobase/include/srw_lock.h:80
      #4  0x000055f6c048056e in ssux_lock_impl<false>::wr_lock (this=0x55f6c1408188 <dict_sys+72>) at /data/src/10.6/storage/innobase/include/srw_lock.h:228
      #5  0x000055f6c05623c0 in srw_lock_impl<false>::wr_lock (this=0x55f6c1408180 <dict_sys+64>, file=0x55f6c0e138e0 "/data/src/10.6/storage/innobase/dict/dict0dict.cc", line=1299) at /data/src/10.6/storage/innobase/include/srw_lock.h:469
      #6  0x000055f6c078bc81 in dict_sys_t::lock_wait (this=0x55f6c1408140 <dict_sys>, file=0x55f6c0e138e0 "/data/src/10.6/storage/innobase/dict/dict0dict.cc", line=1299) at /data/src/10.6/storage/innobase/dict/dict0dict.cc:980
      #7  0x000055f6c047a66d in dict_sys_t::lock (this=0x55f6c1408140 <dict_sys>, file=0x55f6c0e138e0 "/data/src/10.6/storage/innobase/dict/dict0dict.cc", line=1299) at /data/src/10.6/storage/innobase/include/dict0dict.h:1571
      #8  0x000055f6c078d28b in dict_sys_t::evict_table_LRU (this=0x55f6c1408140 <dict_sys>, half=false) at /data/src/10.6/storage/innobase/dict/dict0dict.cc:1299
      #9  0x000055f6c068285e in srv_master_do_idle_tasks (counter_time=1812306884636) at /data/src/10.6/storage/innobase/srv/srv0srv.cc:1600
      #10 0x000055f6c0682c79 in srv_master_callback () at /data/src/10.6/storage/innobase/srv/srv0srv.cc:1658
      #11 0x000055f6c0869b12 in tpool::thread_pool_generic::timer_generic::run (this=0x55f6c2c2a620) at /data/src/10.6/tpool/tpool_generic.cc:313
      #12 0x000055f6c0869c30 in tpool::thread_pool_generic::timer_generic::execute (arg=0x55f6c2c2a620) at /data/src/10.6/tpool/tpool_generic.cc:332
      #13 0x000055f6c086f8ef in tpool::task::execute (this=0x55f6c2c2a660) at /data/src/10.6/tpool/task.cc:37
      #14 0x000055f6c08682bb in tpool::thread_pool_generic::worker_main (this=0x55f6c2879920, thread_var=0x55f6c28895c0) at /data/src/10.6/tpool/tpool_generic.cc:549
      #15 0x000055f6c086f3a6 in std::__invoke_impl<void, void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__f=@0x55f6c2c23088: (void (tpool::thread_pool_generic::*)(class tpool::thread_pool_generic * const, struct tpool::worker_data *)) 0x55f6c0868222 <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>, __t=@0x55f6c2c23080: 0x55f6c2879920) at /usr/include/c++/9/bits/invoke.h:73
      #16 0x000055f6c086f288 in std::__invoke<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__fn=@0x55f6c2c23088: (void (tpool::thread_pool_generic::*)(class tpool::thread_pool_generic * const, struct tpool::worker_data *)) 0x55f6c0868222 <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>) at /usr/include/c++/9/bits/invoke.h:95
      #17 0x000055f6c086f1a7 in std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::_M_invoke<0ul, 1ul, 2ul> (this=0x55f6c2c23078) at /usr/include/c++/9/thread:244
      #18 0x000055f6c086f142 in std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::operator() (this=0x55f6c2c23078) at /usr/include/c++/9/thread:251
      #19 0x000055f6c086f122 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> > >::_M_run (this=0x55f6c2c23070) at /usr/include/c++/9/thread:195
      #20 0x00007fca77cf2de4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #21 0x00007fca77e0d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #22 0x00007fca779e0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Thread 5 (Thread 0x7fca60d54700 (LWP 3457123)):
      #0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55f6c1406f28 <buf_pool+17576>) at ../sysdeps/nptl/futex-internal.h:183
      #1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55f6c1406e28 <buf_pool+17320>, cond=0x55f6c1406f00 <buf_pool+17536>) at pthread_cond_wait.c:508
      #2  __pthread_cond_wait (cond=0x55f6c1406f00 <buf_pool+17536>, mutex=0x55f6c1406e28 <buf_pool+17320>) at pthread_cond_wait.c:638
      #3  0x000055f6c0913ed4 in safe_cond_wait (cond=0x55f6c1406f00 <buf_pool+17536>, mp=0x55f6c1406e00 <buf_pool+17280>, file=0x55f6c0e033a0 "/data/src/10.6/storage/innobase/buf/buf0flu.cc", line=2203) at /data/src/10.6/mysys/thr_mutex.c:492
      #4  0x000055f6c0767f5e in buf_flush_page_cleaner () at /data/src/10.6/storage/innobase/buf/buf0flu.cc:2203
      #5  0x000055f6c076b541 in std::__invoke_impl<void, void (*)()> (__f=@0x55f6c2ab4be8: 0x55f6c0767c0d <buf_flush_page_cleaner()>) at /usr/include/c++/9/bits/invoke.h:60
      #6  0x000055f6c076b4ed in std::__invoke<void (*)()> (__fn=@0x55f6c2ab4be8: 0x55f6c0767c0d <buf_flush_page_cleaner()>) at /usr/include/c++/9/bits/invoke.h:95
      #7  0x000055f6c076b48e in std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul> (this=0x55f6c2ab4be8) at /usr/include/c++/9/thread:244
      #8  0x000055f6c076b460 in std::thread::_Invoker<std::tuple<void (*)()> >::operator() (this=0x55f6c2ab4be8) at /usr/include/c++/9/thread:251
      #9  0x000055f6c076b440 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run (this=0x55f6c2ab4be0) at /usr/include/c++/9/thread:195
      #10 0x00007fca77cf2de4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #11 0x00007fca77e0d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #12 0x00007fca779e0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Thread 4 (Thread 0x7fca74a12700 (LWP 3457122)):
      #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
      #1  0x000055f6c086fe2c in my_getevents (ctx=0x7fca74a13000, min_nr=1, nr=256, ev=0x7fca74a0fd20) at /data/src/10.6/tpool/aio_linux.cc:62
      #2  0x000055f6c086fff7 in tpool::aio_linux::getevent_thread_routine (aio=0x55f6c28798f0) at /data/src/10.6/tpool/aio_linux.cc:104
      #3  0x000055f6c0870ade in std::__invoke_impl<void, void (*)(tpool::aio_linux*), tpool::aio_linux*> (__f=@0x55f6c27ae680: 0x55f6c086ff9b <tpool::aio_linux::getevent_thread_routine(tpool::aio_linux*)>) at /usr/include/c++/9/bits/invoke.h:60
      #4  0x000055f6c0870a3e in std::__invoke<void (*)(tpool::aio_linux*), tpool::aio_linux*> (__fn=@0x55f6c27ae680: 0x55f6c086ff9b <tpool::aio_linux::getevent_thread_routine(tpool::aio_linux*)>) at /usr/include/c++/9/bits/invoke.h:95
      #5  0x000055f6c087099d in std::thread::_Invoker<std::tuple<void (*)(tpool::aio_linux*), tpool::aio_linux*> >::_M_invoke<0ul, 1ul> (this=0x55f6c27ae678) at /usr/include/c++/9/thread:244
      #6  0x000055f6c0870954 in std::thread::_Invoker<std::tuple<void (*)(tpool::aio_linux*), tpool::aio_linux*> >::operator() (this=0x55f6c27ae678) at /usr/include/c++/9/thread:251
      #7  0x000055f6c0870934 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(tpool::aio_linux*), tpool::aio_linux*> > >::_M_run (this=0x55f6c27ae670) at /usr/include/c++/9/thread:195
      #8  0x00007fca77cf2de4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #9  0x00007fca77e0d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #10 0x00007fca779e0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Thread 3 (Thread 0x7fca75635700 (LWP 3457121)):
      #0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fca75634d70, clockid=<optimized out>, expected=0, futex_word=0x55f6c1e04d48 <COND_checkpoint+40>) at ../sysdeps/nptl/futex-internal.h:320
      #1  __pthread_cond_wait_common (abstime=0x7fca75634d70, clockid=<optimized out>, mutex=0x55f6c1e04c88 <LOCK_checkpoint+40>, cond=0x55f6c1e04d20 <COND_checkpoint>) at pthread_cond_wait.c:520
      #2  __pthread_cond_timedwait (cond=0x55f6c1e04d20 <COND_checkpoint>, mutex=0x55f6c1e04c88 <LOCK_checkpoint+40>, abstime=0x7fca75634d70) at pthread_cond_wait.c:656
      #3  0x000055f6c0914296 in safe_cond_timedwait (cond=0x55f6c1e04d20 <COND_checkpoint>, mp=0x55f6c1e04c60 <LOCK_checkpoint>, abstime=0x7fca75634d70, file=0x55f6c0c7eb70 "/data/src/10.6/include/mysql/psi/mysql_thread.h", line=1088) at /data/src/10.6/mysys/thr_mutex.c:546
      #4  0x000055f6c02bac3f in inline_mysql_cond_timedwait (that=0x55f6c1e04d20 <COND_checkpoint>, mutex=0x55f6c1e04c60 <LOCK_checkpoint>, abstime=0x7fca75634d70, src_file=0x55f6c0c7eba0 "/data/src/10.6/storage/maria/ma_servicethread.c", src_line=115) at /data/src/10.6/include/mysql/psi/mysql_thread.h:1088
      #5  0x000055f6c02bb132 in my_service_thread_sleep (control=0x55f6c13ec940 <checkpoint_control>, sleep_time=30000000000) at /data/src/10.6/storage/maria/ma_servicethread.c:115
      #6  0x000055f6c02aed8d in ma_checkpoint_background (arg=0x1e) at /data/src/10.6/storage/maria/ma_checkpoint.c:725
      #7  0x00007fca77e0d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #8  0x00007fca779e0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Thread 2 (Thread 0x7fca78404700 (LWP 3457120)):
      #0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fca78403e20, clockid=<optimized out>, expected=0, futex_word=0x55f6c1eaa10c <COND_timer+44>) at ../sysdeps/nptl/futex-internal.h:320
      #1  __pthread_cond_wait_common (abstime=0x7fca78403e20, clockid=<optimized out>, mutex=0x55f6c1eaa048 <LOCK_timer+40>, cond=0x55f6c1eaa0e0 <COND_timer>) at pthread_cond_wait.c:520
      #2  __pthread_cond_timedwait (cond=0x55f6c1eaa0e0 <COND_timer>, mutex=0x55f6c1eaa048 <LOCK_timer+40>, abstime=0x7fca78403e20) at pthread_cond_wait.c:656
      #3  0x000055f6c0914296 in safe_cond_timedwait (cond=0x55f6c1eaa0e0 <COND_timer>, mp=0x55f6c1eaa020 <LOCK_timer>, abstime=0x7fca78403e20, file=0x55f6c0e6e5a0 "/data/src/10.6/include/mysql/psi/mysql_thread.h", line=1088) at /data/src/10.6/mysys/thr_mutex.c:546
      #4  0x000055f6c091527e in inline_mysql_cond_timedwait (that=0x55f6c1eaa0e0 <COND_timer>, mutex=0x55f6c1eaa020 <LOCK_timer>, abstime=0x7fca78403e20, src_file=0x55f6c0e6e5d0 "/data/src/10.6/mysys/thr_timer.c", src_line=321) at /data/src/10.6/include/mysql/psi/mysql_thread.h:1088
      #5  0x000055f6c0915f23 in timer_handler (arg=0x0) at /data/src/10.6/mysys/thr_timer.c:321
      #6  0x00007fca77e0d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #7  0x00007fca779e0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Thread 1 (Thread 0x7fca7776f380 (LWP 3457118)):
      #0  0x00007fca779d3aff in __GI___poll (fds=0x55f6c2d15098, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
      #1  0x000055f6bfb34fb7 in handle_connections_sockets () at /data/src/10.6/sql/mysqld.cc:6112
      #2  0x000055f6bfb34596 in mysqld_main (argc=12, argv=0x55f6c276c698) at /data/src/10.6/sql/mysqld.cc:5817
      #3  0x000055f6bfb289dd in main (argc=11, argv=0x7fff35052528) at /data/src/10.6/sql/main.cc:34
      [Inferior 1 (process 3457118) detached]
      

      Attachments

        Issue Links

          Activity

            The root cause of this bug is that at the start of lock_release(), the condition trx->dict_operation is not holding during DDL transactions like it is expected to.

            After I removed the hang-causing mutex acquisition, I would get a fatal signal because the core table dict_sys.sys_tables was being evicted. (SYS_TABLES could only be modified during a DDL transaction.) Furthermore, on DROP TABLE, the table would already have been evicted by the debug instrumentation, and later during transaction commit we would get into trouble.

            marko Marko Mäkelä added a comment - The root cause of this bug is that at the start of lock_release() , the condition trx->dict_operation is not holding during DDL transactions like it is expected to. After I removed the hang-causing mutex acquisition, I would get a fatal signal because the core table dict_sys.sys_tables was being evicted. ( SYS_TABLES could only be modified during a DDL transaction.) Furthermore, on DROP TABLE , the table would already have been evicted by the debug instrumentation, and later during transaction commit we would get into trouble.

            This was broken in this change of MDEV-25919.

            I will add the regression test innodb.evict_tables_on_commit_debug.

            marko Marko Mäkelä added a comment - This was broken in this change of MDEV-25919 . I will add the regression test innodb.evict_tables_on_commit_debug .

            People

              marko Marko Mäkelä
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.