]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: respawn must unblock signals before exec
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Fri, 21 Jan 2011 14:45:40 +0000 (06:45 -0800)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Fri, 21 Jan 2011 14:53:24 +0000 (06:53 -0800)
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
src/common/signal.h
src/mds/MDS.cc

index 0ffa700c92a6b4250975420365af677da8df933f..d62c6864e62b9163f3486bb2853dce3472a6519d 100644 (file)
@@ -15,6 +15,9 @@
 #ifndef CEPH_COMMON_SIGNAL_H
 #define CEPH_COMMON_SIGNAL_H
 
+#include <signal.h>
+#include <string>
+
 // Install the standard Ceph signal handlers
 void install_standard_sighandlers(void);
 
index 1ea7d00095e1e350716d1938207232da4d7f3919..b3ad1ffd68b867629fb6c8d74531c7bf15a63903 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "include/types.h"
 #include "common/Clock.h"
+#include "common/signal.h"
 
 #include "msg/Messenger.h"
 #include "mon/MonClient.h"
@@ -1451,6 +1452,7 @@ void MDS::respawn()
 
   dout(1) << " cwd " << get_current_dir_name() << dendl;
 
+  unblock_all_signals(NULL);
   execv(orig_argv[0], new_argv);
 
   dout(0) << "respawn execv " << orig_argv[0] << " failed with " << strerror(errno) << dendl;