You've already forked pgbackrest
							
							
				mirror of
				https://github.com/pgbackrest/pgbackrest.git
				synced 2025-10-30 23:37:45 +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:
		| @@ -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"> | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
| @@ -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" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user