Обсуждение: PathNameCreateTemporaryDir() vs concurrency

Поиск
Список
Период
Сортировка

PathNameCreateTemporaryDir() vs concurrency

От
Thomas Munro
Дата:
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

Вложения

Re: PathNameCreateTemporaryDir() vs concurrency

От
Robert Haas
Дата:
On Tue, Dec 26, 2017 at 3:11 AM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:
> 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.

Committed.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company