Fix memory leak on DSM slot exhaustion.
authorThomas Munro <tmunro@postgresql.org>
Sat, 1 Feb 2020 01:29:13 +0000 (14:29 +1300)
committerThomas Munro <tmunro@postgresql.org>
Sat, 1 Feb 2020 01:29:13 +0000 (14:29 +1300)
commit93745f1e019543fe7b742d0c5e971aad8d08fd56
tree0c1b69d9ff932a6047e899c1b905ce0162931a9a
parent870ad6a59bbbd95c2dc3cfe67b07d0e079599edf
Fix memory leak on DSM slot exhaustion.

If we attempt to create a DSM segment when no slots are available,
we should return the memory to the operating system.  Previously
we did that if the DSM_CREATE_NULL_IF_MAXSEGMENTS flag was
passed in, but we didn't do it if an error was raised.  Repair.

Back-patch to 9.4, where DSM segments arrived.

Author: Thomas Munro
Reviewed-by: Robert Haas
Reported-by: Julian Backes
Discussion: https://postgr.es/m/CA%2BhUKGKAAoEw-R4om0d2YM4eqT1eGEi6%3DQot-3ceDR-SLiWVDw%40mail.gmail.com
src/backend/storage/ipc/dsm.c