]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
fixed fakemessenger segfault during shutdown
authorsageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Wed, 29 Aug 2007 00:50:19 +0000 (00:50 +0000)
committersageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Wed, 29 Aug 2007 00:50:19 +0000 (00:50 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1725 29311d96-e01e-0410-9327-a35deaab8ce9

trunk/ceph/msg/FakeMessenger.cc

index 2bef38f7af658a09212bbb3134d9218721dcf6cf..50808bf0484532183ed9a73af41db70f80e07b1b 100644 (file)
@@ -168,9 +168,13 @@ int fakemessenger_do_loop_2()
         p != ls.end();
         ++p) {
       Message *m = *p;
-      FakeMessenger *mgr = directory[m->get_source_addr()];
+      FakeMessenger *mgr = 0;
       Dispatcher *dis = 0;
-      if (mgr) dis = mgr->get_dispatcher();
+      if (directory.count(m->get_source_addr())) {
+       mgr = directory[m->get_source_addr()];
+       if (mgr) 
+         dis = mgr->get_dispatcher();
+      }
       if (dis) {
        dout(1) << "fail on " << *m 
                << " to " << m->get_dest() << " from " << m->get_source()
@@ -315,7 +319,7 @@ FakeMessenger::~FakeMessenger()
 
 int FakeMessenger::shutdown()
 {
-  //dout(0) << "shutdown on messenger " << this << " has " << num_incoming() << " queued" << dendl;
+  dout(0) << "shutdown on messenger " << this << " has " << num_incoming() << " queued" << dendl;
   lock.Lock();
   assert(directory.count(_myinst.addr) == 1);
   shutdown_set.insert(_myinst.addr);