[MDEV-32666] MSAN errors in JOIN_CACHE::read_all_record_fields Created: 2023-11-02  Updated: 2023-11-25

Status: Open
Project: MariaDB Server
Component/s: Optimizer
Affects Version/s: 10.5, 10.6, 10.11, 11.0, 11.1, 11.2
Fix Version/s: 10.5, 10.6, 10.11, 11.0, 11.1, 11.2

Type: Bug Priority: Minor
Reporter: Elena Stepanova Assignee: Sergei Petrunia
Resolution: Unresolved Votes: 0
Labels: None


 Description   

Set to minor as the test case is not very realistic.

--source include/have_sequence.inc
 
CREATE TABLE t1 AS SELECT seq AS a FROM seq_1_to_500;
CREATE TABLE t2 AS SELECT seq AS b FROM seq_1_to_2;
CREATE TABLE t3 AS SELECT seq AS c FROM seq_1_to_2;
CREATE TABLE t4 AS SELECT seq AS d FROM seq_1_to_500;
 
SET JOIN_BUFFER_SPACE_LIMIT= 4096;
 
SELECT COUNT(*) FROM t1 LEFT JOIN ( information_schema.GLOBAL_STATUS AS gs LEFT JOIN ( t2 JOIN t3 ) ON (gs.VARIABLE_VALUE > 'x') ) ON (TRUE) JOIN t4;
 
# Cleanup
DROP TABLE t1, t2, t3, t4;

10.5 dd62a285b88958dae9b9f3e49fdd0c55f6eced72

==2697282==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x556b5af91bfc in JOIN_CACHE::read_all_record_fields() /data/bld/10.5-msan/sql/sql_join_cache.cc:1793:26
    #1 0x556b5af91d15 in JOIN_CACHE::get_record_by_pos(unsigned char*) /data/bld/10.5-msan/sql/sql_join_cache.cc:1669:3
    #2 0x556b5af91492 in JOIN_CACHE::get_record() /data/bld/10.5-msan/sql/sql_join_cache.cc:1641:19
    #3 0x556b5af960cf in JOIN_CACHE::join_matching_records(bool) /data/bld/10.5-msan/sql/sql_join_cache.cc:2424:9
    #4 0x556b5af94b89 in JOIN_CACHE::join_records(bool) /data/bld/10.5-msan/sql/sql_join_cache.cc:2177:9
    #5 0x556b5aace6f0 in sub_select_cache(JOIN*, st_join_table*, bool) /data/bld/10.5-msan/sql/sql_select.cc:20989:16
    #6 0x556b5aacdcfc in evaluate_null_complemented_join_record(JOIN*, st_join_table*) /data/bld/10.5-msan/sql/sql_select.cc:21562:10
    #7 0x556b5aacdcfc in sub_select(JOIN*, st_join_table*, bool) /data/bld/10.5-msan/sql/sql_select.cc:21254:9
    #8 0x556b5aacf98c in evaluate_join_record(JOIN*, st_join_table*, int) /data/bld/10.5-msan/sql/sql_select.cc:21440:11
    #9 0x556b5aacd0f6 in sub_select(JOIN*, st_join_table*, bool) /data/bld/10.5-msan/sql/sql_select.cc:21249:9
    #10 0x556b5aacf98c in evaluate_join_record(JOIN*, st_join_table*, int) /data/bld/10.5-msan/sql/sql_select.cc:21440:11
    #11 0x556b5aacd01b in sub_select(JOIN*, st_join_table*, bool) /data/bld/10.5-msan/sql/sql_select.cc:21210:9
    #12 0x556b5aa4334e in do_select(JOIN*, Procedure*) /data/bld/10.5-msan/sql/sql_select.cc:20727:14
    #13 0x556b5aa4334e in JOIN::exec_inner() /data/bld/10.5-msan/sql/sql_select.cc:4622:50
    #14 0x556b5aa3f238 in JOIN::exec() /data/bld/10.5-msan/sql/sql_select.cc:4402:3
    #15 0x556b5a9a77b0 in mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /data/bld/10.5-msan/sql/sql_select.cc:4879:9
    #16 0x556b5a9a61c6 in handle_select(THD*, LEX*, select_result*, unsigned long) /data/bld/10.5-msan/sql/sql_select.cc:450:10
    #17 0x556b5a8dd1ae in execute_sqlcom_select(THD*, TABLE_LIST*) /data/bld/10.5-msan/sql/sql_parse.cc:6343:12
    #18 0x556b5a8b735a in mysql_execute_command(THD*) /data/bld/10.5-msan/sql/sql_parse.cc:4020:12
    #19 0x556b5a89e647 in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/bld/10.5-msan/sql/sql_parse.cc:8121:18
    #20 0x556b5a891bd2 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/bld/10.5-msan/sql/sql_parse.cc:1891:7
    #21 0x556b5a8a05e8 in do_command(THD*) /data/bld/10.5-msan/sql/sql_parse.cc:1375:17
    #22 0x556b5aea334f in do_handle_one_connection(CONNECT*, bool) /data/bld/10.5-msan/sql/sql_connect.cc:1416:11
    #23 0x556b5aea2a45 in handle_one_connection /data/bld/10.5-msan/sql/sql_connect.cc:1318:5
    #24 0x556b5c2bda5a in pfs_spawn_thread /data/bld/10.5-msan/storage/perfschema/pfs.cc:2201:3
    #25 0x7f5b425c0043 in start_thread nptl/./nptl/pthread_create.c:442:8
    #26 0x7f5b4264061b in clone3 misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
 
  Uninitialized value was stored to memory at
    #0 0x556b5af91e88 in JOIN_CACHE::get_record_by_pos(unsigned char*) /data/bld/10.5-msan/sql/sql_join_cache.cc:1668:6
 
  Uninitialized value was stored to memory at
    #0 0x556b5af902ba in JOIN_CACHE::store_offset(unsigned int, unsigned char*, unsigned long) /data/bld/10.5-msan/sql/sql_join_cache.h:130:13
    #1 0x556b5af902ba in JOIN_CACHE::store_rec_ref(unsigned char*, unsigned char*) /data/bld/10.5-msan/sql/sql_join_cache.h:391:5
    #2 0x556b5af902ba in JOIN_CACHE::write_record_data(unsigned char*, bool*) /data/bld/10.5-msan/sql/sql_join_cache.cc:1371:17
 
  Memory was marked as uninitialized
    #0 0x556b5a38373e in __msan_allocated_memory (/mnt8t/bld/10.5-msan/sql/mariadbd+0x77e73e)
    #1 0x556b5d708976 in my_malloc /data/bld/10.5-msan/mysys/my_malloc.c:114:7
 
SUMMARY: MemorySanitizer: use-of-uninitialized-value /data/bld/10.5-msan/sql/sql_join_cache.cc:1793:26 in JOIN_CACHE::read_all_record_fields()


Generated at Thu Feb 08 10:33:04 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.