Skip to content

Сообщения WARNING: File 'pg_multixact/...' was stored as non-datafile, but looks like it is #585

Closed
@xinferum

Description

@xinferum

Добрый день.

PostgreSQL 15.1 (ванильный), pg_probackup-15 2.5.11.

Мы на одном из тестовых контуров, с довольно нагруженной бд, столкнулись с тем, что после обновления с 14-й на 15-ю мажорную версии PostgreSQL во время проверочного ручного запуска бекапа начали сыпаться сообщения следующего вида:

WARNING: File 'pg_multixact/members/3994' was stored as non-datafile, but looks like it is
WARNING: File 'pg_multixact/members/3995' was stored as non-datafile, but looks like it is
WARNING: File 'pg_multixact/members/3996' was stored as non-datafile, but looks like it is
WARNING: File 'pg_multixact/members/3997' was stored as non-datafile, but looks like it is
WARNING: File 'pg_multixact/members/3998' was stored as non-datafile, but looks like it is
WARNING: File 'pg_multixact/members/3999' was stored as non-datafile, but looks like it is
WARNING: File 'pg_multixact/offsets/1064' was stored as non-datafile, but looks like it is
WARNING: File 'pg_multixact/offsets/1065' was stored as non-datafile, but looks like it is
WARNING: File 'pg_multixact/offsets/1066' was stored as non-datafile, but looks like it is
WARNING: File 'pg_multixact/offsets/1067' was stored as non-datafile, but looks like it is
WARNING: File 'pg_multixact/offsets/1068' was stored as non-datafile, but looks like it is
WARNING: File 'pg_multixact/offsets/1069' was stored as non-datafile, but looks like it is
WARNING: File 'pg_multixact/offsets/1070' was stored as non-datafile, but looks like it is

То есть pg_probackup стал писать WARNING на каждый файл из директорий pg_multixact/members/ и pg_multixact/offsets/.
Проверили по логам - на PostgreSQL 14 тоже возникали такие сообщения с момента обновления pg_probackup на версию 2.5.11, до этого была установлена 2.5.8 и с ней в логе таких WARNING нет.

Поискал по коду - начиная с версии 2.5.11 был введен следующий код проверки (впервые он появляется еще в 2.5.10, но эта версия, насколько мне известно, в релиз не была выпущена):

pg_probackup/src/catalog.c

Lines 1145 to 1161 in b90273f

if (file->external_dir_num == 0 && S_ISREG(file->mode))
{
bool is_datafile = file->is_datafile;
set_forkname(file);
if (is_datafile != file->is_datafile)
{
if (is_datafile)
elog(WARNING, "File '%s' was stored as datafile, but looks like it is not",
file->rel_path);
else
elog(WARNING, "File '%s' was stored as non-datafile, but looks like it is",
file->rel_path);
/* Lets fail in tests */
Assert(file->is_datafile == file->is_datafile);
file->is_datafile = is_datafile;
}
}

Подскажите, что конкретно для нас должен означать этот WARNING и корректно ли в данном случае поведение самого pg_probackup? Файлы принадлежат кластеру postgres и они корректны.

Спасибо.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions