Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
12.3
-
Can result in hang or crash
Description
I see many related bugs but all of them seems to be closed , hence raising the bug
Assertion found on 12.3
|
origin/12.3 5b665f0069bada02ccd0be6bcbbc563d343667cd |
# 2026-04-27T14:17:10 [1459154] | mariadbd: /data/Server/12.3/storage/innobase/handler/ha_innodb.cc:2023: void innodb_transaction_abort(THD*, bool, dberr_t): Assertion `trx->state == TRX_STATE_NOT_STARTED' failed.
|
# $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 \
|
# --mysqld=--transaction-isolation=SERIALIZABLE \
|
# --validator=SelectStability \
|
# --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=15 \
|
# --mysqld=--innodb-lock-wait-timeout=10 \
|
# --mysqld=--sql_mode=traditional \
|
# --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=OFF \
|
# --mysqld=--log-bin \
|
# --mysqld=--sync-binlog=1 \
|
# --mysqld=--loose-innodb_evict_tables_on_commit_debug=off \
|
# --mysqld=--loose-max-statement-time=30 \
|
# --threads=33 \
|
# --rr=rr record --chaos --wait \
|
# --mysqld=--innodb_undo_log_truncate=OFF \
|
# --mysqld=--innodb_undo_tablespaces=16 \
|
# --mysqld=--innodb_rollback_on_timeout=ON \
|
# --mysqld=--innodb_page_size=4K \
|
# --mysqld=--innodb-buffer-pool-size=5M \
|
# --vardir_type=fast \
|
# --no_mask \
|
# --batch \
|
# --basedir1=/Server_bin/12.3_debug_Og \
|
# --basedir2=/Server_bin/12.3_debug_Og \
|
# --script_debug=_nix_ \
|
# --major_runid=1777313821 \
|
# --minor_runid=116
|
#--------
|
# rqg_rr_add ->"--innodb-use-native-aio=0" "--loose-innodb-write-io-threads=2" "--loose-innodb-read-io-threads=1" "--loose-gdb" "--loose-debug-gdb"<-
|
# vardir ->/dev/shm/rqg/1777313821/116<- fs_type=tmpfs
|
|
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="trx->state == TRX_STATE_NOT_STARTED", file=file@entry="/data/Server/12.3/storage/innobase/handler/ha_innodb.cc", line=line@entry=2023,
|
function=function@entry="void innodb_transaction_abort(THD*, bool, dberr_t)") at ./assert/assert.c:94
|
#6 __assert_fail (assertion="trx->state == TRX_STATE_NOT_STARTED", file="/data/Server/12.3/storage/innobase/handler/ha_innodb.cc", line=2023, function="void innodb_transaction_abort(THD*, bool, dberr_t)") at ./assert/assert.c:103
|
#7 innodb_transaction_abort (thd=thd@entry=, all=<optimized out>, err=err@entry=DB_LOCK_WAIT_TIMEOUT) at /data/Server/12.3/storage/innobase/handler/ha_innodb.cc:2023
|
#8 convert_error_code_to_mysql (error=error@entry=DB_LOCK_WAIT_TIMEOUT, flags=<optimized out>, thd=) at /data/Server/12.3/storage/innobase/handler/ha_innodb.cc:2105
|
#9 ha_innobase::truncate (this=) at /data/Server/12.3/storage/innobase/handler/ha_innodb.cc:13976
|
#10 handler::ha_truncate (this=) at /data/Server/12.3/sql/handler.cc:5841
|
#11 Sql_cmd_truncate_table::handler_truncate (this=this@entry=, thd=thd@entry=, table_ref=table_ref@entry=, is_tmp_table=is_tmp_table@entry=false) at /data/Server/12.3/sql/sql_truncate.cc:251
|
#12 Sql_cmd_truncate_table::truncate_table (this=this@entry=, thd=thd@entry=, table_ref=table_ref@entry=) at /data/Server/12.3/sql/sql_truncate.cc:536
|
#13 Sql_cmd_truncate_table::execute (this=, thd=) at /data/Server/12.3/sql/sql_truncate.cc:602
|
#14 mysql_execute_command (thd=thd@entry=, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/Server/12.3/sql/sql_parse.cc:5905
|
#15 mysql_parse (thd=thd@entry=, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=) at /data/Server/12.3/sql/sql_parse.cc:7944
|
#16 dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=, packet=packet@entry="TRUNCATE TABLE `table0_innodb_int` /* E_R Thread4 QNO 31 CON_ID 20 */ ", packet_length=packet_length@entry=70, blocking=blocking@entry=true)
|
at /data/Server/12.3/sql/sql_parse.cc:1898
|
#17 do_command (thd=thd@entry=, blocking=blocking@entry=true) at /data/Server/12.3/sql/sql_parse.cc:1432
|
#18 do_handle_one_connection (connect=<optimized out>, connect@entry=, put_in_cache=put_in_cache@entry=true) at /data/Server/12.3/sql/sql_connect.cc:1503
|
#19 handle_one_connection (arg=) at /data/Server/12.3/sql/sql_connect.cc:1415
|
#20 start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
|
#21 clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
|
(rr) frame 7
|
#7 innodb_transaction_abort (thd=thd@entry=, all=<optimized out>, err=err@entry=DB_LOCK_WAIT_TIMEOUT) at /data/Server/12.3/storage/innobase/handler/ha_innodb.cc:2023
|
2023 ut_ad(trx->state == TRX_STATE_NOT_STARTED);
|
(rr) info args
|
thd =
|
all = <optimized out>
|
err = DB_LOCK_WAIT_TIMEOUT
|
(rr) info locals
|
trx =
|
__PRETTY_FUNCTION__ = "void innodb_transaction_abort(THD*, bool, dberr_t)"
|
(rr) p trx->state
|
$1 = {m = std::atomic<trx_state_t> = { TRX_STATE_ACTIVE }}
|
(rr) p TRX_STATE_NOT_STARTED
|
$2 = TRX_STATE_NOT_STARTED
|
(rr) p *trx
|
$3 = {<ilist_node<void>> = {next = , prev = }, skip_lock_inheritance_and_n_ref = {m = std::atomic<unsigned int> = { 0 }}, id = 0, {max_inactive_id = 0, max_inactive_id_atomic = {m = std::atomic<unsigned long> = { 0 }}}, mutex = {
|
lock = std::atomic<unsigned int> = { 0 }}, mutex_owner = std::atomic<unsigned long> = { 0 }, state = {m = std::atomic<trx_state_t> = { TRX_STATE_ACTIVE }}, lock = {wait_lock = {m = std::atomic<ib_lock_t *> = { }}, wait_trx = , cond = {
|
__data = {__wseq = {__value64 = 3, __value32 = {__low = 3, __high = 0}}, __g1_start = {__value64 = 1, __value32 = {__low = 1, __high = 0}}, __g_refs = {0, 0}, __g_size = {0, 0}, __g1_orig_size = 4, __wrefs = 0, __g_signals = {0, 0}},
|
__size = "\003\000\000\000\000\000\000\000\001", '\000' <repeats 23 times>, "\004", '\000' <repeats 14 times>, __align = 3}, suspend_time = {m = std::atomic<my_hrtime_t> = { {val = 1777324605633820} }}, was_chosen_as_deadlock_victim = {
|
m = std::atomic<unsigned char> = { 0 '\000' }}, rec_cached = 0 '\000', table_cached = 0 '\000', wait_thr = , rec_pool = {{lock = {trx = , trx_locks = {prev = , next = }, index = , hash = , requested_time = 0, wait_time = 0,
|
un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 206158430211}, n_bits = 320}}, type_mode = 515}}, {lock = {trx = , trx_locks = {prev = , next = }, index = , hash = , requested_time = 0,
|
wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 180388626435}, n_bits = 320}}, type_mode = 3}}, {lock = {trx = , trx_locks = {prev = , next = }, index = , hash = ,
|
requested_time = 0, wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 0}, n_bits = 0}}, type_mode = 0}}, {lock = {trx = , trx_locks = {prev = , next = }, index = , hash = ,
|
requested_time = 0, wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 0}, n_bits = 0}}, type_mode = 0}}, {lock = {trx = , trx_locks = {prev = , next = }, index = , hash = ,
|
requested_time = 0, wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 0}, n_bits = 0}}, type_mode = 0}}, {lock = {trx = , trx_locks = {prev = , next = }, index = , hash = ,
|
requested_time = 0, wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 0}, n_bits = 0}}, type_mode = 0}}, {lock = {trx = , trx_locks = {prev = , next = }, index = , hash = ,
|
requested_time = 0, wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 0}, n_bits = 0}}, type_mode = 0}}, {lock = {trx = , trx_locks = {prev = , next = }, index = , hash = ,
|
requested_time = 0, wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 0}, n_bits = 0}}, type_mode = 0}}}, table_pool = {{trx = , trx_locks = {prev = , next = }, index = ,
|
hash = , requested_time = 0, wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 94121623035848}, n_bits = 0}}, type_mode = 9}, {trx = , trx_locks = {prev = , next = },
|
index = , hash = , requested_time = 0, wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 94121623258392}, n_bits = 0}}, type_mode = 9}, {trx = , trx_locks = {prev = ,
|
next = }, index = , hash = , requested_time = 0, wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 94121623251464}, n_bits = 0}}, type_mode = 9}, {trx = , trx_locks = {
|
prev = , next = }, index = , hash = , requested_time = 0, wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 0}, n_bits = 0}}, type_mode = 0}, {trx = , trx_locks = {prev = ,
|
next = }, index = , hash = , requested_time = 0, wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 0}, n_bits = 0}}, type_mode = 0}, {trx = , trx_locks = {prev = ,
|
next = }, index = , hash = , requested_time = 0, wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 0}, n_bits = 0}}, type_mode = 0}, {trx = , trx_locks = {prev = ,
|
next = }, index = , hash = , requested_time = 0, wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 0}, n_bits = 0}}, type_mode = 0}, {trx = , trx_locks = {prev = ,
|
next = }, index = , hash = , requested_time = 0, wait_time = 0, un_member = {tab_lock = {table = , locks = {prev = , next = }}, rec_lock = {page_id = {m_id = 0}, n_bits = 0}}, type_mode = 0}}, lock_heap = , trx_locks = {count = 0,
|
start = , end = , node = &ib_lock_t::trx_locks, init = 51966}, table_locks = std::__debug::vector of length 0, capacity 4, evicted_tables = {count = 0, start = , end = , node = &dict_table_t::table_LRU, init = 51966}, n_rec_locks = 0,
|
set_nth_bit_calls = 0}, wsrep = 0 '\000', read_view = {<ReadViewBase> = {m_low_limit_id = 515, m_up_limit_id = 474, m_ids = std::__debug::vector of length 5, capacity 44 = {474, 498, 504, 505, 508}, m_low_limit_no = 515},
|
m_open = std::atomic<bool> = { true }, m_mutex = {lock = std::atomic<unsigned int> = { 0 }}, m_creator_trx_id = 0}, is_recovered = false, op_info = "", isolation_level = 3, snapshot_isolation = 1, check_foreigns = 1,
|
check_unique_secondary = 1, bulk_insert = 0, is_registered = true, active_commit_ordered = false, active_prepare = false, flush_log_later = false, duplicates = 0 '\000', dict_operation = false, was_dict_operation = false,
|
dict_operation_lock_mode = false, start_time = 1777324625, start_time_micro = 1777324623838709, commit_lsn = 0, mysql_thd = , active_handler_stats = , pages_accessed = 0, mysql_log_file_name = , mysql_log_offset = 109729,
|
n_mysql_tables_in_use = 1, mysql_n_tables_locked = 1, error_state = DB_SUCCESS, error_info = , error_key_num = 18446744073709551615, graph = , undo_no = 0, last_stmt_start = 0, rsegs = {m_redo = {rseg = , undo = }, m_noredo = {rseg = ,
|
undo = }}, roll_limit = 0, in_rollback = false, pages_undone = 0, n_autoinc_rows = 0, autoinc_locks = {<small_vector_base> = {BeginX = , Size = 0, Capacity = 4}, small = {, , , }}, read_only = false, auto_commit = false,
|
will_lock = true, apply_online_log = false, fts_trx = , fts_next_doc_id = 0, flush_tables = 0, start_line = 16718, start_file = "/data/Server/12.3/storage/innobase/handler/ha_innodb.cc", xid = {formatID = -1, gtrid_length = 24,
|
bqual_length = 0, data = "MySQLXid\000\000\000\000\000\000\000\000=\004", '\000' <repeats 109 times>}, mod_tables = std::__debug::map with 0 elements, detailed_error = "", rw_trx_hash_element = , rw_trx_hash_pins = , magic_n = 91118598}
|
(rr) p trx->id
|
$4 = 0
|
(rr) p trx->state
|
$5 = {m = std::atomic<trx_state_t> = { TRX_STATE_ACTIVE }}
|
(rr) p trx->is_recovered
|
$6 = false
|
(rr) p trx->in_rollback
|
$7 = false
|
(rr) p trx->will_lock
|
$8 = true
|
(rr) p trx->mysql_thd
|
$9 = (THD *)
|
(rr) p trx->undo_no
|
$10 = 0
|
(rr) p trx->isolation_level
|
$11 = 3
|
(rr) p trx->dict_operation
|
$12 = false
|
(rr) p trx->start_time
|
$13 = 1777324625
|
(rr) p trx->lock.wait_lock
|
$14 = {m = std::atomic<ib_lock_t *> = { }}
|
(rr) p *trx->lock.wait_lock
|
No symbol "operator*" in current context.
|
(rr) p trx->lock.que_state
|
There is no member or method named que_state.
|
(rr) p trx->error_state
|
$15 = DB_SUCCESS
|
(rr) p trx->error_info
|
$16 = (const dict_index_t *)
|
RR trace is present on SDP :-
/data/results/1777313821/TBR-2405