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

SEGV during DROP generated column

    XMLWordPrintable

Details

    Description

      origin/11.2, 11.2 2867894ac6ca23fc2f82cfad2dd510351f597325 2023-06-28T09:39:28+03:00
       
      [rr 2046496 913936]230628 22:37:15 [rr 2046496 913939][ERROR] mysqld got signal 11 ;
      Query (0x55756c010890): ALTER TABLE t1 DROP COLUMN IF EXISTS col_text_g, ALGORITHM = NOCOPY, LOCK = SHARED
      [rr 2046496 935419]Status: KILL_TIMEOUT
       
      Column definitions
         col_text_g GENERATED ALWAYS AS (SUBSTR(col_text,1,499))
                        <unknown to me, but PERSISTENT or VIRTUAL>
         col_text TEXT
       
      Thread 3 received signal SIGSEGV, Segmentation fault.
      [Switching to Thread 2046496.2065699]
      ha_innobase::prepare_inplace_alter_table (this=<optimized out>, altered_table=<optimized out>, ha_alter_info=<optimized out>) at /data/Server/11.2A/storage/innobase/handler/handler0alter.cc:8411
      8411                            dict_free_vc_templ(ctx->new_table->vc_templ);
      (rr) bt
      #0  ha_innobase::prepare_inplace_alter_table (this=<optimized out>, altered_table=<optimized out>, ha_alter_info=<optimized out>) at /data/Server/11.2A/storage/innobase/handler/handler0alter.cc:8411
      #1  0x0000558cf20214ea in mysql_inplace_alter_table (target_mdl_request=0x41ea6cb9b560, if_exists=false, start_alter_id=@0x41ea6cb9ab40: 0, partial_alter=@0x41ea6cb9ab37: false, alter_ctx=0x41ea6cb9c750, 
          trigger_param=0x41ea6cb9b080, ddl_log_state=0x41ea6cb9aba0, ha_alter_info=0x41ea6cb9ac00, altered_table=0x41ea6cb9acc0, table=0x600810099fd8, table_list=0x55756c010a28, thd=0x55756c000c58)
          at /data/Server/11.2A/sql/sql_table.cc:7689
      #2  mysql_alter_table (thd=thd@entry=0x55756c000c58, new_db=new_db@entry=0x55756c0055c0, new_name=new_name@entry=0x55756c005a10, create_info=create_info@entry=0x41ea6cb9d560, table_list=<optimized out>, 
          table_list@entry=0x55756c010a28, recreate_info=recreate_info@entry=0x41ea6cb9d450, alter_info=0x41ea6cb9d470, order_num=0, order=0x0, ignore=false, if_exists=false) at /data/Server/11.2A/sql/sql_table.cc:10846
      #3  0x0000558cf2085e72 in Sql_cmd_alter_table::execute (this=<optimized out>, thd=0x55756c000c58) at /data/Server/11.2A/sql/structs.h:567
      #4  0x0000558cf1f6b8a6 in mysql_execute_command (thd=0x55756c000c58, is_called_from_prepared_stmt=<optimized out>) at /data/Server/11.2A/sql/sql_parse.cc:5766
      #5  0x0000558cf1f5be36 in mysql_parse (rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>, thd=0x55756c000c58) at /data/Server/11.2A/sql/sql_parse.cc:7774
      #6  mysql_parse (thd=0x55756c000c58, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>) at /data/Server/11.2A/sql/sql_parse.cc:7696
      #7  0x0000558cf1f67d3a in dispatch_command (command=COM_QUERY, thd=0x55756c000c58, packet=<optimized out>, packet_length=<optimized out>, blocking=<optimized out>) at /data/Server/11.2A/sql/sql_class.h:1370
      #8  0x0000558cf1f69c3e in do_command (thd=0x55756c000c58, blocking=blocking@entry=true) at /data/Server/11.2A/sql/sql_parse.cc:1405
      #9  0x0000558cf2080f37 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x558cf47f07c8, put_in_cache=put_in_cache@entry=true) at /data/Server/11.2A/sql/sql_connect.cc:1416
      #10 0x0000558cf208121d in handle_one_connection (arg=0x558cf47f07c8) at /data/Server/11.2A/sql/sql_connect.cc:1318
      #11 0x000060080b484609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #12 0x00007f64be82e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      pluto:/data/results/1687979283/TBR-1983$ _RR_TRACE_DIR=./1/rr/ rr replay --mark-stdio
       
      RQG
      ===
      # git clone https://github.com/mleich1/rqg --branch <pick the right branch> RQG
      #
      # GIT_SHOW: HEAD -> master, origin/master, origin/HEAD 195e0fe57735ef889e10d823fc9c9b218994c6f5 2023-06-28T19:17:40+02:00
      # rqg.pl  : Version 4.2.1 (2022-12)
      #
      # $RQG_HOME/rqg.pl \
      # --grammar=conf/mariadb/table_stress_innodb_nocopy1.yy \
      # --gendata=conf/mariadb/table_stress.zz \
      # --gendata_sql=conf/mariadb/table_stress.sql \
      # --reporters=RestartConsistency \
      # --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=--lock-wait-timeout=86400 \
      # --mysqld=--innodb-lock-wait-timeout=50 \
      # --mysqld=--loose-innodb_fast_shutdown=0 \
      # --mysqld=--innodb_file_per_table=0 \
      # --mysqld=--loose-innodb_read_only_compressed=OFF \
      # --mysqld=--innodb_stats_persistent=on \
      # --mysqld=--innodb_adaptive_hash_index=on \
      # --mysqld=--innodb_random_read_ahead=OFF \
      # --mysqld=--log-bin \
      # --mysqld=--sync-binlog=1 \
      # --mysqld=--loose-innodb_evict_tables_on_commit_debug=on \
      # --mysqld=--loose-max-statement-time=30 \
      # --threads=9 \
      # --mysqld=--innodb-use-native-aio=0 \
      # --mysqld=--loose-gdb \
      # --mysqld=--loose-debug-gdb \
      # --rr=Extended \
      # --rr_options=--chaos --wait \
      # --mysqld=--innodb_undo_log_truncate=OFF \
      # --mysqld=--innodb_rollback_on_timeout=OFF \
      # --mysqld=--innodb_page_size=16K \
      # --mysqld=--innodb-buffer-pool-size=256M \
      # <local settings>
       
      Hitting the problem with the grammar
      - table_stress_innodb_nocopy1.yy like used here is very rare
      - table_stress_innodb_fk.yy is 5 times more frequent but the grammar fiddles with foreign
         keys which are error prone anyway
       
       
      
      

      Attachments

        Issue Links

          Activity

            People

              nikitamalyavin Nikita Malyavin
              mleich Matthias Leich
              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.