postgresql/src/backend
Heikki Linnakangas d212957254 Fix bug in bulk extending temp relation after failure
A ResourceOwnerEnlarge() call was missing. That led to an error:

ERROR:  ResourceOwnerRemember called but array was full

and an assertion failure, if you tried to extend a temp relation again
after a failure. Alexander's test case used running out of disk space
to trigger the original failure.

This bug was introduced in the large ResourceOwner rewrite commit
b8bff07daa. Before that, the UnpinLocalBuffer() call guaranteed that
the subsequent PinLocalBuffer() will succeed, but after the rewrite,
releasing an old resource doesn't guarantee that there is space for a
new one.

Add a comment explaining why the UnpinBuffer + PinBuffer calls in
BufferAlloc(), with no ResourceOwnerEnlarge() in between, are safe.

Reported-by: Alexander Lakhin
Discussion: https://www.postgresql.org/message-id/dc574fea-c83e-a600-08cd-10881762e4fa@gmail.com
2024-02-02 21:12:30 +02:00
..
access Give SMgrRelation pointers a well-defined lifetime. 2024-01-31 12:31:02 +02:00
archive Update copyright for 2024 2024-01-03 20:49:05 -05:00
backup Revise pg_walsummary's 002_blocks test to avoid spurious failures. 2024-01-31 10:12:53 -05:00
bootstrap Make attstattarget nullable 2024-01-13 18:14:53 +01:00
catalog Add a failover option to subscriptions. 2024-01-30 16:49:28 +05:30
commands Sync PG_VERSION file in CREATE DATABASE. 2024-02-01 13:44:19 -08:00
executor Delay build of Memoize hash table until executor run 2024-01-30 12:37:03 +13:00
foreign Update copyright for 2024 2024-01-03 20:49:05 -05:00
jit jit: Require at least LLVM 10. 2024-01-25 15:42:34 +13:00
lib Fix broken Bitmapset optimization in DiscreteKnapsack() 2024-01-19 10:44:36 +13:00
libpq Update copyright for 2024 2024-01-03 20:49:05 -05:00
main Remove dummy_spinlock 2024-01-25 11:43:47 +01:00
nodes Add temporal PRIMARY KEY and UNIQUE constraints 2024-01-24 16:34:37 +01:00
optimizer Allow Gather Merge in more cases for parallel DISTINCT 2024-02-03 00:20:18 +13:00
parser Add a const decoration 2024-01-25 13:34:49 +01:00
partitioning Update copyright for 2024 2024-01-03 20:49:05 -05:00
po Update copyright for 2024 2024-01-03 20:49:05 -05:00
port Close socket in case of errors in setting non-blocking 2024-01-17 11:24:11 +01:00
postmaster Give SMgrRelation pointers a well-defined lifetime. 2024-01-31 12:31:02 +02:00
regex Update copyright for 2024 2024-01-03 20:49:05 -05:00
replication Add a failover option to subscriptions. 2024-01-30 16:49:28 +05:30
rewrite Support identity columns in partitioned tables 2024-01-16 17:24:52 +01:00
snowball Add copyright notices to a few perl scripts that don't have them 2024-01-05 13:15:50 +00:00
statistics Update copyright for 2024 2024-01-03 20:49:05 -05:00
storage Fix bug in bulk extending temp relation after failure 2024-02-02 21:12:30 +02:00
tcop Error message capitalisation 2024-01-18 09:35:12 +01:00
tsearch Update copyright for 2024 2024-01-03 20:49:05 -05:00
utils Fix bug in bulk extending temp relation after failure 2024-02-02 21:12:30 +02:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
common.mk Blind attempt to fix LLVM dependency in the backend 2022-09-15 10:53:48 +07:00
Makefile Cross-check lists of predefined LWLocks. 2024-01-09 11:05:19 -06:00
meson.build Update copyright for 2024 2024-01-03 20:49:05 -05:00
nls.mk Remove distprep 2023-11-06 15:18:04 +01:00