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: v14.1.0~696^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=575a7900660c7ec02250aa58cd88b2e02962e135;p=ceph-ci.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 --- diff --git a/src/rgw/rgw_gc.cc b/src/rgw/rgw_gc.cc index c6519da74ce..87a98e469af 100644 --- a/src/rgw/rgw_gc.cc +++ b/src/rgw/rgw_gc.cc @@ -315,6 +315,7 @@ int RGWGC::process(int index, int max_secs, bool expired_only, ctx = new IoCtx; ret = rgw_init_ioctx(store->get_rados_handle(), obj.pool, *ctx); if (ret < 0) { + last_pool = ""; ldpp_dout(this, 0) << "ERROR: failed to create ioctx pool=" << obj.pool << dendl; continue; }