pgsql: Allow callback functions to deregister themselves during a call.

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Allow callback functions to deregister themselves during a call.
Дата
Msg-id E1odYuQ-002POU-VL@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Allow callback functions to deregister themselves during a call.

Fetch the next-item pointer before the call not after, so that
we aren't dereferencing a dangling pointer if the callback
deregistered itself during the call.  The risky coding pattern
appears in CallXactCallbacks, CallSubXactCallbacks, and
ResourceOwnerReleaseInternal.  (There are some other places that
might be at hazard if they offered deregistration functionality,
but they don't.)

I (tgl) considered back-patching this, but desisted because it
wouldn't be very safe for extensions to rely on this working in
pre-v16 branches.

Hao Wu

Discussion: https://postgr.es/m/CAH+9SWXTiERkmhRke+QCcc+jRH8d5fFHTxh8ZK0-Yn4BSpyaAg@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/4d2a844242dcfb34e05dd0d880b1a283a514b16b

Modified Files
--------------
src/backend/access/transam/xact.c     | 14 ++++++++++++--
src/backend/utils/resowner/resowner.c |  7 ++++++-
2 files changed, 18 insertions(+), 3 deletions(-)


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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: pgsql: Change some errdetail() to errdetail_internal()
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Doc: document bpchar, clarify relationship of text and varchar.