[MDEV-14854] Assertion `trid >= info->s->state.create_trid' failed in transid_store_packed Created: 2018-01-02  Updated: 2023-04-27

Status: Confirmed
Project: MariaDB Server
Component/s: Partitioning, Storage Engine - Aria, Versioned Tables
Affects Version/s: 10.3, 10.4, 10.5
Fix Version/s: 10.4, 10.5

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Michael Widenius
Resolution: Unresolved Votes: 0
Labels: None

Attachments: File 14854.7z     File mysql.log     HTML File threads     File trans1.test.gz    
Issue Links:
Relates
relates to MDEV-30091 Assertion `trid >= info->s->state.cre... Open

 Description   

Note: I'm not sure that versioning is important for the failure, it is just needed for the test case. Possibly the test case can be modified to avoid it.

--source include/have_partition.inc
 
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=Aria WITH SYSTEM VERSIONING PARTITION BY system_time (PARTITION p1 HISTORY, PARTITION pn CURRENT);
CREATE TABLE t2 (id INT AUTO_INCREMENT PRIMARY KEY) ENGINE=Aria;
INSERT INTO t2 VALUES (NULL),(NULL),(NULL),(NULL);
INSERT INTO t2 SELECT NULL FROM t2;
INSERT INTO t2 SELECT NULL FROM t2;
INSERT INTO t2 SELECT NULL FROM t2;
INSERT INTO t2 SELECT NULL FROM t2;
INSERT INTO t2 SELECT NULL FROM t2;
INSERT INTO t2 SELECT NULL FROM t2;
INSERT INTO t2 SELECT NULL FROM t2;
INSERT INTO t2 SELECT NULL FROM t2;
INSERT INTO t2 SELECT NULL FROM t2;
INSERT INTO t2 SELECT NULL FROM t2;
INSERT INTO t2 SELECT NULL FROM t2;
INSERT INTO t2 SELECT NULL FROM t2;
ALTER TABLE t2 ENABLE KEYS;
 
--connect (con1,localhost,root,,test)
DELETE FROM t2 WHERE id = 8803;
--send
  OPTIMIZE TABLE t2;
 
--connection default
TRUNCATE TABLE t1;
INSERT INTO t1 VALUES (1);
DELETE FROM t1 WHERE id = 51771;
INSERT INTO t1 VALUES (2);
 
# Cleanup
--connection con1
--reap
--disconnect con1
--connection default
DROP TABLE t1, t2;

10.3 acf6f92a

mysqld: /data/src/10.3/storage/maria/ma_key.c:103: transid_store_packed: Assertion `trid >= info->s->state.create_trid' failed.
190430  3:02:00 [ERROR] mysqld got signal 6 ;
 
#7  0x00007f34138b7ee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#8  0x0000559a8ded6e4a in transid_store_packed (info=0x7f33fc058210, to=0x7f33fc05c995 '\245' <repeats 67 times>, trid=21) at /data/src/10.3/storage/maria/ma_key.c:103
#9  0x0000559a8ded7790 in _ma_make_key (info=0x7f33fc058210, int_key=0x7f340dab6ee0, keynr=0, key=0x7f33fc05c990 "", record=0x7f33fc00a788 "\377\002", filepos=257, trid=21) at /data/src/10.3/storage/maria/ma_key.c:324
#10 0x0000559a8def969d in maria_write (info=0x7f33fc058210, record=0x7f33fc00a788 "\377\002") at /data/src/10.3/storage/maria/ma_write.c:189
#11 0x0000559a8de7dbd9 in ha_maria::write_row (this=0x7f33fc185828, buf=0x7f33fc00a788 "\377\002") at /data/src/10.3/storage/maria/ha_maria.cc:1291
#12 0x0000559a8d866c58 in handler::ha_write_row (this=0x7f33fc185828, buf=0x7f33fc00a788 "\377\002") at /data/src/10.3/sql/handler.cc:6320
#13 0x0000559a8dfb57a3 in ha_partition::write_row (this=0x7f33fc184828, buf=0x7f33fc00a788 "\377\002") at /data/src/10.3/sql/ha_partition.cc:4316
#14 0x0000559a8d866c06 in handler::ha_write_row (this=0x7f33fc184828, buf=0x7f33fc00a788 "\377\002") at /data/src/10.3/sql/handler.cc:6320
#15 0x0000559a8d520c9b in write_record (thd=0x7f33fc000b00, table=0x7f33fc183be0, info=0x7f340dab7360) at /data/src/10.3/sql/sql_insert.cc:2017
#16 0x0000559a8d51e0b1 in mysql_insert (thd=0x7f33fc000b00, table_list=0x7f33fc014dc8, fields=..., values_list=..., update_fields=..., update_values=..., duplic=DUP_ERROR, ignore=false) at /data/src/10.3/sql/sql_insert.cc:1063
#17 0x0000559a8d55fb39 in mysql_execute_command (thd=0x7f33fc000b00) at /data/src/10.3/sql/sql_parse.cc:4729
#18 0x0000559a8d56a853 in mysql_parse (thd=0x7f33fc000b00, rawbuf=0x7f33fc014ce8 "INSERT INTO t1 VALUES (2)", length=25, parser_state=0x7f340dab85f0, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:8090
#19 0x0000559a8d557b22 in dispatch_command (command=COM_QUERY, thd=0x7f33fc000b00, packet=0x7f33fc1201b1 "INSERT INTO t1 VALUES (2)", packet_length=25, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:1857
#20 0x0000559a8d55650c in do_command (thd=0x7f33fc000b00) at /data/src/10.3/sql/sql_parse.cc:1403
#21 0x0000559a8d6bf265 in do_handle_one_connection (connect=0x559a8ff01ce0) at /data/src/10.3/sql/sql_connect.cc:1402
#22 0x0000559a8d6befe9 in handle_one_connection (arg=0x559a8ff01ce0) at /data/src/10.3/sql/sql_connect.cc:1308
#23 0x0000559a8da95fcf in pfs_spawn_thread (arg=0x559a8fe5f660) at /data/src/10.3/storage/perfschema/pfs.cc:1862
#24 0x00007f34159ac494 in start_thread (arg=0x7f340dab9700) at pthread_create.c:333
#25 0x00007f341397493f in clone () from /lib/x86_64-linux-gnu/libc.so.6

No obvious failure on a non-debug build.
Due to the nature of the test case, I couldn't check pre-10.3 versions.



 Comments   
Comment by Elena Stepanova [ 2018-02-24 ]

still reproducible on bb-10.3-release 1bfcc72ac9919b

Comment by Alice Sherepa [ 2018-11-16 ]

got it on 10.4 16d43150aefc5a9a7e75f4c

mysqld: /git/10.4/storage/maria/ma_key.c:103: transid_store_packed: Assertion `trid >= info->s->state.create_trid' failed.
181116 19:21:50 [ERROR] mysqld got signal 6 ;
 
