MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Bjorn Munch Date:March 6 2009 3:14pm
Subject:bzr commit into mysql-5.1-mtr branch (Bjorn.Munch:2763) Bug#43410
View as plain text  
#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#43410Bjorn Munch6 Mar