Use --ignore-times when transferring files via rsync

Currently rsync is being called without passing --ignore-times nor
--checksum. So any file that has the same size/permission and
*timestamp* will not be transferred over. Now *timestamp* in this case
means 1 second resolution. See also the following rsync option which
explains it:

  --modify-window=NUM, -@ When comparing two timestamps, rsync treats the
    timestamps as being equal if they differ by no more than the
    modify-window value. The default is 0, which matches just integer
    seconds.

This has shown to be problematic at the very least with the mariadb
system transfer where only a partial list of files would be transferred,
causing all kinds of data corruption and segfaults in the database being
leapped.

We debated the use of --checksum vs --ignore-times and are settling on
--ignore-times to avoid any risks of hash collision (and hence missed
transfer of a different file, since the default hash is 128bits)
and because that is also what the galera SST helper uses and has proven
solid over time, so it seems the more cautious decision.

Closes-Bug: #1923898

Change-Id: Ibd53fad900cfa002bf2ad9b2ae6f62babd4140e5
Co-Authored-By: Damien Ciabrini <dciabrin@redhat.com>
Co-Authored-By: John Eckersberg <jeckersb@redhat.com>
This commit is contained in:
Michele Baldessari 2021-04-14 21:49:20 +02:00
parent c7dfcfb2cc
commit 95e32e1ede
1 changed files with 1 additions and 0 deletions

View File

@ -72,6 +72,7 @@
-v
--delay-updates
-F
--ignore-times
--compress
--archive
--delete