tripleo-ansible/tripleo_ansible/roles/tripleo_transfer
Michele Baldessari c801abb147 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>
2021-04-15 08:23:57 +02:00
..
defaults [tripleo_transfer] Do transfers directly from src to dst 2021-03-03 16:48:21 +00:00
meta Add Centos 8 to galaxy_info versions 2020-03-19 14:22:08 +01:00
molecule/default [tripleo_transfer] Add more thorough testing 2021-03-05 09:42:35 +00:00
tasks Use --ignore-times when transferring files via rsync 2021-04-15 08:23:57 +02:00
vars [tripleo_transfer] Do transfers directly from src to dst 2021-03-03 16:48:21 +00:00