mariadb/mysql-test/suite/perfschema/t/statement_program_lost_inst.test
Daniel Black f2ef683b7a 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.
2025-09-24 09:08:16 +10:00

72 lines
2.8 KiB
Text

#-------------------------------------------------------------
# Tests for PERFORMANCE_SCHEMA stored programs instrumentation
#-------------------------------------------------------------
#
# Test case to show the behaviour of stored program instrumentation
# when values of the system variables performance_schema_max_program_instances &
# performance_schema_max_statement_stack are less than the statistics collected.
# The status of the lost instrumentation is shown through the status variables
# performance_schema_program_lost & performance_schema_nested_statement_lost
#
# Restarting the server at the begining of the test.
# This is to avoid the instrumentation of extra SPs called by MTR
# These additional stored programs which will be added might cause
# result content mismatch failure.
--source include/not_embedded.inc
--source include/have_perfschema.inc
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=1048576" $restart_file
--enable_reconnect
--source include/wait_until_connected_again.inc
--source ../include/start_server_common.inc
# Values of variables server variables
show global variables like "performance_schema_max_program_instances";
show global variables like "performance_schema_max_statement_stack";
--echo #####################
--echo # Setup
--echo #####################
--source suite/perfschema/include/program_nested_setup.inc
# Truncate summary table
TRUNCATE performance_schema.events_statements_summary_by_program;
SELECT OBJECT_TYPE, OBJECT_NAME, OBJECT_SCHEMA FROM
performance_schema.events_statements_summary_by_program
WHERE OBJECT_SCHEMA='nested_sp' ORDER BY OBJECT_NAME;
# Flush status now
Flush status;
show global status like "%performance_schema_program_lost%";
show global status like "%performance_schema_nested_statement_lost%";
--echo #####################
--echo # Executing Queries
--echo #####################
--source suite/perfschema/include/program_nested_execution.inc
--echo ###########################################
--echo # Quering PS statement summary table #
--echo ###########################################
SELECT OBJECT_TYPE, OBJECT_NAME, OBJECT_SCHEMA
FROM performance_schema.events_statements_summary_by_program
WHERE OBJECT_SCHEMA='nested_sp' ORDER BY OBJECT_NAME;
# Now check the lost status
show global status like "%performance_schema_program_lost%";
show global status like "%performance_schema_nested_statement_lost%";
--echo #####################
--echo # Cleanup
--echo #####################
--source suite/perfschema/include/program_nested_cleanup.inc