mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Bug #11750043 40340: USE GZIPPED CORE FILES TO SAVE SPACE
Use [g]zip on core file if available, ignore if not Skip if running named test, and print a line saying what it compressed.
This commit is contained in:
@ -31,6 +31,7 @@ sub mtr_script_exists(@);
|
||||
sub mtr_file_exists(@);
|
||||
sub mtr_exe_exists(@);
|
||||
sub mtr_exe_maybe_exists(@);
|
||||
sub mtr_compress_file($);
|
||||
sub mtr_milli_sleep($);
|
||||
sub start_timer($);
|
||||
sub has_expired($);
|
||||
@ -199,6 +200,40 @@ sub mtr_exe_exists (@) {
|
||||
}
|
||||
}
|
||||
|
||||
#
|
||||
# Try to compress file using tools that might be available.
|
||||
# If zip/gzip is not available, just silently ignore.
|
||||
#
|
||||
|
||||
sub mtr_compress_file ($) {
|
||||
my ($filename)= @_;
|
||||
|
||||
mtr_error ("File to compress not found: $filename") unless -f $filename;
|
||||
|
||||
my $did_compress= 0;
|
||||
|
||||
if (IS_WINDOWS)
|
||||
{
|
||||
# Capture stderr
|
||||
my $ziperr= `zip $filename.zip $filename 2>&1`;
|
||||
if ($?) {
|
||||
print "$ziperr\n" if $ziperr !~ /recognized as an internal or external/;
|
||||
} else {
|
||||
unlink($filename);
|
||||
$did_compress=1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
my $gzres= system("gzip $filename");
|
||||
$did_compress= ! $gzres;
|
||||
if ($gzres && $gzres != -1) {
|
||||
mtr_error ("Error: have gzip but it fails to compress core file");
|
||||
}
|
||||
}
|
||||
mtr_print("Compressed file $filename") if $did_compress;
|
||||
}
|
||||
|
||||
|
||||
sub mtr_milli_sleep ($) {
|
||||
die "usage: mtr_milli_sleep(milliseconds)" unless @_ == 1;
|
||||
|
@ -657,6 +657,8 @@ sub run_test_server ($$$) {
|
||||
mtr_report(" - deleting it, already saved",
|
||||
"$opt_max_save_core");
|
||||
unlink("$core_file");
|
||||
} else {
|
||||
mtr_compress_file($core_file) unless @opt_cases;
|
||||
}
|
||||
++$num_saved_cores;
|
||||
}
|
||||
|
Reference in New Issue
Block a user