[opensource][XA] fix some cases for white scan

This commit is contained in:
ts0
2022-03-17 15:10:30 +08:00
committed by LINxiansheng
parent 996696c528
commit a5c703acc4
4 changed files with 16 additions and 3 deletions

View File

@ -35,6 +35,8 @@ typedef common::ObList<common::ObPartitionKey, ObArenaAllocator> ObPartitionList
struct ObXABranchInfo { struct ObXABranchInfo {
ObXABranchInfo() ObXABranchInfo()
: xid_(), state_(ObXATransState::UNKNOWN), timeout_seconds_(-1), abs_expired_time_(-1),
addr_(), unrespond_msg_cnt_(-1), last_hb_ts_(-1)
{} {}
virtual ~ObXABranchInfo() virtual ~ObXABranchInfo()
{} {}

View File

@ -35,6 +35,7 @@ class ObXAPrepareRPCRequest {
public: public:
ObXAPrepareRPCRequest() ObXAPrepareRPCRequest()
: trans_id_(), xid_(), stmt_timeout_(-1)
{} {}
~ObXAPrepareRPCRequest() ~ObXAPrepareRPCRequest()
{} {}
@ -68,6 +69,7 @@ class ObXAEndTransRPCRequest {
public: public:
ObXAEndTransRPCRequest() ObXAEndTransRPCRequest()
: trans_id_(), xid_(), is_rollback_(false), is_terminated_(false)
{} {}
~ObXAEndTransRPCRequest() ~ObXAEndTransRPCRequest()
{} {}
@ -112,6 +114,8 @@ class ObXASyncStatusRPCRequest {
public: public:
ObXASyncStatusRPCRequest() ObXASyncStatusRPCRequest()
: trans_id_(), xid_(), sender_(), is_new_branch_(false), is_stmt_pull_(false), is_tightly_coupled_(false),
pull_trans_desc_(false), timeout_seconds_(-1)
{} {}
~ObXASyncStatusRPCRequest() ~ObXASyncStatusRPCRequest()
{} {}
@ -177,6 +181,7 @@ class ObXASyncStatusRPCResponse {
public: public:
ObXASyncStatusRPCResponse() ObXASyncStatusRPCResponse()
: trans_desc_(), is_stmt_pull_(false)
{} {}
~ObXASyncStatusRPCResponse() ~ObXASyncStatusRPCResponse()
{} {}
@ -205,6 +210,7 @@ class ObXAMergeStatusRPCRequest {
public: public:
ObXAMergeStatusRPCRequest() ObXAMergeStatusRPCRequest()
: trans_desc_(), is_stmt_push_(false), is_tightly_coupled_(false), xid_(), seq_no_(-1)
{} {}
~ObXAMergeStatusRPCRequest() ~ObXAMergeStatusRPCRequest()
{} {}
@ -249,6 +255,7 @@ class ObXAHbRequest {
public: public:
ObXAHbRequest() ObXAHbRequest()
: trans_id_(), xid_(), sender_()
{} {}
~ObXAHbRequest() ~ObXAHbRequest()
{} {}

View File

@ -22,7 +22,7 @@ class ObTransService;
class ObXATransHeartbeatWorker : public share::ObThreadPool { class ObXATransHeartbeatWorker : public share::ObThreadPool {
public: public:
ObXATransHeartbeatWorker() : is_inited_(false), is_running_(false) ObXATransHeartbeatWorker() : is_inited_(false), is_running_(false), trans_service_(NULL)
{} {}
~ObXATransHeartbeatWorker() ~ObXATransHeartbeatWorker()
{ {

View File

@ -2444,7 +2444,6 @@ int ObTransService::insert_xa_lock(
char trans_id_buf[512]; char trans_id_buf[512];
trans_id.to_string(trans_id_buf, 512); trans_id.to_string(trans_id_buf, 512);
char scheduler_ip_buf[128]; char scheduler_ip_buf[128];
self_.ip_to_string(scheduler_ip_buf, 128);
char gtrid_str[128]; char gtrid_str[128];
int64_t gtrid_len = 0; int64_t gtrid_len = 0;
char bqual_str[128]; char bqual_str[128];
@ -2455,6 +2454,9 @@ int ObTransService::insert_xa_lock(
if (!is_valid_tenant_id(tenant_id) || xid.empty() || !trans_id.is_valid()) { if (!is_valid_tenant_id(tenant_id) || xid.empty() || !trans_id.is_valid()) {
ret = OB_INVALID_ARGUMENT; ret = OB_INVALID_ARGUMENT;
TRANS_LOG(WARN, "invalid argument", K(ret), K(tenant_id), K(xid), K(trans_id)); TRANS_LOG(WARN, "invalid argument", K(ret), K(tenant_id), K(xid), K(trans_id));
} else if (!self_.ip_to_string(scheduler_ip_buf, 128)) {
ret = OB_ERR_UNEXPECTED;
TRANS_LOG(WARN, "fail to get string of self address", K(ret), K_(self));
} else if (OB_FAIL(hex_print(xid.get_gtrid_str().ptr(), xid.get_gtrid_str().length(), gtrid_str, 128, gtrid_len))) { } else if (OB_FAIL(hex_print(xid.get_gtrid_str().ptr(), xid.get_gtrid_str().length(), gtrid_str, 128, gtrid_len))) {
TRANS_LOG(WARN, "fail to convert gtrid to hex", K(ret), K(tenant_id), K(xid)); TRANS_LOG(WARN, "fail to convert gtrid to hex", K(ret), K(tenant_id), K(xid));
} else if (OB_FAIL(sql.assign_fmt(INSERT_XA_LOCK_SQL, } else if (OB_FAIL(sql.assign_fmt(INSERT_XA_LOCK_SQL,
@ -2508,7 +2510,6 @@ int ObTransService::insert_xa_record(const uint64_t tenant_id, const ObXATransID
char trans_id_buf[512]; char trans_id_buf[512];
trans_id.to_string(trans_id_buf, 512); trans_id.to_string(trans_id_buf, 512);
char scheduler_ip_buf[128]; char scheduler_ip_buf[128];
sche_addr.ip_to_string(scheduler_ip_buf, 128);
char gtrid_str[128]; char gtrid_str[128];
int64_t gtrid_len = 0; int64_t gtrid_len = 0;
char bqual_str[128]; char bqual_str[128];
@ -2519,6 +2520,9 @@ int ObTransService::insert_xa_record(const uint64_t tenant_id, const ObXATransID
if (!is_valid_tenant_id(tenant_id) || xid.empty() || !trans_id.is_valid()) { if (!is_valid_tenant_id(tenant_id) || xid.empty() || !trans_id.is_valid()) {
ret = OB_INVALID_ARGUMENT; ret = OB_INVALID_ARGUMENT;
TRANS_LOG(WARN, "invalid argument", K(ret), K(tenant_id), K(xid), K(trans_id)); TRANS_LOG(WARN, "invalid argument", K(ret), K(tenant_id), K(xid), K(trans_id));
} else if (!self_.ip_to_string(scheduler_ip_buf, 128)) {
ret = OB_ERR_UNEXPECTED;
TRANS_LOG(WARN, "fail to get string of self address", K(ret), K_(self));
} else if (OB_FAIL(hex_print(xid.get_gtrid_str().ptr(), xid.get_gtrid_str().length(), gtrid_str, 128, gtrid_len))) { } else if (OB_FAIL(hex_print(xid.get_gtrid_str().ptr(), xid.get_gtrid_str().length(), gtrid_str, 128, gtrid_len))) {
TRANS_LOG(WARN, "fail to convert gtrid to hex", K(ret), K(tenant_id), K(xid)); TRANS_LOG(WARN, "fail to convert gtrid to hex", K(ret), K(tenant_id), K(xid));
} else if (OB_FAIL(hex_print(xid.get_bqual_str().ptr(), xid.get_bqual_str().length(), bqual_str, 128, bqual_len))) { } else if (OB_FAIL(hex_print(xid.get_bqual_str().ptr(), xid.get_bqual_str().length(), bqual_str, 128, bqual_len))) {