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

Spider crash on query

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.11.10
    • None
    • None
    • Red Hat Enterprise Linux release 8.10 (Ootpa)
      MemTotal: 24285636 k
      Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz

    Description

      Using spider we have 2 nodes that both connect to 3 backend servers

      Post 10.11.10 upgrade from 10.6 using this adhoc query I can near instantly crash the server with this query

      # eventdata
      SELECT ms.name AS microservice_name, ot.name AS object_type_name, ed.object_id AS account_or_user_id, edk.name as key_name, ed.happened_at, ed.value 
        FROM event_data AS ed
        JOIN event_data_key AS edk ON edk.event_data_key_id = ed.event_data_key_id
        JOIN microservice AS ms ON ms.microservice_id = edk.microservice_id
        JOIN object_type AS ot ON ot.object_type_id = edk.object_type_id
        WHERE ed.object_id IN (1118579)
          AND ed.happened_at BETWEEN '2025-07-01' AND NOW()
        ORDER BY ed.happened_at ASC
        LIMIT 5000; 
        
      SELECT edk.name, ed.happened_at, ed.value 
        FROM event_data AS ed
        JOIN event_data_key AS edk ON edk.event_data_key_id = ed.event_data_key_id
        JOIN microservice AS ms ON ms.microservice_id = edk.microservice_id
        JOIN object_type AS ot ON ot.object_type_id = edk.object_type_id
        WHERE ms.name = 'clientapi'
          AND ot.name = 'account'
          AND ed.object_id = 1118579
          AND ed.happened_at BETWEEN '2025-07-01' AND NOW()  
          AND IF(NULL IS NULL, 1=1, edk.name = NULL)
        ORDER BY ed.happened_at ASC
        LIMIT 5000;
      

      From a SP we run regularly this completes fine, additional parameters in where

      SELECT edk.name, ed.happened_at, ed.value 
        FROM event_data AS ed
        JOIN event_data_key AS edk ON edk.event_data_key_id = ed.event_data_key_id
        JOIN microservice AS ms ON ms.microservice_id = edk.microservice_id
        JOIN object_type AS ot ON ot.object_type_id = edk.object_type_id
        WHERE ms.name = 'clientapi'
          AND ot.name = 'account'
          AND ed.object_id = 1118579
          AND ed.happened_at BETWEEN '2025-07-01' AND NOW()  
          AND IF(NULL IS NULL, 1=1, edk.name = NULL)
        ORDER BY ed.happened_at ASC
        LIMIT 5000;  
      

      The spider table def this hits is

      | event_data | CREATE TABLE `event_data` (
        `event_data_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
        `object_id` int(10) unsigned DEFAULT NULL,
        `event_data_key_id` int(10) unsigned NOT NULL,
        `value` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
        `happened_at` timestamp NOT NULL DEFAULT current_timestamp(),
        `created_at` datetime NOT NULL DEFAULT current_timestamp(),
        PRIMARY KEY (`event_data_id`,`created_at`),
        KEY `event_data_key_id` (`event_data_key_id`),
        KEY `object_key` (`happened_at`,`object_id`,`event_data_key_id`),
        KEY `object_key_at` (`object_id`,`event_data_key_id`,`happened_at`)
      ) ENGINE=InnoDB AUTO_INCREMENT=8533796190 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Used for event based data'
       PARTITION BY RANGE (to_days(`created_at`))
      (PARTITION `p00000000` VALUES LESS THAN (0) ENGINE = InnoDB,
       PARTITION `p20250815` VALUES LESS THAN (739843) ENGINE = InnoDB,
       PARTITION `p20250816` VALUES LESS THAN (739844) ENGINE = InnoDB,
       PARTITION `p20250817` VALUES LESS THAN (739845) ENGINE = InnoDB,
       PARTITION `p20250818` VALUES LESS THAN (739846) ENGINE = InnoDB,
       PARTITION `p20250819` VALUES LESS THAN (739847) ENGINE = InnoDB,
       PARTITION `p20250820` VALUES LESS THAN (739848) ENGINE = InnoDB,
       PARTITION `p20250821` VALUES LESS THAN (739849) ENGINE = InnoDB,
       PARTITION `p20250822` VALUES LESS THAN (739850) ENGINE = InnoDB,
       PARTITION `p20250823` VALUES LESS THAN (739851) ENGINE = InnoDB,
       PARTITION `p20250824` VALUES LESS THAN (739852) ENGINE = InnoDB,
       PARTITION `p20250825` VALUES LESS THAN (739853) ENGINE = InnoDB,
       PARTITION `p20250826` VALUES LESS THAN (739854) ENGINE = InnoDB,
       PARTITION `p20250827` VALUES LESS THAN (739855) ENGINE = InnoDB,
       PARTITION `p20250828` VALUES LESS THAN (739856) ENGINE = InnoDB,
       PARTITION `p20250829` VALUES LESS THAN (739857) ENGINE = InnoDB,
       PARTITION `p20250830` VALUES LESS THAN (739858) ENGINE = InnoDB,
       PARTITION `p20250831` VALUES LESS THAN (739859) ENGINE = InnoDB,
       PARTITION `p20250901` VALUES LESS THAN (739860) ENGINE = InnoDB,
       PARTITION `p20250902` VALUES LESS THAN (739861) ENGINE = InnoDB,
       PARTITION `p20250903` VALUES LESS THAN (739862) ENGINE = InnoDB,
       PARTITION `p20250904` VALUES LESS THAN (739863) ENGINE = InnoDB,
       PARTITION `p20250905` VALUES LESS THAN (739864) ENGINE = InnoDB,
       PARTITION `p20250906` VALUES LESS THAN (739865) ENGINE = InnoDB,
       PARTITION `p20250907` VALUES LESS THAN (739866) ENGINE = InnoDB,
       PARTITION `p20250908` VALUES LESS THAN (739867) ENGINE = InnoDB,
       PARTITION `p20250909` VALUES LESS THAN (739868) ENGINE = InnoDB,
       PARTITION `p20250910` VALUES LESS THAN (739869) ENGINE = InnoDB,
       PARTITION `p20250911` VALUES LESS THAN (739870) ENGINE = InnoDB,
       PARTITION `p20250912` VALUES LESS THAN (739871) ENGINE = InnoDB,
       PARTITION `p20250913` VALUES LESS THAN (739872) ENGINE = InnoDB,
       PARTITION `p20250914` VALUES LESS THAN (739873) ENGINE = InnoDB,
       PARTITION `p20250915` VALUES LESS THAN (739874) ENGINE = InnoDB,
       PARTITION `p20250916` VALUES LESS THAN (739875) ENGINE = InnoDB,
       PARTITION `p20250917` VALUES LESS THAN (739876) ENGINE = InnoDB,
       PARTITION `p20250918` VALUES LESS THAN (739877) ENGINE = InnoDB,
       PARTITION `p20250919` VALUES LESS THAN (739878) ENGINE = InnoDB) |
      

      Stack trace

      2025-09-12 11:51:50 120 [Note] Start binlog_dump to slave_server(10060189), pos(mysql-bin.000953, 5675328), using_gtid(1), gtid('501-10060185-248689937,602-10060190-74909204,601-10060189-3375649343')
      250912 11:56:27 [ERROR] mysqld 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
       
      We will try our best to scrape up some info that will hopefully help
      diagnose the problem, but since we have already crashed,
      something is definitely wrong and this may fail.
       
      Server version: 10.11.10-MariaDB-log source revision: 3d0fb150289716ca75cd64d62823cf715ee47646
      key_buffer_size=134217728
      read_buffer_size=131072
      max_used_connections=3
      max_threads=8002
      thread_count=15
      It is possible that mysqld could use up to
      key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 17757450 K  bytes of memory
      Hope that's ok; if not, decrease some variables in the equation.
       
      Thread pointer: 0x7f02a0000c58
      Attempting backtrace. You can use the following information to find out
      where mysqld died. If you see no messages after this, something went
      terribly wrong...
      stack_bottom = 0x7f02ef41d000 thread_stack 0x49000
      /usr/sbin/mariadbd(my_print_stacktrace+0x2e)[0x5636e309331e]
      /usr/sbin/mariadbd(handle_fatal_signal+0x485)[0x5636e2b6c8c5]
      /lib64/libpthread.so.0(+0x129f0)[0x7f04ae4759f0]
      /usr/lib64/mysql/plugin/ha_spider.so(_Z22spider_db_store_resultP9ha_spideriP5TABLE+0x497)[0x7f0304b35007]
      /usr/lib64/mysql/plugin/ha_spider.so(_Z21spider_bg_conn_actionPv+0xb9f)[0x7f0304b4899f]
      /lib64/libpthread.so.0(+0x81da)[0x7f04ae46b1da]
      /lib64/libc.so.6(clone+0x43)[0x7f04ad5918d3]
       
      Trying to get some variables.
      Some pointers may be invalid and cause the dump to abort.
      Query (0x0): (null)
      Connection ID (thread ID): 673
      Status: NOT_KILLED
       
      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
       
      The manual page at https://mariadb.com/kb/en/how-to-produce-a-full-stack-trace-for-mariadbd/ contains
      information that should help you find out what is causing the crash.
       
      We think the query pointer is invalid, but we will try to print it anyway.
      Query:
       
      Writing a core file...
      Working directory at /data/mysql/data
      Resource Limits:
      Limit                     Soft Limit           Hard Limit           Units
      Max cpu time              unlimited            unlimited            seconds
      Max file size             unlimited            unlimited            bytes
      Max data size             unlimited            unlimited            bytes
      Max stack size            8388608              unlimited            bytes
      Max core file size        unlimited            unlimited            bytes
      Max resident set          unlimited            unlimited            bytes
      Max processes             94715                94715                processes
      Max open files            100000               100000               files
      Max locked memory         65536                65536                bytes
      Max address space         unlimited            unlimited            bytes
      Max file locks            unlimited            unlimited            locks
      Max pending signals       94715                94715                signals
      Max msgqueue size         819200               819200               bytes
      Max nice priority         0                    0
      Max realtime priority     0                    0
      Max realtime timeout      unlimited            unlimited            us
      Core pattern: |/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e %d
       
      Kernel version: Linux version 5.4.17-2136.346.6.el8uek.x86_64 (mockbuild@host-100-100-224-108) (gcc version 8.5.0 20210514 (Red Hat 8.5.0-26.0.1) (GCC)) #3 SMP Sun Jul 27 16:50:18 PDT 2025
       
      2025-09-12 11:56:33 0 [Note] Starting MariaDB 10.11.10-MariaDB-log source revision 3d0fb150289716ca75cd64d62823cf715ee47646 server_uid bUifd434OmUYEEhHK5dte8zDM7Q= as process 1966135
      2025-09-12 11:56:33 0 [ERROR] mariadbd: Can't find symbol '_mysql_plugin_interface_version_' in library
      

      Please ask for any more info as needed and I'll attach

      Attachments

        Activity

          People

            ycp Yuchen Pei
            bryan.bancroft Bryan
            Votes:
            0 Vote for this issue
            Watchers:
            2 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.