From d54ec1b37730c8f7952273c6eddbf1e1ecb05b6d Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Wed, 5 Feb 2025 15:28:42 +0100 Subject: [PATCH] MDEV-33965 - fix non-determinism in the main.status test Change the order or queries, so that result of "uptime_since_flush" comparison does not depend on timing. Also, improve the execution speed of the test by ca. 25 percent, removing or reducing the sleeps. There is no need to sleep more than 1 second in this test. --- mysql-test/main/status.result | 2 +- mysql-test/main/status.test | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/mysql-test/main/status.result b/mysql-test/main/status.result index eda63c4f05b..0931f87cd6b 100644 --- a/mysql-test/main/status.result +++ b/mysql-test/main/status.result @@ -481,7 +481,7 @@ flush session status; select $new_global_flush_status >= $global_flush_status as "1"; 1 1 -select $new_local_flush_status < $global_flush_status as "1"; +select $new_local_flush_status < $new_global_flush_status as "1"; 1 1 flush global status; diff --git a/mysql-test/main/status.test b/mysql-test/main/status.test index 1d6a7b4a898..36bb99147c9 100644 --- a/mysql-test/main/status.test +++ b/mysql-test/main/status.test @@ -480,23 +480,21 @@ connection default; flush global status; flush session status; ---sleep 1 - -let $global_flush_status= `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE 'Uptime_since_flush_status'`; let $local_flush_status= `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME LIKE 'Uptime_since_flush_status'`; +let $global_flush_status= `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE 'Uptime_since_flush_status'`; ---sleep 2 +--sleep 1 --evalp select $global_flush_status >= $local_flush_status as "1" flush session status; -let $new_global_flush_status= `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE 'Uptime_since_flush_status'`; let $new_local_flush_status= `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME LIKE 'Uptime_since_flush_status'`; +let $new_global_flush_status= `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE 'Uptime_since_flush_status'`; --evalp select $new_global_flush_status >= $global_flush_status as "1" ---evalp select $new_local_flush_status < $global_flush_status as "1" +--evalp select $new_local_flush_status < $new_global_flush_status as "1" ---sleep 2 +--sleep 1 flush global status; let $local_flush_status=$new_local_flush_status;