From 7ada6e1f19d6ad3b68c3451cbf42dc3243a0feb2 Mon Sep 17 00:00:00 2001 From: Michele Baldessari Date: Wed, 14 Apr 2021 21:49:20 +0200 Subject: [PATCH] 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 Co-Authored-By: John Eckersberg --- tripleo_ansible/roles/tripleo_transfer/tasks/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/tripleo_ansible/roles/tripleo_transfer/tasks/main.yml b/tripleo_ansible/roles/tripleo_transfer/tasks/main.yml index 0a9da1676..6684c67a8 100644 --- a/tripleo_ansible/roles/tripleo_transfer/tasks/main.yml +++ b/tripleo_ansible/roles/tripleo_transfer/tasks/main.yml @@ -72,6 +72,7 @@ -v --delay-updates -F + --ignore-times --compress --archive --delete