Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-37150

Assertion `btr_node_ptr_get_child_page_no(rec, offsets) == page_no' failed

    XMLWordPrintable

Details

    • Can result in hang or crash

    Description

      # mysqld options required for replay:  --log-bin
      set sql_mode='';
      CREATE TABLE t (c POINT NOT NULL,SPATIAL (c));
      INSERT INTO t VALUES (GEOMFROMTEXT ('POINT(1 312435220)'));
      INSERT INTO t VALUES (ST_GEOMFROMTEXT ('POINT(1 526818004)'));
      INSERT INTO t SELECT * FROM t;
      SET GLOBAL innodb_limit_optimistic_insert_debug=4;
      INSERT INTO t SELECT * FROM t;
      SET GLOBAL innodb_limit_optimistic_insert_debug=2;
      SET GLOBAL profiling=1;
      INSERT INTO t SELECT * FROM t;
      

      Leads to:

      CS 12.1.0 6a2afb42ba86188ccda0972f9c2df363f34e10a0 (Debug, Clang) Build 09/06/2025

      mariadbd: /test/12.1_dbg/storage/innobase/gis/gis0sea.cc:535: void rtr_compare_cursor_rec(const rec_t *, dict_index_t *, ulint): Assertion `btr_node_ptr_get_child_page_no(rec, offsets) == page_no' failed.
      

      CS 12.1.0 6a2afb42ba86188ccda0972f9c2df363f34e10a0 (Debug, Clang) Build 09/06/2025

      Core was generated by `/test/MD090625-mariadb-12.1.0-linux-x86_64-dbg/bin/mariadbd --no-defaults --max'.
      Program terminated with signal SIGABRT, Aborted.
      Download failed: Invalid argument.  Continuing without source file ./nptl/./nptl/pthread_kill.c.
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
       
      [Current thread is 1 (LWP 3534627)]
      (gdb) bt
      #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  0x000077ec15a4527e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
      #4  0x000077ec15a288ff in __GI_abort () at ./stdlib/abort.c:79
      #5  0x000077ec15a2881b in __assert_fail_base (fmt=0x77ec15bd01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x624809d70c8e "btr_node_ptr_get_child_page_no(rec, offsets) == page_no", file=file@entry=0x624809d6fe17 "/test/12.1_dbg/storage/innobase/gis/gis0sea.cc", line=line@entry=535, function=function@entry=0x624809d70cc6 "void rtr_compare_cursor_rec(const rec_t *, dict_index_t *, ulint)") at ./assert/assert.c:96
      #6  0x000077ec15a3b517 in __assert_fail (assertion=0x624809d70c8e "btr_node_ptr_get_child_page_no(rec, offsets) == page_no", file=0x624809d6fe17 "/test/12.1_dbg/storage/innobase/gis/gis0sea.cc", line=535, function=0x624809d70cc6 "void rtr_compare_cursor_rec(const rec_t *, dict_index_t *, ulint)") at ./assert/assert.c:105
      #7  0x0000624809856ed5 in rtr_compare_cursor_rec (rec=0x77ebe04dc07e "", index=0x77eaec02c1e8, page_no=18)at /test/12.1_dbg/storage/innobase/gis/gis0sea.cc:535
      #8  0x0000624809856233 in rtr_get_father_node (level=2, tuple=0x77eaec09a4b8, sea_cur=0x77ebed1b3f80, btr_cur=0x77ebed1b3a90, thr=0x0, page_no=18, mtr=0x77ebed1b48f8) at /test/12.1_dbg/storage/innobase/gis/gis0sea.cc:1198
      #9  0x0000624809852ec5 in rtr_page_get_father_node_ptr (offsets=0x77eaec09a498, heap=0x77eaec09a420, sea_cur=0x77ebed1b3f80, cursor=0x77ebed1b3a90, thr=0x0, mtr=0x77ebed1b48f8)at /test/12.1_dbg/storage/innobase/gis/gis0sea.cc:1254
      #10 0x0000624809852bda in rtr_page_get_father_block (offsets=0x0, heap=0x77eaec09a420, sea_cur=0x77ebed1b3f80, cursor=0x77ebed1b3a90, thr=0x0, mtr=0x77ebed1b48f8)at /test/12.1_dbg/storage/innobase/gis/gis0sea.cc:1296
      #11 0x0000624809845fa0 in rtr_adjust_upper_level (sea_cur=0x77ebed1b3f80, flags=7, block=0x77ebe000f480, new_block=0x77ebe000f6c0, mbr=0x77ebed1b3cc0, new_mbr=0x77ebed1b3ca0, thr=0x0, mtr=0x77ebed1b48f8)at /test/12.1_dbg/storage/innobase/gis/gis0rtree.cc:585
      #12 0x0000624809843f09 in rtr_page_split_and_insert (flags=7, cursor=0x77ebed1b3f80, offsets=0x77ebed1b3f78, heap=0x77ebed1b3f00, tuple=0x77eaec0999f0, n_ext=0, mtr=0x77ebed1b48f8, err=0x77ebed1b3e1c, thr=0x0) at /test/12.1_dbg/storage/innobase/gis/gis0rtree.cc:1157
      #13 0x0000624809706f18 in btr_cur_pessimistic_insert (flags=7, cursor=0x77ebed1b3f80, offsets=0x77ebed1b3f78, heap=0x77ebed1b3f00, entry=0x77eaec0999f0, rec=0x77ebed1b3f28, big_rec=0x77ebed1b3f30, n_ext=0, thr=0x0, mtr=0x77ebed1b48f8)at /test/12.1_dbg/storage/innobase/btr/btr0cur.cc:2649
      #14 0x000062480984622b in rtr_adjust_upper_level (sea_cur=0x77ebed1b4878, flags=0, block=0x77ebe000edc0, new_block=0x77ebe000f3c0, mbr=0x77ebed1b41b0, new_mbr=0x77ebed1b4190, thr=0x77eaec042c20, mtr=0x77ebed1b48f8) at /test/12.1_dbg/storage/innobase/gis/gis0rtree.cc:637
      #15 0x0000624809843f09 in rtr_page_split_and_insert (flags=0, cursor=0x77ebed1b4878, offsets=0x77ebed1b4608, heap=0x77ebed1b48d0, tuple=0x77eaec02b8a8, n_ext=0, mtr=0x77ebed1b48f8, err=0x77ebed1b430c, thr=0x77eaec042c20)at /test/12.1_dbg/storage/innobase/gis/gis0rtree.cc:1157
      #16 0x0000624809706f18 in btr_cur_pessimistic_insert (flags=0, cursor=0x77ebed1b4878, offsets=0x77ebed1b4608, heap=0x77ebed1b48d0, entry=0x77eaec02b8a8, rec=0x77ebed1b44c0, big_rec=0x77ebed1b44b8, n_ext=0, thr=0x77eaec042c20, mtr=0x77ebed1b48f8)at /test/12.1_dbg/storage/innobase/btr/btr0cur.cc:2649
      #17 0x00006248095c1d91 in row_ins_sec_index_entry_low (flags=0, mode=BTR_INSERT_TREE, index=0x77eaec02c1e8, offsets_heap=0x77eaec097e10, heap=0x77eaec098290, entry=0x77eaec02b8a8, trx_id=0, thr=0x77eaec042c20)at /test/12.1_dbg/storage/innobase/row/row0ins.cc:3218
      #18 0x00006248095c3993 in row_ins_sec_index_entry (index=0x77eaec02c1e8, entry=0x77eaec02b8a8, thr=0x77eaec042c20, check_foreign=true)at /test/12.1_dbg/storage/innobase/row/row0ins.cc:3404
      #19 0x00006248095cbd3e in row_ins_index_entry (index=0x77eaec02c1e8, entry=0x77eaec02b8a8, thr=0x77eaec042c20)at /test/12.1_dbg/storage/innobase/row/row0ins.cc:3457
      #20 0x00006248095cae6e in row_ins_index_entry_step (node=0x77eaec042a18, thr=0x77eaec042c20) at /test/12.1_dbg/storage/innobase/row/row0ins.cc:3621
      #21 0x00006248095c43e2 in row_ins (node=0x77eaec042a18, thr=0x77eaec042c20)at /test/12.1_dbg/storage/innobase/row/row0ins.cc:3738
      #22 0x00006248095c4030 in row_ins_step (thr=0x77eaec042c20)at /test/12.1_dbg/storage/innobase/row/row0ins.cc:3867
      #23 0x00006248095f04ac in row_insert_for_mysql (mysql_rec=0x77eaec040e38 "\031", prebuilt=0x77eaec042618, ins_mode=ROW_INS_NORMAL)at /test/12.1_dbg/storage/innobase/row/row0mysql.cc:1299
      #24 0x00006248093ed455 in ha_innobase::write_row (this=0x77eaec0405d8, record=0x77eaec040e38 "\031")at /test/12.1_dbg/storage/innobase/handler/ha_innodb.cc:7779
      #25 0x000062480900c81e in handler::ha_write_row (this=0x77eaec0405d8, buf=0x77eaec040e38 "\031") at /test/12.1_dbg/sql/handler.cc:8239
      #26 0x0000624808b66ec7 in write_record (thd=0x77eaec000d58, table=0x77eaec040188, info=0x77eaec01be70, sink=0x0)at /test/12.1_dbg/sql/sql_insert.cc:2435
      #27 0x0000624808b6c45d in select_insert::send_data (this=0x77eaec01be20, values=@0x77eaec01c2e8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x77eaec01eb58, last = 0x77eaec01eb58, elements = 1}, <No data fields>})at /test/12.1_dbg/sql/sql_insert.cc:4446
      #28 0x0000624808b2d910 in select_result_sink::send_data_with_check (this=0x77eaec01be20, items=@0x77eaec01c2e8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x77eaec01eb58, last = 0x77eaec01eb58, elements = 1}, <No data fields>}, u=0x77eaec005148, sent=1) at /test/12.1_dbg/sql/sql_class.cc:3245
      #29 0x0000624808c5129d in end_send (join=0x77eaec01bee0, join_tab=0x77eaec01e038, end_of_records=false)at /test/12.1_dbg/sql/sql_select.cc:25794
      #30 0x0000624808c7d31d in evaluate_join_record (join=0x77eaec01bee0, join_tab=0x77eaec01dbc0, error=0) at /test/12.1_dbg/sql/sql_select.cc:24681
      #31 0x0000624808c7cbd5 in AGGR_OP::end_send (this=0x77eaec01ea28)at /test/12.1_dbg/sql/sql_select.cc:33644
      #32 0x0000624808c52050 in sub_select_postjoin_aggr (join=0x77eaec01bee0, join_tab=0x77eaec01dbc0, end_of_records=true)at /test/12.1_dbg/sql/sql_select.cc:24126
      #33 0x0000624808c304b6 in sub_select (join=0x77eaec01bee0, join_tab=0x77eaec01d748, end_of_records=true)at /test/12.1_dbg/sql/sql_select.cc:24381
      #34 0x0000624808c58121 in do_select (join=0x77eaec01bee0, procedure=0x0)at /test/12.1_dbg/sql/sql_select.cc:23961
      #35 0x0000624808c57423 in JOIN::exec_inner (this=0x77eaec01bee0)at /test/12.1_dbg/sql/sql_select.cc:5074
      #36 0x0000624808c562ce in JOIN::exec (this=0x77eaec01bee0)at /test/12.1_dbg/sql/sql_select.cc:4857
      #37 0x0000624808c3114d in mysql_select (thd=0x77eaec000d58, tables=0x77eaec01ade8, fields=@0x77eaec01aa58: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x77eaec01ad98, last = 0x77eaec01ad98, elements = 1}, <No data fields>}, conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=37385559870208, result=0x77eaec01be20, unit=0x77eaec005148, select_lex=0x77eaec01a7a0) at /test/12.1_dbg/sql/sql_select.cc:5390
      #38 0x0000624808c30bd5 in handle_select (thd=0x77eaec000d58, lex=0x77eaec005068, result=0x77eaec01be20, setup_tables_done_option=35184372088832)at /test/12.1_dbg/sql/sql_select.cc:634
      #39 0x0000624808bd0d8b in mysql_execute_command (thd=0x77eaec000d58, is_called_from_prepared_stmt=false) at /test/12.1_dbg/sql/sql_parse.cc:4651
      #40 0x0000624808bc59f4 in mysql_parse (thd=0x77eaec000d58, rawbuf=0x77eaec019f80 "INSERT INTO t SELECT * FROM t", length=29, parser_state=0x77ebed1b7a10) at /test/12.1_dbg/sql/sql_parse.cc:7882
      #41 0x0000624808bc2dc8 in dispatch_command (command=COM_QUERY, thd=0x77eaec000d58, packet=0x77eaec00b2f9 "INSERT INTO t SELECT * FROM t", packet_length=29, blocking=true) at /test/12.1_dbg/sql/sql_parse.cc:1877
      #42 0x0000624808bc65a3 in do_command (thd=0x77eaec000d58, blocking=true)at /test/12.1_dbg/sql/sql_parse.cc:1416
      #43 0x0000624808db23d9 in do_handle_one_connection (connect=0x62483b1d9438, put_in_cache=true) at /test/12.1_dbg/sql/sql_connect.cc:1414
      #44 0x0000624808db217e in handle_one_connection (arg=0x62483b1900a8)at /test/12.1_dbg/sql/sql_connect.cc:1326
      #45 0x000077ec15a9caa4 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #46 0x000077ec15b29c3c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      Bug Detection Matrix

          Rel    o/d  Build   Commit                                    UniqueID observed
      CS  10.6   dbg  090625  888663ce12647c5aefee5e18accd80843d726741  No bug found
      CS  10.6   opt  090625  888663ce12647c5aefee5e18accd80843d726741  No bug found
      CS  10.11  dbg  090625  11d1ac7285221ab4df7d9ef7cc8ee949b01c9b32  offsets|SIGABRT|rec_offs_n_fields|rec_offs_validate|rec_offs_comp|rtr_update_mbr_field
      CS  10.11  opt  090625  11d1ac7285221ab4df7d9ef7cc8ee949b01c9b32  No bug found
      CS  11.4   dbg  090625  8c6cbb336081a5e1ad781df4a9778b61e3b4d73f  btr_node_ptr_get_child_page_no(rec, offsets) == page_no|SIGABRT|rtr_compare_cursor_rec|rtr_get_father_node|rtr_page_get_father_node_ptr|rtr_page_get_father_block
      CS  11.4   opt  090625  8c6cbb336081a5e1ad781df4a9778b61e3b4d73f  No bug found
      CS  11.8   dbg  170625  c095283ea6f9ef25cd1bd731b6984c7cbc7e4c3f  No bug found
      CS  11.8   opt  170625  c095283ea6f9ef25cd1bd731b6984c7cbc7e4c3f  No bug found
      CS  12.0   dbg  090625  f1102da37a3dcdc8b92e0205f0a8bd878704b168  btr_node_ptr_get_child_page_no(rec, offsets) == page_no|SIGABRT|rtr_compare_cursor_rec|rtr_get_father_node|rtr_page_get_father_node_ptr|rtr_page_get_father_block
      CS  12.0   opt  090625  f1102da37a3dcdc8b92e0205f0a8bd878704b168  No bug found
      CS  12.1   dbg  090625  6a2afb42ba86188ccda0972f9c2df363f34e10a0  btr_node_ptr_get_child_page_no(rec, offsets) == page_no|SIGABRT|rtr_compare_cursor_rec|rtr_get_father_node|rtr_page_get_father_node_ptr|rtr_page_get_father_block
      CS  12.1   opt  090625  6a2afb42ba86188ccda0972f9c2df363f34e10a0  No bug found
      ES  10.6   dbg  090625  6111fbaf7bdcb6f1170f556ffd05d6e1a4159f62  btr_node_ptr_get_child_page_no(rec, offsets) == page_no|SIGABRT|rtr_compare_cursor_rec|rtr_get_father_node|rtr_page_get_father_node_ptr|rtr_page_get_father_block
      ES  10.6   opt  090625  6111fbaf7bdcb6f1170f556ffd05d6e1a4159f62  No bug found
      ES  11.4   dbg  090625  9cd12544ebfd0d52d2158af66b5aced58121cf1f  btr_node_ptr_get_child_page_no(rec, offsets) == page_no|SIGABRT|rtr_compare_cursor_rec|rtr_get_father_node|rtr_page_get_father_node_ptr|rtr_page_get_father_block
      ES  11.4   opt  090625  9cd12544ebfd0d52d2158af66b5aced58121cf1f  No bug found
      ES  11.8   dbg  170625  b9f97a5bc42a4f23889996d2891bcbb0cafcf0bc  btr_node_ptr_get_child_page_no(rec, offsets) == page_no|SIGABRT|rtr_compare_cursor_rec|rtr_get_father_node|rtr_page_get_father_node_ptr|rtr_page_get_father_block
      ES  11.8   opt  170625  b9f97a5bc42a4f23889996d2891bcbb0cafcf0bc  No bug found
      

      Attachments

        Issue Links

          Activity

            People

              marko Marko Mäkelä
              saahil Saahil Alam
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.