On Thu, May 9, 2019 at 10:23 PM Thomas Munro <thomas.mu...@gmail.com> wrote: > The reason the patch didn't solve the problem is that > AtEOXact_Parallel() calls DestroyParallelContext(). So DSM segments > that happen to belong to ParallelContext objects are already gone by > the time resowner.c gets involved.
This was listed as an open item for PostgreSQL 12, but I'm going to move it to "older bugs". I want to fix it, but now that I understand what's wrong, it's a slightly bigger design issue than I'm game to try to fix right now. This means that 12, like 11, will be capable of leaking empty temporary directories on Windows whenever an error is raised in the middle of parallel CREATE INDEX or multi-batch Parallel Hash Join. The directories are eventually unlinked at restart, and at least the (potentially large) files inside the directory are unlinked on abort. I think we can live with that for a bit longer. -- Thomas Munro https://enterprisedb.com