From a9a358af8b75032cfe7fbaca9f77e1250a86ec8c Mon Sep 17 00:00:00 2001 From: jw-guo Date: Thu, 22 Jun 2023 02:54:21 +0000 Subject: [PATCH] [4.2][4.1][xa] avoid rewrite return code in one phase xa commit --- src/storage/tx/ob_xa_service.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/storage/tx/ob_xa_service.cpp b/src/storage/tx/ob_xa_service.cpp index e667d2ea7a..4727791c74 100644 --- a/src/storage/tx/ob_xa_service.cpp +++ b/src/storage/tx/ob_xa_service.cpp @@ -198,12 +198,14 @@ int ObXAService::local_one_phase_xa_commit_(const ObXATransID &xid, ObTransID moke_tx_id; if (OB_FAIL(xa_ctx_mgr_.get_xa_ctx(trans_id, alloc, xa_ctx))) { - if (OB_FAIL(query_xa_coord_from_tableone(MTL_ID(), xid, coordinator, moke_tx_id, end_flag))) { - if (OB_ITER_END == ret) { + int tmp_ret = OB_SUCCESS; + if (OB_SUCCESS != (tmp_ret = query_xa_coord_from_tableone(MTL_ID(), xid, coordinator, + moke_tx_id, end_flag))) { + if (OB_ITER_END == tmp_ret) { ret = OB_TRANS_XA_NOTA; TRANS_LOG(WARN, "xid is not valid", K(ret), K(xid)); } else { - TRANS_LOG(WARN, "query xa scheduler failed", K(ret), K(xid)); + TRANS_LOG(WARN, "query xa scheduler failed", K(tmp_ret), K(xid)); } } else if (coordinator.is_valid()) { ret = OB_TRANS_XA_PROTO; @@ -211,6 +213,9 @@ int ObXAService::local_one_phase_xa_commit_(const ObXATransID &xid, } else { TRANS_LOG(WARN, "get xa ctx failed", K(ret), K(trans_id)); } + if (OB_SUCCESS == ret) { + TRANS_LOG(ERROR, "unexpected return code", K(ret), K(xid), K(trans_id)); + } } else if (OB_ISNULL(xa_ctx)) { ret = OB_ERR_UNEXPECTED; TRANS_LOG(WARN, "xa ctx is null", K(ret), K(trans_id));