set extra timeout for ctas rollback if insert phase exhaust all execution time
This commit is contained in:
		@ -414,6 +414,14 @@ int ObCreateTableExecutor::execute_ctas(ObExecContext &ctx,
 | 
			
		||||
              if (OB_LIKELY(OB_SUCCESS == ret)) {
 | 
			
		||||
                tmp_ret = conn->commit();
 | 
			
		||||
              } else {
 | 
			
		||||
                int64_t MIN_ROLLBACK_TIMEOUT = 10 * 1000 * 1000;// 10s
 | 
			
		||||
                int64_t origin_timeout_ts = THIS_WORKER.get_timeout_ts();
 | 
			
		||||
                if (INT64_MAX != origin_timeout_ts &&
 | 
			
		||||
                    origin_timeout_ts < ObTimeUtility::current_time() + MIN_ROLLBACK_TIMEOUT) {
 | 
			
		||||
                  THIS_WORKER.set_timeout_ts(ObTimeUtility::current_time() + MIN_ROLLBACK_TIMEOUT);
 | 
			
		||||
                  LOG_INFO("set timeout for rollback", K(origin_timeout_ts),
 | 
			
		||||
                      K(ObTimeUtility::current_time() + MIN_ROLLBACK_TIMEOUT));
 | 
			
		||||
                }
 | 
			
		||||
                tmp_ret = conn->rollback();
 | 
			
		||||
              }
 | 
			
		||||
              if (OB_UNLIKELY(OB_SUCCESS != tmp_ret)) {
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user