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

Server crashes in print_explain on killing EXPLAIN EXTENDED

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 10.0.6
    • Component/s: None
    • Labels:
      None

      Description

      #1  0x0000000000f24e60 in my_write_core (sig=11) at /home/elenst/bzr/10.0/mysys/stacktrace.c:457
      #2  0x0000000000830f22 in handle_fatal_signal (sig=11) at /home/elenst/bzr/10.0/sql/signal_handler.cc:262
      #3  <signal handler called>
      #4  0x0000000000794109 in Explain_query::print_explain (this=0x0, output=0x7fc02fc5c8a0, explain_flags=3 '\003') at /home/elenst/bzr/10.0/sql/sql_explain.cc:159
      #5  0x0000000000646b7a in execute_sqlcom_select (thd=0x7fc042ba7008, all_tables=0x7fc02fc5da20) at /home/elenst/bzr/10.0/sql/sql_parse.cc:5144
      #6  0x000000000063f039 in mysql_execute_command (thd=0x7fc042ba7008) at /home/elenst/bzr/10.0/sql/sql_parse.cc:2534
      #7  0x00000000006495cc in mysql_parse (thd=0x7fc042ba7008, rawbuf=0x7fc02fc8d2a0 "EXPLAIN EXTENDED   SELECT    alias2 . `col_time_key` AS field1 FROM ( BB AS alias1 LEFT OUTER JOIN CC AS alias2 ON (alias2 . `col_varchar_key` = alias1 . `col_varchar_nokey`  ) ) WHERE (  NOT EXISTS ("..., length=687, parser_state=0x7fc05f4e74b0) at /home/elenst/bzr/10.0/sql/sql_parse.cc:6312
      #8  0x000000000063c1fb in dispatch_command (command=COM_QUERY, thd=0x7fc042ba7008, packet=0x7fc042bad009 "", packet_length=687) at /home/elenst/bzr/10.0/sql/sql_parse.cc:1281
      #9  0x000000000063b5fe in do_command (thd=0x7fc042ba7008) at /home/elenst/bzr/10.0/sql/sql_parse.cc:986
      #10 0x000000000075ee27 in do_handle_one_connection (thd_arg=0x7fc042ba7008) at /home/elenst/bzr/10.0/sql/sql_connect.cc:1379
      #11 0x000000000075eb7a in handle_one_connection (arg=0x7fc042ba7008) at /home/elenst/bzr/10.0/sql/sql_connect.cc:1293
      #12 0x0000000000e71841 in pfs_spawn_thread (arg=0x7fc042aaa348) at /home/elenst/bzr/10.0/storage/perfschema/pfs.cc:1853
      #13 0x00007fc05e6cbe9a in start_thread (arg=0x7fc05f4e8700) at pthread_create.c:308
      #14 0x00007fc05dbe6cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

      bzr version-info
      revision-id: bar@mnogosearch.org-20131016162020-24fjhl2n2a4wn6c2
      date: 2013-10-16 20:20:20 +0400
      build-date: 2013-10-17 15:11:46 +0300
      revno: 3854
      branch-nick: 10.0

      No reproducible test case yet, it's a race condition. Here is the table structures, the data and EXPLAIN output (if it doesn't get killed):

      CREATE TABLE C (
       			pk INTEGER AUTO_INCREMENT,
       			col_int_nokey INTEGER /*! NULL */,
       			col_int_key INTEGER /*! NULL */,
       
       			col_date_key DATE /*! NULL */,
       			col_date_nokey DATE /*! NULL */,
       
       			col_time_key TIME /*! NULL */,
       			col_time_nokey TIME /*! NULL */,
       
       			col_datetime_key DATETIME /*! NULL */,
       			col_datetime_nokey DATETIME /*! NULL */,
       
       			col_varchar_key VARCHAR(1) /*! NULL */,
       			col_varchar_nokey VARCHAR(1) /*! NULL */,
       
       			PRIMARY KEY (pk),
       			KEY (col_int_key),
       			KEY (col_date_key),
       			KEY (col_time_key),
       			KEY (col_datetime_key),
       			KEY (col_varchar_key, col_int_key)
       		)  ENGINE=MyISAM;
       			INSERT /*! IGNORE */ INTO C (
       				col_int_key, col_int_nokey,
       				col_date_key, col_date_nokey,
       				col_time_key, col_time_nokey,
       				col_datetime_key, col_datetime_nokey,
       				col_varchar_key, col_varchar_nokey
       			) VALUES (4, 2, '2008-12-05', '2008-12-05', '22:34:09.023306', '22:34:09.023306', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'v'),(62, 150, '2005-03-27', '2005-03-27', '14:26:02.007788', '14:26:02.007788', '2008-01-03 10:33:32.027981', '2008-01-03 10:33:32.027981', 'v', 'v'),(7, NULL, '2004-04-09', '2004-04-09', '14:03:03.042673', '14:03:03.042673', '2001-11-28 00:50:27.051028', '2001-11-28 00:50:27.051028', 'c', 'c'),(1, 2, '2006-05-13', '2006-05-13', '01:46:09.016386', '01:46:09.016386', '2007-10-09 19:53:04.008332', '2007-10-09 19:53:04.008332', NULL, NULL),(0, 5, '2001-05-06', '2001-05-06', '16:21:18.052408', '16:21:18.052408', '2001-11-08 21:02:12.009395', '2001-11-08 21:02:12.009395', 'x', 'x'),(7, 3, '2006-03-03', '2006-03-03', '18:56:33.027423', '18:56:33.027423', '2003-04-01 00:00:00', '2003-04-01 00:00:00', 'i', 'i'),(7, 1, '2007-12-28', '2007-12-28', NULL, NULL, '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'e', 'e'),(1, 4, '2004-10-20', '2004-10-20', '09:29:08.048031', '09:29:08.048031', '2007-07-12 00:00:00', '2007-07-12 00:00:00', 'p', 'p'),(7, NULL, '2008-04-09', '2008-04-09', '19:11:10.040728', '19:11:10.040728', '2005-04-04 01:21:01.040391', '2005-04-04 01:21:01.040391', 's', 's'),(1, 2, '2005-12-25', '2005-12-25', '11:57:26.013363', '11:57:26.013363', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'j', 'j'),(5, 6, '1900-01-01', '1900-01-01', '00:39:46.041355', '00:39:46.041355', '2003-03-05 03:41:18.061978', '2003-03-05 03:41:18.061978', 'z', 'z'),(2, 6, NULL, NULL, '03:28:15.007081', '03:28:15.007081', '2008-08-03 11:33:04.049998', '2008-08-03 11:33:04.049998', 'c', 'c'),(0, 8, '1900-01-01', '1900-01-01', '06:44:18.007092', '06:44:18.007092', '2004-04-28 21:44:45.050791', '2004-04-28 21:44:45.050791', 'a', 'a'),(1, 2, '2001-01-16', '2001-01-16', '14:36:39.062494', '14:36:39.062494', '2001-04-06 00:00:00', '2001-04-06 00:00:00', 'q', 'q'),(8, 6, '1900-01-01', '1900-01-01', '18:42:45.053707', '18:42:45.053707', '2001-04-18 00:00:00', '2001-04-18 00:00:00', 'y', 'y'),(1, 8, '2001-11-23', '2001-11-23', '02:57:29.012755', '02:57:29.012755', '2008-12-18 19:39:55.005399', '2008-12-18 19:39:55.005399', NULL, NULL),(1, 3, '2004-11-04', '2004-11-04', '16:46:13.015460', '16:46:13.015460', '2000-08-01 12:19:39.028493', '2000-08-01 12:19:39.028493', 'r', 'r'),(9, 3, '2003-03-12', '2003-03-12', '19:39:02.040624', '19:39:02.040624', '2004-09-25 21:29:06.004058', '2004-09-25 21:29:06.004058', 'v', 'v'),(1, 9, '2002-06-22', '2002-06-22', NULL, NULL, '2009-09-20 09:11:48.065041', '2009-09-20 09:11:48.065041', NULL, NULL),(5, 6, '2004-10-10', '2004-10-10', '20:58:33.049572', '20:58:33.049572', '2004-03-27 09:32:04.056959', '2004-03-27 09:32:04.056959', 'r', 'r');
       
       		CREATE TABLE BB (
       			pk INTEGER AUTO_INCREMENT,
       			col_int_nokey INTEGER /*! NULL */,
       			col_int_key INTEGER /*! NULL */,
       
       			col_date_key DATE /*! NULL */,
       			col_date_nokey DATE /*! NULL */,
       
       			col_time_key TIME /*! NULL */,
       			col_time_nokey TIME /*! NULL */,
       
       			col_datetime_key DATETIME /*! NULL */,
       			col_datetime_nokey DATETIME /*! NULL */,
       
       			col_varchar_key VARCHAR(1) /*! NULL */,
       			col_varchar_nokey VARCHAR(1) /*! NULL */,
       
       			PRIMARY KEY (pk),
       			KEY (col_int_key),
       			KEY (col_date_key),
       			KEY (col_time_key),
       			KEY (col_datetime_key),
       			KEY (col_varchar_key, col_int_key)
       		)  AUTO_INCREMENT=10 ENGINE=MyISAM;
       
      	INSERT /*! IGNORE */ INTO BB (
       				col_int_key, col_int_nokey,
       				col_date_key, col_date_nokey,
       				col_time_key, col_time_nokey,
       				col_datetime_key, col_datetime_nokey,
       				col_varchar_key, col_varchar_nokey
       			) VALUES (8, 7, '2008-10-02', '2008-10-02', '04:07:22.028954', '04:07:22.028954', '2001-10-08 00:00:00', '2001-10-08 00:00:00', 'g', 'g');
       
      	CREATE TABLE CC (
       			pk INTEGER AUTO_INCREMENT,
       			col_int_nokey INTEGER /*! NULL */,
       			col_int_key INTEGER /*! NULL */,
       
       			col_date_key DATE /*! NULL */,
       			col_date_nokey DATE /*! NULL */,
       
       			col_time_key TIME /*! NULL */,
       			col_time_nokey TIME /*! NULL */,
       
       			col_datetime_key DATETIME /*! NULL */,
       			col_datetime_nokey DATETIME /*! NULL */,
       
       			col_varchar_key VARCHAR(1) /*! NULL */,
       			col_varchar_nokey VARCHAR(1) /*! NULL */,
       
       			PRIMARY KEY (pk),
       			KEY (col_int_key),
       			KEY (col_date_key),
       			KEY (col_time_key),
       			KEY (col_datetime_key),
       			KEY (col_varchar_key, col_int_key)
       		)  AUTO_INCREMENT=10 ENGINE=MyISAM;
       
      	INSERT /*! IGNORE */ INTO CC (
       				col_int_key, col_int_nokey,
       				col_date_key, col_date_nokey,
       				col_time_key, col_time_nokey,
       				col_datetime_key, col_datetime_nokey,
       				col_varchar_key, col_varchar_nokey
       			) VALUES (8, NULL, '2000-12-03', '2000-12-03', '22:55:23.019225', '22:55:23.019225', '2005-07-20 00:00:00', '2005-07-20 00:00:00', 'x', 'x'),(7, 8, '2008-05-03', '2008-05-03', '10:19:31.050677', '10:19:31.050677', '2007-10-06 17:56:40.056051', '2007-10-06 17:56:40.056051', 'd', 'd'),(1, 1, '2005-12-06', '2005-12-06', '14:40:36.038608', '14:40:36.038608', NULL, NULL, 'r', 'r'),(7, 9, '2000-04-10', '2000-04-10', '04:37:47.062416', '04:37:47.062416', '2007-12-23 05:17:49.029955', '2007-12-23 05:17:49.029955', 'f', 'f'),(9, 4, '2002-11-05', '2002-11-05', '19:34:06.054514', '19:34:06.054514', NULL, NULL, 'y', 'y'),(NULL, 3, '2000-09-06', '2000-09-06', '20:35:33.022996', '20:35:33.022996', '2000-08-16 00:00:00', '2000-08-16 00:00:00', 'u', 'u'),(1, 2, NULL, NULL, NULL, NULL, NULL, NULL, 'm', 'm'),(9, NULL, '2007-06-14', '2007-06-14', '14:43:37.057393', '14:43:37.057393', '2003-02-07 09:50:39.001189', '2003-02-07 09:50:39.001189', NULL, NULL),(2, 2, '2007-11-17', '2007-11-17', '02:23:09.043438', '02:23:09.043438', '2003-08-04 23:00:25.012582', '2003-08-04 23:00:25.012582', 'o', 'o'),(9, NULL, '2009-02-23', '2009-02-23', '01:22:45.041064', '01:22:45.041064', '2009-08-07 12:57:18.026416', '2009-08-07 12:57:18.026416', 'w', 'w'),(2, 6, '2007-01-08', '2007-01-08', '00:00:00', '00:00:00', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'm', 'm'),(4, 7, '2008-06-10', '2008-06-10', '00:13:25.038482', '00:13:25.038482', '2001-06-17 01:34:03.065074', '2001-06-17 01:34:03.065074', 'q', 'q'),(0, 2, '2002-10-20', '2002-10-20', '03:47:16.042671', '03:47:16.042671', NULL, NULL, NULL, NULL),(4, 5, '2008-09-12', '2008-09-12', '01:41:48.007423', '01:41:48.007423', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'd', 'd'),(8, 7, '2006-06-16', '2006-06-16', '00:00:00', '00:00:00', NULL, NULL, 'g', 'g'),(NULL, 6, '2004-09-18', '2004-09-18', '22:32:04.047407', '22:32:04.047407', '2007-08-22 14:10:22.054447', '2007-08-22 14:10:22.054447', 'x', 'x'),(NULL, 6, '1900-01-01', '1900-01-01', '16:44:14.028443', '16:44:14.028443', '2005-01-07 12:15:05.055865', '2005-01-07 12:15:05.055865', 'f', 'f'),(0, 2, '2005-09-13', '2005-09-13', '17:38:37.059754', '17:38:37.059754', '2008-07-18 00:00:00', '2008-07-18 00:00:00', 'p', 'p'),(NULL, 9, '2007-04-09', '2007-04-09', '08:46:48.042388', '08:46:48.042388', '2005-03-24 07:33:11.043368', '2005-03-24 07:33:11.043368', 'j', 'j'),(8, 6, '2000-09-20', '2000-09-20', '14:11:27.044095', '14:11:27.044095', '2003-06-13 23:19:49.018300', '2003-06-13 23:19:49.018300', 'c', 'c');

      EXPLAIN EXTENDED   SELECT    alias2 . `col_time_key` AS field1 FROM ( BB AS alias1 LEFT OUTER JOIN CC AS alias2 ON (alias2 . `col_varchar_key` = alias1 . `col_varchar_nokey`  ) ) WHERE (  NOT EXISTS ( SELECT   SQ1_alias1 . `col_varchar_nokey` AS SQ1_field1 FROM ( C AS SQ1_alias1 INNER JOIN CC AS SQ1_alias2 ON (SQ1_alias2 . `col_varchar_nokey` = SQ1_alias1 . `col_varchar_key`  ) ) WHERE SQ1_alias2 . `col_varchar_key` = alias2 . `col_varchar_nokey` AND SQ1_alias2 . `col_varchar_nokey` >= alias1 . `col_varchar_key` ) ) AND alias1 . `col_varchar_nokey` IS  NULL  GROUP BY field1 HAVING (field1 <= 'm' AND field1 <= 9) ORDER BY alias1 . `col_datetime_key` DESC , field1 LIMIT 2 OFFSET 5;

      id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
      1       PRIMARY NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    Impossible WHERE noticed after reading const tables
      2       DEPENDENT SUBQUERY      SQ1_alias2      ref     col_varchar_key col_varchar_key 4       test.alias2.col_varchar_nokey   3       100.00  Using where
      2       DEPENDENT SUBQUERY      SQ1_alias1      ref     col_varchar_key col_varchar_key 4       test.SQ1_alias2.col_varchar_nokey       3       100.00
      Warnings:
      Note    1276    Field or reference 'test.alias2.col_varchar_nokey' of SELECT #2 was resolved in SELECT #1
      Note    1276    Field or reference 'test.alias1.col_varchar_key' of SELECT #2 was resolved in SELECT #1
      Note    1003    select `test`.`alias2`.`col_time_key` AS `field1` from `test`.`CC` `alias2` where ((not(exists(select `test`.`SQ1_alias1`.`col_varchar_nokey` AS `SQ1_field1` from `test`.`C` `SQ1_alias1` join `test`.`CC` `SQ1_alias2` where ((`test`.`SQ1_alias1`.`col_varchar_key` = `test`.`SQ1_alias2`.`col_varchar_nokey`) and (`test`.`SQ1_alias2`.`col_varchar_key` = `test`.`alias2`.`col_varchar_nokey`) and (`test`.`SQ1_alias2`.`col_varchar_nokey` >= 'g'))))) and 0) group by `test`.`alias2`.`col_time_key` having ((`field1` <= 'm') and (`field1` <= 9)) order by '2001-10-08 00:00:00' desc,`test`.`alias2`.`col_time_key` limit 5,2 

        Attachments

          Activity

            People

            Assignee:
            psergey Sergei Petrunia
            Reporter:
            elenst Elena Stepanova
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: