Further second thoughts about idle_session_timeout patch.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 7 Jan 2021 16:45:09 +0000 (11:45 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 7 Jan 2021 16:45:09 +0000 (11:45 -0500)
commita112efa6a015cc3e0e752e36ece4ed10ede1d714
tree5f9af5e5f031005b59969ef0da0c146f80e9e09f
parenta46f32e3bf9d986d3c870696a417157c7ba47dae
Further second thoughts about idle_session_timeout patch.

On reflection, the order of operations in PostgresMain() is wrong.
These timeouts ought to be shut down before, not after, we do the
post-command-read CHECK_FOR_INTERRUPTS, to guarantee that any
timeout error will be detected there rather than at some ill-defined
later point (possibly after having wasted a lot of work).

This is really an error in the original idle_in_transaction_timeout
patch, so back-patch to 9.6 where that was introduced.
src/backend/tcop/postgres.c