Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
13.1
-
None
-
None
-
Can result in hang or crash
Description
Crash recovery bug :-
|
origin/main, origin/bb-13.0-MDEV-40125, origin/HEAD 7b89d04911b8a618da9ed76536313a351977d41d |
# 2026-07-23T10:05:29 [1899309] | mariadbd: /data/Server/10.11M/storage/innobase/trx/trx0rec.cc:2352: dberr_t trx_undo_prev_version(const rec_t*, dict_index_t*, rec_offs*, mem_heap_t*, rec_t**, const purge_sys_t::view_guard&, ulint, mem_heap_t*, dtuple_t**, const trx_undo_rec_t*): Assertion `index->table->is_instant()' failed.
|
|
StackTrace |
# 2026-07-23T10:07:57 [1899309] | #0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
|
# 2026-07-23T10:07:57 [1899309] | #1 __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
|
# 2026-07-23T10:07:57 [1899309] | #2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
|
# 2026-07-23T10:07:57 [1899309] | #3 0x000051d25ff2d27e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
|
# 2026-07-23T10:07:57 [1899309] | #4 0x000051d25ff108ff in __GI_abort () at ./stdlib/abort.c:79
|
# 2026-07-23T10:07:57 [1899309] | #5 0x000051d25ff1081b in __assert_fail_base (fmt=0x51d2600b81e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5c9b6db4eabb "index->table->is_instant()", file=file@entry=0x5c9b6da9ac20 "/data/Server/10.11M/storage/innobase/trx/trx0rec.cc", line=line@entry=2352, function=function@entry=0x5c9b6da9b850 "dberr_t trx_undo_prev_version(const rec_t*, dict_index_t*, rec_offs*, mem_heap_t*, rec_t**, const purge_sys_t::view_guard&, ulint, mem_heap_t*, dtuple_t**, const trx_undo_rec_t*)") at ./assert/assert.c:96
|
# 2026-07-23T10:07:57 [1899309] | #6 0x000051d25ff23517 in __assert_fail (assertion=0x5c9b6db4eabb "index->table->is_instant()", file=0x5c9b6da9ac20 "/data/Server/10.11M/storage/innobase/trx/trx0rec.cc", line=2352, function=0x5c9b6da9b850 "dberr_t trx_undo_prev_version(const rec_t*, dict_index_t*, rec_offs*, mem_heap_t*, rec_t**, const purge_sys_t::view_guard&, ulint, mem_heap_t*, dtuple_t**, const trx_undo_rec_t*)") at ./assert/assert.c:105
|
# 2026-07-23T10:07:57 [1899309] | #7 0x00005c9b6d696fcb in trx_undo_prev_version (rec=rec@entry=0x102348033fbf "\200", index=index@entry=0x21813b15d248, offsets=offsets@entry=0x102348196718, heap=<optimized out>, heap@entry=0x102348034120, old_vers=old_vers@entry=0x1653796a6af8, check=..., v_status=0, v_heap=0x0, vrow=0x0, undo_rec=0x165379a60110 "\001s\f") at /data/Server/10.11M/storage/innobase/trx/trx0rec.cc:2352
|
# 2026-07-23T10:07:57 [1899309] | #8 0x00005c9b6d697750 in trx_undo_prev_version_build (rec=rec@entry=0x102348033fbf "\200", index=index@entry=0x21813b15d248, offsets=offsets@entry=0x102348196718, heap=heap@entry=0x102348034120, old_vers=old_vers@entry=0x1653796a6af8, mtr=mtr@entry=0x1653796a6f70, v_status=0, v_heap=0x0, vrow=0x0) at /data/Server/10.11M/storage/innobase/trx/trx0rec.cc:2198
|
# 2026-07-23T10:07:57 [1899309] | #9 0x00005c9b6d65c21b in row_check_index (prebuilt=<optimized out>, n_rows=n_rows@entry=0x1653796a7368) at /data/Server/10.11M/storage/innobase/row/row0sel.cc:6613
|
# 2026-07-23T10:07:57 [1899309] | #10 0x00005c9b6d4e3541 in ha_innobase::check (this=0x1023486dfca0, thd=0x102348000d60, check_opt=0x102348006698) at /data/Server/10.11M/storage/innobase/handler/ha_innodb.cc:15729
|
# 2026-07-23T10:07:57 [1899309] | #11 0x00005c9b6d243127 in handler::ha_check (this=0x1023486dfca0, thd=thd@entry=0x102348000d60, check_opt=check_opt@entry=0x102348006698) at /data/Server/10.11M/sql/handler.cc:5701
|
# 2026-07-23T10:07:57 [1899309] | #12 0x00005c9b6d0a74ce in mysql_admin_table (thd=thd@entry=0x102348000d60, tables=tables@entry=0x102348018610, check_opt=check_opt@entry=0x102348006698, operator_name=operator_name@entry=0x5c9b6e26df20 <msg_check>, lock_type=lock_type@entry=TL_READ_NO_INSERT, org_open_for_modify=org_open_for_modify@entry=false, no_errors_from_open=false, extra_open_options=32, prepare_func=0x0, operator_func=<optimized out>, view_operator_func=0x5c9b6d03557e <view_check(THD*, TABLE_LIST*, st_ha_check_opt*)>, is_cmd_replicated=false) at /data/Server/10.11M/sql/sql_admin.cc:949
|
# 2026-07-23T10:07:57 [1899309] | #13 0x00005c9b6d0a909d in Sql_cmd_check_table::execute (this=<optimized out>, thd=0x102348000d60) at /data/Server/10.11M/sql/sql_admin.cc:1702
|
# 2026-07-23T10:07:57 [1899309] | #14 0x00005c9b6cf3261c in mysql_execute_command (thd=thd@entry=0x102348000d60, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/Server/10.11M/sql/sql_parse.cc:5905
|
# 2026-07-23T10:07:57 [1899309] | #15 0x00005c9b6cf33201 in mysql_parse (thd=thd@entry=0x102348000d60, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x1653796a82b0) at /data/Server/10.11M/sql/sql_parse.cc:7958
|
# 2026-07-23T10:07:57 [1899309] | #16 0x00005c9b6cf3487e in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x102348000d60, packet=packet@entry=0x10234800b7f1 "", packet_length=packet_length@entry=84, blocking=blocking@entry=true) at /data/Server/10.11M/sql/sql_parse.cc:1903
|
# 2026-07-23T10:07:57 [1899309] | #17 0x00005c9b6cf35e9c in do_command (thd=thd@entry=0x102348000d60, blocking=blocking@entry=true) at /data/Server/10.11M/sql/sql_parse.cc:1437
|
# 2026-07-23T10:07:57 [1899309] | #18 0x00005c9b6d091d37 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x3bf50e4e9420, put_in_cache=put_in_cache@entry=true) at /data/Server/10.11M/sql/sql_connect.cc:1510
|
# 2026-07-23T10:07:57 [1899309] | #19 0x00005c9b6d091f54 in handle_one_connection (arg=0x3bf50e4e9420) at /data/Server/10.11M/sql/sql_connect.cc:1422
|
# 2026-07-23T10:07:57 [1899309] | #20 0x000051d25ff84aa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
|
# 2026-07-23T10:07:57 [1899309] | #21 0x000051d260011a64 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
|
|
Rqg startup options |
# $RQG_HOME/rqg.pl \
|
# --views \
|
# --grammar=conf/mariadb/partitions_innodb.yy \
|
# --redefine=conf/mariadb/redefine_innodb_log_archive.yy \
|
# --mysqld=--loose-innodb_log_archive=ON \
|
# --mysqld=--loose-innodb_log_file_size=64M \
|
# --reporters=LogArchiveRecovery,Deadlock \
|
# --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 \
|
# --redefine=conf/mariadb/redefine_indexed_vcols.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=0 \
|
# --mysqld=--loose-innodb_read_only_compressed=OFF \
|
# --mysqld=--innodb_stats_persistent=on \
|
# --mysqld=--innodb_adaptive_hash_index=on \
|
# --mysqld=--innodb_sort_buffer_size=65536 \
|
# --mysqld=--innodb_random_read_ahead=ON \
|
# --mysqld=--innodb_read_ahead_threshold=0 \
|
# --mysqld=--log-bin \
|
# --mysqld=--sync-binlog=1 \
|
# --mysqld=--loose-innodb_evict_tables_on_commit_debug=off \
|
# --mysqld=--loose-max-statement-time=30 \
|
# --threads=2 \
|
# --rr=rr record --chaos --wait \
|
# --mysqld=--innodb_undo_log_truncate=OFF \
|
# --mysqld=--innodb_rollback_on_timeout=ON \
|
# --mysqld=--innodb_page_size=64K \
|
# --mysqld=--innodb-buffer-pool-size=29M \
|
# --vardir_type=slow \
|
# --no_mask \
|
# --batch \
|
# --basedir1=/Server_bin/10.11M_debug_Og \
|
# --basedir2=/Server_bin/10.11M_debug_Og \
|
# --script_debug=_nix_ \
|
# --major_runid=1784807429 \
|
# --minor_runid=62
|
|
Repro using datadir |
BASE=/Server_bin/10.11M_debug_Og
|
KEYF=/home/saahil/RQG_mleich1/conf/mariadb/encryption_keys.txt
|
DD=/tmp/repro_dd
|
|
|
# 1. Copy the recorded crash datadir into a temp dir
|
rm -rf $DD && cp -a /data/results/1784807429/007683/1/data $DD
|
rm -f $DD/ibtmp1 $DD/*.pid $DD/auto.cnf
|
|
|
# 2. Start the server on the copy (in the background)
|
$BASE/bin/mariadbd --no-defaults --basedir=$BASE --datadir=$DD \
|
--socket=/tmp/repro.sock --port=0 --skip-networking --skip-grant-tables \
|
--innodb_page_size=64K --innodb_buffer_pool_size=29M --innodb_file_per_table=0 \
|
--innodb_force_recovery=3 \
|
--plugin-load-add=file_key_management.so --loose-file-key-management-filename=$KEYF &
|
sleep 12
|
|
|
# 3. Fire the crash
|
$BASE/bin/mariadb --no-defaults -S /tmp/repro.sock -uroot test -e "CHECK TABLE E EXTENDED"
|
|
RR trace is present on SDP:-
/data/results/1784807429/TBR-2461