Various Valgrind warnings around index intersection in maria-5.1-wl21

Bug #684144 reported by Philip Stoev
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MariaDB
Invalid
Undecided
Igor Babaev

Bug Description

The following query

SELECT DISTINCT * FROM `table10000_aria_int_autoinc`
 FORCE KEY ( PRIMARY , `col_smallint_key` , `col_bigint_key` , `col_varchar_10_key` , `col_varchar_64_key` )
 WHERE ( ( `col_smallint_key` <> 53 ) AND `col_smallint_key` IN ( 255 , 2 , 1 , 1 ) )
 AND ( `col_varchar_10_key` IS NULL OR `col_varchar_10_key` BETWEEN 'Arkansas' AND 'hq' )

caused the following Valgrind warnings:

==25046== Conditional jump or move depends on uninitialised value(s)
==25046== at 0x837FEFB: check_index_intersect_extension(st_partial_index_intersection_info*, st_index_scan_info*, st_partial_index_intersection_info*) (opt
_range.cc:5232)
==25046== by 0x8380088: find_index_intersect_best_extension(st_partial_index_intersection_info*) (opt_range.cc:5291)
==25046== by 0x8380098: find_index_intersect_best_extension(st_partial_index_intersection_info*) (opt_range.cc:5292)
==25046== by 0x838019D: get_best_index_intersect(PARAM*, SEL_TREE*, double) (opt_range.cc:5343)
==25046== by 0x837BB8E: SQL_SELECT::test_quick_select(THD*, Bitmap<64u>, unsigned long long, unsigned long long, bool) (opt_range.cc:3067)
==25046== by 0x82E7B1A: get_quick_record_count(THD*, SQL_SELECT*, st_table*, Bitmap<64u> const*, unsigned long long) (sql_select.cc:2600)
==25046== by 0x82E98D8: make_join_statistics(JOIN*, TABLE_LIST*, Item*, st_dynamic_array*) (sql_select.cc:3037)
==25046== by 0x82E2066: JOIN::optimize() (sql_select.cc:1029)
==25046== by 0x82E7842: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, un
signed long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:2538)
==25046== by 0x830CD07: mysql_explain_union(THD*, st_select_lex_unit*, select_result*) (sql_select.cc:17200)
==25046== by 0x8286C4B: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5144)
==25046== by 0x827D735: mysql_execute_command(THD*) (sql_parse.cc:2340)
==25046== by 0x8288E45: mysql_parse(THD*, char*, unsigned int, char const**) (sql_parse.cc:6092)
==25046== by 0x827B221: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1269)
==25046== by 0x827A47E: do_command(THD*) (sql_parse.cc:895)
==25046== by 0x827748F: handle_one_connection (sql_connect.cc:1138)
==25046==
==25046== Conditional jump or move depends on uninitialised value(s)
==25046== at 0x837FFB7: find_index_intersect_best_extension(st_partial_index_intersection_info*) (opt_range.cc:5269)
==25046== by 0x8380098: find_index_intersect_best_extension(st_partial_index_intersection_info*) (opt_range.cc:5292)
==25046== by 0x8380098: find_index_intersect_best_extension(st_partial_index_intersection_info*) (opt_range.cc:5292)
==25046== by 0x838019D: get_best_index_intersect(PARAM*, SEL_TREE*, double) (opt_range.cc:5343)
==25046== by 0x837BB8E: SQL_SELECT::test_quick_select(THD*, Bitmap<64u>, unsigned long long, unsigned long long, bool) (opt_range.cc:3067)
==25046== by 0x82E7B1A: get_quick_record_count(THD*, SQL_SELECT*, st_table*, Bitmap<64u> const*, unsigned long long) (sql_select.cc:2600)
==25046== by 0x82E98D8: make_join_statistics(JOIN*, TABLE_LIST*, Item*, st_dynamic_array*) (sql_select.cc:3037)
==25046== by 0x82E2066: JOIN::optimize() (sql_select.cc:1029)
==25046== by 0x82E7842: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, un
signed long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:2538)
==25046== by 0x830CD07: mysql_explain_union(THD*, st_select_lex_unit*, select_result*) (sql_select.cc:17200)
==25046== by 0x8286C4B: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5144)
==25046== by 0x827D735: mysql_execute_command(THD*) (sql_parse.cc:2340)
==25046== by 0x8288E45: mysql_parse(THD*, char*, unsigned int, char const**) (sql_parse.cc:6092)
==25046== by 0x827B221: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1269)
==25046== by 0x827A47E: do_command(THD*) (sql_parse.cc:895)
==25046== by 0x827748F: handle_one_connection (sql_connect.cc:1138)
==25046==
==25046== Conditional jump or move depends on uninitialised value(s)
==25046== at 0x837FB9D: check_index_intersect_extension(st_partial_index_intersection_info*, st_index_scan_info*, st_partial_index_intersection_info*) (opt
_range.cc:5173)
==25046== by 0x8380088: find_index_intersect_best_extension(st_partial_index_intersection_info*) (opt_range.cc:5291)
==25046== by 0x838019D: get_best_index_intersect(PARAM*, SEL_TREE*, double) (opt_range.cc:5343)
==25046== by 0x837BB8E: SQL_SELECT::test_quick_select(THD*, Bitmap<64u>, unsigned long long, unsigned long long, bool) (opt_range.cc:3067)
==25046== by 0x82E7B1A: get_quick_record_count(THD*, SQL_SELECT*, st_table*, Bitmap<64u> const*, unsigned long long) (sql_select.cc:2600)
==25046== by 0x82E98D8: make_join_statistics(JOIN*, TABLE_LIST*, Item*, st_dynamic_array*) (sql_select.cc:3037)
==25046== by 0x82E2066: JOIN::optimize() (sql_select.cc:1029)
==25046== by 0x82E7842: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, un
signed long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:2538)
==25046== by 0x830CD07: mysql_explain_union(THD*, st_select_lex_unit*, select_result*) (sql_select.cc:17200)
==25046== by 0x8286C4B: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5144)
==25046== by 0x827D735: mysql_execute_command(THD*) (sql_parse.cc:2340)
==25046== by 0x8288E45: mysql_parse(THD*, char*, unsigned int, char const**) (sql_parse.cc:6092)
==25046== by 0x827B221: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1269)
==25046== by 0x827A47E: do_command(THD*) (sql_parse.cc:895)
==25046== by 0x827748F: handle_one_connection (sql_connect.cc:1138)
==25046== by 0x821918: start_thread (in /lib/libpthread-2.12.1.so)
==25046==
==25046== Conditional jump or move depends on uninitialised value(s)
==25046== at 0x8382A6A: get_key_scans_params(PARAM*, SEL_TREE*, bool, bool, double) (opt_range.cc:6377)
==25046== by 0x837DEE0: get_best_disjunct_quick(PARAM*, SEL_IMERGE*, double) (opt_range.cc:4416)
==25046== by 0x837BC5A: SQL_SELECT::test_quick_select(THD*, Bitmap<64u>, unsigned long long, unsigned long long, bool) (opt_range.cc:3087)
==25046== by 0x82E7B1A: get_quick_record_count(THD*, SQL_SELECT*, st_table*, Bitmap<64u> const*, unsigned long long) (sql_select.cc:2600)
==25046== by 0x82E98D8: make_join_statistics(JOIN*, TABLE_LIST*, Item*, st_dynamic_array*) (sql_select.cc:3037)
==25046== by 0x82E2066: JOIN::optimize() (sql_select.cc:1029)
==25046== by 0x82E7842: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, un
signed long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:2538)
==25046== by 0x830CD07: mysql_explain_union(THD*, st_select_lex_unit*, select_result*) (sql_select.cc:17200)
==25046== by 0x8286C4B: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5144)
==25046== by 0x827D735: mysql_execute_command(THD*) (sql_parse.cc:2340)
==25046== by 0x8288E45: mysql_parse(THD*, char*, unsigned int, char const**) (sql_parse.cc:6092)
==25046== by 0x827B221: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1269)
==25046== by 0x827A47E: do_command(THD*) (sql_parse.cc:895)
==25046== by 0x827748F: handle_one_connection (sql_connect.cc:1138)
==25046== by 0x821918: start_thread (in /lib/libpthread-2.12.1.so)
==25046== by 0x40FACCD: clone (in /lib/libc-2.12.1.so)
==25046==
==25046== Conditional jump or move depends on uninitialised value(s)
==25046== at 0x82EDF91: best_access_path(JOIN*, st_join_table*, THD*, unsigned long long, unsigned int, double, double) (sql_select.cc:4778)
==25046== by 0x82EEDE0: best_extension_by_limited_search(JOIN*, unsigned long long, unsigned int, double, double, unsigned int, unsigned int) (sql_select.c
c:5386)
==25046== by 0x82EE7E6: greedy_search(JOIN*, unsigned long long, unsigned int, unsigned int) (sql_select.cc:5162)
==25046== by 0x82EE2EF: choose_plan(JOIN*, unsigned long long) (sql_select.cc:4876)
==25046== by 0x82E9BFA: make_join_statistics(JOIN*, TABLE_LIST*, Item*, st_dynamic_array*) (sql_select.cc:3080)
==25046== by 0x82E2066: JOIN::optimize() (sql_select.cc:1029)
==25046== by 0x82E7842: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, un
signed long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:2538)
==25046== by 0x830CD07: mysql_explain_union(THD*, st_select_lex_unit*, select_result*) (sql_select.cc:17200)
==25046== by 0x8286C4B: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5144)
==25046== by 0x827D735: mysql_execute_command(THD*) (sql_parse.cc:2340)
==25046== by 0x8288E45: mysql_parse(THD*, char*, unsigned int, char const**) (sql_parse.cc:6092)
==25046== by 0x827B221: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1269)
==25046== by 0x827A47E: do_command(THD*) (sql_parse.cc:895)
==25046== by 0x827748F: handle_one_connection (sql_connect.cc:1138)
==25046== by 0x821918: start_thread (in /lib/libpthread-2.12.1.so)
==25046== by 0x40FACCD: clone (in /lib/libc-2.12.1.so)
==25046==
==25046== Conditional jump or move depends on uninitialised value(s)
==25046== at 0x82EEE41: best_extension_by_limited_search(JOIN*, unsigned long long, unsigned int, double, double, unsigned int, unsigned int) (sql_select.c
c:5392)
==25046== by 0x82EE7E6: greedy_search(JOIN*, unsigned long long, unsigned int, unsigned int) (sql_select.cc:5162)
==25046== by 0x82EE2EF: choose_plan(JOIN*, unsigned long long) (sql_select.cc:4876)
==25046== by 0x82E9BFA: make_join_statistics(JOIN*, TABLE_LIST*, Item*, st_dynamic_array*) (sql_select.cc:3080)
==25046== by 0x82E2066: JOIN::optimize() (sql_select.cc:1029)
==25046== by 0x82E7842: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, un
signed long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:2538)
==25046== by 0x830CD07: mysql_explain_union(THD*, st_select_lex_unit*, select_result*) (sql_select.cc:17200)
==25046== by 0x8286C4B: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5144)
==25046== by 0x827D735: mysql_execute_command(THD*) (sql_parse.cc:2340)
==25046== by 0x8288E45: mysql_parse(THD*, char*, unsigned int, char const**) (sql_parse.cc:6092)
==25046== by 0x827B221: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1269)
==25046== by 0x827A47E: do_command(THD*) (sql_parse.cc:895)
==25046== by 0x827748F: handle_one_connection (sql_connect.cc:1138)
==25046== by 0x821918: start_thread (in /lib/libpthread-2.12.1.so)
==25046== by 0x40FACCD: clone (in /lib/libc-2.12.1.so)
==25046==
==25046== Conditional jump or move depends on uninitialised value(s)
==25046== at 0x82EEF66: best_extension_by_limited_search(JOIN*, unsigned long long, unsigned int, double, double, unsigned int, unsigned int) (sql_select.c
c:5417)
==25046== by 0x82EE7E6: greedy_search(JOIN*, unsigned long long, unsigned int, unsigned int) (sql_select.cc:5162)
==25046== by 0x82EE2EF: choose_plan(JOIN*, unsigned long long) (sql_select.cc:4876)
==25046== by 0x82E9BFA: make_join_statistics(JOIN*, TABLE_LIST*, Item*, st_dynamic_array*) (sql_select.cc:3080)
==25046== by 0x82E2066: JOIN::optimize() (sql_select.cc:1029)
==25046== by 0x82E7842: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, un
signed long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:2538)
==25046== by 0x830CD07: mysql_explain_union(THD*, st_select_lex_unit*, select_result*) (sql_select.cc:17200)
==25046== by 0x8286C4B: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5144)
==25046== by 0x827D735: mysql_execute_command(THD*) (sql_parse.cc:2340)
==25046== by 0x8288E45: mysql_parse(THD*, char*, unsigned int, char const**) (sql_parse.cc:6092)
==25046== by 0x827B221: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1269)
==25046== by 0x827A47E: do_command(THD*) (sql_parse.cc:895)
==25046== by 0x827748F: handle_one_connection (sql_connect.cc:1138)
==25046== by 0x821918: start_thread (in /lib/libpthread-2.12.1.so)
==25046== by 0x40FACCD: clone (in /lib/libc-2.12.1.so)
==25046==
==25046== Conditional jump or move depends on uninitialised value(s)
==25046== at 0x82EF25D: best_extension_by_limited_search(JOIN*, unsigned long long, unsigned int, double, double, unsigned int, unsigned int) (sql_select.c
c:5463)
==25046== by 0x82EE7E6: greedy_search(JOIN*, unsigned long long, unsigned int, unsigned int) (sql_select.cc:5162)
==25046== by 0x82EE2EF: choose_plan(JOIN*, unsigned long long) (sql_select.cc:4876)
==25046== by 0x82E9BFA: make_join_statistics(JOIN*, TABLE_LIST*, Item*, st_dynamic_array*) (sql_select.cc:3080)
==25046== by 0x82E2066: JOIN::optimize() (sql_select.cc:1029)
==25046== by 0x82E7842: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, un
signed long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:2538)
==25046== by 0x830CD07: mysql_explain_union(THD*, st_select_lex_unit*, select_result*) (sql_select.cc:17200)
==25046== by 0x8286C4B: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5144)
==25046== by 0x827D735: mysql_execute_command(THD*) (sql_parse.cc:2340)
==25046== by 0x8288E45: mysql_parse(THD*, char*, unsigned int, char const**) (sql_parse.cc:6092)
==25046== by 0x827B221: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1269)
==25046== by 0x827A47E: do_command(THD*) (sql_parse.cc:895)
==25046== by 0x827748F: handle_one_connection (sql_connect.cc:1138)
==25046== by 0x821918: start_thread (in /lib/libpthread-2.12.1.so)
==25046== by 0x40FACCD: clone (in /lib/libc-2.12.1.so)
==25046==
==25046== Conditional jump or move depends on uninitialised value(s)
==25046== at 0x82EE82B: greedy_search(JOIN*, unsigned long long, unsigned int, unsigned int) (sql_select.cc:5169)
==25046== by 0x82EE2EF: choose_plan(JOIN*, unsigned long long) (sql_select.cc:4876)
==25046== by 0x82E9BFA: make_join_statistics(JOIN*, TABLE_LIST*, Item*, st_dynamic_array*) (sql_select.cc:3080)
==25046== by 0x82E2066: JOIN::optimize() (sql_select.cc:1029)
==25046== by 0x82E7842: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, un
signed long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:2538)
==25046== by 0x830CD07: mysql_explain_union(THD*, st_select_lex_unit*, select_result*) (sql_select.cc:17200)
==25046== by 0x8286C4B: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5144)
==25046== by 0x827D735: mysql_execute_command(THD*) (sql_parse.cc:2340)
==25046== by 0x8288E45: mysql_parse(THD*, char*, unsigned int, char const**) (sql_parse.cc:6092)
==25046== by 0x827B221: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1269)
==25046== by 0x827A47E: do_command(THD*) (sql_parse.cc:895)
==25046== by 0x827748F: handle_one_connection (sql_connect.cc:1138)
==25046== by 0x821918: start_thread (in /lib/libpthread-2.12.1.so)
==25046== by 0x40FACCD: clone (in /lib/libc-2.12.1.so)
==25046==

Simplification is not available for Valgrind warnings, so an unsimplified test case will be attached shortly.

Revision history for this message
Philip Stoev (philip-stoev) wrote :
Revision history for this message
Philip Stoev (philip-stoev) wrote :
Revision history for this message
Philip Stoev (philip-stoev) wrote :

See also bug 684086

Changed in maria:
milestone: none → 5.1
assignee: nobody → Igor Babaev (igorb-seattle)
summary: - Various Valgrind warnings around index intersection
+ Various Valgrind warnings around index intersection in maria-5.1-wl21
Revision history for this message
Igor Babaev (igorb-seattle) wrote :

I failed to reproduce this bug on the current maria-5.1-wl21 tree with the submitted test cases.

Changed in maria:
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.