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

UPDATE and even EXPLAIN table crashes MARIADB

    XMLWordPrintable

Details

    • Can result in hang or crash

    Description

      After upgrade from 10.11.16 to 17 an update query causes a crash. Weirdly so does an explain.

      {{ EXPLAIN
      UPDATE sales_report.products
      INNER JOIN sales_report.commodity_group cg ON cg.comm_group = '14 '
      INNER JOIN sales_report.product_group pg
      ON pg.commodity_group_id = cg.id
      AND pg.prod_group = '15 '
      SET product_group_id = pg.id
      WHERE product_code = 'A003';}}

      This works around it:
      {{ explain
      UPDATE sales_report.products
      SET product_group_id = (
      SELECT pg.id
      FROM sales_report.commodity_group cg
      JOIN sales_report.product_group pg
      ON pg.commodity_group_id = cg.id
      WHERE cg.comm_group = '14 '
      AND pg.prod_group = '15 '
      LIMIT 1
      )
      WHERE product_code = 'A003';}}

      260526 9:00:27 [ERROR] /usr/sbin/mariadbd got signal 11 ;
      Sorry, we probably made a mistake, and this is a bug.

      Your assistance in bug reporting will enable us to fix this for the next release.
      To report this bug, see https://mariadb.com/kb/en/reporting-bugs about how to report
      a bug on https://jira.mariadb.org/.

      Please include the information from the server start above, to the end of the
      information below.

      Server version: 10.11.17-MariaDB-ubu2204-log source revision: 6828ff7390a6e46155343be2e8a1443b52b208b5

      WSREP: Suppressing further logging
      WSREP: Shutting down network communications

      The information page at https://mariadb.com/kb/en/how-to-produce-a-full-stack-trace-for-mariadbd/
      contains instructions to obtain a better version of the backtrace below.
      Following these instructions will help MariaDB developers provide a fix quicker.

      Attempting backtrace. Include this in the bug report.
      (note: Retrieving this information may fail)

      Thread pointer: 0x681f2de26198
      stack_bottom = 0x702028b9c000 thread_stack 0x30000
      /usr/sbin/mariadbd(my_print_stacktrace+0x30)[0x5976785856a0]
      /usr/sbin/mariadbd(handle_fatal_signal+0x345)[0x59767816a6a5]
      2026-05-26 9:00:27 0 [Note] /usr/sbin/mariadbd (initiated by: unknown): Normal shutdown
      2026-05-26 9:00:27 0 [Note] WSREP: Shutdown replication
      2026-05-26 9:00:27 0 [Note] WSREP: Server status change synced -> disconnecting
      2026-05-26 9:00:27 0 [Note] WSREP: Closing send monitor...
      2026-05-26 9:00:27 0 [Note] WSREP: Closed send monitor.
      2026-05-26 9:00:27 0 [Note] WSREP: gcomm: terminating thread
      2026-05-26 9:00:27 0 [Note] WSREP: gcomm: joining thread
      2026-05-26 9:00:27 0 [Note] WSREP: gcomm: closing backend
      2026-05-26 9:00:27 0 [Note] WSREP: (92b87d50-a0f9, 'tcp://0.0.0.0:4567') turning message relay requesting on, nonlive peers: tcp://192.168.11.193:4567 tcp://192.168.6.36:4567 tcp://192.168.6.4:4567
      libc_sigaction.c:0(__restore_rt)[0x70207b725520]
      /usr/sbin/mariadbd(_Z18mysql_multi_updateP3THDP10TABLE_LISTP4ListI4ItemES6_PS4_y15enum_duplicatesbP18st_select_lex_unitP13st_select_lexPP12multi_update+0x23e)[0x597677fd141e]
      /usr/sbin/mariadbd(_Z21mysql_execute_commandP3THDb+0x4be6)[0x597677ec9046]
      /usr/sbin/mariadbd(_Z11mysql_parseP3THDPcjP12Parser_state+0x1f2)[0x597677ed45a2]
      /usr/sbin/mariadbd(+0x7bfdb1)[0x597677ed7db1]
      /usr/sbin/mariadbd(_Z16dispatch_command19enum_server_commandP3THDPcjb+0x2d3f)[0x597677ec277f]
      /usr/sbin/mariadbd(_Z10do_commandP3THDb+0x1e8)[0x597677ec3308]
      /usr/sbin/mariadbd(_Z24do_handle_one_connectionP7CONNECTb+0x1cd)[0x59767803900d]
      /usr/sbin/mariadbd(handle_one_connection+0x90)[0x597678039760]
      /usr/sbin/mariadbd(+0xc30250)[0x597678348250]
      nptl/pthread_create.c:442(start_thread)[0x70207b777ac3]
      x86_64/clone3.S:83(__clone3)[0x70207b8098d0]

      Connection ID (thread ID): 1332
      Status: NOT_KILLED
      Query (0x681f2de2e8b0): UPDATE sales_report.products
      INNER JOIN sales_report.commodity_group cg ON cg.comm_group = '14 '
      INNER JOIN sales_report.product_group pg ON pg.commodity_group_id = cg.id AND pg.prod_group = '15 '
      SET product_group_id = pg.id
      WHERE product_code = 'A003'

      Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off,hash_join_cardinality=off,cset_narrowing=off

      Writing a core file...
      Working directory at /var/lib/mysql
      Resource Limits (excludes unlimited resources):
      Limit Soft Limit Hard Limit Units
      Max stack size 8388608 unlimited bytes
      Max core file size 0 unlimited bytes
      Max processes 512620 512620 processes
      Max open files 32768 32768 files
      Max locked memory 524288 524288 bytes
      Max pending signals 512620 512620 signals
      Max msgqueue size 819200 819200 bytes
      Max nice priority 0 0
      Max realtime priority 0 0
      Core pattern: core

      Kernel version: Linux version 6.8.12-5-pve (build@proxmox) (gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-5 (2024-12-03T10:26Z)

      Table def:

      260526 9:00:27 [ERROR] /usr/sbin/mariadbd got signal 11 ;
      Sorry, we probably made a mistake, and this is a bug.

      Your assistance in bug reporting will enable us to fix this for the next release.
      To report this bug, see https://mariadb.com/kb/en/reporting-bugs about how to report
      a bug on https://jira.mariadb.org/.

      Please include the information from the server start above, to the end of the
      information below.

      Server version: 10.11.17-MariaDB-ubu2204-log source revision: 6828ff7390a6e46155343be2e8a1443b52b208b5

      WSREP: Suppressing further logging
      WSREP: Shutting down network communications

      The information page at https://mariadb.com/kb/en/how-to-produce-a-full-stack-trace-for-mariadbd/
      contains instructions to obtain a better version of the backtrace below.
      Following these instructions will help MariaDB developers provide a fix quicker.

      Attempting backtrace. Include this in the bug report.
      (note: Retrieving this information may fail)

      Thread pointer: 0x681f2de26198
      stack_bottom = 0x702028b9c000 thread_stack 0x30000
      /usr/sbin/mariadbd(my_print_stacktrace+0x30)[0x5976785856a0]
      /usr/sbin/mariadbd(handle_fatal_signal+0x345)[0x59767816a6a5]
      2026-05-26 9:00:27 0 [Note] /usr/sbin/mariadbd (initiated by: unknown): Normal shutdown
      2026-05-26 9:00:27 0 [Note] WSREP: Shutdown replication
      2026-05-26 9:00:27 0 [Note] WSREP: Server status change synced -> disconnecting
      2026-05-26 9:00:27 0 [Note] WSREP: Closing send monitor...
      2026-05-26 9:00:27 0 [Note] WSREP: Closed send monitor.
      2026-05-26 9:00:27 0 [Note] WSREP: gcomm: terminating thread
      2026-05-26 9:00:27 0 [Note] WSREP: gcomm: joining thread
      2026-05-26 9:00:27 0 [Note] WSREP: gcomm: closing backend
      2026-05-26 9:00:27 0 [Note] WSREP: (92b87d50-a0f9, 'tcp://0.0.0.0:4567') turning message relay requesting on, nonlive peers: tcp://192.168.11.193:4567 tcp://192.168.6.36:4567 tcp://192.168.6.4:4567
      libc_sigaction.c:0(__restore_rt)[0x70207b725520]
      /usr/sbin/mariadbd(_Z18mysql_multi_updateP3THDP10TABLE_LISTP4ListI4ItemES6_PS4_y15enum_duplicatesbP18st_select_lex_unitP13st_select_lexPP12multi_update+0x23e)[0x597677fd141e]
      /usr/sbin/mariadbd(_Z21mysql_execute_commandP3THDb+0x4be6)[0x597677ec9046]
      /usr/sbin/mariadbd(_Z11mysql_parseP3THDPcjP12Parser_state+0x1f2)[0x597677ed45a2]
      /usr/sbin/mariadbd(+0x7bfdb1)[0x597677ed7db1]
      /usr/sbin/mariadbd(_Z16dispatch_command19enum_server_commandP3THDPcjb+0x2d3f)[0x597677ec277f]
      /usr/sbin/mariadbd(_Z10do_commandP3THDb+0x1e8)[0x597677ec3308]
      /usr/sbin/mariadbd(_Z24do_handle_one_connectionP7CONNECTb+0x1cd)[0x59767803900d]
      /usr/sbin/mariadbd(handle_one_connection+0x90)[0x597678039760]
      /usr/sbin/mariadbd(+0xc30250)[0x597678348250]
      nptl/pthread_create.c:442(start_thread)[0x70207b777ac3]
      x86_64/clone3.S:83(__clone3)[0x70207b8098d0]

      Connection ID (thread ID): 1332
      Status: NOT_KILLED
      Query (0x681f2de2e8b0): UPDATE sales_report.products
      INNER JOIN sales_report.commodity_group cg ON cg.comm_group = '14 '
      INNER JOIN sales_report.product_group pg ON pg.commodity_group_id = cg.id AND pg.prod_group = '15 '
      SET product_group_id = pg.id
      WHERE product_code = 'A003'

      Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off,hash_join_cardinality=off,cset_narrowing=off

      Writing a core file...
      Working directory at /var/lib/mysql
      Resource Limits (excludes unlimited resources):
      Limit Soft Limit Hard Limit Units
      Max stack size 8388608 unlimited bytes
      Max core file size 0 unlimited bytes
      Max processes 512620 512620 processes
      Max open files 32768 32768 files
      Max locked memory 524288 524288 bytes
      Max pending signals 512620 512620 signals
      Max msgqueue size 819200 819200 bytes
      Max nice priority 0 0
      Max realtime priority 0 0
      Core pattern: core

      Kernel version: Linux version 6.8.12-5-pve (build@proxmox) (gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-5 (2024-12-03T10:26Z)

      I thought maybe that the join could produce multiple rows - but it doesn't - even if it did it should just fail the query not explode.
      I do consider that a major bug because it shouldn't obviously bring the database down completely.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              DrJaymz James Cross
              Votes:
              0 Vote for this issue
              Watchers:
              2 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.