0003-Clear-CurrentResourceOwner-earlier-in-CommitTransact.patch
text/x-patch
Filename: 0003-Clear-CurrentResourceOwner-earlier-in-CommitTransact.patch
Type: text/x-patch
Part: 2
Message:
Re: ResourceOwner refactoring
Patch
Format: format-patch
Series: patch 0003
Subject: Clear CurrentResourceOwner earlier in CommitTransaction.
| File | + | − |
|---|---|---|
| src/backend/access/transam/xact.c | 1 | 1 |
From f5fbb84504e336e99c1d9bc4fb38e7564d220799 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas <heikki.linnakangas@iki.fi> Date: Fri, 10 Nov 2023 14:30:54 +0200 Subject: [PATCH 3/3] Clear CurrentResourceOwner earlier in CommitTransaction. Alexander reported a crash with repeated create + drop database, after the ResourceOwner rewrite (commit b8bff07daa). That was fixed by the previous commit, but it nevertheless seems like a good idea clear CurrentResourceOwner earlier, because you're not supposed to use it for anything after we start releasing it. Reported-by: Alexander Lakhin Discussion: https://www.postgresql.org/message-id/11b70743-c5f3-3910-8e5b-dd6c115ff829%40gmail.com --- src/backend/access/transam/xact.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 74ce5f9491c..8fad8ffa1eb 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -2309,6 +2309,7 @@ CommitTransaction(void) CallXactCallbacks(is_parallel_worker ? XACT_EVENT_PARALLEL_COMMIT : XACT_EVENT_COMMIT); + CurrentResourceOwner = NULL; ResourceOwnerRelease(TopTransactionResourceOwner, RESOURCE_RELEASE_BEFORE_LOCKS, true, true); @@ -2374,7 +2375,6 @@ CommitTransaction(void) AtEOXact_LogicalRepWorkers(true); pgstat_report_xact_timestamp(0); - CurrentResourceOwner = NULL; ResourceOwnerDelete(TopTransactionResourceOwner); s->curTransactionOwner = NULL; CurTransactionResourceOwner = NULL; -- 2.39.2