diff --git a/src/observer/mysql/ob_async_plan_driver.cpp b/src/observer/mysql/ob_async_plan_driver.cpp index bab5dbf192..d53eed676a 100644 --- a/src/observer/mysql/ob_async_plan_driver.cpp +++ b/src/observer/mysql/ob_async_plan_driver.cpp @@ -100,6 +100,11 @@ int ObAsyncPlanDriver::response_result(ObMySQLResultSet &result) * 3. response_query_header & flush_buffer 不会产生需要重试的报错,此位置是 ObAsyncPlanDriver 重试前的一步,中间不会有别的可能重试的操作 * 4. ps stmt 清理要注意异步回包的情况,可能需要在异步包里面做清理 */ + // need close result set + int close_ret = OB_SUCCESS; + if (OB_SUCCESS != (close_ret = result.close())) { + LOG_WARN("close result failed", K(close_ret)); + } LOG_WARN("prexecute response query head fail. ", K(ret)); } else if (result.is_with_rows()) { ret = OB_ERR_UNEXPECTED; diff --git a/src/observer/mysql/ob_sync_cmd_driver.cpp b/src/observer/mysql/ob_sync_cmd_driver.cpp index 2b29274c99..e0aca50f63 100644 --- a/src/observer/mysql/ob_sync_cmd_driver.cpp +++ b/src/observer/mysql/ob_sync_cmd_driver.cpp @@ -173,6 +173,11 @@ int ObSyncCmdDriver::response_result(ObMySQLResultSet &result) } else if (is_prexecute_) { if (OB_FAIL(response_query_header(result, false, false , // in prexecute , has_more_result and has_ps out is no matter, it will be recalc true))) { + // need close result set + int close_ret = OB_SUCCESS; + if (OB_SUCCESS != (close_ret = result.close())) { + LOG_WARN("close result failed", K(close_ret)); + } LOG_WARN("prexecute response query head fail. ", K(ret)); } } diff --git a/src/observer/mysql/ob_sync_plan_driver.cpp b/src/observer/mysql/ob_sync_plan_driver.cpp index d94a7b69ac..7b8521d6d4 100644 --- a/src/observer/mysql/ob_sync_plan_driver.cpp +++ b/src/observer/mysql/ob_sync_plan_driver.cpp @@ -189,6 +189,11 @@ int ObSyncPlanDriver::response_result(ObMySQLResultSet &result) } } else { if (is_prexecute_ && OB_FAIL(response_query_header(result, false, false, true))) { + // need close result set + int close_ret = OB_SUCCESS; + if (OB_SUCCESS != (close_ret = result.close())) { + LOG_WARN("close result failed", K(close_ret)); + } LOG_WARN("prexecute response query head fail. ", K(ret)); } else if (OB_FAIL(result.close())) { LOG_WARN("close result set fail", K(ret));