[MDEV-31960] InnoDB: Failing assertion: rbt_validate(tree) in ut0rbt.cc line 867 Created: 2023-08-19  Updated: 2023-11-28

Status: Confirmed
Project: MariaDB Server
Component/s: Full-text Search, Storage Engine - InnoDB
Affects Version/s: 10.4, 10.5, 10.6, 10.9, 10.10, 10.11, 11.0, 11.1, 11.2
Fix Version/s: 10.4, 10.5, 10.6, 10.11, 11.0, 11.1

Type: Bug Priority: Major
Reporter: Ramesh Sivaraman Assignee: Thirunarayanan Balathandayuthapani
Resolution: Unresolved Votes: 0
Labels: debug


 Description   

SET sql_mode='';
CREATE TABLE t (FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT,f TEXT,f2 TEXT,PRIMARY KEY(FTS_DOC_ID),FULLTEXT KEY(f));
XA START 'XA1';
INSERT INTO t VALUES (1,1,1),(2,2,2),(3,3,3);
INSERT INTO t VALUES ('20020301000001','20020302000001',1),('020303010030','020304010030',2);
DELETE FROM t;

Leads to:

11.2.0 00089ead504c63b99063236f5a870615240b5c00 (Debug)

InnoDB: Failing assertion: rbt_validate(tree)

11.2.0 00089ead504c63b99063236f5a870615240b5c00 (Debug)

Core was generated by `/test/MD090823-mariadb-11.2.0-linux-x86_64-dbg/bin/mariadbd --no-defaults --cor'.
Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
[Current thread is 1 (Thread 0x1473789c9700 (LWP 1911184))]
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x0000147391750859 in __GI_abort () at abort.c:79
#2  0x000055b2d8516e97 in ut_dbg_assertion_failed (expr=expr@entry=0x55b2d8b2c858 "rbt_validate(tree)", file=file@entry=0x55b2d8b2c700 "/test/11.2_dbg/storage/innobase/ut/ut0rbt.cc", line=line@entry=867) at /test/11.2_dbg/storage/innobase/ut/ut0dbg.cc:60
#3  0x000055b2d8517b96 in rbt_add_node (tree=tree@entry=0x14733c08eaa0, parent=parent@entry=0x1473789c7710, value=value@entry=0x1473789c7720) at /test/11.2_dbg/storage/innobase/ut/ut0rbt.cc:867
#4  0x000055b2d863783c in fts_trx_table_add_op (ftt=ftt@entry=0x14733c08ee10, doc_id=<optimized out>, doc_id@entry=20303010030, state=state@entry=FTS_DELETE, fts_indexes=fts_indexes@entry=0x0) at /test/11.2_dbg/storage/innobase/fts/fts0fts.cc:2393
#5  0x000055b2d863e35f in fts_trx_add_op (trx=trx@entry=0x147390ffcb80, table=table@entry=0x14733c0208d0, doc_id=20303010030, state=state@entry=FTS_DELETE, fts_indexes=fts_indexes@entry=0x0) at /test/11.2_dbg/storage/innobase/fts/fts0fts.cc:2419
#6  0x000055b2d845afa2 in row_fts_update_or_delete (prebuilt=prebuilt@entry=0x14733c041c00) at /test/11.2_dbg/storage/innobase/row/row0mysql.cc:1550
#7  0x000055b2d845c24b in row_update_for_mysql (prebuilt=0x14733c041c00) at /test/11.2_dbg/storage/innobase/row/row0mysql.cc:1712
#8  0x000055b2d8301c41 in ha_innobase::delete_row (this=0x14733c040f40, record=0x14733c040b28 "\374\356X'\272\004") at /test/11.2_dbg/storage/innobase/handler/ha_innodb.cc:8721
#9  0x000055b2d7ffc62d in handler::ha_delete_row (this=0x14733c040f40, buf=0x14733c040b28 "\374\356X'\272\004") at /test/11.2_dbg/sql/handler.cc:7943
#10 0x000055b2d7c9561c in TABLE::delete_row (this=0x14733c01f558) at /test/11.2_dbg/sql/sql_delete.cc:289
#11 Sql_cmd_delete::delete_from_single_table (this=this@entry=0x14733c014178, thd=thd@entry=0x14733c000d48) at /test/11.2_dbg/sql/sql_delete.cc:824
#12 0x000055b2d7c964aa in Sql_cmd_delete::execute_inner (this=0x14733c014178, thd=0x14733c000d48) at /test/11.2_dbg/sql/sql_delete.cc:1793
#13 0x000055b2d7d2906e in Sql_cmd_dml::execute (this=0x14733c014178, thd=0x14733c000d48) at /test/11.2_dbg/sql/sql_select.cc:33356
#14 0x000055b2d7ced6b7 in mysql_execute_command (thd=thd@entry=0x14733c000d48, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /test/11.2_dbg/sql/sql_parse.cc:4393
#15 0x000055b2d7cda73b in mysql_parse (thd=thd@entry=0x14733c000d48, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x1473789c82c0) at /test/11.2_dbg/sql/sql_parse.cc:7800
#16 0x000055b2d7ce7c00 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x14733c000d48, packet=packet@entry=0x14733c00af49 "DELETE FROM t", packet_length=packet_length@entry=13, blocking=blocking@entry=true) at /test/11.2_dbg/sql/sql_class.h:1375
#17 0x000055b2d7cea0b8 in do_command (thd=0x14733c000d48, blocking=blocking@entry=true) at /test/11.2_dbg/sql/sql_parse.cc:1405
#18 0x000055b2d7e4f709 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55b2da430d88, put_in_cache=put_in_cache@entry=true) at /test/11.2_dbg/sql/sql_connect.cc:1445
#19 0x000055b2d7e4fbd8 in handle_one_connection (arg=0x55b2da430d88) at /test/11.2_dbg/sql/sql_connect.cc:1347
#20 0x0000147391c61609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#21 0x000014739184d133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Bug confirmed present in:
MariaDB: 10.4.31 (dbg), 10.5.22 (dbg), 10.6.15 (dbg), 10.9.8 (dbg), 10.10.6 (dbg), 10.11.5 (dbg), 11.0.3 (dbg), 11.1.2 (dbg), 11.2.0 (dbg)

Bug (or feature/syntax) confirmed not present in:
MariaDB: 10.4.31 (opt), 10.5.22 (opt), 10.6.15 (opt), 10.9.8 (opt), 10.10.6 (opt), 10.11.5 (opt), 11.0.3 (opt), 11.1.2 (opt), 11.2.0 (opt)



 Comments   
Comment by Roel Van de Paar [ 2023-08-26 ]

Confirmed. No UB/ASAN output.

11.2.0 e81fa345020ec6a067583db6a7019d6404b26f93 (Debug, UBASAN)

Version: '11.2.0-MariaDB-debug'  socket: '/test/UBASAN_MD030823-mariadb-11.2.0-linux-x86_64-dbg/socket.sock'  port: 11092  MariaDB Server
2023-08-26 11:53:31 0x1554e8484640  InnoDB: Assertion failure in file /data/11.2_dbg_san/storage/innobase/ut/ut0rbt.cc line 867
InnoDB: Failing assertion: rbt_validate(tree)

Generated at Thu Feb 08 10:27:46 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.