Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.3(EOL), 10.4(EOL), 10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL), 10.11, 11.0(EOL), 11.1(EOL)
-
None
Description
Notes:
- Possibly system versioning is not necessary, but I couldn't get rid of it.
- While the test case does not use virtual columns explicitly, it is likely to be related to a number of virtual column bugs.
- Without partitioning the InnoDB version of test case causes the assertion failure btr_validate_index(index, 0) for which we have plenty of reports already –
MDEV-20661,MDEV-20618, etc.
With InnoDB |
--source include/have_partition.inc
|
--source include/have_innodb.inc
|
|
CREATE TABLE t1 (a INT) ENGINE=InnoDB; |
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6); |
|
CREATE TABLE t2 (f BLOB UNIQUE) ENGINE=InnoDB WITH SYSTEM VERSIONING PARTITION BY system_time INTERVAL 1 WEEK (PARTITION p1 HISTORY, PARTITION pn CURRENT); |
INSERT INTO t2 VALUES (NULL),(''); |
|
DELETE t2.* FROM t1, t2; |
|
# Cleanup
|
DROP TABLE t1, t2; |
10.4 non-debug dc22acfd |
2020-05-22 14:49:55 0x7f10b4659700 InnoDB: Assertion failure in file /data/src/10.4/storage/innobase/row/row0mysql.cc line 1855
|
InnoDB: Failing assertion: node->pcur->rel_pos == BTR_PCUR_ON
|
|
#6 0x0000564559da6a2f in ut_dbg_assertion_failed (expr=expr@entry=0x56455a75bc08 "node->pcur->rel_pos == BTR_PCUR_ON", file=file@entry=0x56455a75b3e0 "/data/src/10.4/storage/innobase/row/row0mysql.cc", line=line@entry=1855) at /data/src/10.4/storage/innobase/ut/ut0dbg.cc:60
|
#7 0x000056455a2ad50f in row_update_for_mysql (prebuilt=0x7f105c0468c8) at /data/src/10.4/storage/innobase/row/row0mysql.cc:1855
|
#8 0x000056455a1fa17a in ha_innobase::delete_row (this=0x7f105c04d320, record=0x7f105c050220 "\374") at /data/src/10.4/storage/innobase/handler/ha_innodb.cc:8921
|
#9 0x000056455a07c2f7 in handler::ha_delete_row (this=0x7f105c04d320, buf=buf@entry=0x7f105c050220 "\374") at /data/src/10.4/sql/handler.cc:6814
|
#10 0x000056455a50dd35 in ha_partition::delete_row (this=0x7f105c0439d0, buf=0x7f105c050220 "\374") at /data/src/10.4/sql/ha_partition.cc:4558
|
#11 0x000056455a07c283 in handler::ha_delete_row (this=0x7f105c0439d0, buf=0x7f105c050220 "\374") at /data/src/10.4/sql/handler.cc:6814
|
#12 0x000056455a199d87 in TABLE::delete_row (this=0x7f105c042bd8) at /data/src/10.4/sql/sql_delete.cc:289
|
#13 multi_delete::send_data (this=0x7f105c011478, values=...) at /data/src/10.4/sql/sql_delete.cc:1346
|
#14 0x0000564559ec4c8f in end_send (join=0x7f105c011a28, join_tab=0x7f105c0148f8, end_of_records=<optimized out>) at /data/src/10.4/sql/sql_select.cc:21555
|
#15 0x0000564559ea7b9d in evaluate_join_record (join=join@entry=0x7f105c011a28, join_tab=join_tab@entry=0x7f105c014550, error=error@entry=0) at /data/src/10.4/sql/sql_select.cc:20586
|
#16 0x0000564559eb5fef in sub_select (join=0x7f105c011a28, join_tab=0x7f105c014550, end_of_records=false) at /data/src/10.4/sql/sql_select.cc:20405
|
#17 0x0000564559ea7b9d in evaluate_join_record (join=join@entry=0x7f105c011a28, join_tab=join_tab@entry=0x7f105c0141a8, error=error@entry=0) at /data/src/10.4/sql/sql_select.cc:20586
|
#18 0x0000564559eb5fef in sub_select (join=0x7f105c011a28, join_tab=0x7f105c0141a8, end_of_records=false) at /data/src/10.4/sql/sql_select.cc:20405
|
#19 0x0000564559ed636e in do_select (procedure=<optimized out>, join=0x7f105c011a28) at /data/src/10.4/sql/sql_select.cc:19904
|
#20 JOIN::exec_inner (this=this@entry=0x7f105c011a28) at /data/src/10.4/sql/sql_select.cc:4459
|
#21 0x0000564559ed6584 in JOIN::exec (this=this@entry=0x7f105c011a28) at /data/src/10.4/sql/sql_select.cc:4241
|
#22 0x0000564559ed49d0 in mysql_select (thd=thd@entry=0x7f105c0009a8, tables=0x7f105c010598, wild_num=wild_num@entry=0, fields=..., conds=conds@entry=0x0, og_num=og_num@entry=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=3489926016, result=0x7f105c011478, unit=0x7f105c004710, select_lex=0x7f105c004f08) at /data/src/10.4/sql/sql_select.cc:4673
|
#23 0x0000564559e80bba in mysql_execute_command (thd=thd@entry=0x7f105c0009a8) at /data/src/10.4/sql/sql_parse.cc:4784
|
#24 0x0000564559e85ac9 in mysql_parse (thd=thd@entry=0x7f105c0009a8, rawbuf=<optimized out>, length=23, parser_state=parser_state@entry=0x7f10b46585b0, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /data/src/10.4/sql/sql_parse.cc:7900
|
#25 0x0000564559e87cbf in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7f105c0009a8, packet=packet@entry=0x7f105c007a19 "DELETE t2.* FROM t1, t2", packet_length=packet_length@entry=23, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /data/src/10.4/sql/sql_parse.cc:1842
|
#26 0x0000564559e89431 in do_command (thd=0x7f105c0009a8) at /data/src/10.4/sql/sql_parse.cc:1360
|
#27 0x0000564559f58c04 in do_handle_one_connection (connect=connect@entry=0x56455d07c638) at /data/src/10.4/sql/sql_connect.cc:1412
|
#28 0x0000564559f58cb4 in handle_one_connection (arg=arg@entry=0x56455d07c638) at /data/src/10.4/sql/sql_connect.cc:1316
|
#29 0x000056455a4fb6a4 in pfs_spawn_thread (arg=0x56455d03d208) at /data/src/10.4/storage/perfschema/pfs.cc:1869
|
#30 0x00007f10bd23a4a4 in start_thread (arg=0x7f10b4659700) at pthread_create.c:456
|
#31 0x00007f10bb36ed0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
|
10.4 debug dc22acfd |
mysqld: /data/src/10.4/sql/ha_partition.cc:5190: virtual void ha_partition::position(const uchar*): Assertion `bitmap_is_set(&(m_part_info->read_partitions), m_last_part)' failed.
|
200522 14:52:37 [ERROR] mysqld got signal 6 ;
|
|
#7 0x00007f3428f6ef12 in __GI___assert_fail (assertion=0x55ddf38abfb8 "bitmap_is_set(&(m_part_info->read_partitions), m_last_part)", file=0x55ddf38aaed0 "/data/src/10.4/sql/ha_partition.cc", line=5190, function=0x55ddf38af4c0 <ha_partition::position(unsigned char const*)::__PRETTY_FUNCTION__> "virtual void ha_partition::position(const uchar*)") at assert.c:101
|
#8 0x000055ddf33a2ea4 in ha_partition::position (this=0x7f33d006b348, record=0x7f33d0072d58 "\374") at /data/src/10.4/sql/ha_partition.cc:5190
|
#9 0x000055ddf2d1fc9c in multi_delete::send_data (this=0x7f33d0014850, values=...) at /data/src/10.4/sql/sql_delete.cc:1333
|
#10 0x000055ddf287f3b1 in end_send (join=0x7f33d0014e00, join_tab=0x7f33d0017cd0, end_of_records=false) at /data/src/10.4/sql/sql_select.cc:21555
|
#11 0x000055ddf287ca43 in evaluate_join_record (join=0x7f33d0014e00, join_tab=0x7f33d0017928, error=0) at /data/src/10.4/sql/sql_select.cc:20586
|
#12 0x000055ddf287c4de in sub_select (join=0x7f33d0014e00, join_tab=0x7f33d0017928, end_of_records=false) at /data/src/10.4/sql/sql_select.cc:20405
|
#13 0x000055ddf287ca43 in evaluate_join_record (join=0x7f33d0014e00, join_tab=0x7f33d0017580, error=0) at /data/src/10.4/sql/sql_select.cc:20586
|
#14 0x000055ddf287c4de in sub_select (join=0x7f33d0014e00, join_tab=0x7f33d0017580, end_of_records=false) at /data/src/10.4/sql/sql_select.cc:20405
|
#15 0x000055ddf287b7b8 in do_select (join=0x7f33d0014e00, procedure=0x0) at /data/src/10.4/sql/sql_select.cc:19904
|
#16 0x000055ddf28506a1 in JOIN::exec_inner (this=0x7f33d0014e00) at /data/src/10.4/sql/sql_select.cc:4459
|
#17 0x000055ddf284f7de in JOIN::exec (this=0x7f33d0014e00) at /data/src/10.4/sql/sql_select.cc:4241
|
#18 0x000055ddf2850ef3 in mysql_select (thd=0x7f33d0000af0, tables=0x7f33d0013970, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=3489926016, result=0x7f33d0014850, unit=0x7f33d0004a18, select_lex=0x7f33d0005210) at /data/src/10.4/sql/sql_select.cc:4673
|
#19 0x000055ddf2800f58 in mysql_execute_command (thd=0x7f33d0000af0) at /data/src/10.4/sql/sql_parse.cc:4784
|
#20 0x000055ddf280b509 in mysql_parse (thd=0x7f33d0000af0, rawbuf=0x7f33d0013198 "DELETE t2.* FROM t1, t2", length=23, parser_state=0x7f341e30c570, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:7900
|
#21 0x000055ddf27f7ab9 in dispatch_command (command=COM_QUERY, thd=0x7f33d0000af0, packet=0x7f33d00083a1 "DELETE t2.* FROM t1, t2", packet_length=23, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1842
|
#22 0x000055ddf27f625b in do_command (thd=0x7f33d0000af0) at /data/src/10.4/sql/sql_parse.cc:1360
|
#23 0x000055ddf297de6a in do_handle_one_connection (connect=0x55ddf6a1d210) at /data/src/10.4/sql/sql_connect.cc:1412
|
#24 0x000055ddf297dbb9 in handle_one_connection (arg=0x55ddf6a1d210) at /data/src/10.4/sql/sql_connect.cc:1316
|
#25 0x000055ddf337b291 in pfs_spawn_thread (arg=0x55ddf6d11590) at /data/src/10.4/storage/perfschema/pfs.cc:1869
|
#26 0x00007f342aef74a4 in start_thread (arg=0x7f341e30d700) at pthread_create.c:456
|
#27 0x00007f342902bd0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
|
With MyISAM |
--source include/have_partition.inc
|
|
CREATE TABLE t1 (a INT); |
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6); |
|
CREATE TABLE t2 (f BLOB UNIQUE) WITH SYSTEM VERSIONING PARTITION BY system_time INTERVAL 1 WEEK (PARTITION p1 HISTORY, PARTITION pn CURRENT); |
INSERT INTO t2 VALUES (NULL),(''); |
|
DELETE t2.* FROM t1, t2; |
|
# Cleanup
|
DROP TABLE t1, t2; |
10.4 non-debug dc22acfd |
mysqltest: At line 9: query 'DELETE t2.* FROM t1, t2' failed: 126: Index for table './test/t2#P#p1.MYI' is corrupt; try to repair it
|
Debug assertion bitmap_is_set(&(m_part_info->read_partitions), m_last_part) fails both with InnoDB and MyISAM. Non-debug build produces an assertion failure with InnoDB and error 126 with MyISAM.
Reproducible with 10.4, 10.5.
Without partitioning the test cases cause the debug assertion
Attachments
Issue Links
- relates to
-
MDEV-20515 multi-update tries to position updated table by null reference
-
- Closed
-
-
MDEV-22714 Assertion `index->table->is_instant()' failed upon multi-update on table with WITHOUT OVERLAPS
-
- Closed
-
-
MDEV-25532 Assertion `part_id == m_last_part' failed in ha_partition::delete_row
-
- Open
-
-
MDEV-32212 DELETE with ORDER BY and semijoin optimization causing crash
-
- Closed
-
On 10.5 the stack trace is just slightly different. I don't know if the difference is intended or a sign of a problem of it's own. It is from the exact same test case as in the description (InnoDB version);
10.5 non-debug f67522ed
2020-06-01 16:08:29 0x7f26145c0700 InnoDB: Assertion failure in file /data/src/10.5/storage/innobase/row/row0mysql.cc line 1854
InnoDB: Failing assertion: node->pcur->rel_pos == BTR_PCUR_ON
#6 0x000055b7a707f643 in ut_dbg_assertion_failed (expr=expr@entry=0x55b7a7ccf970 "node->pcur->rel_pos == BTR_PCUR_ON", file=file@entry=0x55b7a7ccf1d8 "/data/src/10.5/storage/innobase/row/row0mysql.cc", line=line@entry=1854) at /data/src/10.5/storage/innobase/ut/ut0dbg.cc:60
#7 0x000055b7a776a3a7 in row_update_for_mysql (prebuilt=0x7f25d8041e20) at /data/src/10.5/storage/innobase/row/row0mysql.cc:1854
#8 0x000055b7a769b4d9 in ha_innobase::delete_row (this=0x7f25d803ee70, record=0x7f25d8047de0 "\374") at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:8649
#9 0x000055b7a739401f in handler::ha_delete_row (this=0x7f25d803ee70, buf=0x7f25d8047de0 "\374") at /data/src/10.5/sql/handler.cc:7115
#10 0x000055b7a739401f in handler::ha_delete_row (this=0x7f25d803e5d0, buf=0x7f25d8047de0 "\374") at /data/src/10.5/sql/handler.cc:7115
#11 0x000055b7a74d2617 in TABLE::delete_row (this=0x7f25d803d7d8) at /data/src/10.5/sql/sql_delete.cc:277
#12 multi_delete::send_data (this=0x7f25d8011910, values=...) at /data/src/10.5/sql/sql_delete.cc:1330
#13 0x000055b7a71d55ae in select_result_sink::send_data_with_check (sent=<optimized out>, u=<optimized out>, items=..., this=<optimized out>) at /data/src/10.5/sql/sql_class.h:5284
#14 end_send (join=0x7f25d8011f10, join_tab=0x7f25d8014e50, end_of_records=<optimized out>) at /data/src/10.5/sql/sql_select.cc:21818
#15 0x000055b7a71b6ac6 in evaluate_join_record (join=join@entry=0x7f25d8011f10, join_tab=join_tab@entry=0x7f25d8014aa8, error=error@entry=0) at /data/src/10.5/sql/sql_select.cc:20849
#16 0x000055b7a71c5b7b in sub_select (join=0x7f25d8011f10, join_tab=0x7f25d8014aa8, end_of_records=<optimized out>) at /data/src/10.5/sql/sql_select.cc:20665
#17 0x000055b7a71b6ac6 in evaluate_join_record (join=join@entry=0x7f25d8011f10, join_tab=join_tab@entry=0x7f25d8014700, error=error@entry=0) at /data/src/10.5/sql/sql_select.cc:20849
#18 0x000055b7a71c5b7b in sub_select (join=0x7f25d8011f10, join_tab=0x7f25d8014700, end_of_records=<optimized out>) at /data/src/10.5/sql/sql_select.cc:20665
#19 0x000055b7a71e77f0 in do_select (procedure=<optimized out>, join=0x7f25d8011f10) at /data/src/10.5/sql/sql_select.cc:20160
#20 JOIN::exec_inner (this=this@entry=0x7f25d8011f10) at /data/src/10.5/sql/sql_select.cc:4475
#21 0x000055b7a71e7a47 in JOIN::exec (this=this@entry=0x7f25d8011f10) at /data/src/10.5/sql/sql_select.cc:4256
#22 0x000055b7a71e5df6 in mysql_select (thd=thd@entry=0x7f25d80009b8, tables=0x7f25d8010a08, fields=..., conds=conds@entry=0x0, og_num=og_num@entry=0, order=order@entry=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2202244746112, result=0x7f25d8011910, unit=0x7f25d8004810, select_lex=0x7f25d8005010) at /data/src/10.5/sql/sql_select.cc:4680
#23 0x000055b7a71897fa in mysql_execute_command (thd=thd@entry=0x7f25d80009b8) at /data/src/10.5/sql/sql_parse.cc:4844
#24 0x000055b7a718ec8c in mysql_parse (thd=thd@entry=0x7f25d80009b8, rawbuf=<optimized out>, length=23, parser_state=parser_state@entry=0x7f26145bf500, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /data/src/10.5/sql/sql_parse.cc:7992
#25 0x000055b7a7184ac8 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7f25d80009b8, packet=packet@entry=0x7f25d8007c79 "DELETE t2.* FROM t1, t2", packet_length=packet_length@entry=23, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /data/src/10.5/sql/sql_parse.cc:1875
#26 0x000055b7a7182e7e in do_command (thd=0x7f25d80009b8) at /data/src/10.5/sql/sql_parse.cc:1356
#27 0x000055b7a72796c0 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55b7a9c0ba98, put_in_cache=put_in_cache@entry=true) at /data/src/10.5/sql/sql_connect.cc:1411
#28 0x000055b7a7279d24 in handle_one_connection (arg=arg@entry=0x55b7a9c0ba98) at /data/src/10.5/sql/sql_connect.cc:1313
#29 0x000055b7a75e7161 in pfs_spawn_thread (arg=0x55b7a9c85798) at /data/src/10.5/storage/perfschema/pfs.cc:2201
#30 0x00007f26238824a4 in start_thread (arg=0x7f26145c0700) at pthread_create.c:456
#31 0x00007f2622900d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
The difference is in the 10th frame, in 10.4 it refers to ha_partition::delete_row, while in 10.5 it repeats handler::ha_delete_row (so in fact there is no reference to partitioning in this stack trace at all).