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

[DRAFT]InnoDB: Failing assertion: ext_len

    XMLWordPrintable

Details

    • Can result in hang or crash

    Description

      Assertion found on 12.3

      origin/12.3 5b665f0069bada02ccd0be6bcbbc563d343667cd

      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 55 [ERROR] InnoDB: row_merge_rename_index_to_add failed with error Lock structs have exhausted the buffer pool
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 55 [ERROR] InnoDB: rename index to add: Lock structs have exhausted the buffer pool
      # 2026-04-28T07:28:11 [1375714] | 
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 60 [Note] InnoDB: Online DDL : Start reading clustered index of the table and create temporary files
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 60 [Note] InnoDB: Online DDL : End of reading clustered index of the table and create temporary files
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 60 [ERROR] InnoDB: row_merge_rename_index_to_add failed with error Lock structs have exhausted the buffer pool
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 60 [ERROR] InnoDB: rename index to add: Lock structs have exhausted the buffer pool
      # 2026-04-28T07:28:11 [1375714] | 
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 18 [Note] InnoDB: Resizing hash tables
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 18 [Note] InnoDB: innodb_buffer_pool_size=16m (508 pages) resized from 512m (16256 pages)
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 60 [ERROR] InnoDB: Failed to read page 4 from file './test/t6.ibd': Table is compressed or encrypted but uncompress or decrypt failed.
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 60 [ERROR] InnoDB: File './test/t6.ibd' is corrupted
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 60 [Note] InnoDB: You can use CHECK TABLE to scan your table for corruption. Please refer to https://mariadb.com/kb/en/library/innodb-recovery-modes/ for information about forcing recovery.
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 60 [ERROR] InnoDB: Failed to read page 4 from file './test/t6.ibd': Table is compressed or encrypted but uncompress or decrypt failed.
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 60 [ERROR] InnoDB: Failed to read page 4 from file './test/t6.ibd': Table is compressed or encrypted but uncompress or decrypt failed.
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 60 [ERROR] InnoDB: Failed to read page 4 from file './test/t6.ibd': Table is compressed or encrypted but uncompress or decrypt failed.
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28  7:28:07 60 [ERROR] InnoDB: Failed to read page 4 from file './test/t6.ibd': Table is compressed or encrypted but uncompress or decrypt failed.
      # 2026-04-28T07:28:11 [1375714] | 2026-04-28 07:28:07 0x69fe366f16c0  InnoDB: Assertion failure in file /data/Server/12.3/storage/innobase/trx/trx0rec.cc line 658
      # 2026-04-28T07:28:11 [1375714] | InnoDB: Failing assertion: ext_len
      

      RQG startup option

      # $RQG_HOME/rqg.pl \
      # --gendata=conf/mariadb/table_stress.zz \
      # --gendata_sql=conf/mariadb/table_stress.sql \
      # --grammar=conf/mariadb/table_stress_innodb_nocopy1.yy \
      # --reporters=CrashRecovery \
      # --mysqld=--loose-innodb_lock_schedule_algorithm=fcfs \
      # --mysqld=--loose-idle_write_transaction_timeout=0 \
      # --mysqld=--loose-idle_transaction_timeout=0 \
      # --mysqld=--loose-idle_readonly_transaction_timeout=0 \
      # --mysqld=--connect_timeout=60 \
      # --mysqld=--interactive_timeout=28800 \
      # --mysqld=--slave_net_timeout=60 \
      # --mysqld=--net_read_timeout=30 \
      # --mysqld=--net_write_timeout=60 \
      # --mysqld=--loose-table_lock_wait_timeout=50 \
      # --mysqld=--wait_timeout=28800 \
      # --no_mask \
      # --queries=10000000 \
      # --seed=random \
      # --reporters=None \
      # --reporters=ErrorLog \
      # --reporters=Deadlock \
      # --validators=None \
      # --mysqld=--log_output=none \
      # --mysqld=--log_bin_trust_function_creators=1 \
      # --mysqld=--loose-debug_assert_on_not_freed_memory=0 \
      # --engine=InnoDB \
      # --restart_timeout=240 \
      # --mysqld=--plugin-load-add=file_key_management.so \
      # --mysqld=--loose-file-key-management-filename=$RQG_HOME/conf/mariadb/encryption_keys.txt \
      # --mysqld=--plugin-load-add=provider_lzo.so \
      # --mysqld=--plugin-load-add=provider_bzip2.so \
      # --mysqld=--plugin-load-add=provider_lzma.so \
      # --mysqld=--plugin-load-add=provider_snappy.so \
      # --mysqld=--plugin-load-add=provider_lz4.so \
      # --mysqld=--loose-innodb_compression_level=1 \
      # --duration=300 \
      # --mysqld=--loose-innodb_fatal_semaphore_wait_threshold=300 \
      # --mysqld=--loose-innodb_data_file_path=ibdata1:1M:autoextend:autoshrink \
      # --redefine=conf/mariadb/redefine_innodb_variables_enhanced.yy \
      # --mysqld=--lock-wait-timeout=15 \
      # --mysqld=--innodb-lock-wait-timeout=10 \
      # --mysqld=--sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION \
      # --mysqld=--innodb_file_per_table=0 \
      # --mysqld=--loose-innodb_read_only_compressed=OFF \
      # --mysqld=--innodb_stats_persistent=off \
      # --mysqld=--innodb_adaptive_hash_index=off \
      # --mysqld=--innodb_random_read_ahead=OFF \
      # --mysqld=--loose-innodb_evict_tables_on_commit_debug=on \
      # --threads=6 \
      # --rr=rr record --chaos --wait \
      # --mysqld=--innodb_undo_log_truncate=OFF \
      # --mysqld=--innodb_undo_tablespaces=0 \
      # --mysqld=--innodb_rollback_on_timeout=OFF \
      # --mysqld=--innodb_page_size=32K \
      # --mysqld=--innodb-buffer-pool-size=256M \
      # --vardir_type=fast \
      # --no_mask \
      # --batch \
      # --basedir1=/Server_bin/12.3_debug_Og \
      # --basedir2=/Server_bin/12.3_debug_Og \
      # --script_debug=_nix_ \
      # --major_runid=1777383023 \
      # --minor_runid=48
      #--------
      # rqg_rr_add ->"--innodb-use-native-aio=0" "--loose-innodb-write-io-threads=2" "--loose-innodb-read-io-threads=1" "--loose-gdb" "--loose-debug-gdb"<-
      # vardir ->/dev/shm/rqg/1777383023/48<- fs_type=tmpfs
      

      Stacktrace

      (rr) 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  __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
      #4  __GI_abort () at ./stdlib/abort.c:79
      #5  ut_dbg_assertion_failed (expr=expr@entry="ext_len", file=file@entry="/data/Server/12.3/storage/innobase/trx/trx0rec.cc", line=line@entry=658) at /data/Server/12.3/storage/innobase/ut/ut0dbg.cc:60
      #6  trx_undo_page_fetch_ext (ext_buf=ext_buf@entry="\033", prefix_len=prefix_len@entry=36, zip_size=zip_size@entry=0, field="", len=len@entry=) at /data/Server/12.3/storage/innobase/trx/trx0rec.cc:658
      #7  trx_undo_page_report_modify_ext (ptr="", ptr@entry="\360\377\377\277\377\024", ext_buf="\033", prefix_len=prefix_len@entry=36, zip_size=zip_size@entry=0, field=field@entry=, len=len@entry=, spatial_status=SPATIAL_NONE)
          at /data/Server/12.3/storage/innobase/trx/trx0rec.cc:728
      #8  trx_undo_page_report_modify (undo_block=undo_block@entry=, index=index@entry=, rec=rec@entry="\200", offsets=offsets@entry=, update=update@entry=, cmpl_info=cmpl_info@entry=0, row=, mtr=)
          at /data/Server/12.3/storage/innobase/trx/trx0rec.cc:1264
      #9  trx_undo_report_row_operation (thr=thr@entry=, index=index@entry=, clust_entry=clust_entry@entry=, update=update@entry=, cmpl_info=cmpl_info@entry=0, rec=rec@entry="\200", offsets=<optimized out>, roll_ptr=<optimized out>)
          at /data/Server/12.3/storage/innobase/trx/trx0rec.cc:1957
      #10 btr_cur_upd_lock_and_undo (flags=flags@entry=2, cursor=cursor@entry=, offsets=offsets@entry=, update=update@entry=, cmpl_info=cmpl_info@entry=0, thr=thr@entry=, mtr=, roll_ptr=) at /data/Server/12.3/storage/innobase/btr/btr0cur.cc:2774
      #11 btr_cur_update_in_place (flags=flags@entry=2, cursor=cursor@entry=, offsets=, update=update@entry=, cmpl_info=cmpl_info@entry=0, thr=thr@entry=, trx_id=3815, mtr=) at /data/Server/12.3/storage/innobase/btr/btr0cur.cc:3225
      #12 btr_cur_optimistic_update (flags=flags@entry=2, cursor=cursor@entry=, offsets=offsets@entry=, heap=heap@entry=, update=, cmpl_info=0, thr=, trx_id=3815, mtr=) at /data/Server/12.3/storage/innobase/btr/btr0cur.cc:3514
      #13 row_upd_clust_rec (flags=flags@entry=0, node=node@entry=, index=index@entry=, offsets=<optimized out>, offsets@entry=, offsets_heap=offsets_heap@entry=, thr=thr@entry=, mtr=) at /data/Server/12.3/storage/innobase/row/row0upd.cc:2368
      #14 row_upd_clust_step (node=node@entry=, thr=thr@entry=) at /data/Server/12.3/storage/innobase/row/row0upd.cc:2687
      #15 row_upd (node=node@entry=, thr=thr@entry=) at /data/Server/12.3/storage/innobase/row/row0upd.cc:2750
      #16 row_upd_step (thr=thr@entry=) at /data/Server/12.3/storage/innobase/row/row0upd.cc:2892
      #17 row_update_for_mysql (prebuilt=) at /data/Server/12.3/storage/innobase/row/row0mysql.cc:1678
      #18 ha_innobase::update_row (this=, old_row="(\376\340\016", new_row="(\376X") at /data/Server/12.3/storage/innobase/handler/ha_innodb.cc:8565
      #19 handler::ha_update_row (this=, old_data="(\376\340\016", new_data="(\376X") at /data/Server/12.3/sql/handler.cc:8581
      #20 Sql_cmd_update::update_single_table (this=this@entry=, thd=thd@entry=) at /data/Server/12.3/sql/sql_update.cc:1069
      #21 Sql_cmd_update::execute_inner (this=, thd=) at /data/Server/12.3/sql/sql_update.cc:3266
      #22 Sql_cmd_dml::execute (this=, thd=) at /data/Server/12.3/sql/sql_select.cc:34850
      #23 mysql_execute_command (thd=thd@entry=, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/Server/12.3/sql/sql_parse.cc:4444
      #24 mysql_parse (thd=thd@entry=, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=) at /data/Server/12.3/sql/sql_parse.cc:7944
      #25 dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=, packet=packet@entry=" UPDATE t6 SET col2 = 88 ORDER BY col1 DESC LIMIT 2  /* E_R Thread5 QNO 1892 CON_ID 60 */ ", packet_length=packet_length@entry=90, 
          blocking=blocking@entry=true) at /data/Server/12.3/sql/sql_parse.cc:1898
      #26 do_command (thd=thd@entry=, blocking=blocking@entry=true) at /data/Server/12.3/sql/sql_parse.cc:1432
      #27 do_handle_one_connection (connect=<optimized out>, connect@entry=, put_in_cache=put_in_cache@entry=true) at /data/Server/12.3/sql/sql_connect.cc:1503
      #28 handle_one_connection (arg=) at /data/Server/12.3/sql/sql_connect.cc:1415
      #29 start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
      #30 clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
      (rr) frame 5
      #5  ut_dbg_assertion_failed (expr=expr@entry="ext_len", file=file@entry="/data/Server/12.3/storage/innobase/trx/trx0rec.cc", line=line@entry=658) at /data/Server/12.3/storage/innobase/ut/ut0dbg.cc:60
      60              abort();
      (rr) rame 6
      Undefined command: "rame".  Try "help".
      (rr) frame 6
      #6  trx_undo_page_fetch_ext (ext_buf=ext_buf@entry="\033", prefix_len=prefix_len@entry=36, zip_size=zip_size@entry=0, field="", len=len@entry=) at /data/Server/12.3/storage/innobase/trx/trx0rec.cc:658
      658             ut_a(ext_len);
      (rr) info args
      ext_buf = "\033"
      prefix_len = 36
      zip_size = 0
      field = ""
      len = 
      (rr) info locals
      ext_len = <optimized out>
      

      RR trace is present on SDP :-
      /data/results/1777383023/TBR-2407

      Attachments

        Activity

          People

            saahil Saahil Alam
            saahil Saahil Alam
            Votes:
            0 Vote for this issue
            Watchers:
            1 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.