maria:bb-10.9-anel-rpl_fix_assert

Last commit made on 2023-11-14
Get this branch:
git clone -b bb-10.9-anel-rpl_fix_assert https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.9-anel-rpl_fix_assert
Repository:
lp:maria

Recent commits

bf7e21b... by Anel Husakovic <email address hidden>

MDEV-32168: 10.9 reviewer

1bffca0... by Anel Husakovic <email address hidden>

MDEV-32168: 10.6 reviewer 1

14fa1bc... by Anel Husakovic <email address hidden>

MDEV-32168: 10.5 reviewr

748ffff... by Anel Husakovic <email address hidden>

MDEV-32168: slave_error_param condition is never checked from the wait_for_slave_param.inc

- Reviewer: <email address hidden>
            <email address hidden>

3e0009d... by Oleksandr "Sanja" Byelkin

Merge branch '10.6' into 10.9

0d16eb3... by Oleksandr "Sanja" Byelkin

Merge branch '10.5' into 10.6

7e65025... by Oleksandr "Sanja" Byelkin

Merge branch '10.4' into 10.5

2aea938... by Monty <email address hidden>

MDEV-31893 Valgrind reports issues in main.join_cache_notasan

This is also related to
MDEV-31348 Assertion `last_key_entry >= end_pos' failed in virtual bool
           JOIN_CACHE_HASHED::put_record()

Valgrind exposed a problem with the join_cache for hash joins:
=25636== Conditional jump or move depends on uninitialised value(s)
==25636== at 0xA8FF4E: JOIN_CACHE_HASHED::init_hash_table()
          (sql_join_cache.cc:2901)

The reason for this was that avg_record_length contained a random value
if one had used SET optimizer_switch='optimize_join_buffer_size=off'.

This causes either 'random size' memory to be allocated (up to
join_buffer_size) which can increase memory usage or, if avg_record_length
is less than the row size, memory overwrites in thd->mem_root, which is
bad.

Fixed by setting avg_record_length in JOIN_CACHE_HASHED::init()
before it's used.

There is no test case for MDEV-31893 as valgrind of join_cache_notasan
checks that.
I added a test case for MDEV-31348.

f692b2b... by Oleksandr "Sanja" Byelkin

Merge branch '10.6' into 10.9

# Conflicts:
# mysql-test/main/sp.result
# mysql-test/main/sp.test

8d210fc... by Sergey Petrunia

MDEV-31877: ASAN errors in Exec_time_tracker::get_cycles with innodb slow log verbosity

Remove redundant delete_explain_query() calls in

sp_instr_set::exec_core(), sp_instr_set_row_field::exec_core(),
sp_instr_set_row_field_by_name::exec_core().

These calls are made before the SP instruction's tables are
"closed" by close_thread_tables() call.

When we call close_thread_tables() after that, we no longer
can collect engine's counter variables, as they use the data
structures that are located in the Explain Data Structures.

Also, these delete_explain_query() calls are redundant, as
sp_lex_keeper::reset_lex_and_exec_core() has another
delete_explain_query() call, which is located in the right
location after the close_thread_tables() call.