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:
@@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
--source include/have_perfschema.inc
|
--source include/have_perfschema.inc
|
||||||
|
--source include/not_msan_with_debug.inc
|
||||||
|
|
||||||
--source ../include/start_server_common.inc
|
--source ../include/start_server_common.inc
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
|
|||||||
--write_line wait $restart_file
|
--write_line wait $restart_file
|
||||||
--shutdown_server
|
--shutdown_server
|
||||||
--source include/wait_until_disconnected.inc
|
--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
|
--enable_reconnect
|
||||||
--source include/wait_until_connected_again.inc
|
--source include/wait_until_connected_again.inc
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
--source include/have_perfschema.inc
|
--source include/have_perfschema.inc
|
||||||
--source include/have_innodb.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_summary_by_program;
|
||||||
TRUNCATE TABLE performance_schema.events_statements_history_long;
|
TRUNCATE TABLE performance_schema.events_statements_history_long;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
--source include/have_perfschema.inc
|
--source include/have_perfschema.inc
|
||||||
--source include/have_innodb.inc
|
--source include/have_innodb.inc
|
||||||
|
--source include/not_msan_with_debug.inc
|
||||||
|
|
||||||
TRUNCATE TABLE performance_schema.events_statements_history_long;
|
TRUNCATE TABLE performance_schema.events_statements_history_long;
|
||||||
|
|
||||||
|
|||||||
@@ -167,7 +167,14 @@
|
|||||||
Feel free to raise this by the smallest amount you can to get the
|
Feel free to raise this by the smallest amount you can to get the
|
||||||
"execution_constants" test to pass.
|
"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.
|
#define STACK_MIN_SIZE 16000 // Abort if less stack during eval.
|
||||||
|
#endif
|
||||||
|
|
||||||
#define STACK_MIN_SIZE_FOR_OPEN (1024*80)
|
#define STACK_MIN_SIZE_FOR_OPEN (1024*80)
|
||||||
#define STACK_BUFF_ALLOC 352 ///< For stack overrun checks
|
#define STACK_BUFF_ALLOC 352 ///< For stack overrun checks
|
||||||
|
|||||||
Reference in New Issue
Block a user