1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-01-18 04:58:51 +02:00

Fix reference list when backup.info is reconstructed in expire command.

Adding a manifest to backup.info was migrated to C in 4e4d1f41 but deduplication of the references was missed leading to a reference for every file being added to backup.info.

Since the backup command is still using the Perl version of reconstruct this issue will not express unless 1) there is a backup missing from backup.info and 2) the expire command is run directly instead of running after backup as usual.

This unlikely combination of events means this is probably not a problem in the field.
This commit is contained in:
David Steele 2019-11-28 09:34:19 -05:00
parent 686b6f91da
commit 50eb062e0e
3 changed files with 12 additions and 1 deletions

View File

@ -13,6 +13,15 @@
<release-list>
<release date="XXXX-XX-XX" version="2.20dev" title="UNDER DEVELOPMENT">
<release-core-list>
<release-bug-list>
<release-item>
<p>Fix reference list when <file>backup.info</file> is reconstructed in <cmd>expire</cmd> command.</p>
<p>Since the <cmd>backup</cmd> command is still using the <proper>Perl</proper> version of reconstruct this issue will not express unless <b>1)</b> there is a backup missing from <file>backup.info</file> and <b>2)</b> the <cmd>expire</cmd> command is run directly instead of running after <cmd>backup</cmd> as usual. This unlikely combination of events means this is probably not a problem in the field.</p>
</release-item>
</release-bug-list>
</release-core-list>
</release>
<release date="2019-11-12" version="2.19" title="C Migrations and Bug Fixes">

View File

@ -386,7 +386,7 @@ infoBackupDataAdd(const InfoBackup *this, const Manifest *manifest)
// If a reference to a file exists, then it is in a previous backup and the delta calculation was already done
if (file->reference != NULL)
strLstAdd(referenceList, file->reference);
strLstAddIfMissing(referenceList, file->reference);
else
{
backupSizeDelta += file->size;

View File

@ -385,6 +385,8 @@ testRun(void)
"pg_data/postgresql.conf={\"checksum\":\"6721d92c9fcdf4248acff1f9a1377127d9064807\",\"master\":true,\"size\":4457"
",\"timestamp\":1565282114}\n"
"pg_data/special={\"master\":true,\"mode\":\"0640\",\"size\":0,\"timestamp\":1565282120,\"user\":false}\n"
"pg_data/dupref={\"master\":true,\"mode\":\"0640\",\"reference\":\"20190818-084502F\",\"size\":0"
",\"timestamp\":1565282120,\"user\":false}\n"
TEST_MANIFEST_FILE_DEFAULT
"\n"
"[target:link]\n"