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

LP:751484 - Valgrind warning / sporadic crash in evaluate_join_record sql_select.cc:14099 with semijoin

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Resolution: Not a Bug
    • None
    • None
    • None

    Description

      Repeatable with maria-5.3, maria-5.3-mwl89 . Not repeatable with maria-5.2 .

      valgrind warnings:

      ==19646== Conditional jump or move depends on uninitialised value(s)
      ==19646== at 0x832A44F: evaluate_join_record(JOIN*, st_join_table*, int) (sql_select.cc:14099)
      ==19646== by 0x832A0CD: sub_select(JOIN*, st_join_table*, bool) (sql_select.cc:14006)
      ==19646== by 0x8329AD0: sub_select_sjm(JOIN*, st_join_table*, bool) (sql_select.cc:13726)
      ==19646== by 0x832949F: do_select(JOIN*, List<Item>, st_table, Procedure*) (sql_select.cc:13541)
      ==19646== by 0x830FCCA: JOIN::exec() (sql_select.cc:2530)
      ==19646== by 0x83104E7: mysql_select(THD*, Item**, TABLE_LIST, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:2749)
      ==19646== by 0x8451213: mysql_derived_filling(THD*, st_lex*, TABLE_LIST*) (sql_derived.cc:296)
      ==19646== by 0x8450B1E: mysql_handle_derived(st_lex*, bool (THD*, st_lex*, TABLE_LIST*)) (sql_derived.cc:56)
      ==19646== by 0x82F11E1: open_and_lock_tables_derived(THD*, TABLE_LIST*, bool) (sql_base.cc:5125)
      ==19646== by 0x82AC8E0: open_and_lock_tables(THD*, TABLE_LIST*) (mysql_priv.h:1650)
      ==19646== by 0x82A5C00: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5056)
      ==19646== by 0x829CC86: mysql_execute_command(THD*) (sql_parse.cc:2235)
      ==19646== by 0x82A83B7: mysql_parse(THD*, char*, unsigned int, char const**) (sql_parse.cc:6090)
      ==19646== by 0x829A90F: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1211)
      ==19646== by 0x8299DBC: do_command(THD*) (sql_parse.cc:904)
      ==19646== by 0x8296E6F: handle_one_connection (sql_connect.cc:1154)
      ==19646== Conditional jump or move depends on uninitialised value(s)
      ==19646== at 0x832A4AE: evaluate_join_record(JOIN*, st_join_table*, int) (sql_select.cc:14108)
      ==19646== by 0x832A0CD: sub_select(JOIN*, st_join_table*, bool) (sql_select.cc:14006)
      ==19646== by 0x8329AD0: sub_select_sjm(JOIN*, st_join_table*, bool) (sql_select.cc:13726)
      ==19646== by 0x832949F: do_select(JOIN*, List<Item>, st_table, Procedure*) (sql_select.cc:13541)
      ==19646== by 0x830FCCA: JOIN::exec() (sql_select.cc:2530)
      ==19646== by 0x83104E7: mysql_select(THD*, Item**, TABLE_LIST, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:2749)
      ==19646== by 0x8451213: mysql_derived_filling(THD*, st_lex*, TABLE_LIST*) (sql_derived.cc:296)
      ==19646== by 0x8450B1E: mysql_handle_derived(st_lex*, bool (THD*, st_lex*, TABLE_LIST*)) (sql_derived.cc:56)
      ==19646== by 0x82F11E1: open_and_lock_tables_derived(THD*, TABLE_LIST*, bool) (sql_base.cc:5125)
      ==19646== by 0x82AC8E0: open_and_lock_tables(THD*, TABLE_LIST*) (mysql_priv.h:1650)
      ==19646== by 0x82A5C00: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5056)
      ==19646== by 0x829CC86: mysql_execute_command(THD*) (sql_parse.cc:2235)
      ==19646== by 0x82A83B7: mysql_parse(THD*, char*, unsigned int, char const**) (sql_parse.cc:6090)
      ==19646== by 0x829A90F: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1211)
      ==19646== by 0x8299DBC: do_command(THD*) (sql_parse.cc:904)
      ==19646== by 0x8296E6F: handle_one_connection (sql_connect.cc:1154)
      ==19646== Conditional jump or move depends on uninitialised value(s)
      ==19646== at 0x832A4FE: evaluate_join_record(JOIN*, st_join_table*, int) (sql_select.cc:14139)
      ==19646== by 0x832A0CD: sub_select(JOIN*, st_join_table*, bool) (sql_select.cc:14006)
      ==19646== by 0x8329AD0: sub_select_sjm(JOIN*, st_join_table*, bool) (sql_select.cc:13726)
      ==19646== by 0x832949F: do_select(JOIN*, List<Item>, st_table, Procedure*) (sql_select.cc:13541)
      ==19646== by 0x830FCCA: JOIN::exec() (sql_select.cc:2530)
      ==19646== by 0x83104E7: mysql_select(THD*, Item**, TABLE_LIST, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:2749)
      ==19646== by 0x8451213: mysql_derived_filling(THD*, st_lex*, TABLE_LIST*) (sql_derived.cc:296)
      ==19646== by 0x8450B1E: mysql_handle_derived(st_lex*, bool (THD*, st_lex*, TABLE_LIST*)) (sql_derived.cc:56)
      ==19646== by 0x82F11E1: open_and_lock_tables_derived(THD*, TABLE_LIST*, bool) (sql_base.cc:5125)
      ==19646== by 0x82AC8E0: open_and_lock_tables(THD*, TABLE_LIST*) (mysql_priv.h:1650)
      ==19646== by 0x82A5C00: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5056)
      ==19646== by 0x829CC86: mysql_execute_command(THD*) (sql_parse.cc:2235)
      ==19646== by 0x82A83B7: mysql_parse(THD*, char*, unsigned int, char const**) (sql_parse.cc:6090)
      ==19646== by 0x829A90F: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1211)
      ==19646== by 0x8299DBC: do_command(THD*) (sql_parse.cc:904)
      ==19646== by 0x8296E6F: handle_one_connection (sql_connect.cc:1154)

      test case. Unfortunately, simplification is not available for Valgrind:

      SET SESSION optimizer_switch='materialization=on,in_to_exists=on';
      CREATE TABLE t1 ( pk int(11) NOT NULL AUTO_INCREMENT, col_int_nokey int(11) DEFAULT NULL, col_int_key int(11) DEFAULT NULL, col_date_key date DEFAULT NUL$
      INSERT INTO t1 VALUES (10,7,8,NULL,NULL,'01:27:35','01:27:35','2002-02-26 06:14:37','2002-02-26 06:14:37','v','v'),(11,1,9,'2006-06-14','2006-06-14','19:48:3$
      CREATE TABLE t2 ( pk int(11) NOT NULL AUTO_INCREMENT, col_int_nokey int(11) DEFAULT NULL, col_int_key int(11) DEFAULT NULL, col_date_key date DEFAULT NUL$
      INSERT INTO t2 VALUES (10,8,8,'2002-02-21','2002-02-21','18:27:58','18:27:58','1900-01-01 00:00:00','1900-01-01 00:00:00',NULL,NULL);
      CREATE TABLE t3 ( pk int(11) NOT NULL AUTO_INCREMENT, col_int_nokey int(11) DEFAULT NULL, col_int_key int(11) DEFAULT NULL, col_date_key date DEFAULT NUL$
      INSERT INTO t3 VALUES (1,1,7,'1900-01-01','1900-01-01','01:13:38','01:13:38','2005-02-05 00:00:00','2005-02-05 00:00:00','f','f');

      EXPLAIN SELECT alias1.col_time_key AS field1
      FROM
      (
      (
      SELECT SQ1_alias1.*
      FROM t1 AS SQ1_alias1
      WHERE SQ1_alias1.col_varchar_nokey IN
      (
      SELECT C_SQ1_alias1.col_varchar_nokey AS C_SQ1_field1
      FROM
      ( t1 AS C_SQ1_alias1
      RIGHT JOIN t3 AS C_SQ1_alias2 ON
      (C_SQ1_alias2.col_varchar_key = C_SQ1_alias1.col_varchar_key )
      )
      )
      )
      AS alias1
      LEFT JOIN t2 AS alias2 ON
      (alias2.col_varchar_nokey = alias1.col_varchar_key )
      )

      WHERE
      ( alias2.col_int_nokey >= SOME
      (
      SELECT 2 UNION
      SELECT 104 )
      )
      AND alias1.pk = 4
      ORDER BY alias1.col_datetime_key ASC , field1 ;

      Attachments

        Activity

          People

            psergei Sergei Petrunia
            philipstoev Philip Stoev (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 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.