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

deadlock between CHECK TABLE and bulk insert

    XMLWordPrintable

Details

    Description

      origin/bb-10.8-thiru 6fe2492299485888814a6d1a7a797fd7540f4e06 2023-03-03T19:05:44+05:30
      + some provisoric patch for https://jira.mariadb.org/browse/MDEV-29835
      But per Thiru the problem affects the main tree too.
       
      Scenario:
      1. Start the server, generate some initial data
      2. 9 connections run concurrent some DDL/DML mix
      3. At some point of time we have a processlist containing many threads
          in state "killed" with a lot elapsed time like
       ID -- COMMAND -- TIME -- INFO -- state
       18 -- Sleep -- 458 -- <undef> -- ok
       24 -- Killed -- 368 -- INSERT INTO t4 (col1,col2, col_int, col_string, col_text) VALUES ( 4, 4, 4, REPEAT(SUBSTR(CAST( 4 AS CHAR),1,1), 10), REPEAT(SUBSTR(CAST( 4 AS CHAR),1,1), @fill_amount) ) /* E_R Thread5 QNO 478 CON_ID 24 */ -- stalled?
       25 -- Killed -- 368 -- INSERT INTO t4 (col1,col2, col_int, col_string, col_text) VALUES ( 49, 49, 49 - 1, REPEAT(SUBSTR(CAST( 49 AS CHAR),1,1), 10), REPEAT(SUBSTR(CAST( 49 AS CHAR),1,1), @fill_amount) ) /* E_R Thread9 QNO 559 CON_ID 25 */ -- stalled?
       26 -- Query -- 368 -- INSERT INTO t4 (col1,col2, col_int, col_string, col_text) VALUES ( 505, 505, 505 - 1, REPEAT(SUBSTR(CAST( 505 AS CHAR),1,1), 10), REPEAT(SUBSTR(CAST( 505 AS CHAR),1,1), @fill_amount) ) /* E_R Thread6 QNO 599 CON_ID 26 */ -- stalled?
       36 -- Killed -- 368 -- INSERT INTO t4 (col1,col2, col_int, col_string, col_text) VALUES ( 98, 98, 98, REPEAT(SUBSTR(CAST( 98 AS CHAR),1,1), 10), REPEAT(SUBSTR(CAST( 98 - 1 AS CHAR),1,1), @fill_amount) ) /* E_R Thread1 QNO 804 CON_ID 36 */ -- stalled?
       40 -- Killed -- 368 -- UPDATE t4 SET col_int = 1 ORDER BY col1 DESC LIMIT 2  /* E_R Thread2 QNO 519 CON_ID 40 */ -- stalled?
       43 -- Killed -- 368 -- ALTER TABLE t4 DROP KEY `Marvão_idx1`, DROP PRIMARY KEY, ALGORITHM = DEFAULT  /* E_R Thread4 QNO 595 CON_ID 43 */ -- stalled?
       45 -- Killed -- 368 -- DELETE FROM t4 WHERE col_int = NULL OR col_int IS NULL  /* E_R Thread7 QNO 486 CON_ID 45 */ -- stalled?
       48 -- Killed -- 368 -- CHECK TABLE t4 EXTENDED  /* E_R Thread3 QNO 979 CON_ID 48 */ -- stalled?
       51 -- Killed -- 368 -- UPDATE t4 SET col_int = 381 ORDER BY col1 DESC LIMIT 2  /* E_R Thread8 QNO 524 CON_ID 51 */ -- stalled?
       
      pluto:/data/results/1677865194/Freeze$ _RR_TRACE_DIR=./1/rr/ rr replay --mark-stdio
      rqg log contains the InnoDB Monitor output.
       
      RQG
      ====
      # git clone https://github.com/mleich1/rqg --branch <pick the right branch> RQG
      #
      # GIT_SHOW: HEAD -> master, origin/master, origin/HEAD 4eb4084904632fa859a9c4aebd04c434bc93ffa1 2023-03-03T12:47:43+01:00
      # rqg.pl  : Version 4.2.1 (2022-12)
      #
      # $RQG_HOME/rqg.pl \
      # --grammar=conf/mariadb/table_stress_innodb.yy \
      # --gendata=conf/mariadb/table_stress.zz \
      # --gendata_sql=conf/mariadb/table_stress.sql \
      # --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 \
      # --mysqld=--lock-wait-timeout=86400 \
      # --mysqld=--innodb-lock-wait-timeout=50 \
      # --no_mask \
      # --queries=10000000 \
      # --seed=random \
      # --reporters=Backtrace \
      # --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=--innodb_file_per_table=1 \
      # --mysqld=--loose-innodb_read_only_compressed=OFF \
      # --mysqld=--loose-innodb-sync-debug \
      # --mysqld=--innodb_stats_persistent=on \
      # --mysqld=--innodb_adaptive_hash_index=on \
      # --mysqld=--innodb_sort_buffer_size=65536 \
      # --redefine=conf/mariadb/redefine_checks_off.yy \
      # --mysqld=--log-bin \
      # --mysqld=--sync-binlog=1 \
      # --mysqld=--loose-innodb_evict_tables_on_commit_debug=off \
      # --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=--loose_innodb_change_buffering=none \
      # --mysqld=--innodb_undo_tablespaces=16 \
      # --mysqld=--innodb_rollback_on_timeout=OFF \
      # --mysqld=--innodb_page_size=32K \
      # --mysqld=--innodb-buffer-pool-size=24M \
      # --vardir_type=slow \
      # <local settings>
      

      Attachments

        Activity

          People

            thiru Thirunarayanan Balathandayuthapani
            mleich Matthias Leich
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

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