Project

General

Profile

Actions

Bug #36668

closed

restore of offline incremental backups is broken

Added by Evgeni Golov almost 2 years ago. Updated almost 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Procedure
Target version:
-
Difficulty:
Triaged:
No
Fixed in Releases:
Found in Releases:

Description

Originally reported in https://community.theforeman.org/t/how-is-foreman-maintain-restore-i-supposed-to-work/34519

Since 9d5f5c9315e71d08451d51fb2d41dc0f735bdfc9 foreman-maintain performs a reindexdb after restoring a backup,
which seems to alter the DB in a way that incremental backups don't apply cleanly anymore
and PostgreSQL isn't able to operate after an incremental restore has been attempted:

[postgres@centos8-stream-katello-4-9 ~]$ psql
psql: error: FATAL:  could not open file "base/13449/36756": No such file or directory
[postgres@centos8-stream-katello-4-9 ~]$ psql foreman
psql: error: FATAL:  could not open file "base/18254/33445": No such file or directory
[postgres@centos8-stream-katello-4-9 ~]$ psql candlepin
psql: error: FATAL:  could not open file "base/16385/35536": No such file or directory
This is not an issue
  • if you use online backups (those always contain a full DB dump and don't require a REINDEX anyway)
  • for non-incremental restores of offline backups

The REINDEX step was added to avoid issues with different versions of libc locales when changing operating system versions.
A possible short term fix would be to only execute the REINDEX when foreman-maintain detects that the backup was taken on a different OS than the restore is happening on.
A better solution would be to re-architecture the restore process to first extract all incremental steps and only afterwards perform the necessary DB steps.

The issue is present in the following foreman-maintain versions:
  • 1.3.x
  • 1.2.4+
  • 1.1.10+
  • 1.0.19+
Actions

Also available in: Atom PDF