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

Assertion `used_parts > 0' failed in ha_partition::init_record_priority_queue

    XMLWordPrintable

    Details

      Description

      --source include/have_partition.inc
      --source include/have_innodb.inc
       
      CREATE TABLE t1 (a INT) ENGINE=InnoDB;
      INSERT INTO t1 VALUES (1),(2);
       
      CREATE TABLE t2 (b INT, c INT, KEY(c,b)) PARTITION BY HASH(b) PARTITIONS 2;
      INSERT INTO t2 VALUES (3,4),(5,6);
       
      SELECT STRAIGHT_JOIN * FROM t1, t2 WHERE b != NULL;
      

      10.3 34f2f4fa431893db

      mysqld: /data/src/10.3/sql/ha_partition.cc:5225: bool ha_partition::init_record_priority_queue(): Assertion `used_parts > 0' failed.
      171215 21:03:03 [ERROR] mysqld got signal 6 ;
       
      #7  0x00007f9a04e39ee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
      #8  0x000055ff61a2b382 in ha_partition::init_record_priority_queue (this=0x7f99a80c95b8) at /data/src/10.3/sql/ha_partition.cc:5225
      #9  0x000055ff61a2b8bc in ha_partition::index_init (this=0x7f99a80c95b8, inx=0, sorted=true) at /data/src/10.3/sql/ha_partition.cc:5339
      #10 0x000055ff60f3bac9 in handler::ha_index_init (this=0x7f99a80c95b8, idx=0, sorted=true) at /data/src/10.3/sql/handler.h:2869
      #11 0x000055ff6140eb4c in init_read_record (info=0x7f99a80183e8, thd=0x7f99a8000b00, table=0x7f99a816c780, select=0x7f99a8018c70, filesort=0x0, use_record_cache=1, print_error=true, disable_rr_cache=false) at /data/src/10.3/sql/records.cc:287
      #12 0x000055ff6103ae86 in join_init_read_record (tab=0x7f99a8018320) at /data/src/10.3/sql/sql_select.cc:19923
      #13 0x000055ff611625be in JOIN_TAB_SCAN::open (this=0x7f99a8019140) at /data/src/10.3/sql/sql_join_cache.cc:3350
      #14 0x000055ff61160a1c in JOIN_CACHE::join_matching_records (this=0x7f99a8019010, skip_last=false) at /data/src/10.3/sql/sql_join_cache.cc:2251
      #15 0x000055ff6116057e in JOIN_CACHE::join_records (this=0x7f99a8019010, skip_last=false) at /data/src/10.3/sql/sql_join_cache.cc:2088
      #16 0x000055ff61038890 in sub_select_cache (join=0x7f99a8015e10, join_tab=0x7f99a8018320, end_of_records=true) at /data/src/10.3/sql/sql_select.cc:18782
      #17 0x000055ff61038aa2 in sub_select (join=0x7f99a8015e10, join_tab=0x7f99a8017f70, end_of_records=true) at /data/src/10.3/sql/sql_select.cc:18954
      #18 0x000055ff61038288 in do_select (join=0x7f99a8015e10, procedure=0x0) at /data/src/10.3/sql/sql_select.cc:18545
      #19 0x000055ff61010b86 in JOIN::exec_inner (this=0x7f99a8015e10) at /data/src/10.3/sql/sql_select.cc:3624
      #20 0x000055ff6101001e in JOIN::exec (this=0x7f99a8015e10) at /data/src/10.3/sql/sql_select.cc:3419
      #21 0x000055ff610111ff in mysql_select (thd=0x7f99a8000b00, tables=0x7f99a8014d88, wild_num=1, fields=..., conds=0x7f99a8015ba8, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748610, result=0x7f99a8015df0, unit=0x7f99a8004838, select_lex=0x7f99a8004f70) at /data/src/10.3/sql/sql_select.cc:3819
      #22 0x000055ff610052fe in handle_select (thd=0x7f99a8000b00, lex=0x7f99a8004770, result=0x7f99a8015df0, setup_tables_done_option=0) at /data/src/10.3/sql/sql_select.cc:378
      #23 0x000055ff60fd0b4a in execute_sqlcom_select (thd=0x7f99a8000b00, all_tables=0x7f99a8014d88) at /data/src/10.3/sql/sql_parse.cc:6507
      #24 0x000055ff60fc72ff in mysql_execute_command (thd=0x7f99a8000b00) at /data/src/10.3/sql/sql_parse.cc:3743
      #25 0x000055ff60fd447e in mysql_parse (thd=0x7f99a8000b00, rawbuf=0x7f99a8014b58 "SELECT STRAIGHT_JOIN * FROM t1, t2 WHERE b != NULL", length=50, parser_state=0x7f9a0004e610, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:7963
      #26 0x000055ff60fc1e11 in dispatch_command (command=COM_QUERY, thd=0x7f99a8000b00, packet=0x7f99a8160d01 "", packet_length=50, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:1825
      #27 0x000055ff60fc0845 in do_command (thd=0x7f99a8000b00) at /data/src/10.3/sql/sql_parse.cc:1370
      #28 0x000055ff6111a140 in do_handle_one_connection (connect=0x55ff644ef2f0) at /data/src/10.3/sql/sql_connect.cc:1420
      #29 0x000055ff61119ecd in handle_one_connection (arg=0x55ff644ef2f0) at /data/src/10.3/sql/sql_connect.cc:1326
      #30 0x000055ff615a25c6 in pfs_spawn_thread (arg=0x55ff6450bf00) at /data/src/10.3/storage/perfschema/pfs.cc:1863
      #31 0x00007f9a06b10494 in start_thread (arg=0x7f9a0004f700) at pthread_create.c:333
      #32 0x00007f9a04ef693f in clone () from /lib/x86_64-linux-gnu/libc.so.6
      

      The failure was apparently introduced by this commit:

      commit 8eeb689e9fc57afe19a8dbff354b5f9f167867a9
      Author: Monty <monty@mariadb.org>
      Date:   Wed Jul 5 18:20:06 2017 +0300
       
          Adding multi_range_read support to partitions
          
          Other things:
          - Cleanup of allocated bitmaps done in open(), which
            simplifies init_partition_bitmaps()
          - Add needed defines in ha_spider.cc to enable new spider code
          - Fixed some DBUG_PRINT() to be consistent with normal code
          - Removed end space
          - The changes in test cases partition_innodb, partition_range,
            partition_pruning etc are becasue partitions can now more exactly
            calculate the number of rows in a range.
          
          Contains spider patches:
          014,015,023,033,035,037,040,042,044,045,049,050,051,053,059
      

      No visible effect on a non-debug build.

        Attachments

          Activity

            People

            Assignee:
            holyfoot Alexey Botchkov
            Reporter:
            elenst Elena Stepanova
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: