pgsql: Fix bugs in MultiXact truncation

2024-06-26 Thread Heikki Linnakangas
Fix bugs in MultiXact truncation 1. TruncateMultiXact() performs the SLRU truncations in a critical section. Deleting the SLRU segments calls ForwardSyncRequest(), which will try to compact the request queue if it's full (CompactCheckpointerRequestQueue()). That in turn allocates memory, which is

pgsql: Fix bugs in MultiXact truncation

2024-06-26 Thread Heikki Linnakangas
Fix bugs in MultiXact truncation 1. TruncateMultiXact() performs the SLRU truncations in a critical section. Deleting the SLRU segments calls ForwardSyncRequest(), which will try to compact the request queue if it's full (CompactCheckpointerRequestQueue()). That in turn allocates memory, which is

pgsql: Fix bugs in MultiXact truncation

2024-06-26 Thread Heikki Linnakangas
Fix bugs in MultiXact truncation 1. TruncateMultiXact() performs the SLRU truncations in a critical section. Deleting the SLRU segments calls ForwardSyncRequest(), which will try to compact the request queue if it's full (CompactCheckpointerRequestQueue()). That in turn allocates memory, which is

pgsql: Fix bugs in MultiXact truncation

2024-06-26 Thread Heikki Linnakangas
Fix bugs in MultiXact truncation 1. TruncateMultiXact() performs the SLRU truncations in a critical section. Deleting the SLRU segments calls ForwardSyncRequest(), which will try to compact the request queue if it's full (CompactCheckpointerRequestQueue()). That in turn allocates memory, which is