1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-08 00:28:29 +03:00

MDEV-37705 main.lotofstack /main.sp-error fails in MSAN+Debug

Tests on clang-20/21 had both of these tests overrunning the
stack. The check_stack_overrun function checked the function
earlier with a 2*STACK_MIN_SIZE margin. The exection within
the processing is deeper then when check_stack_overrun was
called.

Raising STACK_MIN_SIZE to 44k was sufficient (and 40k wasn't
oufficient). execution_constants also tested however
the topic mention tests are bigger.

Perfscheam tests
* perfschema.statement_program_nesting_event_check
* perfschema.statement_program_nested
* perfschema.max_program_zero

A small increase to the test thread-stack-size on statement_program_lost_inst
allows this test to continue to pass.
This commit is contained in:
Daniel Black
2025-09-22 11:58:50 +10:00
parent f9bdff6162
commit f2ef683b7a
5 changed files with 11 additions and 1 deletions

View File

@@ -11,6 +11,7 @@
--source include/not_embedded.inc
--source include/have_perfschema.inc
--source include/not_msan_with_debug.inc
--source ../include/start_server_common.inc

View File

@@ -22,7 +22,7 @@ let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
--write_line wait $restart_file
--shutdown_server
--source include/wait_until_disconnected.inc
--write_line "restart:--performance_schema_max_program_instances=7 --performance_schema_max_statement_stack=2 --thread_stack=655360" $restart_file
--write_line "restart:--performance_schema_max_program_instances=7 --performance_schema_max_statement_stack=2 --thread_stack=1048576" $restart_file
--enable_reconnect
--source include/wait_until_connected_again.inc

View File

@@ -5,6 +5,7 @@
--source include/not_embedded.inc
--source include/have_perfschema.inc
--source include/have_innodb.inc
--source include/not_msan_with_debug.inc
TRUNCATE TABLE performance_schema.events_statements_summary_by_program;
TRUNCATE TABLE performance_schema.events_statements_history_long;

View File

@@ -8,6 +8,7 @@
--source include/not_embedded.inc
--source include/have_perfschema.inc
--source include/have_innodb.inc
--source include/not_msan_with_debug.inc
TRUNCATE TABLE performance_schema.events_statements_history_long;

View File

@@ -167,7 +167,14 @@
Feel free to raise this by the smallest amount you can to get the
"execution_constants" test to pass.
*/
#ifndef __has_feature
#define __has_feature(x) 0
#endif
#if defined(__clang__) && __has_feature(memory_sanitizer) && !defined(DBUG_OFF)
#define STACK_MIN_SIZE 44000
#else
#define STACK_MIN_SIZE 16000 // Abort if less stack during eval.
#endif
#define STACK_MIN_SIZE_FOR_OPEN (1024*80)
#define STACK_BUFF_ALLOC 352 ///< For stack overrun checks