Comment 6 for bug 1923898

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-ansible (stable/victoria)

Reviewed: https://review.opendev.org/c/openstack/tripleo-ansible/+/786417
Committed: https://opendev.org/openstack/tripleo-ansible/commit/95e32e1ede8abda6de1fdef9d8e325a6fd74333d
Submitter: "Zuul (22348)"
Branch: stable/victoria

commit 95e32e1ede8abda6de1fdef9d8e325a6fd74333d
Author: Michele Baldessari <email address hidden>
Date: Wed Apr 14 21:49:20 2021 +0200

    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 <email address hidden>
    Co-Authored-By: John Eckersberg <email address hidden>