From e1bd985b341553876888339620b7b9e76f078e7a Mon Sep 17 00:00:00 2001 From: tone-zhang Date: Fri, 1 Jun 2018 04:41:33 +0000 Subject: [PATCH] spdk: fix ceph-osd crash when activate SPDK When activate SPDK in Ceph, observe a Ceph crash. It happened in the case 1) there is a pending IOContext in NVMEDevice and 2) the lower block device has been recreated and queue_t then points to an NVMEDevice that no longer exists. This patch addresses the problem by deleting and zeroing queue_t when NVMEDevice is closed. Fixes: http://tracker.ceph.com/issues/24371 Signed-off-by: tone-zhang --- src/os/bluestore/NVMEDevice.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/os/bluestore/NVMEDevice.cc b/src/os/bluestore/NVMEDevice.cc index 8738e211a71a1..0fcfafd71aa4a 100644 --- a/src/os/bluestore/NVMEDevice.cc +++ b/src/os/bluestore/NVMEDevice.cc @@ -795,6 +795,8 @@ void NVMEDevice::close() { dout(1) << __func__ << dendl; + delete queue_t; + queue_t = nullptr; name.clear(); driver->remove_device(this); -- 2.39.5