diff --git a/src/gausskernel/process/tcop/postgres.cpp b/src/gausskernel/process/tcop/postgres.cpp index 6f8be28b7..2ddd79c6a 100755 --- a/src/gausskernel/process/tcop/postgres.cpp +++ b/src/gausskernel/process/tcop/postgres.cpp @@ -778,7 +778,8 @@ static int ReadCommand(StringInfo inBuf) #ifndef ENABLE_MULTIPLE_NODES /* Disable a timer for idle_in_transaction_session. */ if (u_sess->attr.attr_common.IdleInTransactionSessionTimeout > 0 && - u_sess->attr.attr_common.SessionTimeout > u_sess->attr.attr_common.IdleInTransactionSessionTimeout && + (u_sess->attr.attr_common.SessionTimeout == 0 || + u_sess->attr.attr_common.SessionTimeout > u_sess->attr.attr_common.IdleInTransactionSessionTimeout) && (IsAbortedTransactionBlockState() || IsTransactionOrTransactionBlock())) { if (!disable_idle_in_transaction_session_sig_alarm()) { ereport(FATAL, (errcode(ERRCODE_SYSTEM_ERROR), errmsg("could not disable timer for idle-in-transaction timeout")));