diff --git a/src/sql/ob_end_trans_callback.cpp b/src/sql/ob_end_trans_callback.cpp index 35e003a98e..1fd466c548 100644 --- a/src/sql/ob_end_trans_callback.cpp +++ b/src/sql/ob_end_trans_callback.cpp @@ -61,6 +61,9 @@ void ObEndTransAsyncCallback::callback(int cb_param, const transaction::ObTransI void ObEndTransAsyncCallback::callback(int cb_param) { sql::ObSQLSessionInfo *session_info = mysql_end_trans_cb_.get_sess_info_ptr(); + // Add ASH flags to async commit of transactions + // In the start of async commit in func named ` ObSqlTransControl::do_end_trans_() `, + // set the ash flag named `in_committing_` to true. if (NULL != session_info) { ObActiveSessionGuard::setup_ash(session_info->get_ash_stat()); ObActiveSessionGuard::get_stat().in_committing_ = false; diff --git a/src/sql/ob_sql_trans_control.cpp b/src/sql/ob_sql_trans_control.cpp index 5bdc313305..7b7b1022c3 100644 --- a/src/sql/ob_sql_trans_control.cpp +++ b/src/sql/ob_sql_trans_control.cpp @@ -456,6 +456,9 @@ int ObSqlTransControl::do_end_trans_(ObSQLSessionInfo *session, LOG_WARN("fail to inc session ref", K(ret)); } else { callback->handout(); + // Add ASH flags to async commit of transactions + // In the end of async commit in func named ` ObEndTransAsyncCallback::callback() `, + // set the ash flag named `in_committing_` to false. ObActiveSessionGuard::get_stat().in_committing_ = true; if(OB_FAIL(txs->submit_commit_tx(*tx_ptr, expire_ts, *callback, &trace_info))) { LOG_WARN("submit commit tx fail", K(ret), KP(callback), K(expire_ts), KPC(tx_ptr));