Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
-
Can result in hang or crash
Description
Assertion found during testing MDEV-37949
|
origin/MDEV-37949 e4549fe1fe4e961d4c71b5fa30e79dacc4e8b5a6 |
# 2026-03-30T00:04:31 [2732040] | mariadbd: /data/Server/MDEV-37949D/storage/innobase/dict/dict0load.cc:2520: dict_table_t* dict_load_table_one(mtr_t&, const st_::span<const char>&, dict_err_ignore_t, dict_names_t&): Assertion `!table || (ignore_err & ~DICT_ERR_IGNORE_FK_NOKEY) || !table->is_readable() || !table->corrupted' failed.
|
|
StackTrace |
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
|
#1 __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
|
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
|
#3 __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
|
#4 __GI_abort () at ./stdlib/abort.c:79
|
#5 __assert_fail_base (fmt="%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry="!table || (ignore_err & ~DICT_ERR_IGNORE_FK_NOKEY) || !table->is_readable() || !table->corrupted",
|
file=file@entry="/data/Server/MDEV-37949D/storage/innobase/dict/dict0load.cc", line=line@entry=2520,
|
function=function@entry="dict_table_t* dict_load_table_one(mtr_t&, const st_::span<const char>&, dict_err_ignore_t, dict_names_t&)") at ./assert/assert.c:94
|
#6 __assert_fail (assertion="!table || (ignore_err & ~DICT_ERR_IGNORE_FK_NOKEY) || !table->is_readable() || !table->corrupted", file="/data/Server/MDEV-37949D/storage/innobase/dict/dict0load.cc", line=2520,
|
function="dict_table_t* dict_load_table_one(mtr_t&, const st_::span<const char>&, dict_err_ignore_t, dict_names_t&)") at ./assert/assert.c:103
|
#7 dict_load_table_one (mtr=..., name=..., ignore_err=ignore_err@entry=DICT_ERR_IGNORE_FK_NOKEY, fk_tables=std::__debug::deque with 0 elements) at /data/Server/MDEV-37949D/storage/innobase/dict/dict0load.cc:2520
|
#8 dict_sys_t::load_table (this=<dict_sys>, name=..., ignore=ignore@entry=DICT_ERR_IGNORE_FK_NOKEY) at /data/Server/MDEV-37949D/storage/innobase/dict/dict0load.cc:2556
|
#9 dict_load_table_on_id (table_id=table_id@entry=39, ignore_err=ignore_err@entry=DICT_ERR_IGNORE_FK_NOKEY) at /data/Server/MDEV-37949D/storage/innobase/dict/dict0load.cc:2629
|
#10 trx_purge_table_open (table_id=39, mdl_context=mdl_context@entry=, mdl=mdl@entry=) at /data/Server/MDEV-37949D/storage/innobase/trx/trx0purge.cc:1145
|
#11 trx_purge_attach_undo_recs (trx=trx@entry=, n_work_items=n_work_items@entry=) at /data/Server/MDEV-37949D/storage/innobase/trx/trx0purge.cc:1247
|
#12 trx_purge (trx=trx@entry=, n_tasks=<optimized out>, n_tasks@entry=4, history_size=152) at /data/Server/MDEV-37949D/storage/innobase/trx/trx0purge.cc:1360
|
#13 purge_coordinator_state::do_purge (this=this@entry=<purge_state>, trx=trx@entry=) at /data/Server/MDEV-37949D/storage/innobase/srv/srv0srv.cc:1431
|
#14 purge_coordinator_callback () at /data/Server/MDEV-37949D/storage/innobase/srv/srv0srv.cc:1525
|
#15 tpool::task_group::execute (this=<purge_coordinator_task_group>, t=t@entry=<purge_coordinator_task>) at /data/Server/MDEV-37949D/tpool/task_group.cc:70
|
#16 tpool::task::execute (this=<purge_coordinator_task>) at /data/Server/MDEV-37949D/tpool/task.cc:32
|
#17 tpool::thread_pool_generic::worker_main (this=, thread_var=) at /data/Server/MDEV-37949D/tpool/tpool_generic.cc:568
|
#18 std::__invoke_impl<void, void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__f=<optimized out>, __t=<optimized out>)
|
at /usr/include/c++/13/bits/invoke.h:74
|
#19 std::__invoke<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__fn=<optimized out>) at /usr/include/c++/13/bits/invoke.h:90
|
#20 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=<optimized out>)
|
at /usr/include/c++/13/bits/std_thread.h:292
|
#21 std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::operator() (this=<optimized out>)
|
at /usr/include/c++/13/bits/std_thread.h:299
|
#22 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=<optimized out>)
|
at /usr/include/c++/13/bits/std_thread.h:244
|
#23 ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
|
#24 start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
|
#25 clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
|
|
|
(rr) frame 7
|
#7 dict_load_table_one (mtr=..., name=..., ignore_err=ignore_err@entry=DICT_ERR_IGNORE_FK_NOKEY, fk_tables=std::__debug::deque with 0 elements) at /data/Server/MDEV-37949D/storage/innobase/dict/dict0load.cc:2520
|
2520 ut_ad(!table
|
(rr) info args
|
mtr = {m_start = true, m_commit = true, m_freeing_tree = false, m_last = , m_last_offset = 0, m_log_mode = 0, m_modifications = 0, m_made_dirty = 0, m_latch_ex = 0, m_trim_pages = 0, m_crc = 0, trx = ,
|
m_user_space = , m_user_space_id = 0, m_memo = {<small_vector_base> = {BeginX = , Size = 0, Capacity = 16}, small = {{object = , type = MTR_MEMO_PAGE_SX_FIX}, {object = , type = MTR_MEMO_PAGE_S_FIX}, {
|
object = , type = MTR_MEMO_PAGE_S_FIX}, {object = , type = 2779096485} <repeats 13 times>}}, m_log = {m_heap = , m_list = {sentinel_ = {next = , prev = }}, m_first_block = {<ilist_node<void>> = {next = ,
|
prev = }, m_buf_end = 0, m_magic_n = 375767,
|
m_data = "\260\347\224\374eZ\000\000P.\0008\tE\000\000\000\000\000\000\000\000\000\000\001", '\000' <repeats 15 times>, "\260\347\224\374eZ\000\000@\345\224\374eZ\000\000\001\000\000\000\000\000\000\000A\001
|
\000\000\000\000\000\000\022\000\000\000\000\000\000\000\361\035?\372eZ\000\000\254\343\224\374eZ\000\000\211+$\372eZ\000\000\300\032f\373eZ\000\000\350\352\224\374", '\000' <repeats 12 times>, "\022\000\000\000\0
|
00\000\000\000\320\346\224\374eZ\000\000\340\346\224\374eZ\000\000ƾ\0008\tE\000\000\352L\244\372eZ\000\000\260\347\224\374eZ\000\000\330\346\224\374eZ\000\000mysql", '\000' <repeats 19 times>..., m_used = 0}},
|
m_commit_lsn = 0, m_freed_space = , m_freed_pages = }
|
name = {data_ = "cool_down/t3\024\b", size_ = 12}
|
ignore_err = DICT_ERR_IGNORE_FK_NOKEY
|
fk_tables = std::__debug::deque with 0 elements
|
(rr) info locals
|
pcur = {btr_cur = {page_cur = {index = , rec = "cool_down/t3", offsets = , block = }, flag = BTR_CUR_BINARY, tree_height = 1, up_match = 1, up_bytes = 0, low_match = 0, low_bytes = 11, n_fields = 0, n_bytes = 0,
|
fold = 0, rtr_info = }, latch_mode = BTR_SEARCH_LEAF, old_rec = , old_n_core_fields = 0, old_n_fields = 0, rel_pos = 0, old_page_id = {m_id = 0}, modify_clock = 0, pos_state = BTR_PCUR_IS_POSITIONED,
|
search_mode = PAGE_CUR_GE, trx_if_known = , old_rec_buf = , buf_size = 0}
|
__PRETTY_FUNCTION__ = "dict_table_t* dict_load_table_one(mtr_t&, const st_::span<const char>&, dict_err_ignore_t, dict_names_t&)"
|
sys_index = <optimized out>
|
dfield = {data = , ext = 0, spatial_status = 0, len = 12, type = {prtype = 0, mtype = 4, len = 654, mbminlen = 0, mbmaxlen = 0}}
|
tuple = {info_bits = 0, n_fields = 1, n_fields_cmp = 1, fields = , n_v_fields = 0, v_fields = , magic_n = 65478679}
|
uncommitted = <optimized out>
|
err = DB_CORRUPTION
|
rec = <optimized out>
|
table =
|
use_uncommitted = <optimized out>
|
heap =
|
index_load_err = <optimized out>
|
|
RQG startup options |
# $RQG_HOME/rqg.pl \
|
# --gendata=conf/mariadb/table_stress.zz \
|
# --gendata_sql=conf/mariadb/table_stress.sql \
|
# --grammar=conf/mariadb/table_stress_innodb_nocopy1.yy \
|
# --reporters=MariabackupIncremental_linux \
|
# --mysqld=--loose-innodb-log-file-size=300M \
|
# --mysqld=--loose-innodb_lock_schedule_algorithm=fcfs \
|
# --mysqld=--loose-idle_write_transaction_timeout=0 \
|
# --mysqld=--loose-idle_transaction_timeout=0 \
|
# --mysqld=--loose-idle_readonly_transaction_timeout=0 \
|
# --mysqld=--connect_timeout=60 \
|
# --mysqld=--interactive_timeout=28800 \
|
# --mysqld=--slave_net_timeout=60 \
|
# --mysqld=--net_read_timeout=30 \
|
# --mysqld=--net_write_timeout=60 \
|
# --mysqld=--loose-table_lock_wait_timeout=50 \
|
# --mysqld=--wait_timeout=28800 \
|
# --no_mask \
|
# --queries=10000000 \
|
# --seed=random \
|
# --reporters=None \
|
# --reporters=ErrorLog \
|
# --reporters=Deadlock \
|
# --validators=None \
|
# --mysqld=--log_output=none \
|
# --mysqld=--log_bin_trust_function_creators=1 \
|
# --mysqld=--loose-debug_assert_on_not_freed_memory=0 \
|
# --engine=InnoDB \
|
# --restart_timeout=240 \
|
# --mysqld=--plugin-load-add=file_key_management.so \
|
# --mysqld=--loose-file-key-management-filename=$RQG_HOME/conf/mariadb/encryption_keys.txt \
|
# --mysqld=--plugin-load-add=provider_lzo.so \
|
# --mysqld=--plugin-load-add=provider_bzip2.so \
|
# --mysqld=--plugin-load-add=provider_lzma.so \
|
# --mysqld=--plugin-load-add=provider_snappy.so \
|
# --mysqld=--plugin-load-add=provider_lz4.so \
|
# --mysqld=--loose-innodb_compression_level=1 \
|
# --duration=300 \
|
# --mysqld=--loose-innodb_fatal_semaphore_wait_threshold=300 \
|
# --mysqld=--loose-innodb_data_file_path=ibdata1:1M:autoextend:autoshrink \
|
# --redefine=conf/mariadb/redefine_innodb_log_write_ahead_size.yy \
|
# --mysqld=--lock-wait-timeout=86400 \
|
# --mysqld=--innodb-lock-wait-timeout=50 \
|
# --mysqld=--sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION \
|
# --mysqld=--innodb_file_per_table=1 \
|
# --mysqld=--loose-innodb_read_only_compressed=OFF \
|
# --mysqld=--loose-innodb-sync-debug \
|
# --mysqld=--innodb_stats_persistent=on \
|
# --mysqld=--innodb_adaptive_hash_index=on \
|
# --mysqld=--innodb_random_read_ahead=OFF \
|
# --mysqld=--loose-innodb_evict_tables_on_commit_debug=on \
|
# --threads=6 \
|
# --rr=Extended \
|
# --rr_options=--chaos --wait \
|
# --mysqld=--innodb_undo_log_truncate=OFF \
|
# --mysqld=--innodb_undo_tablespaces=16 \
|
# --mysqld=--innodb_rollback_on_timeout=OFF \
|
# --mysqld=--innodb_page_size=32K \
|
# --mysqld=--innodb-buffer-pool-size=256M \
|
# --vardir_type=fast \
|
# --no_mask \
|
# --batch \
|
# --basedir1=/Server_bin/MDEV-37949D_debug_Og \
|
# --basedir2=/Server_bin/MDEV-37949D_debug_Og \
|
# --script_debug=_nix_ \
|
# --major_runid=1774850766 \
|
# --minor_runid=104
|
#--------
|
RR trae is present on SDP :-
/data/results/1774850766/TBR-2397/1_clone/rr
Attachments
Issue Links
- relates to
-
MDEV-38077 Instant ALTER TABLE…DROP COLUMN is not crash-safe
-
- Stalled
-