]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
global/signal_handler: reset injected segv after test
authorKefu Chai <kchai@redhat.com>
Wed, 16 Nov 2016 03:19:04 +0000 (11:19 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 22 Nov 2016 14:29:45 +0000 (22:29 +0800)
~CephContext() => ~TypedSingletonWrapper() => ~MempoolObs =>
unregister_command() => ldout() << "unregister_command" =>
Log::submit_entry() => *(volatile int *)(0) = 0xdead;

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/log/Log.cc
src/log/Log.h
src/test/signals.cc

index 9bd07f2025bb257a39d94e5d00d910d24bb451ed..9f174dfb735cc61a2d15e6bfa15b288f932c8dc9 100644 (file)
@@ -468,5 +468,10 @@ void Log::inject_segv()
   m_inject_segv = true;
 }
 
+void Log::reset_segv()
+{
+  m_inject_segv = false;
+}
+
 } // ceph::logging::
 } // ceph::
index 703767330456c9e84c8f05d4255051f559ab3945..a8ef1c8a69700cc1e44c9312c754385654e11f77 100644 (file)
@@ -94,6 +94,7 @@ public:
 
   /// induce a segv on the next log event
   void inject_segv();
+  void reset_segv();
 };
 
 }
index 2cae0fab8f9b2296a59c91ac1dd82c7a351f7973..24d72168f6a79f9cbda76ace046a716c789b8620 100644 (file)
@@ -118,6 +118,7 @@ TEST(SignalHandler, LogInternal)
 {
   g_ceph_context->_log->inject_segv();
   ASSERT_DEATH(derr << "foo" << dendl, ".*");
+  g_ceph_context->_log->reset_segv();
 }