linux/raise.c:54(__GI_raise)[0x7fcfab4ed02a]
stdlib/abort.c:91(__GI_abort)[0x7fcfab4e3bd7]
assert/assert.c:92(__assert_fail_base)[0x7fcfab4e3c82]
/git/10.4/sql/mysqld(+0x1cdfc4d)[0x55c640424c4d]
maria/ma_key.c:105(transid_store_packed)[0x55c6404269a0]
maria/ma_key.c:324(_ma_make_key)[0x55c64047ed0a]
maria/ma_write.c:189(maria_write)[0x55c6403441aa]
maria/ha_maria.cc:1319(ha_maria::write_row(unsigned char*))[0x55c63fe7a9d6]
sql/handler.cc:6238(handler::ha_write_row(unsigned char*))[0x55c640e56456]
sql/ha_partition.cc:4315(ha_partition::write_row(unsigned char*))[0x55c63fe7a9d6]
sql/handler.cc:6238(handler::ha_write_row(unsigned char*))[0x55c63f6e58e5]
sql/sql_insert.cc:2022(write_record(THD*, TABLE*, st_copy_info*))[0x55c63f6defa6]
sql/sql_insert.cc:1063(mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool))[0x55c63f77daf4]
sql/sql_parse.cc:4729(mysql_execute_command(THD*))[0x55c63f792f31]
sql/sql_parse.cc:8091(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55c63f76de2e]
sql/sql_parse.cc:1853(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55c63f76afc6]
sql/sql_parse.cc:1396(do_command(THD*))[0x55c63fabfe37]
sql/sql_connect.cc:1402(do_handle_one_connection(CONNECT*))[0x55c63fabf814]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7fcfac1286ba]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7fcfab5bd41d]
 
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x62b000188288): INSERT INTO `PP_I` () VALUES (),(),() /* QNO 1340 CON_ID 16 */  /* QNO 1342 CON_ID 16 */
Connection ID (thread ID): 16
Status: NOT_KILLED

perl ./runall-new.pl --no-mask --seed=time --threads=6 --duration=300 --queries=100M --reporter=Backtrace,ErrorLog,Deadlock --validator=TransformerNoComparator --transformer=ConvertSubqueriesToViews,ConvertTablesToDerived,Count,DisableIndexes,DisableOptimizations,Distinct,EnableOptimizations,ExecuteAsCTE,ExecuteAsDeleteReturning,ExecuteAsDerived,ExecuteAsExcept,ExecuteAsExecuteImmediate,ExecuteAsInsertSelect,ExecuteAsIntersect,ExecuteAsSelectItem,ExecuteAsUnion,ExecuteAsUpdateDelete,ExecuteAsView,ExecuteAsWhereSubquery,Having,InlineSubqueries,InlineVirtualColumns,LimitRowsExamined,OrderBy,StraightJoin,ExecuteAsPreparedTwice,ExecuteAsTrigger,ExecuteAsSPTwice,ExecuteAsFunctionTwice --querytimeout=30 --vcols --views=MERGE --grammar=conf/mariadb/instant_add.yy --gendata=conf/partitioning/partition_pruning.zz --engine=Aria --basedir1=/git/10.4 --vardir1=/1

