[COMMITTERS] pgsql: Prevent idle in transaction session timeout from sometimesbeing

Поиск
Список
Период
Сортировка
От Andres Freund
Тема [COMMITTERS] pgsql: Prevent idle in transaction session timeout from sometimesbeing
Дата
Msg-id E1e2OGw-00079V-4R@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Prevent idle in transaction session timeout from sometimes being ignored.

The previous coding in ProcessInterrupts() could lead to
idle_in_transaction_session_timeout being ignored, when
statement_timeout occurred earlier.

The problem was that ProcessInterrupts() would return before
processing the transaction timeout if QueryCancelPending was set while
QueryCancelHoldoffCount != 0 - which is the case when reading new
commands from the client. Ergo when the idle transaction timeout would
hit.

Fix that by removing the early return. Alternatively the transaction
timeout code could have been moved up, but that early return seems
like an issue that could hit other cases too.

Author: Lukas Fittl
Bug: #14821
Discussion:   https://www.postgresql.org/message-id/20170921010956.17345.61461%40wrigleys.postgresql.org
https://www.postgresql.org/message-id/CAP53PkxQnv3OWJpyNPGJYT62uY=n1=2CF_Lpc6gVOFnc0-gazw@mail.gmail.com
Backpatch: 9.6-, where idle_in_transaction_session_timeout was introduced.

Branch
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/61ace8fe7fe82dc04c1de493a414597989f05e56

Modified Files
--------------
src/backend/tcop/postgres.c | 32 +++++++++++++++-----------------
1 file changed, 15 insertions(+), 17 deletions(-)


--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

В списке pgsql-committers по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: [COMMITTERS] pgsql: Prevent idle in transaction session timeout from sometimesbeing
Следующее
От: Andres Freund
Дата:
Сообщение: [COMMITTERS] pgsql: Prevent idle in transaction session timeout from sometimesbeing