[MDEV-15013] [Draft] Assertion `prebuilt->sql_stat_start || trx->state == TRX_STATE_ACTIVE || (prebuilt->table->no_rollback() && trx->state == TRX_STATE_NOT_STARTED)' failed in row_search_mvcc Created: 2018-01-20  Updated: 2019-09-25  Resolved: 2019-09-25

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Affects Version/s: 10.2, 10.3, 10.4
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: None

Attachments: HTML File threads    
Issue Links:
Duplicate
is duplicated by MDEV-20666 Assertion failures prebuilt->sql_stat... Stalled

 Description   

https://api.travis-ci.org/v3/job/330630112/log.txt

10.3 07c0bac03952e4b8509e0858def5c85a2b09b4eb

mysqld: /home/travis/src/storage/innobase/row/row0sel.cc:4364: dberr_t row_search_mvcc(byte*, page_cur_mode_t, row_prebuilt_t*, ulint, ulint): Assertion `prebuilt->sql_stat_start || trx->state == TRX_STATE_ACTIVE || (prebuilt->table->no_rollback() && trx->state == TRX_STATE_NOT_STARTED)' failed.
180120  3:32:33 [ERROR] mysqld got signal 6 ;
 
Query (0x7f96ac016de8): UPDATE ( `table5_innodb_int_autoinc` AS alias1 RIGHT OUTER JOIN `table1_innodb_int_autoinc` AS alias2 ON (alias2.`col_varchar_10_not_null_key` = alias1.`col_varchar_10_not_null_key` ) ) SET alias1.`pk` = -84 WHERE ( alias1.`col_int_null` NOT IN ( SELECT SQ1_alias1.`col_int_unsigned_null_key` AS SQ1_ifield1 FROM ( `table10_innodb_int_autoinc` AS SQ1_alias1, `view_table20_innodb_int_autoinc_0` AS SQ1_alias2 ) WHERE SQ1_alias2.`col_int_unsigned_not_null` >= alias1.`col_int_unsigned_not_null` OR SQ1_alias2.`col_varchar_10_not_null` = 'm' ) ) OR ( alias1.`col_date_not_null` > 78 AND alias1.`col_date_not_null` < ( 117 + 55 ) OR ( alias1.`col_date_not_null` > 108 AND alias1.`col_date_not_null` < ( 166 + 63 ) OR ( alias1.`col_varchar_10_not_null` IN ('j') OR ( alias1.`col_date_not_null` > 59 AND alias1.`col_date_not_null` < ( 140 + 177 ) OR alias1.`col_int_unsigned_null` IN (156) ) ) ) ) AND alias1.`col_date_not_null` IS NULL /* QNO 1490 CON_ID 15 */
Connection ID (thread ID): 15
Status: NOT_KILLED

