]> 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)
committerNathan Cutler <ncutler@suse.com>
Tue, 25 Apr 2017 07:02:21 +0000 (09:02 +0200)
~CephContext() => ~TypedSingletonWrapper() => ~MempoolObs =>
unregister_command() => ldout() << "unregister_command" =>
Log::submit_entry() => *(volatile int *)(0) = 0xdead;

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit d932c8f2f23263924103a900714db82ee87f6eef)

Conflicts:
        src/log/Log.cc - jewel has "namespace log" instead of "namespace
                         logging" (trivial resolution)

src/log/Log.cc
src/log/Log.h
src/test/signals.cc

index 1d74b0060f323238b0312f746d34d310c221e422..3119b013d5be7c73f8c0876a60ca69b5058144e3 100644 (file)
@@ -474,5 +474,10 @@ void Log::inject_segv()
   m_inject_segv = true;
 }
 
+void Log::reset_segv()
+{
+  m_inject_segv = false;
+}
+
 } // ceph::log::
 } // ceph::
index 687cb9b7b19817b3003e7f0ae79e8418cbb4fcb1..376ef40c22d977131d033e5340076cb069050657 100644 (file)
@@ -96,6 +96,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();
 }