@ -3409,8 +3409,10 @@ ProcessInterrupts(void)
/*
* If the GUC has been reset to zero , ignore the signal . This is
* important because the GUC update itself won ' t disable any pending
* interrupt .
* interrupt . We need to unset the flag before the injection point ,
* otherwise we could loop in interrupts checking .
*/
IdleInTransactionSessionTimeoutPending = false ;
if ( IdleInTransactionSessionTimeout > 0 )
{
INJECTION_POINT ( " idle-in-transaction-session-timeout " ) ;
@ -3418,13 +3420,12 @@ ProcessInterrupts(void)
( errcode ( ERRCODE_IDLE_IN_TRANSACTION_SESSION_TIMEOUT ) ,
errmsg ( " terminating connection due to idle-in-transaction timeout " ) ) ) ;
}
else
IdleInTransactionSessionTimeoutPending = false ;
}
if ( TransactionTimeoutPending )
{
/* As above, ignore the signal if the GUC has been reset to zero. */
TransactionTimeoutPending = false ;
if ( TransactionTimeout > 0 )
{
INJECTION_POINT ( " transaction-timeout " ) ;
@ -3432,13 +3433,12 @@ ProcessInterrupts(void)
( errcode ( ERRCODE_TRANSACTION_TIMEOUT ) ,
errmsg ( " terminating connection due to transaction timeout " ) ) ) ;
}
else
TransactionTimeoutPending = false ;
}
if ( IdleSessionTimeoutPending )
{
/* As above, ignore the signal if the GUC has been reset to zero. */
IdleSessionTimeoutPending = false ;
if ( IdleSessionTimeout > 0 )
{
INJECTION_POINT ( " idle-session-timeout " ) ;
@ -3446,8 +3446,6 @@ ProcessInterrupts(void)
( errcode ( ERRCODE_IDLE_SESSION_TIMEOUT ) ,
errmsg ( " terminating connection due to idle-session timeout " ) ) ) ;
}
else
IdleSessionTimeoutPending = false ;
}
/*