pgsql: pg_stat_statements: fetch stmt location/length before it disappe

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: pg_stat_statements: fetch stmt location/length before it disappe
Дата
Msg-id E1opuR4-001ll9-AG@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
pg_stat_statements: fetch stmt location/length before it disappears.

When executing a utility statement, we must fetch everything
we need out of the PlannedStmt data structure before calling
standard_ProcessUtility.  In certain cases (possibly only ROLLBACK
in extended query protocol), that data structure will get freed
during command execution.  The situation is probably often harmless
in production builds, but in debug builds we intentionally overwrite
the freed memory with garbage, leading to picking up garbage values
of statement location and length, typically causing an assertion
failure later in pg_stat_statements.  In non-debug builds, if
something did go wrong it would likely lead to storing garbage
for the query string.

Report and fix by zhaoqigui (with cosmetic adjustments by me).
It's an old problem, so back-patch to all supported versions.

Discussion: https://postgr.es/m/17663-a344fd0675f92128@postgresql.org
Discussion: https://postgr.es/m/1667307420050.56657@hundsun.com

Branch
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/56083ff3015b1beadb72724d3b9ddac81f69453c

Modified Files
--------------
contrib/pg_stat_statements/pg_stat_statements.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)


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

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: pgsql: doc: Add note about lack of publication privileges
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Fix planner failure with extended statistics on partitioned tabl