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

Crash in i_s_dict_fill_sys_tables

    XMLWordPrintable

Details

    • Can result in hang or crash

    Description

      This crash was found while testing MDEV-37949

      origin/MDEV-37949 d9664ddec78e23d517887df6311204bd00044240

      # 2026-03-02T16:40:32 [2518035] | #0  i_s_dict_fill_sys_tables (thd=thd@entry=0x490330000d58, table=0x0, table_to_fill=0x490330951270) at /data/Server/MDEV-37949B/storage/innobase/handler/i_s.cc:4441
      # 2026-03-02T16:40:32 [2518035] | #1  0x00005da6de00b51f in i_s_sys_tables_fill_table (thd=0x490330000d58, tables=0x49033041a950) at /data/Server/MDEV-37949B/storage/innobase/handler/i_s.cc:4570
      # 2026-03-02T16:40:32 [2518035] | #2  0x00005da6ddb936c1 in get_schema_tables_result (join=join@entry=0x49033041be20, executed_place=executed_place@entry=PROCESSED_BY_JOIN_EXEC) at /data/Server/MDEV-37949B/sql/sql_show.cc:9443
      # 2026-03-02T16:40:32 [2518035] | #3  0x00005da6ddb6bbf7 in JOIN::exec_inner (this=this@entry=0x49033041be20) at /data/Server/MDEV-37949B/sql/sql_select.cc:5066
      # 2026-03-02T16:40:32 [2518035] | #4  0x00005da6ddb6bdf5 in JOIN::exec (this=this@entry=0x49033041be20) at /data/Server/MDEV-37949B/sql/sql_select.cc:4893
      # 2026-03-02T16:40:32 [2518035] | #5  0x00005da6ddb6adbd in mysql_select (thd=thd@entry=0x490330000d58, tables=0x49033041a950, fields=..., conds=0x0, og_num=0, order=<optimized out>, group=0x0, having=0x0, proc_param=0x0, select_options=2701396736, result=0x49033041bdf8, unit=0x490330005018, select_lex=0x49033041a278) at /data/Server/MDEV-37949B/sql/sql_select.cc:5416
      # 2026-03-02T16:40:32 [2518035] | #6  0x00005da6ddb6af89 in handle_select (thd=thd@entry=0x490330000d58, lex=lex@entry=0x490330004f38, result=result@entry=0x49033041bdf8, setup_tables_done_option=setup_tables_done_option@entry=0) at /data/Server/MDEV-37949B/sql/sql_select.cc:643
      # 2026-03-02T16:40:32 [2518035] | #7  0x00005da6ddaeaa4f in execute_sqlcom_select (thd=thd@entry=0x490330000d58, all_tables=0x49033041a950) at /data/Server/MDEV-37949B/sql/sql_parse.cc:6224
      # 2026-03-02T16:40:32 [2518035] | #8  0x00005da6ddaf434c in mysql_execute_command (thd=thd@entry=0x490330000d58, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/Server/MDEV-37949B/sql/sql_parse.cc:4012
      # 2026-03-02T16:40:32 [2518035] | #9  0x00005da6ddaf9daf in mysql_parse (thd=thd@entry=0x490330000d58, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x1d02621fd400) at /data/Server/MDEV-37949B/sql/sql_parse.cc:7945
      # 2026-03-02T16:40:32 [2518035] | #10 0x00005da6ddafb492 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x490330000d58, packet=packet@entry=0x49033000b109 "SELECT * FROM `information_schema` . `INNODB_SYS_TABLES` /* E_R checkDatabaseIntegrity QNO 200 CON_ID 8 */ ", packet_length=packet_length@entry=107, blocking=blocking@entry=true) at /data/Server/MDEV-37949B/sql/sql_parse.cc:1925
      # 2026-03-02T16:40:32 [2518035] | #11 0x00005da6ddafc9df in do_command (thd=thd@entry=0x490330000d58, blocking=blocking@entry=true) at /data/Server/MDEV-37949B/sql/sql_parse.cc:1433
      # 2026-03-02T16:40:32 [2518035] | #12 0x00005da6ddc28329 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x5da6e0302908, put_in_cache=put_in_cache@entry=true) at /data/Server/MDEV-37949B/sql/sql_connect.cc:1497
      # 2026-03-02T16:40:32 [2518035] | #13 0x00005da6ddc2853a in handle_one_connection (arg=0x5da6e0302908) at /data/Server/MDEV-37949B/sql/sql_connect.cc:1409
      # 2026-03-02T16:40:32 [2518035] | #14 0x000000007009ea94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
      # 2026-03-02T16:40:32 [2518035] | #15 0x000000007012ba34 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
      

      RQG startup options

      # $RQG_HOME/rqg.pl \
      # --gendata=conf/mariadb/table_stress.zz \
      # --gendata_sql=conf/mariadb/table_stress.sql \
      # --grammar=conf/mariadb/table_stress_innodb.yy \
      # --redefine=conf/mariadb/redefine_innodb_log_archive.yy \
      # --mysqld=--loose-innodb_log_archive=ON \
      # --mysqld=--loose-innodb_log_file_size=8M \
      # --mysqld=--loose-innodb_log_file_mmap=OFF \
      # --reporters=LogArchiveRecovery \
      # --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 \
      # --mysqld=--lock-wait-timeout=15 \
      # --mysqld=--innodb-lock-wait-timeout=10 \
      # --mysqld=--sql_mode=traditional \
      # --mysqld=--innodb_file_per_table=1 \
      # --mysqld=--loose-innodb_read_only_compressed=OFF \
      # --mysqld=--loose-innodb-sync-debug \
      # --mysqld=--innodb_stats_persistent=off \
      # --mysqld=--innodb_adaptive_hash_index=off \
      # --mysqld=--innodb_random_read_ahead=ON \
      # --mysqld=--innodb_read_ahead_threshold=0 \
      # --mysqld=--log-bin \
      # --mysqld=--sync-binlog=1 \
      # --mysqld=--loose-innodb_evict_tables_on_commit_debug=on \
      # --threads=6 \
      # --rr=Extended \
      # --rr_options=--chaos --wait \
      # --mysqld=--innodb_undo_log_truncate=ON \
      # --mysqld=--innodb_undo_tablespaces=3 \
      # --mysqld=--innodb_rollback_on_timeout=ON \
      # --mysqld=--innodb_page_size=64K \
      # --mysqld=--innodb-buffer-pool-size=256M \
      # --vardir_type=fast \
      # --no_mask \
      # --batch \
      # --basedir1=/Server_bin/MDEV-37949B_debug_Og \
      # --basedir2=/Server_bin/MDEV-37949B_debug_Og \
      # --script_debug=_nix_ \
      # --major_runid=1772479413 \
      # --minor_runid=43
      #--------
      # 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/1772479413/43 fs_type=tmpfs
      

      RR trace is present on SDP:-
      /data/results/1772479413/TBR-2375

      As per Marko's initial analysis :-
      This is the relevant part:

      2193		if (auto r = dict_sys_tables_rec_read(rec, uncommitted, mtr,
      2194						      &table_id, &space_id,
      2195						      &t_num, &flags, &flags2,
      2196						      &trx_id)) {
      2197			*table = NULL;
      2198			return r == READ_ERROR ? dict_load_table_flags : nullptr;
      2199		}
      

      we will not return any error message for the case r == READ_NOT_FOUND, but not any table either. I assume that all callers need to be prepared for this.
      The name of the missing table is test/#sql-alter-267c05-8d. This is definitely unrelated to MDEV-37949 and should be reproducible in 10.6 as well.

      Attachments

        Activity

          People

            thiru Thirunarayanan Balathandayuthapani
            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.