mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
2aea938749
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.
13 lines
355 B
PHP
13 lines
355 B
PHP
# include/no_valgrind_without_big.inc
|
|
#
|
|
# If we are running with Valgrind ($VALGRIND_TEST <> 0) than the resource
|
|
# consumption (storage space needed, runtime ...) will be extreme.
|
|
# Therefore we require that the option "--big-test" is also set.
|
|
#
|
|
|
|
if ($VALGRIND_TEST) {
|
|
if (!$BIG_TEST)
|
|
{
|
|
--skip Need "--big-test" when running with Valgrind
|
|
}
|
|
}
|