]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: fix dpdk worker references issue 19886/head
authorchunmei Liu <chunmei.liu@intel.com>
Wed, 10 Jan 2018 01:02:56 +0000 (17:02 -0800)
committerchunmei Liu <chunmei.liu@intel.com>
Wed, 10 Jan 2018 01:02:56 +0000 (17:02 -0800)
DPDK worker support local listen table, so missed update worker->references
in get_worker(), this will cause assert(oldref > 0) happen in release_worker

Signed-off-by: chunmei Liu <chunmei.liu@intel.com>
src/msg/async/AsyncMessenger.cc

index cb5010fdad801ee86c12e9f64b55e7bb22ee8836..103081ce0246417935c47c4afd268e899861f7b5 100644 (file)
@@ -171,6 +171,8 @@ void Processor::accept()
     Worker *w = worker;
     if (!msgr->get_stack()->support_local_listen_table())
       w = msgr->get_stack()->get_worker();
+    else
+      ++w->references;
     int r = listen_socket.accept(&cli_socket, opts, &addr, w);
     if (r == 0) {
       ldout(msgr->cct, 10) << __func__ << " accepted incoming on sd " << cli_socket.fd() << dendl;