mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-31925 Fix for File Leak in mysql_upgrade with --check-if-upgrade-is-needed Option
This commit addresses the file leakage problem encountered with the mysql_upgrade --check-if-upgrade-is-needed command.
This commit is contained in:
@ -1374,7 +1374,12 @@ int main(int argc, char **argv)
|
|||||||
open_mysql_upgrade_file();
|
open_mysql_upgrade_file();
|
||||||
|
|
||||||
if (opt_check_upgrade)
|
if (opt_check_upgrade)
|
||||||
exit(upgrade_already_done(0) == 0);
|
{
|
||||||
|
int upgrade_needed = upgrade_already_done(0);
|
||||||
|
free_used_memory();
|
||||||
|
my_end(my_end_arg);
|
||||||
|
exit(upgrade_needed == 0);
|
||||||
|
}
|
||||||
|
|
||||||
/* Find mysqlcheck */
|
/* Find mysqlcheck */
|
||||||
find_tool(mysqlcheck_path, IF_WIN("mysqlcheck.exe", "mysqlcheck"), self_name);
|
find_tool(mysqlcheck_path, IF_WIN("mysqlcheck.exe", "mysqlcheck"), self_name);
|
||||||
|
4
mysql-test/main/mysql_upgrade_file_leak.result
Normal file
4
mysql-test/main/mysql_upgrade_file_leak.result
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Running mysql_upgrade with --check-if-upgrade-is-needed
|
||||||
|
Checking for absence of temporary files by mysql_upgrade
|
||||||
|
No temporary files found
|
||||||
|
End of 10.4 tests
|
24
mysql-test/main/mysql_upgrade_file_leak.test
Normal file
24
mysql-test/main/mysql_upgrade_file_leak.test
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
-- source include/mysql_upgrade_preparation.inc
|
||||||
|
|
||||||
|
#
|
||||||
|
# MDEV-31925 mysqld_upgrade --check-if-upgrade-is-needed leaks files
|
||||||
|
#
|
||||||
|
|
||||||
|
# Run mysql_upgrade with --check-if-upgrade-is-needed
|
||||||
|
--echo Running mysql_upgrade with --check-if-upgrade-is-needed
|
||||||
|
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed 2>&1
|
||||||
|
|
||||||
|
# Check if temporary files related to mysql_upgrade are cleared
|
||||||
|
--echo Checking for absence of temporary files by mysql_upgrade
|
||||||
|
--perl
|
||||||
|
|
||||||
|
# Use the temporary directory path from the MySQL configuration
|
||||||
|
my $tmpdir = "$ENV{MYSQL_TMP_DIR}";
|
||||||
|
|
||||||
|
die "Test failed: Found temporary file left by mysql_upgrade\n" if (glob("$tmpdir/mysql_upgrade-*"));
|
||||||
|
print "No temporary files found\n";
|
||||||
|
EOF
|
||||||
|
|
||||||
|
let $MYSQLD_DATADIR= `select @@datadir`;
|
||||||
|
--remove_file $MYSQLD_DATADIR/mysql_upgrade_info
|
||||||
|
--echo End of 10.4 tests
|
Reference in New Issue
Block a user