Re: Spurious "more than one current_mirror" error

EricZolf <[email protected]> Thu, 21 Sep 2023 19:21:56 +0200
Newsgroups gmane.comp.sysutils.backup.rdiff-backup.general
Organization rdiff-backup.net
Message-ID <[email protected]>
Hi,

On 21/09/2023 18:29, David Croll wrote:
> Hi Eric,
> 
> 
>> I'm disturbed by the fact that the path contains a blank, but your 
>> commands don't show any quoting or escaping. Is it really the whole 
>> command?
> Fish has an auto-completion that, of course, escapes the spaces in file
> and directory names.
> 
> Properly, the command is
> 
> for d in (cat /media/david/Backup\ 1\ TB/backupdirs)
> 
>      sudo rdiff-backup backup $d /media/david/Backup\ 1\ TB/$d
> 
> end
> 
>> What does `cat "/media/david/Backup Drive/backupdirs"` actually show? 
>> Could it be that it contains .purple multiple times?
> cat /media..... shows this:
> 
> david@ASUS ~> cat /media/david/Backup\ 1\ TB/backupdirs
> Desktop
> Documents
> Games
> Music
> Pictures/Zeichnen_und_Malen
> Pictures/Memes
> .purple
> .mozilla
> snap/firefox/common/.mozilla/firefox/onotah21.default-1528902033143
> snap/firefox/common/.cache/mozilla/firefox/onotah21.default-1528902033143
> Templates
> .thunderbird
> Videos

First, and I should have started with this, a more usual usage of 
rdiff-backup would be to have all directories backed-up in one 
repository with a command like:

sudo rdiff-backup backup --include-globbing-filelist backupdirs2 \
	/home/david /media/david/Backup\ 1\ TB/$d

where backupdirs2 would contain something like

/home/david/Desktop
/home/david/Documents
[etc...]
- /home/david/*

You can:

1. use a relative path instead of an absolute one (even `.`)
2. use `- **` as last entry
3. check the man-page for more details

Now, if you really want to backup each directory separately, I didn't 
say anything.

> I checked the backupdirs file with a hex editor, and there are no
> non-printable characters. ".purple" is preceded with 0A (end of line),
> the . is 2E, and ".purple" is immediately followed by another 0A.
> 
> Using "sleep 2"
> 
> for d in (cat /media/david/Backup\ 1\ TB/backupdirs)
> 
>      sudo rdiff-backup backup $d /media/david/Backup\ 1\ TB/$d
> 
>      sleep 2
> 
> end
> 
> results in this, again:
> 
> NOTE: Starting increment operation from source path .purple to
> destination path /media/david/Backup 1 TB/.purple
> ERROR: Either there is more than one current_mirror or the last backup
> is not in the past. Aborting.
> ERROR: Action backup failed on step run
> 
> So super-disturbing that
> 
> david@ASUS ~> sudo rdiff-backup backup .purple /media/david/Backup\ 1\
> TB/.purple
> [sudo] password for david:
> NOTE: Starting increment operation from source path .purple to
> destination path /media/david/Backup 1 TB/.purple
> 
> always works.
> 
> The file system is btrfs (on both source and destination). Checking the
> destination filesystem with gparted doesn't give me any error. Deleting
> the rdiff-backup-data folder doesn't help. Deleting the entire contents
> of .purple on the destination side and then, running the for loop, also
> results in an error.

We already had some weird behaviors with btrfs: 
https://github.com/rdiff-backup/rdiff-backup/issues?q=is%3Aissue+btrfs
You could try to use `btrfsck` to check the file system(s) and see if it 
fixes your issue. I don't have a better suggestion currently beside: 
don't use btrfs for backups!

KR, Eric

> Perhaps the most disturbing discovery: Running rdiff-backup inside this
> forloop, with an *empty* .purple directory on the source side, and a
> non-existent .purple directory on the destination side, also results in
> an error.
> 
> What the funk...
> 
> 
> David
> 
> 
> 
>