diff --git a/src/gausskernel/storage/smgr/cfs/cfs_md.cpp b/src/gausskernel/storage/smgr/cfs/cfs_md.cpp index 20cf5c861..96568c942 100644 --- a/src/gausskernel/storage/smgr/cfs/cfs_md.cpp +++ b/src/gausskernel/storage/smgr/cfs/cfs_md.cpp @@ -172,8 +172,15 @@ void CfsWriteBack(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, B pca_page_ctrl_t *ctrl = pca_buf_read_page(location, LW_SHARED, PCA_BUF_NORMAL_READ); if (ctrl->load_status == CTRL_PAGE_LOADED_ERROR) { pca_buf_free_page(ctrl, location, false); - ereport(DEBUG1, (errcode(ERRCODE_DATA_CORRUPTED), - errmsg("Failed to CfsWriteBack %s, headerNum: %u.", FilePathName(location.fd), location.headerNum))); + if (check_unlink_rel_hashtbl(reln->smgr_rnode.node, forknum)) { + ereport(DEBUG1, (errcode(ERRCODE_DATA_CORRUPTED), errmsg( + "could not write back %u in file \"%s\" headerNum: %u, relation has been removed", blocknum, + FilePathName(location.fd), location.headerNum))); + return; + } + ereport(ERROR, (errcode(ERRCODE_DATA_CORRUPTED), errmsg("Failed to CfsWriteBack %s, headerNum: %u.", + FilePathName(location.fd), + location.headerNum))); } CfsExtentHeader *cfsExtentHeader = ctrl->pca_page;