Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Done
-
None
-
None
-
Can result in hang or crash
Description
Assertion found while testing MDEV-37949
|
MDEV-37949, origin/MDEV-37949 ff5964ad310f5ae63d1b9672a787933367054b02 |
# 2026-02-25T21:52:58 [3842779] | 2026-02-25 21:52:56 21 [ERROR] InnoDB: Transaction was aborted due to Deadlock
|
# 2026-02-25T21:52:58 [3842779] | mariadbd: /data/Server/MDEV-37949/storage/innobase/mtr/mtr0mtr.cc:1045: std::pair<long unsigned int, unsigned char*> log_t::append_prepare(size_t, bool) [with write mode = log_t::CIRCULAR_MMAP; size_t = long unsigned int]: Assertion `!mode || buf_size == std::min<uint64_t>(capacity(), buf_size_max)' 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="!mode || buf_size == std::min<uint64_t>(capacity(), buf_size_max)",
|
file=file@entry="/data/Server/MDEV-37949/storage/innobase/mtr/mtr0mtr.cc", line=line@entry=1045,
|
function=function@entry="std::pair<long unsigned int, unsigned char*> log_t::append_prepare(size_t, bool) [with write mode = log_t::CIRCULAR_MMAP; size_t = long unsigned int]") at ./assert/assert.c:94
|
#6 __assert_fail (assertion="!mode || buf_size == std::min<uint64_t>(capacity(), buf_size_max)", file="/data/Server/MDEV-37949/storage/innobase/mtr/mtr0mtr.cc", line=1045,
|
function="std::pair<long unsigned int, unsigned char*> log_t::append_prepare(size_t, bool) [with write mode = log_t::CIRCULAR_MMAP; size_t = long unsigned int]") at ./assert/assert.c:103
|
#7 log_t::append_prepare<(log_t::write)1> (this=this@entry=<log_sys>, size=size@entry=208, ex=false) at /data/Server/MDEV-37949/storage/innobase/mtr/mtr0mtr.cc:1045
|
#8 mtr_t::finish_writer<(log_t::write)1> (mtr=, len=208) at /data/Server/MDEV-37949/storage/innobase/mtr/mtr0mtr.cc:1327
|
#9 mtr_t::finish_write (len=208, this=) at /data/Server/MDEV-37949/storage/innobase/include/mtr0mtr.h:723
|
#10 mtr_t::do_write (this=this@entry=) at /data/Server/MDEV-37949/storage/innobase/mtr/mtr0mtr.cc:1200
|
#11 mtr_t::commit (this=this@entry=) at /data/Server/MDEV-37949/storage/innobase/mtr/mtr0mtr.cc:539
|
#12 trx_undo_report_row_operation (thr=thr@entry=, index=index@entry=, clust_entry=clust_entry@entry=, update=update@entry=, cmpl_info=cmpl_info@entry=0, rec=rec@entry=, offsets=<optimized out>,
|
roll_ptr=<optimized out>) at /data/Server/MDEV-37949/storage/innobase/trx/trx0rec.cc:1993
|
#13 btr_cur_ins_lock_and_undo (flags=flags@entry=0, cursor=cursor@entry=, entry=entry@entry=, thr=thr@entry=, mtr=mtr@entry=, inherit=inherit@entry=)
|
at /data/Server/MDEV-37949/storage/innobase/btr/btr0cur.cc:2231
|
#14 btr_cur_optimistic_insert (flags=flags@entry=0, cursor=cursor@entry=, offsets=offsets@entry=, heap=heap@entry=, entry=entry@entry=, rec=rec@entry=, big_rec=, n_ext=<optimized out>, thr=, mtr=)
|
at /data/Server/MDEV-37949/storage/innobase/btr/btr0cur.cc:2456
|
#15 row_ins_clust_index_entry_low (flags=flags@entry=0, mode=mode@entry=BTR_MODIFY_LEAF, index=index@entry=, n_uniq=n_uniq@entry=0, entry=entry@entry=, n_ext=n_ext@entry=0, thr=)
|
at /data/Server/MDEV-37949/storage/innobase/row/row0ins.cc:2938
|
#16 row_ins_clust_index_entry (index=index@entry=, entry=entry@entry=, thr=thr@entry=, n_ext=n_ext@entry=0) at /data/Server/MDEV-37949/storage/innobase/row/row0ins.cc:3324
|
#17 row_ins_index_entry (index=, entry=, thr=thr@entry=) at /data/Server/MDEV-37949/storage/innobase/row/row0ins.cc:3464
|
#18 row_ins_index_entry_step (node=node@entry=, thr=thr@entry=) at /data/Server/MDEV-37949/storage/innobase/row/row0ins.cc:3630
|
#19 row_ins (node=node@entry=, thr=thr@entry=) at /data/Server/MDEV-37949/storage/innobase/row/row0ins.cc:3747
|
#20 row_ins_step (thr=thr@entry=) at /data/Server/MDEV-37949/storage/innobase/row/row0ins.cc:3876
|
#21 row_insert_for_mysql (mysql_rec=mysql_rec@entry=<incomplete sequence \371>, prebuilt=, ins_mode=<optimized out>) at /data/Server/MDEV-37949/storage/innobase/row/row0mysql.cc:1300
|
#22 ha_innobase::write_row (this=, record=<incomplete sequence \371>) at /data/Server/MDEV-37949/storage/innobase/handler/ha_innodb.cc:7777
|
#23 handler::ha_write_row (this=, buf=<incomplete sequence \371>) at /data/Server/MDEV-37949/sql/handler.cc:8045
|
#24 Write_record::single_insert (this=this@entry=, inserted=inserted@entry=) at /data/Server/MDEV-37949/sql/sql_insert.cc:2317
|
#25 Write_record::write_record (this=this@entry=) at /data/Server/MDEV-37949/sql/sql_insert.cc:2359
|
#26 mysql_insert (thd=thd@entry=, table_list=<optimized out>, fields=..., values_list=..., update_fields=..., update_values=..., duplic=DUP_ERROR, ignore=false, result=)
|
at /data/Server/MDEV-37949/sql/sql_insert.cc:1212
|
#27 mysql_execute_command (thd=thd@entry=, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/Server/MDEV-37949/sql/sql_parse.cc:4517
|
#28 mysql_parse (thd=thd@entry=, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=) at /data/Server/MDEV-37949/sql/sql_parse.cc:7945
|
#29 dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=,
|
packet=packet@entry=" INSERT INTO t3 (col1,col2, col_int, col_string, col_text) VALUES ( 94, 94, 94, REPEAT(SUBSTR(CAST( 94 AS CHAR),1,1), 10), REPEAT(SUBSTR(CAST( 94 AS CHAR),1,1), @fill_amount) ) /* E_R Thread9 QNO 175 "..., packet_length=packet_length@entry=213, blocking=blocking@entry=true) at /data/Server/MDEV-37949/sql/sql_parse.cc:1925
|
#30 do_command (thd=thd@entry=, blocking=blocking@entry=true) at /data/Server/MDEV-37949/sql/sql_parse.cc:1433
|
#31 do_handle_one_connection (connect=<optimized out>, connect@entry=, put_in_cache=put_in_cache@entry=true) at /data/Server/MDEV-37949/sql/sql_connect.cc:1497
|
#32 handle_one_connection (arg=) at /data/Server/MDEV-37949/sql/sql_connect.cc:1409
|
#33 start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
|
#34 clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
|
|
RR trace info |
(rr) frame 7
|
#7 log_t::append_prepare<(log_t::write)1> (this=this@entry=<log_sys>, size=size@entry=208, ex=false) at /data/Server/MDEV-37949/storage/innobase/mtr/mtr0mtr.cc:1045
|
1045 ut_ad(!mode || buf_size == std::min<uint64_t>(capacity(), buf_size_max));
|
(rr) p log_sys.buf
|
$1 = (byte *) "Phys"
|
(rr) p log_sys.buf_size
|
$2 = 8376320
|
(rr) p log_sys.buf_size_max
|
$3 = 2147479552
|
(rr) p log_sys.format
|
$4 = 1349024115
|
(rr) p log_sys.write_lsn
|
$5 = 51542
|
(rr) info locals
|
__PRETTY_FUNCTION__ = "std::pair<long unsigned int, unsigned char*> log_t::append_prepare(size_t, bool) [with write mode = log_t::CIRCULAR_MMAP; size_t = long unsigned int]"
|
buf_size = <optimized out>
|
l = <optimized out>
|
lsn = <optimized out>
|
(rr) frame 12
|
#12 trx_undo_report_row_operation (thr=thr@entry=, index=index@entry=, clust_entry=clust_entry@entry=, update=update@entry=, cmpl_info=cmpl_info@entry=0,
|
rec=rec@entry=, offsets=<optimized out>, roll_ptr=<optimized out>) at /data/Server/MDEV-37949/storage/innobase/trx/trx0rec.cc:1993
|
1993 mtr.commit();
|
(rr) info args
|
thr =
|
index =
|
clust_entry =
|
update =
|
cmpl_info = 0
|
rec =
|
offsets = <optimized out>
|
roll_ptr = <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.yy \
|
# --redefine=conf/mariadb/redefine_innodb_log_archive.yy \
|
# --mysqld=--loose-innodb_log_archive=ON \
|
# --mysqld=--loose-innodb_log_file_size=8M \
|
# --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=traditional \
|
# --mysqld=--loose-innodb_read_only_compressed=OFF \
|
# --mysqld=--innodb_stats_persistent=on \
|
# --mysqld=--innodb_adaptive_hash_index=on \
|
# --mysqld=--innodb_random_read_ahead=OFF \
|
# --mysqld=--log-bin \
|
# --mysqld=--sync-binlog=1 \
|
# --mysqld=--loose-innodb_evict_tables_on_commit_debug=on \
|
# --threads=9 \
|
# --rr=Extended \
|
# --rr_options=--wait \
|
# --mysqld=--innodb_undo_log_truncate=ON \
|
# --mysqld=--innodb_rollback_on_timeout=OFF \
|
# --mysqld=--innodb_page_size=64K \
|
# --mysqld=--innodb-buffer-pool-size=256M \
|
# --vardir_type=fast \
|
# --no_mask \
|
# --batch \
|
# --basedir1=/Server_bin/MDEV-37949_debug_Og \
|
# --basedir2=/Server_bin/MDEV-37949_debug_Og \
|
# --script_debug=_nix_ \
|
# --major_runid=1772084415 \
|
# --minor_runid=128
|
RR trace is present on SDP:-
/data/results/1772084415/MDEV-37949-2364
Attachments
Issue Links
- is caused by
-
MDEV-37949 Implement innodb_log_archive
-
- In Progress
-