From: chunmei Liu Date: Wed, 10 Jan 2018 01:02:56 +0000 (-0800) Subject: OSD: fix dpdk worker references issue X-Git-Tag: v13.0.2~539^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a7e775255323a114f8f012a446a6197eab226321;p=ceph.git OSD: fix dpdk worker references issue 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 --- diff --git a/src/msg/async/AsyncMessenger.cc b/src/msg/async/AsyncMessenger.cc index cb5010fdad80..103081ce0246 100644 --- a/src/msg/async/AsyncMessenger.cc +++ b/src/msg/async/AsyncMessenger.cc @@ -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;