Re: [Evolution] Evolution not listening to quit



On Tue, 2019-06-04 at 23:20 +0200, Ángel wrote:
In which case I think the argument about how to make sure Evo is
stopped before doing a backup is pointless. Just don't stop it.

poc

Even if a program is transactional, it only guarantees the state at a
given point of time. Not that you can run a generic backup program in
the background while the program works and that it will be consistent.

In order to do that you would need to work on a frozen filesystem. For
instance using LVM. btrfs also supports making a snapshot of a volume,
which is atomic. Then you could run your backup program over that copy,
and then (optionally) remove the snapshot.

Suppose you were working locally on a maildir while you are running
tar(1) for making a backup.¹

1- tar reads the list of files on cur/ and starts reading them one by
one to store them
2- you read a message, it gets renamed from
1528146778.123_0.evolution:2, to 1528146778.123_0.evolution:2,S
3- tar attempts to backup ‘1559682696.123_0.evolution:2,’, but as it's
not there, will log an error and continue.

The file has been on your mailbox for a year. The rename itself is
atomic. A power failure would not lose that file [if it's on a journaled
fs]. Yet your backup missed it.

Good point, and another reason to use IMAP rather than POP. Even though
parts of the IMAP local state may be lost due to a race condition, it
can always be recovered from the server, which AFAIK *is*
transactional.

poc



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]