From: sdnets Date: Wed, 13 Jun 2018 01:32:16 +0000 (+0800) Subject: rgw: rgwgc:process coredump in some special case。 Gc processes obja, objb, objc in... X-Git-Tag: v12.2.12~82^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1a1a50f48fbfb60f7fe48ea6e11687c6f37d7737;p=ceph.git rgw: rgwgc:process coredump in some special case。 Gc processes obja, objb, objc in order and pool of objb is deleted (obja and objc is in the same pool and pool exits). RGW will coredump as ctx->io_ctx_impl is an empty point during delete objc. Fixes:http://tracker.ceph.com/issues/23199 Signed-off-by: zhaokun (cherry picked from commit 575a7900660c7ec02250aa58cd88b2e02962e135) Conflicts: src/rgw/rgw_gc.cc : Resolved in process --- diff --git a/src/rgw/rgw_gc.cc b/src/rgw/rgw_gc.cc index bf64925abda5..1abd8d798da7 100644 --- a/src/rgw/rgw_gc.cc +++ b/src/rgw/rgw_gc.cc @@ -189,6 +189,7 @@ int RGWGC::process(int index, int max_secs) ctx = new IoCtx; ret = rgw_init_ioctx(store->get_rados_handle(), obj.pool, *ctx); if (ret < 0) { + last_pool = ""; dout(0) << "ERROR: failed to create ioctx pool=" << obj.pool << dendl; continue; }