Comment by Elena Stepanova [ 2019-03-15 ]

Still reproducible on 10.3: https://dev.azure.com/elenst/MariaDB%20tests/_build/results?buildId=1521 [035]

elenst-jira-refs ba1b2f2f master b7a399a1

perl ./runall-new.pl --basedir=/home/vsts/server --vardir=/home/vsts/logs/vardir --seed=1552649415 --reporters=Backtrace,ErrorLog,Deadlock --filter=conf/mariadb/10.4-combo-filter.ff --duration=400 --threads=6 --engine=Aria --views --grammar=conf/mariadb/generic-dml.yy --gendata-advanced --redefine=conf/mariadb/alter_table.yy --redefine=conf/mariadb/instant_add.yy --redefine=conf/mariadb/modules/alter_table_columns.yy --redefine=conf/mariadb/sp.yy --redefine=conf/mariadb/bulk_insert.yy --redefine=conf/mariadb/modules/admin.yy --redefine=conf/mariadb/modules/userstat.yy --redefine=conf/mariadb/modules/foreign_keys.yy -redefine=conf/mariadb/modules/locks.yy --redefine=conf/mariadb/modules/sql_mode.yy --redefine=conf/mariadb/versioning.yy --redefine=conf/mariadb/sequences.yy --skip-gendata --mysqld=--log_output=FILE --mysqld=--loose-max-statement-time=20 --mysqld=--lock-wait-timeout=10 --mysqld=--loose-innodb-lock-wait-timeout=5 --mysqld=--loose-debug_assert_on_not_freed_memory=0

Comment by Alice Sherepa [ 2020-07-30 ]

Reproducible with the test case from the description on 10.3 34f2be3b296fdd5933687eda9c, but on 10.4,10.5 "'TRUNCATE TABLE t1' failed: 4137: System-versioned tables do not support TRUNCATE TABLE."
I am getting the same assertion without system-versioning, but with partitioning, Aria tables. Added datadir 14854.7z

mysqld: /10.5/storage/maria/ma_key.c:106: transid_store_packed: Assertion `trid >= info->s->state.create_trid' failed.
200729 18:44:55 [ERROR] mysqld got signal 6 ;
Server version: 10.5.5-MariaDB-debug-log
 
linux/raise.c:51(__GI_raise)[0x7f2206fcef47]
stdlib/abort.c:81(__GI_abort)[0x7f2206fd08b1]
assert/assert.c:89(__assert_fail_base)[0x7f2206fc042a]
??:0(__assert_fail)[0x7f2206fc04a2]
maria/ma_key.c:108(transid_store_packed)[0x5580ef9261e1]
maria/ma_key.c:327(_ma_make_key)[0x5580ef988f2b]
maria/ma_write.c:189(maria_write)[0x5580ef824712]
maria/ha_maria.cc:1260(ha_maria::write_row(unsigned char const*))[0x5580ef1e5721]
sql/handler.cc:7137(handler::ha_write_row(unsigned char const*))[0x5580efa7a47b]
sql/ha_partition.cc:4441(ha_partition::write_row(unsigned char const*))[0x5580ef1e5721]
sql/handler.cc:7137(handler::ha_write_row(unsigned char const*))[0x5580ee92a9a3]
sql/sql_insert.cc:2094(write_record(THD*, TABLE*, st_copy_info*, select_result*))[0x5580ee922617]
sql/sql_insert.cc:1087(mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool, select_result*))[0x5580ee9e631d]
sql/sql_parse.cc:4545(mysql_execute_command(THD*))[0x5580ee9fe3af]
sql/sql_parse.cc:7993(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x5580ee9d4e4a]
sql/sql_parse.cc:1869(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x5580ee9d16c8]
sql/sql_parse.cc:1347(do_command(THD*))[0x5580eedffaba]
sql/sql_connect.cc:1410(do_handle_one_connection(CONNECT*, bool))[0x5580eedff413]
sql/sql_connect.cc:1314(handle_one_connection)[0x5580efac3ee7]
nptl/pthread_create.c:463(start_thread)[0x7f2207ecb6db]
x86_64/clone.S:97(clone)[0x7f22070b1a3f]
 
Query (0x62b0000a12a8): INSERT IGNORE INTO `table100_aria_int_autoinc_key_pk_parts_2` ( `col_float_key`, `col_decimal_unsigned_key`, `col_int_key` ) VALUES ( -7108369061850906624, -4945664, NULL )

Generated at Thu Feb 08 08:16:47 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.