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

InnoDB: Failing assertion: b == &block[0] + buf->total_size || blob_file

    XMLWordPrintable

Details

    • Can result in hang or crash

    Description

      This is heap corruption in the InnoDB FTS parallel index build, so the frame reports varies run to run.

      CREATE TABLE t1 (c1 INT,c2 TEXT,FULLTEXT(c2),FULLTEXT(c2))Engine=InnoDB PARTITION BY HASH(c1) PARTITIONS 1;
      INSERT INTO t1 (c2) VALUES ('performance tuning'),('fulltext search'),('a');
      ALTER TABLE t1 PAGE_COMPRESSED=1;
      

      Leads to:

      CS 13.0.2 be111d2cd60d035d555b71da019765cfb42ea0d3 (Optimized, Clang 22.1.8-20260621) Build 21/08/2026

      InnoDB: Failing assertion: b == &block[0] + buf->total_size || blob_file
      

      CS 13.0.2 be111d2cd60d035d555b71da019765cfb42ea0d3 (Optimized, Clang 22.1.8-20260621) Build 21/08/2026

      Core was generated by `/test/MD210826-mariadb-13.0.2-linux-x86_64-opt/bin/mariadbd --no-defaults --loo'.
      Program terminated with signal SIGSEGV, Segmentation fault.
      #0  0x0000560d9c77976c in cmp_dfield_dfield (dfield1=0x0, dfield2=0x76c280001030, descending=false) at include/rem0cmp.h:74
       
      [Current thread is 1 (LWP 2197524)]
      (gdb) bt
      #0  0x0000560d9c77976c in cmp_dfield_dfield (dfield1=0x0, dfield2=0x76c280001030, descending=false) at include/rem0cmp.h:74
      #1  row_merge_tuple_cmp (index=index@entry=0x76c235bb1d98, n_uniq=n_uniq@entry=3, n_field=n_field@entry=3, a=@0x76c229c01838: {fields = 0x0}, b=@0x76c229c01840: {fields = 0x76c280001030}, dup=dup@entry=0x0)at /test/13.0_opt/storage/innobase/row/row0merge.cc:963
      #2  0x0000560d9c7706f3 in row_merge_tuple_sort (index=index@entry=0x76c235bb1d98, n_uniq=n_uniq@entry=3, n_field=n_field@entry=3, dup=dup@entry=0x0, tuples=tuples@entry=0x76c229c01828, aux=aux@entry=0x76c229d01828, low=2, high=4) at /test/13.0_opt/storage/innobase/row/row0merge.cc:1040
      #3  0x0000560d9c77076c in row_merge_tuple_sort (index=0x76c235bb1d98, n_uniq=3, n_field=3, dup=dup@entry=0x0, tuples=0x76c229c01828, aux=0x76c229d01828, low=0, high=4)at /test/13.0_opt/storage/innobase/row/row0merge.cc:1039
      #4  0x0000560d9c770689 in row_merge_buf_sort (buf=0x3, dup=0x76c229c01838, dup@entry=0x0) at /test/13.0_opt/storage/innobase/row/row0merge.cc:1053
      #5  0x0000560d9c75c9ff in fts_parallel_tokenization (arg=0x76c2360b2190)at /test/13.0_opt/storage/innobase/row/row0ftsort.cc:909
      #6  0x0000560d9c8765f7 in tpool::task::execute (this=0x76c237eb4e10)at /test/13.0_opt/tpool/task.cc:37
      #7  0x0000560d9c874246 in tpool::thread_pool_generic::worker_main (this=0x560da19a98f0, thread_var=0x560da1ce1910)at /test/13.0_opt/tpool/tpool_generic.cc:531
      #8  0x00007ec34d8ecdb4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #9  0x00007ec34d49cb84 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #10 0x00007ec34d529d6c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      CS 13.0.2 be111d2cd60d035d555b71da019765cfb42ea0d3 (Debug, Clang 22.1.8-20260621) Build 21/08/2026

      mariadbd: /test/13.0_dbg/storage/innobase/handler/handler0alter.cc:7152: bool prepare_inplace_alter_table_dict(Alter_inplace_info *, const TABLE *, const TABLE *, const ha_table_option_struct *, const char *, ulint, ulint, ulint, bool, bool): Assertion `num_fts_index <= 1' failed.
      

      CS 13.0.2 be111d2cd60d035d555b71da019765cfb42ea0d3 (Debug, Clang 22.1.8-20260621) Build 21/08/2026

      Core was generated by `/test/MD210826-mariadb-13.0.2-linux-x86_64-dbg/bin/mariadbd --no-defaults --loo'.
      Program terminated with signal SIGABRT, Aborted.
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
       
      [Current thread is 1 (LWP 2198282)]
      (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  0x000074adcb44527e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
      #4  0x000074adcb4288ff in __GI_abort () at ./stdlib/abort.c:79
      #5  0x000074adcb42881b in __assert_fail_base (fmt=0x74adcb5d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5603f33813d1 "num_fts_index <= 1", file=file@entry=0x5603f337deb5 "/test/13.0_dbg/storage/innobase/handler/handler0alter.cc", line=line@entry=7152, function=function@entry=0x5603f33808cc "bool prepare_inplace_alter_table_dict(Alter_inplace_info *, const TABLE *, const TABLE *, const ha_table_option_struct *, const char *, ulint, ulint, ulint, bool, bool)") at ./assert/assert.c:96
      #6  0x000074adcb43b517 in __assert_fail (assertion=0x5603f33813d1 "num_fts_index <= 1", file=0x5603f337deb5 "/test/13.0_dbg/storage/innobase/handler/handler0alter.cc", line=7152, function=0x5603f33808cc "bool prepare_inplace_alter_table_dict(Alter_inplace_info *, const TABLE *, const TABLE *, const ha_table_option_struct *, const char *, ulint, ulint, ulint, bool, bool)") at ./assert/assert.c:105
      #7  0x00005603f2a57a56 in prepare_inplace_alter_table_dict (ha_alter_info=0x74adc81a6c08, altered_table=0x74adc81a6f30, old_table=0x6cacb402ad60, old_opt=0x6cacb40566c0, table_name=0x6cacb4029415 "t1", flags=1697, flags2=94, fts_doc_id_col=2, add_fts_doc_id=true, add_fts_doc_id_idx=true)at /test/13.0_dbg/storage/innobase/handler/handler0alter.cc:7152
      #8  0x00005603f2a5109c in ha_innobase::prepare_inplace_alter_table (this=0x6cacb4054460, altered_table=0x74adc81a6f30, ha_alter_info=0x74adc81a6c08)at /test/13.0_dbg/storage/innobase/handler/handler0alter.cc:8757
      #9  0x00005603f263acd1 in handler::ha_prepare_inplace_alter_table (this=0x6cacb4054460, altered_table=0x74adc81a6f30, ha_alter_info=0x74adc81a6c08) at /test/13.0_dbg/sql/handler.cc:6003
      #10 0x00005603f29a00e4 in ha_partition::prepare_inplace_alter_table (this=0x6cacb4053b50, altered_table=0x74adc81a6f30, ha_alter_info=0x74adc81a6c08) at /test/13.0_dbg/sql/ha_partition.cc:10946
      #11 0x00005603f263acd1 in handler::ha_prepare_inplace_alter_table (this=0x6cacb4053b50, altered_table=0x74adc81a6f30, ha_alter_info=0x74adc81a6c08) at /test/13.0_dbg/sql/handler.cc:6003
      #12 0x00005603f2346018 in mysql_inplace_alter_table (thd=0x6cacb4000d60, table_list=0x6cacb401a4e0, table=0x6cacb402ad60, altered_table=0x74adc81a6f30, ha_alter_info=0x74adc81a6c08, target_mdl_request=0x74adc81a8ec0, ddl_log_state=0x74adc81a6ea0, trigger_param=0x74adc81a8ac0, alter_ctx=0x74adc81a7d48, partial_alter=@0x74adc81a6e6d: false, start_alter_id=@0x74adc81a6e60: 0, if_exists=false) at /test/13.0_dbg/sql/sql_table.cc:8251
      #13 0x00005603f233f0b4 in mysql_alter_table (thd=0x6cacb4000d60, new_db=0x6cacb4005ba0, new_name=0x6cacb4006038, create_info=0x74adc81a9f90, table_list=0x6cacb401a4e0, recreate_info=0x74adc81a96a8, alter_info=0x74adc81a9e18, order_num=0, order=0x0, ignore=false, if_exists=false)at /test/13.0_dbg/sql/sql_table.cc:11810
      #14 0x00005603f23ff37c in Sql_cmd_alter_table::execute (this=0x6cacb401acc0, thd=0x6cacb4000d60) at /test/13.0_dbg/sql/sql_alter.cc:705
      #15 0x00005603f2230c06 in mysql_execute_command (thd=0x6cacb4000d60, is_called_from_prepared_stmt=false) at /test/13.0_dbg/sql/sql_parse.cc:5905
      #16 0x00005603f2221d18 in mysql_parse (thd=0x6cacb4000d60, rawbuf=0x6cacb401a3c0 "ALTER TABLE t1 PAGE_COMPRESSED=1", length=32, parser_state=0x74adc81ab9f0) at /test/13.0_dbg/sql/sql_parse.cc:7943
      #17 0x00005603f221f46e in dispatch_command (command=COM_QUERY, thd=0x6cacb4000d60, packet=0x6cacb400b5f1 "ALTER TABLE t1 PAGE_COMPRESSED=1", packet_length=32, blocking=true) at /test/13.0_dbg/sql/sql_parse.cc:1903
      #18 0x00005603f222279a in do_command (thd=0x6cacb4000d60, blocking=true)at /test/13.0_dbg/sql/sql_parse.cc:1437
      #19 0x00005603f23f475e in do_handle_one_connection (connect=0x5603fbf33700, put_in_cache=true) at /test/13.0_dbg/sql/sql_connect.cc:1514
      #20 0x00005603f23f4541 in handle_one_connection (arg=0x5603fbf12060)at /test/13.0_dbg/sql/sql_connect.cc:1426
      #21 0x000074adcb49cb84 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #22 0x000074adcb529d6c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      Bug Detection Matrix

          Rel    o/d  Build   Commit                                    UniqueID observed             
      CS  10.11  dbg  210826  6415902490b1b0a9a500cee9bc0a41c342190605  No bug found                  
      CS  10.11  opt  210826  6415902490b1b0a9a500cee9bc0a41c342190605  No bug found                  
      CS  11.4   dbg  210826  1a052f27e374fc9b4cb5b1fd098cf10f0e1381cc  No bug found                  
      CS  11.4   opt  210826  1a052f27e374fc9b4cb5b1fd098cf10f0e1381cc  No bug found                  
      CS  11.8   dbg  210826  d26f9ab217a7fcf9d4eccc62c01020ff275ff42e  No bug found                  
      CS  11.8   opt  210826  d26f9ab217a7fcf9d4eccc62c01020ff275ff42e  No bug found                  
      CS  12.3   dbg  210826  add63991988734383c5e942de2a19c6c45f511f7  num_fts_index <= 1|SIGABRT|prepare_inplace_alter_table_dict|ha_innobase::prepare_inplace_alter_table|handler::ha_prepare_inplace_alter_table|ha_partition::prepare_inplace_alter_table
      CS  12.3   opt  210826  add63991988734383c5e942de2a19c6c45f511f7  SIGSEGV|cmp_dfield_dfield|row_merge_tuple_cmp|row_merge_tuple_sort|row_merge_tuple_sort
      CS  13.0   dbg  210826  be111d2cd60d035d555b71da019765cfb42ea0d3  num_fts_index <= 1|SIGABRT|prepare_inplace_alter_table_dict|ha_innobase::prepare_inplace_alter_table|handler::ha_prepare_inplace_alter_table|ha_partition::prepare_inplace_alter_table
      CS  13.0   opt  210826  be111d2cd60d035d555b71da019765cfb42ea0d3  b == &block[0] + buf->total_size || blob_file|SIGSEGV|cmp_dfield_dfield|row_merge_tuple_cmp|row_merge_tuple_sort|row_merge_tuple_sort
      CS  13.1   dbg  210826  ff09eefbe4e8b57846435ee4a928f17e49f0fdfc  num_fts_index <= 1|SIGABRT|prepare_inplace_alter_table_dict|ha_innobase::prepare_inplace_alter_table|handler::ha_prepare_inplace_alter_table|ha_partition::prepare_inplace_alter_table
      CS  13.1   opt  210826  ff09eefbe4e8b57846435ee4a928f17e49f0fdfc  SIGABRT|__libc_message_impl|malloc_printerr|_int_free_merge_chunk|_int_free
      ES  10.6   dbg  210826  fcecb2620f25965723d640decede7c018bcb1dcc  No bug found                  
      ES  10.6   opt  210826  fcecb2620f25965723d640decede7c018bcb1dcc  No bug found                  
      ES  11.4   dbg  210826  3b34189bfe675c18c4ced3ef531d016ea74c76f4  No bug found                  
      ES  11.4   opt  210826  3b34189bfe675c18c4ced3ef531d016ea74c76f4  No bug found                  
      ES  11.8   dbg  210826  4694e931d10fecf733c34f83ea2146d31b708eb3  No bug found                  
      ES  11.8   opt  210826  4694e931d10fecf733c34f83ea2146d31b708eb3  No bug found                  
      ES  12.3   dbg  210826  f513f503feacabfb219d4a6f965b5f72b86d4db0  num_fts_index <= 1|SIGABRT|prepare_inplace_alter_table_dict|ha_innobase::prepare_inplace_alter_table|handler::ha_prepare_inplace_alter_table|ha_partition::prepare_inplace_alter_table
      ES  12.3   opt  210826  f513f503feacabfb219d4a6f965b5f72b86d4db0  SIGSEGV|mem_heap_free_heap_top|mem_heap_empty|row_merge_buf_empty|fts_parallel_tokenization
      

      Attachments

        Activity

          People

            thiru Thirunarayanan Balathandayuthapani
            saahil Saahil Alam
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0d
                0d
                Logged:
                Time Spent - 1.65h
                1.65h

                Git Integration

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