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

Server crashes in DsMrr_impl::dsmrr_init or Assertion `primary_file->inited == handler::INDEX || (primary_file->inited == handler::RND && secondary_file && secondary_file->inited == handler::INDEX)' failed

    XMLWordPrintable

Details

    Description

      --source include/have_partition.inc
      --source include/have_innodb.inc
       
      CREATE TABLE t1 (
        a INT,
        b INT,
        c INT,
        KEY(c)
      ) ENGINE=InnoDB
        PARTITION BY RANGE(a) SUBPARTITION BY HASH(b) SUBPARTITIONS 2 (
          PARTITION p0 VALUES LESS THAN (128),
          PARTITION pn VALUES LESS THAN MAXVALUE
      );
      INSERT INTO t1 VALUES (1,10,100),(2,20,200);
       
      CREATE TABLE t2 (d INT) ENGINE=InnoDB;
      INSERT INTO t2 VALUES (1),(2);
       
      CREATE TABLE t3 (e INT) ENGINE=InnoDB;
      INSERT INTO t3 VALUES (3),(4);
       
      BEGIN;
      SELECT * FROM t3;
       
      --connect (con1,localhost,root,,test)
      TRUNCATE TABLE t1;
       
      --connection default
      SET SESSION optimizer_switch= 'mrr=on', join_cache_level= 5;
      SELECT * FROM t1, t2 WHERE t1.c <=> t2.d;
       
      # Cleanup
      --disconnect con1
      DROP TABLE t1, t2, t3;
      

      10.3 7e07e38c debug

      mysqld: /data/src/10.3/sql/multi_range_read.cc:869: int DsMrr_impl::dsmrr_init(handler*, RANGE_SEQ_IF*, void*, uint, uint, HANDLER_BUFFER*): Assertion `primary_file->inited == handler::INDEX || (primary_file->inited == handler::RND && secondary_file && secondary_file->inited == handler::INDEX)' failed.
      200912  1:41:13 [ERROR] mysqld got signal 6 ;
       
      #7  0x00007f38a01eef36 in __GI___assert_fail (assertion=0x55b3361d1bf0 "primary_file->inited == handler::INDEX || (primary_file->inited == handler::RND && secondary_file && secondary_file->inited == handler::INDEX)", file=0x55b3361d1940 "/data/src/10.3/sql/multi_range_read.cc", line=869, function=0x55b3361d1c80 "int DsMrr_impl::dsmrr_init(handler*, RANGE_SEQ_IF*, void*, uint, uint, HANDLER_BUFFER*)") at assert.c:101
      #8  0x000055b335698849 in DsMrr_impl::dsmrr_init (this=0x7f3840020730, h_arg=0x7f38400202d8, seq_funcs=0x7f3840020210, seq_init_param=0x7f384c0b30b0, n_ranges=2, mode=1153, buf=0x7f384c0b2ff0) at /data/src/10.3/sql/multi_range_read.cc:869
      #9  0x000055b335a4aa24 in ha_innobase::multi_range_read_init (this=0x7f38400202d8, seq=0x7f3840020210, seq_init_param=0x7f384c0b30b0, n_ranges=2, mode=1153, buf=0x7f384c0b2ff0) at /data/src/10.3/storage/innobase/handler/ha_innodb.cc:20581
      #10 0x000055b336036dca in ha_partition::multi_range_read_init (this=0x7f384001fa78, seq=0x7f384c017478, seq_init_param=0x7f384c017318, n_ranges=2, mrr_mode=1153, buf=0x7f384c0174a8) at /data/src/10.3/sql/ha_partition.cc:6479
      #11 0x000055b3356915c1 in JOIN_TAB_SCAN_MRR::open (this=0x7f384c017450) at /data/src/10.3/sql/sql_join_cache.cc:3889
      #12 0x000055b33568ed65 in JOIN_CACHE::join_matching_records (this=0x7f384c017318, skip_last=false) at /data/src/10.3/sql/sql_join_cache.cc:2252
      #13 0x000055b33568e880 in JOIN_CACHE::join_records (this=0x7f384c017318, skip_last=false) at /data/src/10.3/sql/sql_join_cache.cc:2088
      #14 0x000055b335548c48 in sub_select_cache (join=0x7f384c013e88, join_tab=0x7f384c016678, end_of_records=true) at /data/src/10.3/sql/sql_select.cc:19494
      #15 0x000055b335548e5b in sub_select (join=0x7f384c013e88, join_tab=0x7f384c0162e8, end_of_records=true) at /data/src/10.3/sql/sql_select.cc:19665
      #16 0x000055b3355485c1 in do_select (join=0x7f384c013e88, procedure=0x0) at /data/src/10.3/sql/sql_select.cc:19256
      #17 0x000055b33551f44b in JOIN::exec_inner (this=0x7f384c013e88) at /data/src/10.3/sql/sql_select.cc:4116
      #18 0x000055b33551e80a in JOIN::exec (this=0x7f384c013e88) at /data/src/10.3/sql/sql_select.cc:3910
      #19 0x000055b33551fb27 in mysql_select (thd=0x7f384c000d90, tables=0x7f384c012cd8, wild_num=1, fields=..., conds=0x7f384c013c30, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2148797184, result=0x7f384c013e60, unit=0x7f384c004c58, select_lex=0x7f384c0053e0) at /data/src/10.3/sql/sql_select.cc:4315
      #20 0x000055b33551114e in handle_select (thd=0x7f384c000d90, lex=0x7f384c004b98, result=0x7f384c013e60, setup_tables_done_option=0) at /data/src/10.3/sql/sql_select.cc:370
      #21 0x000055b3354d7cfc in execute_sqlcom_select (thd=0x7f384c000d90, all_tables=0x7f384c012cd8) at /data/src/10.3/sql/sql_parse.cc:6286
      #22 0x000055b3354ce463 in mysql_execute_command (thd=0x7f384c000d90) at /data/src/10.3/sql/sql_parse.cc:3812
      #23 0x000055b3354dc066 in mysql_parse (thd=0x7f384c000d90, rawbuf=0x7f384c012ab8 "SELECT * FROM t1, t2 WHERE t1.c <=> t2.d", length=40, parser_state=0x7f38993a45c0, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:7810
      #24 0x000055b3354c8827 in dispatch_command (command=COM_QUERY, thd=0x7f384c000d90, packet=0x7f384c008f11 "", packet_length=40, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:1847
      #25 0x000055b3354c71c7 in do_command (thd=0x7f384c000d90) at /data/src/10.3/sql/sql_parse.cc:1393
      #26 0x000055b335644768 in do_handle_one_connection (connect=0x55b338fdf630) at /data/src/10.3/sql/sql_connect.cc:1403
      #27 0x000055b3356444c4 in handle_one_connection (arg=0x55b338fdf630) at /data/src/10.3/sql/sql_connect.cc:1308
      #28 0x000055b33600c2b1 in pfs_spawn_thread (arg=0x55b338fe6d00) at /data/src/10.3/storage/perfschema/pfs.cc:1869
      #29 0x00007f38a0700609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #30 0x00007f38a02da103 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      10.3 7e07e38c non-debug

      #3  <signal handler called>
      #4  DsMrr_impl::dsmrr_init (this=0x7f265401b638, h_arg=0x7f265401b1e0, seq_funcs=0x7f265401b188, seq_init_param=0x7f26600d58e8, n_ranges=2, mode=1153, buf=0x7f26600d5828) at /data/src/10.3/sql/multi_range_read.cc:875
      #5  0x000055b6ef0ea60e in ha_innobase::multi_range_read_init (this=<optimized out>, seq=<optimized out>, seq_init_param=<optimized out>, n_ranges=<optimized out>, mode=<optimized out>, buf=<optimized out>) at /data/src/10.3/storage/innobase/handler/ha_innodb.cc:20581
      #6  0x000055b6ef4394b0 in ha_partition::multi_range_read_init (this=0x7f265401a9f0, seq=<optimized out>, seq_init_param=<optimized out>, n_ranges=2, mrr_mode=1153, buf=0x7f2660014000) at /data/src/10.3/sql/ha_partition.cc:6479
      #7  0x000055b6eee77762 in JOIN_CACHE::join_matching_records (this=0x7f2660013e70, skip_last=false) at /data/src/10.3/sql/sql_join_cache.cc:2252
      #8  0x000055b6eee770a1 in JOIN_CACHE::join_records (this=this@entry=0x7f2660013e70, skip_last=skip_last@entry=false) at /data/src/10.3/sql/sql_join_cache.cc:2088
      #9  0x000055b6eed96572 in sub_select_cache (join=0x7f2660010ae0, join_tab=0x7f26600132d0, end_of_records=<optimized out>) at /data/src/10.3/sql/sql_select.cc:19494
      #10 0x000055b6eedc0246 in do_select (procedure=<optimized out>, join=0x7f2660010ae0) at /data/src/10.3/sql/sql_select.cc:19256
      #11 JOIN::exec_inner (this=this@entry=0x7f2660010ae0) at /data/src/10.3/sql/sql_select.cc:4116
      #12 0x000055b6eedc05e7 in JOIN::exec (this=this@entry=0x7f2660010ae0) at /data/src/10.3/sql/sql_select.cc:3910
      #13 0x000055b6eedc0732 in mysql_select (thd=0x7f2660000c48, tables=0x7f266000f930, wild_num=1, fields=..., conds=0x7f2660010888, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2148797184, result=0x7f2660010ab8, unit=0x7f2660004950, select_lex=0x7f26600050d8) at /data/src/10.3/sql/sql_select.cc:4315
      #14 0x000055b6eedc106b in handle_select (thd=thd@entry=0x7f2660000c48, lex=lex@entry=0x7f2660004890, result=result@entry=0x7f2660010ab8, setup_tables_done_option=setup_tables_done_option@entry=0) at /data/src/10.3/sql/sql_select.cc:370
      #15 0x000055b6eed51a81 in execute_sqlcom_select (thd=0x7f2660000c48, all_tables=0x7f266000f930) at /data/src/10.3/sql/sql_parse.cc:6286
      #16 0x000055b6eed5f556 in mysql_execute_command (thd=0x7f2660000c48) at /data/src/10.3/sql/sql_parse.cc:3812
      #17 0x000055b6eed622f3 in mysql_parse (thd=0x7f2660000c48, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /data/src/10.3/sql/sql_parse.cc:7810
      #18 0x000055b6eed646dd in dispatch_command (command=COM_QUERY, thd=0x7f2660000c48, packet=<optimized out>, packet_length=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /data/src/10.3/sql/sql_class.h:1137
      #19 0x000055b6eed6667d in do_command (thd=0x7f2660000c48) at /data/src/10.3/sql/sql_parse.cc:1393
      #20 0x000055b6eee4d016 in do_handle_one_connection (connect=connect@entry=0x55b6f1ce43a8) at /data/src/10.3/sql/sql_connect.cc:1403
      #21 0x000055b6eee4d1ef in handle_one_connection (arg=arg@entry=0x55b6f1ce43a8) at /data/src/10.3/sql/sql_connect.cc:1308
      #22 0x000055b6ef422a06 in pfs_spawn_thread (arg=0x55b6f1fc3a98) at /data/src/10.3/storage/perfschema/pfs.cc:1869
      #23 0x00007f26b279f609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #24 0x00007f26b2394103 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      Plan on 10.3

      EXPLAIN EXTENDED SELECT * FROM t1, t2 WHERE t1.c <=> t2.d;
      id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
      1	SIMPLE	t2	ALL	NULL	NULL	NULL	NULL	2	100.00	
      1	SIMPLE	t1	ref	c	c	5	test.t2.d	1	100.00	Using index condition(BKA); Using join buffer (flat, BKA join); Rowid-ordered scan
      Warnings:
      Note	1003	select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t2`.`d` AS `d` from `test`.`t1` join `test`.`t2` where `test`.`t1`.`c` <=> `test`.`t2`.`d`
      

      Reproducible on 10.3-10.5 (including older releases of 10.3).

      10.2 doesn't crash, but it returns a questionable error ER_TABLE_DEF_CHANGED:

      10.2 224c9504

      mysqltest: At line 30: query 'SELECT * FROM t1, t2 WHERE t1.c <=> t2.d' failed: 1412: Table definition has changed, please retry transaction
      

      Attachments

        Activity

          People

            psergei Sergei Petrunia
            elenst Elena Stepanova
            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.