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

LP:923236 - Valgrind warnings in create_ref_for_key with extended_keys+join_cache_hashed+join_cache_bka

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • None
    • None
    • None

    Description

      ==2090== Conditional jump or move depends on uninitialised value(s)
      ==2090== at 0x8542F76: create_ref_for_key(JOIN*, st_join_table*, keyuse_t*, bool, unsigned long long) (sql_select.cc:7514)
      ==2090== by 0x8541034: get_best_combination(JOIN*) (sql_select.cc:7183)
      ==2090== by 0x8532147: make_join_statistics(JOIN*, List<TABLE_LIST>&, Item*, st_dynamic_array*) (sql_select.cc:3598)
      ==2090== by 0x8521D08: JOIN::optimize() (sql_select.cc:1149)
      ==2090== by 0x852DCCA: 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:2917)
      ==2090== by 0x858804C: mysql_explain_union(THD*, st_select_lex_unit*, select_result*) (sql_select.cc:21392)
      ==2090== by 0x843BA9B: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5127)
      ==2090== by 0x84294D6: mysql_execute_command(THD*) (sql_parse.cc:2281)
      ==2090== by 0x8440EB7: mysql_parse(THD*, char*, unsigned int, char const**) (sql_parse.cc:6149)
      ==2090== by 0x84248D0: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1227)
      ==2090== by 0x8422F76: do_command(THD*) (sql_parse.cc:922)
      ==2090== by 0x841C469: handle_one_connection (sql_connect.cc:1193)
      ==2090== by 0x40C9B24: start_thread (in /lib/libpthread-2.11.2.so)
      ==2090== by 0x42F534D: clone (in /lib/libc-2.11.2.so)

      bzr version-info
      revision-id: <email address hidden>
      date: 2012-01-24 23:34:02 -0800
      build-date: 2012-01-29 10:08:31 +0400
      revno: 3395
      branch-nick: lp-5.3-extended_keys

      Reproducible with join_cache_hashed=on,join_cache_bka=on,extended_keys=on and join_cache_level >= 3.
      The problem seems to be somehow related to the number of columns and the length of their names.

      EXPLAIN:

      id select_type table type possible_keys key key_len ref rows filtered Extra
      1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
      1 SIMPLE t2 hash_ALL NULL #hash#$hj 5 test.t1.a 2 100.00 Using where; Using join buffer (flat, BNLH join)
      Warnings:
      Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2`,`test`.`t1`.`f3` AS `f3`,`test`.`t1`.`f4` AS `f4`,`test`.`t1`.`f5` AS `f5`,`test`.`t1`.`long_column_name_1` AS `long_column_name_1`,`test`.`t1`.`long_column_name_2` AS `long_column_name_2`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`f6` AS `f6`,`test`.`t2`.`f7` AS `f7`,`test`.`t2`.`long_column_name_3` AS `long_column_name_3`,`test`.`t2`.`long_column_name_4` AS `long_column_name_4`,`test`.`t2`.`long_column_name_5` AS `long_column_name_5`,`test`.`t2`.`long_column_name_6` AS `long_column_name_6`,`test`.`t2`.`long_column_name_7` AS `long_column_name_7`,`test`.`t2`.`long_column_name_8` AS `long_column_name_8`,`test`.`t2`.`long_column_name_9` AS `long_column_name_9` from `test`.`t1` join `test`.`t2` where (`test`.`t2`.`b` = `test`.`t1`.`a`)

      Minimal optimizer_switch: join_cache_hashed=on,join_cache_bka=on,extended_keys=on

      Full optimizer_switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=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=off,table_elimination=on,extended_keys=on

      Test case:

      SET join_cache_level=3;
      SET optimizer_switch='join_cache_hashed=on,join_cache_bka=on,extended_keys=on';

      CREATE TABLE t1 (
      a INT, f1 INT, f2 INT,
      f3 INT, f4 INT, f5 INT,
      long_column_name_1 INT,
      long_column_name_2 INT
      );

      CREATE TABLE t2 (
      b INT, f6 INT, f7 INT,
      long_column_name_3 INT,
      long_column_name_4 INT,
      long_column_name_5 INT,
      long_column_name_6 INT,
      long_column_name_7 INT,
      long_column_name_8 INT,
      long_column_name_9 INT
      );

      INSERT INTO t1 (a) VALUES (4),(6);
      INSERT INTO t2 (b) VALUES (0),(8);

      SELECT * FROM t1, t2 WHERE b=a;

      Attachments

        Activity

          People

            igor Igor Babaev (Inactive)
            elenst Elena Stepanova
            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.