#At file:///home/bm136801/mysql/work-51/
2763 Bjorn Munch 2009-03-06
Bug #43410 --skip-core-file has no effect if core file size is set
Would not prevent mysqld from core dumping
Passes --nocore arg to safe_process, which then sets rlimit core to 0 for child
modified:
mysql-test/lib/My/SafeProcess.pm
mysql-test/lib/My/SafeProcess/safe_process.cc
mysql-test/mysql-test-run.pl
=== modified file 'mysql-test/lib/My/SafeProcess.pm'
--- a/mysql-test/lib/My/SafeProcess.pm 2009-01-21 09:34:01 +0000
+++ b/mysql-test/lib/My/SafeProcess.pm 2009-03-06 15:12:51 +0000
@@ -117,6 +117,7 @@ sub new {
my $output = delete($opts{'output'});
my $error = delete($opts{'error'});
my $verbose = delete($opts{'verbose'});
+ my $nocore = delete($opts{'nocore'});
my $host = delete($opts{'host'});
my $shutdown = delete($opts{'shutdown'});
my $user_data= delete($opts{'user_data'});
@@ -137,6 +138,7 @@ sub new {
push(@safe_args, $safe_script) if defined $safe_script;
push(@safe_args, "--verbose") if $verbose > 0;
+ push(@safe_args, "--nocore") if $nocore;
# Point the safe_process at the right parent if running on cygwin
push(@safe_args, "--parent-pid=".Cygwin::pid_to_winpid($$)) if IS_CYGWIN;
=== modified file 'mysql-test/lib/My/SafeProcess/safe_process.cc'
--- a/mysql-test/lib/My/SafeProcess/safe_process.cc 2009-01-21 09:34:01 +0000
+++ b/mysql-test/lib/My/SafeProcess/safe_process.cc 2009-03-06 15:12:51 +0000
@@ -45,6 +45,7 @@
#include <sys/types.h>
#include <sys/wait.h>
+#include <sys/resource.h>
#include <unistd.h>
#include <stdarg.h>
#include <stdio.h>
@@ -149,7 +150,8 @@ int main(int argc, char* const argv[] )
char* const* child_argv= 0;
pid_t own_pid= getpid();
pid_t parent_pid= getppid();
-
+ bool nocore = false;
+
/* Install signal handlers */
signal(SIGTERM, handle_signal);
signal(SIGINT, handle_signal);
@@ -181,9 +183,12 @@ int main(int argc, char* const argv[] )
start++; /* Step past = */
if ((parent_pid= atoi(start)) == 0)
die("Invalid value '%s' passed to --parent-id", start);
- }
- else
- die("Unknown option: %s", arg);
+ } else if ( strcmp(arg, "--nocore") == 0 )
+ {
+ nocore = true; // Don't allow the process to dump core
+ }
+ else
+ die("Unknown option: %s", arg);
}
}
if (!child_argv || *child_argv == 0)
@@ -218,6 +223,12 @@ int main(int argc, char* const argv[] )
// it and any childs(that hasn't changed group themself)
setpgid(0, 0);
+ if (nocore)
+ {
+ struct rlimit corelim = { 0, 0 };
+ setrlimit (RLIMIT_CORE, &corelim);
+ }
+
// Signal that child is ready
buf= 37;
write(pfd[1], &buf, 1);
=== modified file 'mysql-test/mysql-test-run.pl'
--- a/mysql-test/mysql-test-run.pl 2009-03-04 15:41:45 +0000
+++ b/mysql-test/mysql-test-run.pl 2009-03-06 15:12:51 +0000
@@ -187,6 +187,8 @@ my $build_thread= 0;
my $opt_record;
my $opt_report_features;
+my $opt_skip_core;
+
our $opt_check_testcases= 1;
my $opt_mark_progress;
@@ -3978,6 +3980,7 @@ sub mysqld_arguments ($$$) {
mtr_add_arg($args, "%s", $arg);
}
}
+ $opt_skip_core = $found_skip_core;
if ( !$found_skip_core )
{
mtr_add_arg($args, "%s", "--core-file");
@@ -4075,6 +4078,7 @@ sub mysqld_start ($$) {
error => $output,
append => 1,
verbose => $opt_verbose,
+ nocore => $opt_skip_core,
host => undef,
shutdown => sub { mysqld_stop($mysqld) },
);
| Thread |
|---|
| • bzr commit into mysql-5.1-mtr branch (Bjorn.Munch:2763) Bug#43410 | Bjorn Munch | 6 Mar |