Hi, On Wed, 30 Sept 2026 at 15:38, Ayush Tiwari <[email protected]> wrote: > > I wonder if we should also back out of parallel_vacuum_init() when > pcxt->seg is NULL, like the parallel index builds do. > > AFAICS, we otherwise go on to TidStoreCreateShared(), which needs > another DSM segment. That seems to defeat the leader-only fallback > when DSM slots stay exhausted. On master, with another session holding > every DSM slot, VACUUM (PARALLEL 2) fails with "too many dynamic shared > memory segments", while VACUUM (PARALLEL 0) succeeds. > > The attached patch returns NULL there, letting the caller use a local > TidStore, and drops the nworkers check from cc053b6e127, which I think > becomes redundant? > > Am I missing a reason to keep the shared TidStore in the no-worker case?
Registered this in commitfest:https://commitfest.postgresql.org/patch/7380/ Regards, Ayush
