PathNameCreateTemporaryDir() vs concurrency - Mailing list pgsql-hackers

From Thomas Munro
Subject PathNameCreateTemporaryDir() vs concurrency
Date
Msg-id CAEepm=1Vp1e3KtftLtw4B60ZV9teNeKu6HxoaaBptQMsRWjJbQ@mail.gmail.com
Whole thread Raw
Responses Re: PathNameCreateTemporaryDir() vs concurrency  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
Hi hackers,

While testing parallel hash join today, I saw a couple of errors like this:

2017-12-26 23:34:37.402 NZDT [13082] ERROR:  cannot create temporary
subdirectory "base/pgsql_tmp/pgsql_tmp13080.0.sharedfileset": File
exists

There is a thinko in PathNameCreateTemporaryDir(), a new function
added in commit dc6c4c9d.  It was designed to tolerate directories
existing already but forgot to handle it in the third mkdir call, so
it fails with unlucky timing.  Please see attached.

-- 
Thomas Munro
http://www.enterprisedb.com

Attachment

pgsql-hackers by date:

Previous
From: "Daniel Verite"
Date:
Subject: Re: General purpose hashing func in pgbench
Next
From: "Tels"
Date:
Subject: Re: [HACKERS] Replication status in logical replication