#7  0x00007f9703a55ec2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#8  0x0000000000f79e04 in row_search_mvcc (buf=0x7f96b806e668 "\377\377", mode=PAGE_CUR_G, prebuilt=0x7f96b807f9d8, match_mode=0, direction=1) at /home/travis/src/storage/innobase/row/row0sel.cc:4361
#9  0x0000000000de604d in ha_innobase::general_fetch (this=0x7f96b80aa168, buf=0x7f96b806e668 "\377\377", direction=1, match_mode=0) at /home/travis/src/storage/innobase/handler/ha_innodb.cc:10016
#10 0x0000000000de62c6 in ha_innobase::index_next (this=0x7f96b80aa168, buf=0x7f96b806e668 "\377\377") at /home/travis/src/storage/innobase/handler/ha_innodb.cc:10083
#11 0x0000000000a9fa6c in handler::ha_index_next (this=0x7f96b80aa168, buf=0x7f96b806e668 "\377\377") at /home/travis/src/sql/handler.cc:2857
#12 0x00000000008222bd in join_read_next (info=0x7f96ac608718) at /home/travis/src/sql/sql_select.cc:20228
#13 0x000000000072026d in READ_RECORD::read_record (this=0x7f96ac608718) at /home/travis/src/sql/records.h:73
#14 0x000000000081fc47 in sub_select (join=0x7f96ac56af20, join_tab=0x7f96ac608650, end_of_records=false) at /home/travis/src/sql/sql_select.cc:19247
#15 0x000000000081f0fc in do_select (join=0x7f96ac56af20, procedure=0x0) at /home/travis/src/sql/sql_select.cc:18768
#16 0x00000000007f97fb in JOIN::exec_inner (this=0x7f96ac56af20) at /home/travis/src/sql/sql_select.cc:4051
#17 0x00000000007f8a76 in JOIN::exec (this=0x7f96ac56af20) at /home/travis/src/sql/sql_select.cc:3834
#18 0x00000000007f9f1a in mysql_select (thd=0x7f96ac001f20, tables=0x7f96ac017d30, wild_num=0, fields=..., conds=0x7f96ac40b910, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=551097991296, result=0x7f96ac56ae48, unit=0x7f96ac005cb0, select_lex=0x7f96ac006408) at /home/travis/src/sql/sql_select.cc:4250
#19 0x00000000008a56d2 in mysql_multi_update (thd=0x7f96ac001f20, table_list=0x7f96ac017d30, fields=0x7f96ac006528, values=0x7f96ac006a10, conds=0x7f96ac40b910, options=549755813888, handle_duplicates=DUP_ERROR, ignore=false, unit=0x7f96ac005cb0, select_lex=0x7f96ac006408, result=0x7f97011e45d0) at /home/travis/src/sql/sql_update.cc:1736
#20 0x00000000007aff34 in mysql_execute_command (thd=0x7f96ac001f20) at /home/travis/src/sql/sql_parse.cc:4623
#21 0x00000000007babb5 in mysql_parse (thd=0x7f96ac001f20, rawbuf=0x7f96ac016de8 "UPDATE ( `table5_innodb_int_autoinc` AS alias1 RIGHT OUTER JOIN `table1_innodb_int_autoinc` AS alias2 ON (alias2.`col_varchar_10_not_null_key` = alias1.`col_varchar_10_not_null_key` ) ) SET alias1.`pk"..., length=956, parser_state=0x7f97011e5470, is_com_multi=false, is_next_command=false) at /home/travis/src/sql/sql_parse.cc:7981
#22 0x00000000007a8160 in dispatch_command (command=COM_QUERY, thd=0x7f96ac001f20, packet=0x7f96ac01d6f1 " UPDATE ( `table5_innodb_int_autoinc` AS alias1 RIGHT OUTER JOIN `table1_innodb_int_autoinc` AS alias2 ON (alias2.`col_varchar_10_not_null_key` = alias1.`col_varchar_10_not_null_key` ) ) SET alias1.`p"..., packet_length=958, is_com_multi=false, is_next_command=false) at /home/travis/src/sql/sql_parse.cc:1826
#23 0x00000000007a6b87 in do_command (thd=0x7f96ac001f20) at /home/travis/src/sql/sql_parse.cc:1370
#24 0x000000000090c38e in do_handle_one_connection (connect=0x4358e70) at /home/travis/src/sql/sql_connect.cc:1401
#25 0x000000000090c110 in handle_one_connection (arg=0x4358e70) at /home/travis/src/sql/sql_connect.cc:1307
#26 0x00007f9704601e9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#27 0x00007f9703b1d2ed in clone () from /lib/x86_64-linux-gnu/libc.so.6
#28 0x0000000000000000 in ?? ()

experimental 638904a88953d7295e50a745df9d351be59d0d9a

perl /home/travis/rqg/runall-new.pl --mysqld=--max-statement-time=30 --seed=1516419056 --threads=4 --duration=350 --reporters=Backtrace,ErrorLog,Deadlock --transformers=ExecuteAsIntersect,ExecuteAsExcept --validators=TransformerNoComparator --grammar=conf/mariadb/multi_update.yy --gendata=conf/mariadb/multi_update.zz --engine=InnoDB --basedir1=/home/travis/server --vardir=/home/travis/logs/vardir1_1

Not easily reproducible.



 Comments   
Comment by Elena Stepanova [ 2018-01-26 ]

New occurrence: https://api.travis-ci.org/v3/job/333543983/log.txt

Comment by Marko Mäkelä [ 2018-02-21 ]

It could be that the SQL layer is failing to abort execution after InnoDB rolled back the transaction due to an earlier error.
Alternatively, if an earlier statement of the transaction used SQL sequences, this could be some bug in the InnoDB part of MDEV-10139.

Comment by Elena Stepanova [ 2018-04-07 ]

New occurrence: https://api.travis-ci.org/v3/job/362285487/log.txt

Comment by Elena Stepanova [ 2018-04-15 ]

New occurrence: https://api.travis-ci.org/v3/job/362285487/log.txt

Comment by Elena Stepanova [ 2018-05-03 ]

Similar yet a bit different assertion failure on 10.2:
https://api.travis-ci.org/v3/job/374081887/log.txt

mysqld: /home/travis/src/storage/innobase/row/row0sel.cc:4528: dberr_t row_search_mvcc(byte*, page_cur_mode_t, row_prebuilt_t*, ulint, ulint): Assertion `prebuilt->sql_stat_start || trx->state == TRX_STATE_ACTIVE' failed.
180503 13:40:54 [ERROR] mysqld got signal 6 ;

Comment by Elena Stepanova [ 2019-03-10 ]

On 10.4: https://travis-ci.org/elenst/travis-tests/jobs/501098652 [ 2872 13 4]

Comment by Elena Stepanova [ 2019-03-24 ]

On 10.4:
https://travis-ci.org/elenst/travis-tests/jobs/508942920 [3019 13 1]
https://travis-ci.org/elenst/travis-tests/jobs/508942938 [3019 30 4]

Comment by Elena Stepanova [ 2019-04-05 ]

On 10.4:
https://travis-ci.org/elenst/travis-tests/jobs/512527062 [3093 26 2]

Comment by Elena Stepanova [ 2019-09-25 ]

Filed a new one by mistake, MDEV-20666. Let's track it there, then, since it has a test case.

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