Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.4(EOL), 10.5
Description
Note: I couldn't reproduce failures described here on 10.4, but it's not clean either, it occasionally fails on the same test cases in some other ways or hangs on shutdown, which may or may not be related to this issue.
Test case 1 |
--source include/have_innodb.inc
|
|
SET GLOBAL innodb_stats_persistent= OFF; |
|
CREATE TABLE t1 ( |
pk int, |
a blob,
|
b blob as (left (a, 20)), |
primary key (pk), |
key (b(20)) |
) ENGINE=InnoDB;
|
|
INSERT INTO t1 (pk,a) VALUES (1,'foo'),(2,'bar'); |
DELETE FROM t1; |
INSERT INTO t1 (pk,a) VALUES (1,'foo'),(2,'bar'); |
|
--source include/restart_mysqld.inc
|
--sleep 5
|
|
# Cleanup
|
DROP TABLE t1; |
Test case 2 |
--source include/have_innodb.inc
|
|
SET GLOBAL innodb_stats_persistent= ON; |
|
CREATE TABLE t1 ( |
pk int auto_increment, |
a int, |
b blob,
|
primary key (pk), |
unique (b), |
unique (a) |
) ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES (1,0,'foo'),(2,1,NULL); |
DELETE FROM t1; |
INSERT INTO t1 VALUES (1,0,'foo'),(2,1,NULL); |
|
--let $restart_parameters= --innodb_stats_persistent=on
|
--source include/restart_mysqld.inc
|
--sleep 5
|
|
# Cleanup
|
DROP TABLE t1; |
Test case 1 causes a hang on a non-debug 10.5 server and an assertion failure on a debug server:
10.5 non-debug 65b93cef hang |
Thread 9 (Thread 0x7f25111f6700 (LWP 16832)):
|
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
|
#1 0x0000557549b0e176 in os_event::wait (this=0x55754cdf30f8) at /data/src/10.5/storage/innobase/os/os0event.cc:158
|
#2 os_event::wait_low (reset_sig_count=1, this=0x55754cdf30f8) at /data/src/10.5/storage/innobase/os/os0event.cc:325
|
#3 os_event_wait_low (event=0x55754cdf30f8, reset_sig_count=<optimized out>) at /data/src/10.5/storage/innobase/os/os0event.cc:502
|
#4 0x0000557549bac7eb in sync_array_wait_event (arr=arr@entry=0x55754cccdff8, cell=@0x7f25111f1e58: 0x55754ccce098) at /data/src/10.5/storage/innobase/sync/sync0arr.cc:456
|
#5 0x0000557549bae7e2 in rw_lock_s_lock_spin (lock=lock@entry=0x7f2513815388, pass=pass@entry=0, file_name=file_name@entry=0x55754a0d59f8 "/data/src/10.5/storage/innobase/btr/btr0cur.cc", line=line@entry=6671) at /data/src/10.5/storage/innobase/sync/sync0rw.cc:367
|
#6 0x0000557549c38bdb in rw_lock_s_lock_func (pass=0, line=6671, file_name=0x55754a0d59f8 "/data/src/10.5/storage/innobase/btr/btr0cur.cc", lock=0x7f2513815388) at /data/src/10.5/storage/innobase/include/sync0rw.ic:294
|
#7 pfs_rw_lock_s_lock_func (pass=0, line=6671, file_name=0x55754a0d59f8 "/data/src/10.5/storage/innobase/btr/btr0cur.cc", lock=0x7f2513815388) at /data/src/10.5/storage/innobase/include/sync0rw.ic:644
|
#8 buf_page_mtr_lock (line=6671, file=0x55754a0d59f8 "/data/src/10.5/storage/innobase/btr/btr0cur.cc", mtr=0x7f25111f2c30, rw_latch=1, block=<optimized out>) at /data/src/10.5/storage/innobase/buf/buf0buf.cc:2985
|
#9 buf_page_get_low (page_id=..., zip_size=zip_size@entry=0, rw_latch=rw_latch@entry=1, guess=<optimized out>, mode=<optimized out>, file=<optimized out>, line=<optimized out>, mtr=<optimized out>, err=<optimized out>, allow_ibuf_merge=<optimized out>) at /data/src/10.5/storage/innobase/buf/buf0buf.cc:3571
|
#10 0x0000557549c38c7d in buf_page_get_gen (page_id=..., zip_size=zip_size@entry=0, rw_latch=rw_latch@entry=1, guess=guess@entry=0x0, mode=mode@entry=10, file=file@entry=0x55754a0d59f8 "/data/src/10.5/storage/innobase/btr/btr0cur.cc", line=6671, mtr=0x7f25111f2c30, err=0x7f25111f22dc, allow_ibuf_merge=false) at /data/src/10.5/storage/innobase/buf/buf0buf.cc:3640
|
#11 0x0000557549c16fd5 in btr_cur_open_at_rnd_pos_func (latch_mode=1, file=0x55754a0d59f8 "/data/src/10.5/storage/innobase/btr/btr0cur.cc", line=6671, mtr=0x7f25111f2c30, cursor=0x7f25111f22f0, index=<optimized out>) at /data/src/10.5/storage/innobase/btr/btr0cur.cc:2969
|
#12 btr_estimate_number_of_different_key_vals (index=index@entry=0x7f24f4015890) at /data/src/10.5/storage/innobase/btr/btr0cur.cc:6671
|
#13 0x0000557549c90a17 in dict_stats_update_transient_for_index (index=index@entry=0x7f24f4015890) at /data/src/10.5/storage/innobase/dict/dict0stats.cc:887
|
#14 0x0000557549c97b59 in dict_stats_update_transient (table=0x7f24f4013630) at /data/src/10.5/storage/innobase/dict/dict0stats.cc:945
|
#15 dict_stats_update (table=table@entry=0x7f24f4013630, stats_upd_option=<optimized out>) at /data/src/10.5/storage/innobase/dict/dict0stats.cc:3329
|
#16 0x0000557549aa3d01 in dict_stats_init (table=<optimized out>) at /data/src/10.5/storage/innobase/include/dict0stats.ic:165
|
#17 ha_innobase::open (this=0x7f24f400eae0, name=0x7f24f400c678 "./test/t1") at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:5830
|
#18 0x000055754978c89a in handler::ha_open (this=0x7f24f400eae0, table_arg=table_arg@entry=0x7f24f400dce8, name=0x7f24f400c678 "./test/t1", mode=2, test_if_locked=test_if_locked@entry=18, mem_root=mem_root@entry=0x0, partitions_to_open=0x0) at /data/src/10.5/sql/handler.cc:2954
|
#19 0x000055754964a25c in open_table_from_share (thd=thd@entry=0x7f24f4000a98, share=share@entry=0x7f24f400c1e0, alias=alias@entry=0x7f24f400b828, db_stat=db_stat@entry=33, prgflag=prgflag@entry=8, ha_open_flags=18, outparam=<optimized out>, is_create_table=<optimized out>, partitions_to_open=<optimized out>) at /data/src/10.5/sql/table.cc:4186
|
#20 0x0000557549523769 in open_table (thd=thd@entry=0x7f24f4000a98, table_list=table_list@entry=0x7f24f400b7e0, ot_ctx=ot_ctx@entry=0x7f25111f4520) at /data/src/10.5/sql/sql_base.cc:1988
|
#21 0x000055754953b701 in open_purge_table (thd=thd@entry=0x7f24f4000a98, db=db@entry=0x7f25111f45b0 "test", dblen=<optimized out>, tb=tb@entry=0x7f25111f4680 "t1", tblen=<optimized out>) at /data/src/10.5/sql/sql_class.cc:4730
|
#22 0x0000557549a8dd4a in innodb_find_table_for_vc (thd=0x7f24f4000a98, table=0x7f24f4013630) at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:20642
|
#23 0x0000557549a9b0c1 in innobase_allocate_row_for_vcol (thd=thd@entry=0x7f24f4000a98, index=index@entry=0x7f24f4015890, heap=heap@entry=0x7f25111f47d0, table=table@entry=0x7f25111f47e0, record=record@entry=0x7f25111f47e8, storage=storage@entry=0x7f25111f47d8) at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:20785
|
#24 0x0000557549b98835 in row_vers_build_clust_v_col (row=row@entry=0x7f24f400b3b0, clust_index=clust_index@entry=0x7f24f4014cf0, index=index@entry=0x7f24f4015890, heap=0x7f24f400b338) at /data/src/10.5/storage/innobase/row/row0vers.cc:465
|
#25 0x0000557549b9b424 in row_vers_old_has_index_entry (also_curr=also_curr@entry=true, rec=0x7f2513cf807f "\200", mtr=mtr@entry=0x7f25111f4930, index=index@entry=0x7f24f4015890, ientry=ientry@entry=0x7f24f40145d0, roll_ptr=1125899927290647, trx_id=0) at /data/src/10.5/storage/innobase/row/row0vers.cc:929
|
#26 0x0000557549b7f8e1 in row_purge_poss_sec (node=node@entry=0x55754ce5fae8, index=index@entry=0x7f24f4015890, entry=entry@entry=0x7f24f40145d0, sec_pcur=sec_pcur@entry=0x7f25111f4e80, sec_mtr=sec_mtr@entry=0x7f25111f5100, is_tree=is_tree@entry=false) at /data/src/10.5/storage/innobase/row/row0purge.cc:245
|
#27 0x0000557549b7fdab in row_purge_remove_sec_if_poss_leaf (node=node@entry=0x55754ce5fae8, index=index@entry=0x7f24f4015890, entry=entry@entry=0x7f24f40145d0) at /data/src/10.5/storage/innobase/row/row0purge.cc:466
|
#28 0x0000557549b80cad in row_purge_remove_sec_if_poss (entry=0x7f24f40145d0, index=<optimized out>, node=0x55754ce5fae8) at /data/src/10.5/storage/innobase/row/row0purge.cc:568
|
#29 row_purge_del_mark (node=0x55754ce5fae8) at /data/src/10.5/storage/innobase/row/row0purge.cc:638
|
#30 row_purge_record_func (node=node@entry=0x55754ce5fae8, undo_rec=undo_rec@entry=0x55754ce6edd8 "", thr=thr@entry=0x55754ce5fa40, updated_extern=<optimized out>) at /data/src/10.5/storage/innobase/row/row0purge.cc:1048
|
#31 0x0000557549b81c54 in row_purge (thr=0x55754ce5fa40, undo_rec=0x55754ce6edd8 "", node=0x55754ce5fae8) at /data/src/10.5/storage/innobase/row/row0purge.cc:1109
|
#32 row_purge_step (thr=thr@entry=0x55754ce5fa40) at /data/src/10.5/storage/innobase/row/row0purge.cc:1158
|
#33 0x0000557549b36d1c in que_thr_step (thr=0x1e) at /data/src/10.5/storage/innobase/que/que0que.cc:947
|
#34 que_run_threads_low (thr=0x1e) at /data/src/10.5/storage/innobase/que/que0que.cc:1009
|
#35 que_run_threads (thr=thr@entry=0x55754ce5fa40) at /data/src/10.5/storage/innobase/que/que0que.cc:1049
|
#36 0x0000557549ba49b0 in srv_task_execute () at /data/src/10.5/storage/innobase/srv/srv0srv.cc:2030
|
#37 purge_worker_callback () at /data/src/10.5/storage/innobase/srv/srv0srv.cc:2195
|
#38 0x0000557549d285c2 in tpool::task_group::execute (this=0x55754b1db0c0 <purge_task_group>, t=0x55754b1bc860 <purge_worker_task>) at /data/src/10.5/tpool/task_group.cc:55
|
#39 0x0000557549d2747f in tpool::thread_pool_generic::worker_main (this=0x55754ccf7fa0, thread_var=0x55754cd079b0) at /data/src/10.5/tpool/tpool_generic.cc:518
|
#40 0x00007f251e9b1e6f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
|
#41 0x00007f251f2bf4a4 in start_thread (arg=0x7f25111f6700) at pthread_create.c:456
|
#42 0x00007f251e33dd0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
|
all threads are attached as threads.txt
10.5 debug 65b93cef |
Version: '10.5.5-MariaDB-debug-log' socket: '/data/bld/10.5-debug-nightly/mysql-test/var/tmp/mysqld.1.sock' port: 16000 Source distribution
|
mariadbd: /data/src/10.5/storage/innobase/sync/sync0rw.cc:760: void rw_lock_sx_lock_func(rw_lock_t*, ulint, const char*, unsigned int): Assertion `!rw_lock_own(lock, RW_LOCK_S)' failed.
|
200626 16:13:56 [ERROR] mysqld got signal 6 ;
|
|
#7 0x00007f04727bcf12 in __GI___assert_fail (assertion=0x5638cd724d15 "!rw_lock_own(lock, RW_LOCK_S)", file=0x5638cd724b80 "/data/src/10.5/storage/innobase/sync/sync0rw.cc", line=760, function=0x5638cd725820 <rw_lock_sx_lock_func(rw_lock_t*, unsigned long, char const*, unsigned int)::__PRETTY_FUNCTION__> "void rw_lock_sx_lock_func(rw_lock_t*, ulint, const char*, unsigned int)") at assert.c:101
|
#8 0x00005638ccfb6abc in rw_lock_sx_lock_func (lock=0x7f046781c7d0, pass=0, file_name=0x5638cd7487c8 "/data/src/10.5/storage/innobase/btr/btr0btr.cc", line=227) at /data/src/10.5/storage/innobase/sync/sync0rw.cc:760
|
#9 0x00005638cd08304d in pfs_rw_lock_sx_lock_func (lock=0x7f046781c7d0, pass=0, file_name=0x5638cd7487c8 "/data/src/10.5/storage/innobase/btr/btr0btr.cc", line=227) at /data/src/10.5/storage/innobase/include/sync0rw.ic:678
|
#10 0x00005638cd08a666 in buf_page_mtr_lock (block=0x7f046781c750, rw_latch=4, mtr=0x7f0465ff92d0, file=0x5638cd7487c8 "/data/src/10.5/storage/innobase/btr/btr0btr.cc", line=227) at /data/src/10.5/storage/innobase/buf/buf0buf.cc:2989
|
#11 0x00005638cd08c279 in buf_page_get_low (page_id=..., zip_size=0, rw_latch=4, guess=0x0, mode=10, file=0x5638cd7487c8 "/data/src/10.5/storage/innobase/btr/btr0btr.cc", line=227, mtr=0x7f0465ff92d0, err=0x7f0465ff91cc, allow_ibuf_merge=false) at /data/src/10.5/storage/innobase/buf/buf0buf.cc:3571
|
#12 0x00005638cd08c5f2 in buf_page_get_gen (page_id=..., zip_size=0, rw_latch=4, guess=0x0, mode=10, file=0x5638cd7487c8 "/data/src/10.5/storage/innobase/btr/btr0btr.cc", line=227, mtr=0x7f0465ff92d0, err=0x7f0465ff91cc, allow_ibuf_merge=false) at /data/src/10.5/storage/innobase/buf/buf0buf.cc:3640
|
#13 0x00005638ccdda754 in btr_block_get_func (index=..., page=3, mode=4, merge=false, file=0x5638cd7487c8 "/data/src/10.5/storage/innobase/btr/btr0btr.cc", line=227, mtr=0x7f0465ff92d0) at /data/src/10.5/storage/innobase/include/btr0btr.h:240
|
#14 0x00005638cd01fbf1 in btr_root_block_get (index=0x7f04580165a8, mode=RW_SX_LATCH, mtr=0x7f0465ff92d0) at /data/src/10.5/storage/innobase/btr/btr0btr.cc:226
|
#15 0x00005638cd020a60 in btr_get_size (index=0x7f04580165a8, flag=2, mtr=0x7f0465ff92d0) at /data/src/10.5/storage/innobase/btr/btr0btr.cc:603
|
#16 0x00005638cd102ffb in dict_stats_update_transient_for_index (index=0x7f04580165a8) at /data/src/10.5/storage/innobase/dict/dict0stats.cc:858
|
#17 0x00005638cd103329 in dict_stats_update_transient (table=0x7f04580148c8) at /data/src/10.5/storage/innobase/dict/dict0stats.cc:945
|
#18 0x00005638cd109161 in dict_stats_update (table=0x7f04580148c8, stats_upd_option=DICT_STATS_RECALC_TRANSIENT) at /data/src/10.5/storage/innobase/dict/dict0stats.cc:3329
|
#19 0x00005638ccd70daa in dict_stats_init (table=0x7f04580148c8) at /data/src/10.5/storage/innobase/include/dict0stats.ic:165
|
#20 0x00005638ccd7ac54 in ha_innobase::open (this=0x7f0458011980, name=0x7f045800dae8 "./test/t1") at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:5830
|
#21 0x00005638cc9224de in handler::ha_open (this=0x7f0458011980, table_arg=0x7f0458010698, name=0x7f045800dae8 "./test/t1", mode=2, test_if_locked=18, mem_root=0x0, partitions_to_open=0x0) at /data/src/10.5/sql/handler.cc:2954
|
#22 0x00005638cc706c81 in open_table_from_share (thd=0x7f0458000ce8, share=0x7f045800d550, alias=0x7f045800ca28, db_stat=33, prgflag=8, ha_open_flags=18, outparam=0x7f0458010698, is_create_table=false, partitions_to_open=0x0) at /data/src/10.5/sql/table.cc:4186
|
#23 0x00005638cc51be4a in open_table (thd=0x7f0458000ce8, table_list=0x7f045800c9e0, ot_ctx=0x7f0465ffa4d0) at /data/src/10.5/sql/sql_base.cc:1988
|
#24 0x00005638cc552854 in open_purge_table (thd=0x7f0458000ce8, db=0x7f0465ffa560 "test", dblen=4, tb=0x7f0465ffa630 "t1", tblen=2) at /data/src/10.5/sql/sql_class.cc:4730
|
#25 0x00005638ccd983ba in innodb_find_table_for_vc (thd=0x7f0458000ce8, table=0x7f04580148c8) at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:20642
|
#26 0x00005638ccd98989 in innobase_allocate_row_for_vcol (thd=0x7f0458000ce8, index=0x7f04580173c8, heap=0x7f0465ffa7a0, table=0x7f0465ffa7b0, record=0x7f0465ffa7b8, storage=0x7f0465ffa7a8) at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:20785
|
#27 0x00005638ccf9a6cb in row_vers_build_clust_v_col (row=0x7f045800c558, clust_index=0x7f04580165a8, index=0x7f04580173c8, heap=0x7f045800c4b8) at /data/src/10.5/storage/innobase/row/row0vers.cc:465
|
#28 0x00005638ccf9b92c in row_vers_old_has_index_entry (also_curr=true, rec=0x7f0467d0807f "\200", mtr=0x7f0465ffa900, index=0x7f04580173c8, ientry=0x7f0458015c08, roll_ptr=1125899927290647, trx_id=0) at /data/src/10.5/storage/innobase/row/row0vers.cc:929
|
#29 0x00005638ccf5ab20 in row_purge_poss_sec (node=0x5638d00ec6d8, index=0x7f04580173c8, entry=0x7f0458015c08, sec_pcur=0x7f0465ffae30, sec_mtr=0x7f0465ffb0d0, is_tree=false) at /data/src/10.5/storage/innobase/row/row0purge.cc:245
|
#30 0x00005638ccf5b4c0 in row_purge_remove_sec_if_poss_leaf (node=0x5638d00ec6d8, index=0x7f04580173c8, entry=0x7f0458015c08) at /data/src/10.5/storage/innobase/row/row0purge.cc:466
|
#31 0x00005638ccf5b9ac in row_purge_remove_sec_if_poss (node=0x5638d00ec6d8, index=0x7f04580173c8, entry=0x7f0458015c08) at /data/src/10.5/storage/innobase/row/row0purge.cc:568
|
#32 0x00005638ccf5bbbd in row_purge_del_mark (node=0x5638d00ec6d8) at /data/src/10.5/storage/innobase/row/row0purge.cc:638
|
#33 0x00005638ccf5d5e0 in row_purge_record_func (node=0x5638d00ec6d8, undo_rec=0x5638d00fbd60 "", thr=0x5638d00ec630, updated_extern=false) at /data/src/10.5/storage/innobase/row/row0purge.cc:1048
|
#34 0x00005638ccf5d8a2 in row_purge (node=0x5638d00ec6d8, undo_rec=0x5638d00fbd60 "", thr=0x5638d00ec630) at /data/src/10.5/storage/innobase/row/row0purge.cc:1109
|
#35 0x00005638ccf5da21 in row_purge_step (thr=0x5638d00ec630) at /data/src/10.5/storage/innobase/row/row0purge.cc:1158
|
#36 0x00005638ccec873e in que_thr_step (thr=0x5638d00ec630) at /data/src/10.5/storage/innobase/que/que0que.cc:947
|
#37 0x00005638ccec89d5 in que_run_threads_low (thr=0x5638d00ec630) at /data/src/10.5/storage/innobase/que/que0que.cc:1009
|
#38 0x00005638ccec8c25 in que_run_threads (thr=0x5638d00ec630) at /data/src/10.5/storage/innobase/que/que0que.cc:1049
|
#39 0x00005638ccfa462b in srv_task_execute () at /data/src/10.5/storage/innobase/srv/srv0srv.cc:2030
|
#40 0x00005638ccfa4e29 in purge_worker_callback () at /data/src/10.5/storage/innobase/srv/srv0srv.cc:2195
|
#41 0x00005638cd1c01d4 in tpool::task_group::execute (this=0x5638cea0d0e0 <purge_task_group>, t=0x5638cea0ce60 <purge_worker_task>) at /data/src/10.5/tpool/task_group.cc:55
|
#42 0x00005638cd1c058a in tpool::task::execute (this=0x5638cea0ce60 <purge_worker_task>) at /data/src/10.5/tpool/task.cc:47
|
#43 0x00005638cd1b9d72 in tpool::thread_pool_generic::worker_main (this=0x5638cff480b0, thread_var=0x5638cff57bc0) at /data/src/10.5/tpool/tpool_generic.cc:518
|
#44 0x00005638cd1bffe5 in std::__invoke_impl<void, void (tpool::thread_pool_generic::* const&)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*>(std::__invoke_memfun_deref, void (tpool::thread_pool_generic::* const&)(tpool::worker_data*), tpool::thread_pool_generic*&&, tpool::worker_data*&&) (__f=@0x7f0468001ee8: (void (tpool::thread_pool_generic::*)(tpool::thread_pool_generic * const, tpool::worker_data *)) 0x5638cd1b9cda <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>, __t=<unknown type in /data/bld/10.5-debug-nightly/bin/mariadbd, CU 0x81f7f83, DIE 0x82096fb>, __args#0=<unknown type in /data/bld/10.5-debug-nightly/bin/mariadbd, CU 0x81f7f83, DIE 0x8209707>) at /usr/include/c++/6/functional:227
|
#45 0x00005638cd1bff57 in std::__invoke<void (tpool::thread_pool_generic::* const&)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*>(void (tpool::thread_pool_generic::* const&)(tpool::worker_data*), tpool::thread_pool_generic*&&, tpool::worker_data*&&) (__fn=@0x7f0468001ee8: (void (tpool::thread_pool_generic::*)(tpool::thread_pool_generic * const, tpool::worker_data *)) 0x5638cd1b9cda <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>, __args#0=<unknown type in /data/bld/10.5-debug-nightly/bin/mariadbd, CU 0x81f7f83, DIE 0x82096fb>, __args#1=<unknown type in /data/bld/10.5-debug-nightly/bin/mariadbd, CU 0x81f7f83, DIE 0x8209707>) at /usr/include/c++/6/functional:251
|
#46 0x00005638cd1bfeeb in std::_Mem_fn_base<void (tpool::thread_pool_generic::*)(tpool::worker_data*), true>::operator()<tpool::thread_pool_generic*, tpool::worker_data*>(tpool::thread_pool_generic*&&, tpool::worker_data*&&) const (this=0x7f0468001ee8, __args#0=<unknown type in /data/bld/10.5-debug-nightly/bin/mariadbd, CU 0x81f7f83, DIE 0x82096fb>, __args#1=<unknown type in /data/bld/10.5-debug-nightly/bin/mariadbd, CU 0x81f7f83, DIE 0x8209707>) at /usr/include/c++/6/functional:604
|
#47 0x00005638cd1bfe9d in std::_Bind_simple<std::_Mem_fn<void (tpool::thread_pool_generic::*)(tpool::worker_data*)> (tpool::thread_pool_generic*, tpool::worker_data*)>::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) (this=0x7f0468001ed8) at /usr/include/c++/6/functional:1391
|
#48 0x00005638cd1bfd9b in std::_Bind_simple<std::_Mem_fn<void (tpool::thread_pool_generic::*)(tpool::worker_data*)> (tpool::thread_pool_generic*, tpool::worker_data*)>::operator()() (this=0x7f0468001ed8) at /usr/include/c++/6/functional:1380
|
#49 0x00005638cd1bfd7a in std::thread::_State_impl<std::_Bind_simple<std::_Mem_fn<void (tpool::thread_pool_generic::*)(tpool::worker_data*)> (tpool::thread_pool_generic*, tpool::worker_data*)> >::_M_run() (this=0x7f0468001ed0) at /usr/include/c++/6/thread:197
|
#50 0x00007f0473104e6f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
|
#51 0x00007f04747454a4 in start_thread (arg=0x7f0465ffc700) at pthread_create.c:456
|
#52 0x00007f0472879d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
|
Test case 2 fails with a slightly different assertion on 10.5 debug and seemingly passes on 10.5 non-debug:
10.5 debug 65b93cef |
mariadbd: /data/src/10.5/storage/innobase/include/sync0rw.ic:288: void rw_lock_s_lock_func(rw_lock_t*, ulint, const char*, unsigned int): Assertion `!rw_lock_own_flagged(lock, RW_LOCK_FLAG_X | RW_LOCK_FLAG_S)' failed.
|
200626 16:16:30 [ERROR] mysqld got signal 6 ;
|
|
#7 0x00007fdcc2a47f12 in __GI___assert_fail (assertion=0x55591f1343e0 "!rw_lock_own_flagged(lock, RW_LOCK_FLAG_X | RW_LOCK_FLAG_S)", file=0x55591f1343a8 "/data/src/10.5/storage/innobase/include/sync0rw.ic", line=288, function=0x55591f138de0 <_ZZL19rw_lock_s_lock_funcP9rw_lock_tmPKcjE19__PRETTY_FUNCTION__> "void rw_lock_s_lock_func(rw_lock_t*, ulint, const char*, unsigned int)") at assert.c:101
|
#8 0x000055591ea4b332 in rw_lock_s_lock_func (lock=0x7fdcbc2807d0, pass=0, file_name=0x55591f1117c8 "/data/src/10.5/storage/innobase/btr/btr0btr.cc", line=1288) at /data/src/10.5/storage/innobase/include/sync0rw.ic:288
|
#9 0x000055591ea4bf9b in pfs_rw_lock_s_lock_func (lock=0x7fdcbc2807d0, pass=0, file_name=0x55591f1117c8 "/data/src/10.5/storage/innobase/btr/btr0btr.cc", line=1288) at /data/src/10.5/storage/innobase/include/sync0rw.ic:644
|
#10 0x000055591ea53639 in buf_page_mtr_lock (block=0x7fdcbc280750, rw_latch=1, mtr=0x7fdcb63f4650, file=0x55591f1117c8 "/data/src/10.5/storage/innobase/btr/btr0btr.cc", line=1288) at /data/src/10.5/storage/innobase/buf/buf0buf.cc:2985
|
#11 0x000055591ea55279 in buf_page_get_low (page_id=..., zip_size=0, rw_latch=1, guess=0x0, mode=10, file=0x55591f1117c8 "/data/src/10.5/storage/innobase/btr/btr0btr.cc", line=1288, mtr=0x7fdcb63f4650, err=0x0, allow_ibuf_merge=false) at /data/src/10.5/storage/innobase/buf/buf0buf.cc:3571
|
#12 0x000055591ea555f2 in buf_page_get_gen (page_id=..., zip_size=0, rw_latch=1, guess=0x0, mode=10, file=0x55591f1117c8 "/data/src/10.5/storage/innobase/btr/btr0btr.cc", line=1288, mtr=0x7fdcb63f4650, err=0x0, allow_ibuf_merge=false) at /data/src/10.5/storage/innobase/buf/buf0buf.cc:3640
|
#13 0x000055591e9ec4aa in btr_read_autoinc_with_fallback (table=0x7fdc9c0148d8, col_no=0) at /data/src/10.5/storage/innobase/btr/btr0btr.cc:1285
|
#14 0x000055591e743865 in initialize_auto_increment (table=0x7fdc9c0148d8, field=0x7fdc9c00e0b0) at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:5755
|
#15 0x000055591e744532 in ha_innobase::open (this=0x7fdc9c011f60, name=0x7fdc9c00daf8 "./test/t1") at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:6008
|
#16 0x000055591e2eb4de in handler::ha_open (this=0x7fdc9c011f60, table_arg=0x7fdc9c0110e8, name=0x7fdc9c00daf8 "./test/t1", mode=2, test_if_locked=18, mem_root=0x0, partitions_to_open=0x0) at /data/src/10.5/sql/handler.cc:2954
|
#17 0x000055591e0cfc81 in open_table_from_share (thd=0x7fdc9c000cf8, share=0x7fdc9c00d560, alias=0x7fdc9c00ca38, db_stat=33, prgflag=8, ha_open_flags=18, outparam=0x7fdc9c0110e8, is_create_table=false, partitions_to_open=0x0) at /data/src/10.5/sql/table.cc:4186
|
#18 0x000055591dee4e4a in open_table (thd=0x7fdc9c000cf8, table_list=0x7fdc9c00c9f0, ot_ctx=0x7fdcb63f54d0) at /data/src/10.5/sql/sql_base.cc:1988
|
#19 0x000055591df1b854 in open_purge_table (thd=0x7fdc9c000cf8, db=0x7fdcb63f5560 "test", dblen=4, tb=0x7fdcb63f5630 "t1", tblen=2) at /data/src/10.5/sql/sql_class.cc:4730
|
#20 0x000055591e7613ba in innodb_find_table_for_vc (thd=0x7fdc9c000cf8, table=0x7fdc9c0148d8) at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:20642
|
#21 0x000055591e761989 in innobase_allocate_row_for_vcol (thd=0x7fdc9c000cf8, index=0x7fdc9c0180e8, heap=0x7fdcb63f57a0, table=0x7fdcb63f57b0, record=0x7fdcb63f57b8, storage=0x7fdcb63f57a8) at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:20785
|
#22 0x000055591e9636cb in row_vers_build_clust_v_col (row=0x7fdc9c00c568, clust_index=0x7fdc9c0165b8, index=0x7fdc9c0180e8, heap=0x7fdc9c00c4c8) at /data/src/10.5/storage/innobase/row/row0vers.cc:465
|
#23 0x000055591e96492c in row_vers_old_has_index_entry (also_curr=true, rec=0x7fdcbc76c07f "\200", mtr=0x7fdcb63f5900, index=0x7fdc9c0180e8, ientry=0x7fdc9c015c18, roll_ptr=1970324857618918, trx_id=0) at /data/src/10.5/storage/innobase/row/row0vers.cc:929
|
#24 0x000055591e923b20 in row_purge_poss_sec (node=0x55592129c6f8, index=0x7fdc9c0180e8, entry=0x7fdc9c015c18, sec_pcur=0x7fdcb63f5e30, sec_mtr=0x7fdcb63f60d0, is_tree=false) at /data/src/10.5/storage/innobase/row/row0purge.cc:245
|
#25 0x000055591e9244c0 in row_purge_remove_sec_if_poss_leaf (node=0x55592129c6f8, index=0x7fdc9c0180e8, entry=0x7fdc9c015c18) at /data/src/10.5/storage/innobase/row/row0purge.cc:466
|
#26 0x000055591e9249ac in row_purge_remove_sec_if_poss (node=0x55592129c6f8, index=0x7fdc9c0180e8, entry=0x7fdc9c015c18) at /data/src/10.5/storage/innobase/row/row0purge.cc:568
|
#27 0x000055591e924bbd in row_purge_del_mark (node=0x55592129c6f8) at /data/src/10.5/storage/innobase/row/row0purge.cc:638
|
#28 0x000055591e9265e0 in row_purge_record_func (node=0x55592129c6f8, undo_rec=0x7fdca4009330 "", thr=0x55592129c650, updated_extern=false) at /data/src/10.5/storage/innobase/row/row0purge.cc:1048
|
#29 0x000055591e9268a2 in row_purge (node=0x55592129c6f8, undo_rec=0x7fdca4009330 "", thr=0x55592129c650) at /data/src/10.5/storage/innobase/row/row0purge.cc:1109
|
#30 0x000055591e926a21 in row_purge_step (thr=0x55592129c650) at /data/src/10.5/storage/innobase/row/row0purge.cc:1158
|
#31 0x000055591e89173e in que_thr_step (thr=0x55592129c650) at /data/src/10.5/storage/innobase/que/que0que.cc:947
|
#32 0x000055591e8919d5 in que_run_threads_low (thr=0x55592129c650) at /data/src/10.5/storage/innobase/que/que0que.cc:1009
|
#33 0x000055591e891c25 in que_run_threads (thr=0x55592129c650) at /data/src/10.5/storage/innobase/que/que0que.cc:1049
|
#34 0x000055591e96d62b in srv_task_execute () at /data/src/10.5/storage/innobase/srv/srv0srv.cc:2030
|
#35 0x000055591e96de29 in purge_worker_callback () at /data/src/10.5/storage/innobase/srv/srv0srv.cc:2195
|
#36 0x000055591eb891d4 in tpool::task_group::execute (this=0x5559203d60e0 <purge_task_group>, t=0x5559203d5e60 <purge_worker_task>) at /data/src/10.5/tpool/task_group.cc:55
|
#37 0x000055591eb8958a in tpool::task::execute (this=0x5559203d5e60 <purge_worker_task>) at /data/src/10.5/tpool/task.cc:47
|
#38 0x000055591eb82d72 in tpool::thread_pool_generic::worker_main (this=0x5559210f8150, thread_var=0x555921107be0) at /data/src/10.5/tpool/tpool_generic.cc:518
|
#39 0x000055591eb88fe5 in std::__invoke_impl<void, void (tpool::thread_pool_generic::* const&)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*>(std::__invoke_memfun_deref, void (tpool::thread_pool_generic::* const&)(tpool::worker_data*), tpool::thread_pool_generic*&&, tpool::worker_data*&&) (__f=@0x5559212cd458: (void (tpool::thread_pool_generic::*)(tpool::thread_pool_generic * const, tpool::worker_data *)) 0x55591eb82cda <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>, __t=<unknown type in /data/bld/10.5-debug-nightly/bin/mariadbd, CU 0x81f7f83, DIE 0x82096fb>, __args#0=<unknown type in /data/bld/10.5-debug-nightly/bin/mariadbd, CU 0x81f7f83, DIE 0x8209707>) at /usr/include/c++/6/functional:227
|
#40 0x000055591eb88f57 in std::__invoke<void (tpool::thread_pool_generic::* const&)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*>(void (tpool::thread_pool_generic::* const&)(tpool::worker_data*), tpool::thread_pool_generic*&&, tpool::worker_data*&&) (__fn=@0x5559212cd458: (void (tpool::thread_pool_generic::*)(tpool::thread_pool_generic * const, tpool::worker_data *)) 0x55591eb82cda <tpool::thread_pool_generic::worker_main(tpool::worker_data*)>, __args#0=<unknown type in /data/bld/10.5-debug-nightly/bin/mariadbd, CU 0x81f7f83, DIE 0x82096fb>, __args#1=<unknown type in /data/bld/10.5-debug-nightly/bin/mariadbd, CU 0x81f7f83, DIE 0x8209707>) at /usr/include/c++/6/functional:251
|
#41 0x000055591eb88eeb in std::_Mem_fn_base<void (tpool::thread_pool_generic::*)(tpool::worker_data*), true>::operator()<tpool::thread_pool_generic*, tpool::worker_data*>(tpool::thread_pool_generic*&&, tpool::worker_data*&&) const (this=0x5559212cd458, __args#0=<unknown type in /data/bld/10.5-debug-nightly/bin/mariadbd, CU 0x81f7f83, DIE 0x82096fb>, __args#1=<unknown type in /data/bld/10.5-debug-nightly/bin/mariadbd, CU 0x81f7f83, DIE 0x8209707>) at /usr/include/c++/6/functional:604
|
#42 0x000055591eb88e9d in std::_Bind_simple<std::_Mem_fn<void (tpool::thread_pool_generic::*)(tpool::worker_data*)> (tpool::thread_pool_generic*, tpool::worker_data*)>::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) (this=0x5559212cd448) at /usr/include/c++/6/functional:1391
|
#43 0x000055591eb88d9b in std::_Bind_simple<std::_Mem_fn<void (tpool::thread_pool_generic::*)(tpool::worker_data*)> (tpool::thread_pool_generic*, tpool::worker_data*)>::operator()() (this=0x5559212cd448) at /usr/include/c++/6/functional:1380
|
#44 0x000055591eb88d7a in std::thread::_State_impl<std::_Bind_simple<std::_Mem_fn<void (tpool::thread_pool_generic::*)(tpool::worker_data*)> (tpool::thread_pool_generic*, tpool::worker_data*)> >::_M_run() (this=0x5559212cd440) at /usr/include/c++/6/thread:197
|
#45 0x00007fdcc338fe6f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
|
#46 0x00007fdcc49d04a4 in start_thread (arg=0x7fdcb63f7700) at pthread_create.c:456
|
#47 0x00007fdcc2b04d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
|
Attachments
Issue Links
- causes
-
MDEV-25474 Background thread returns uninitialized statistics to Mysql interpreter
-
- Closed
-
- relates to
-
MDEV-16678 Use MDL for innodb background threads instead of dict_operation_lock
-
- Closed
-
-
MDEV-25664 Potential hang in purge when virtual indexed columns exist
-
- Closed
-
For a note, that's one of the failures the test cases from the description sporadically cause on 10.4:
10.4 141b390d -DWITH_ASAN=YES -DMYSQL_MAINTAINER_MODE=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo
==18449==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x55bc94947442 bp 0x61600003f0f0 sp 0x7f3966c28f50 T19)
#0 0x55bc94947441 in innobase_get_computed_value(dtuple_t*, dict_v_col_t const*, dict_index_t const*, mem_block_info_t**, mem_block_info_t*, dict_field_t const*, THD*, TABLE*, unsigned char*, dict_table_t const*, upd_t*, dict_foreign_t*) /data/src/10.4/storage/innobase/handler/ha_innodb.cc:20803
#1 0x55bc94ba42f5 in row_vers_build_clust_v_col /data/src/10.4/storage/innobase/row/row0vers.cc:493
#2 0x55bc94babe60 in row_vers_old_has_index_entry(bool, unsigned char const*, mtr_t*, dict_index_t*, dtuple_t const*, unsigned long, unsigned long, purge_vcol_info_t*) /data/src/10.4/storage/innobase/row/row0vers.cc:961
#3 0x55bc94b5e343 in row_purge_poss_sec(purge_node_t*, dict_index_t*, dtuple_t const*, btr_pcur_t*, mtr_t*, bool) /data/src/10.4/storage/innobase/row/row0purge.cc:320
#4 0x55bc94b5f25e in row_purge_remove_sec_if_poss_leaf /data/src/10.4/storage/innobase/row/row0purge.cc:582
#5 0x55bc94b61776 in row_purge_remove_sec_if_poss /data/src/10.4/storage/innobase/row/row0purge.cc:695
#6 0x55bc94b61776 in row_purge_del_mark /data/src/10.4/storage/innobase/row/row0purge.cc:769
#7 0x55bc94b61776 in row_purge_record_func /data/src/10.4/storage/innobase/row/row0purge.cc:1195
#8 0x55bc94b64cc8 in row_purge /data/src/10.4/storage/innobase/row/row0purge.cc:1261
#9 0x55bc94b64cc8 in row_purge_step(que_thr_t*) /data/src/10.4/storage/innobase/row/row0purge.cc:1320
#10 0x55bc94ac4610 in que_thr_step /data/src/10.4/storage/innobase/que/que0que.cc:1039
#11 0x55bc94ac4610 in que_run_threads_low /data/src/10.4/storage/innobase/que/que0que.cc:1101
#12 0x55bc94ac4610 in que_run_threads(que_thr_t*) /data/src/10.4/storage/innobase/que/que0que.cc:1141
#13 0x55bc94bc45aa in srv_task_execute /data/src/10.4/storage/innobase/srv/srv0srv.cc:2468
#14 0x55bc94bc45aa in srv_worker_thread /data/src/10.4/storage/innobase/srv/srv0srv.cc:2516
#15 0x7f397a2004a3 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x74a3)
#16 0x7f3978334d0e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xe8d0e)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /data/src/10.4/storage/innobase/handler/ha_innodb.cc:20803 in innobase_get_computed_value(dtuple_t*, dict_v_col_t const*, dict_index_t const*, mem_block_info_t**, mem_block_info_t*, dict_field_t const*, THD*, TABLE*, unsigned char*, dict_table_t const*, upd_t*, dict_foreign_t*)
Thread T19 created by T0 here:
#0 0x7f397a446f59 in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x30f59)
#1 0x55bc94a73413 in os_thread_create_func(void* (*)(void*), void*, unsigned long*) /data/src/10.4/storage/innobase/os/os0thread.cc:138
And here is another one, same build, also sporadic:
==18905==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 120 byte(s) in 1 object(s) allocated from:
#0 0x7f33abe11ef0 in operator new(unsigned long, std::nothrow_t const&) (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc2ef0)
#1 0x56148e3e36f8 in innobase_init_vc_templ(dict_table_t*) /data/src/10.4/storage/innobase/handler/ha_innodb.cc:20583
SUMMARY: AddressSanitizer: 120 byte(s) leaked in 1 allocation(s).
200626 16:29:37 [ERROR] mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
To report this bug, see https://mariadb.com/kb/en/reporting-bugs
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.
Server version: 10.4.14-MariaDB-log
read_buffer_size=131072
max_used_connections=1
thread_count=0
Thread pointer: 0x0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x0 thread_stack 0x5fc00
/usr/lib/x86_64-linux-gnu/libasan.so.3(backtrace+0x41)[0x7f33abd9c681]
mysys/stacktrace.c:270(my_print_stacktrace)[0x56148ed03356]
sql/signal_handler.cc:209(handle_fatal_signal)[0x56148df1dc26]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x110e0)[0x7f33abb430e0]
linux/raise.c:51(__GI_raise)[0x7f33a9bb7fff]
stdlib/abort.c:91(__GI_abort)[0x7f33a9bb942a]
/usr/lib/x86_64-linux-gnu/libasan.so.3(+0xdb329)[0x7f33abe2a329]
/usr/lib/x86_64-linux-gnu/libasan.so.3(+0xd09ab)[0x7f33abe1f9ab]
/usr/lib/x86_64-linux-gnu/libasan.so.3(+0xe5e66)[0x7f33abe34e66]
stdlib/cxa_finalize.c:60(__cxa_finalize)[0x7f33a9bbacaf]
/usr/lib/x86_64-linux-gnu/libasan.so.3(+0x1f4c3)[0x7f33abd6e4c3]
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
Writing a core file...
Working directory at /dev/shm/var_auto_lYLc/mysqld.1/data
Resource Limits:
ASAN:DEADLYSIGNAL
=================================================================
==18905==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x56148ecfc5ca bp 0x000000000003 sp 0x7fffc58f64f0 T0)
#0 0x56148ecfc5c9 in my_read /data/src/10.4/mysys/my_read.c:68
#1 0x56148df1d32c in output_core_info /data/src/10.4/sql/signal_handler.cc:66
#2 0x56148df1dae5 in handle_fatal_signal /data/src/10.4/sql/signal_handler.cc:339
#3 0x7f33abb430df (/lib/x86_64-linux-gnu/libpthread.so.0+0x110df)
#4 0x7f33a9bb7ffe in raise (/lib/x86_64-linux-gnu/libc.so.6+0x32ffe)
#5 0x7f33a9bb9429 in abort (/lib/x86_64-linux-gnu/libc.so.6+0x34429)
#6 0x7f33abe2a328 (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xdb328)
#7 0x7f33abe1f9aa (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xd09aa)
#8 0x7f33abe34e65 (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xe5e65)
#9 0x7f33a9bbacae in __cxa_finalize (/lib/x86_64-linux-gnu/libc.so.6+0x35cae)
#10 0x7f33abd6e4c2 (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x1f4c2)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /data/src/10.4/mysys/my_read.c:68 in my_read
==18905==ABORTING