Re: Avoid erroring out when unable to remove or parse logical rewrite files to save checkpoint work

Поиск
Список
Период
Сортировка
От Nathan Bossart
Тема Re: Avoid erroring out when unable to remove or parse logical rewrite files to save checkpoint work
Дата
Msg-id 20220816203233.GA255076@nathanxps13
обсуждение исходный текст
Ответ на Re: Avoid erroring out when unable to remove or parse logical rewrite files to save checkpoint work  (Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>)
Ответы Re: Avoid erroring out when unable to remove or parse logical rewrite files to save checkpoint work  (Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>)
Список pgsql-hackers
On Wed, Aug 10, 2022 at 03:28:25PM +0530, Bharath Rupireddy wrote:
>          snprintf(path, sizeof(path), "pg_logical/mappings/%s", mapping_de->d_name);
> -        if (lstat(path, &statbuf) == 0 && !S_ISREG(statbuf.st_mode))
> +        if (get_dirent_type(path, mapping_de, false, LOG) != PGFILETYPE_REG)
>              continue;

Previously, failure to lstat() wouldn't lead to skipping the entry.  With
this patch, a failure to determine the file type will cause the entry to be
skipped.  This might be okay in some places (e.g., CheckPointSnapBuild())
but not in others.  For example, in CheckPointLogicalRewriteHeap(), this
could cause us to skip fsync-ing a file due to a get_dirent_type() failure,
which seems bad.

-- 
Nathan Bossart
Amazon Web Services: https://aws.amazon.com



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: Add support for DEFAULT specification in COPY FROM
Следующее
От: Daniel Gustafsson
Дата:
Сообщение: Re: Propose a new function - list_is_empty