RsyncProject / rsync

An open source utility that provides fast incremental file transfer. It also has useful features for backup and restore operations among many other use cases.
https://rsync.samba.org
Other
2.83k stars 331 forks source link

rsync-3.1.3 to rsync-3.2.7 copies are incompatible #433

Open neikei opened 1 year ago

neikei commented 1 year ago

It seems that rsync versions 3.1.3 and 3.2.7 are not compatible with each other. We tested different source systems (Linux/AIX) with rsync 3.1.3 and none of them were able to copy to rsync-3.2.7 systems, but rssync from rsync-3.2.7 to rsync-3.2.7 works as expected.

Source:

rsync  version 3.1.3  protocol version 31
Copyright (C) 1996-2018 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, no IPv6, batchfiles, inplace,
    append, ACLs, no xattrs, iconv, no symtimes, no prealloc

Destination:

rsync  version 3.2.7  protocol version 31
Copyright (C) 1996-2022 by Andrew Tridgell, Wayne Davison, and others.
Web site: https://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, symlinks, symtimes, hardlinks, hardlink-specials,
    hardlink-symlinks, IPv6, atimes, batchfiles, inplace, append, ACLs,
    no xattrs, optional secluded-args, iconv, no prealloc, stop-at,
    no crtimes

Copy from 3.1.3 to 3.2.7 fails:

rsync -vvv --delay-updates -F --compress --delete-after --checksum --recursive --rsh="/usr/bin/ssh -S none -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --rsync-path="sudo /opt/freeware/bin/rsyn>
opening connection using: /usr/bin/ssh -S none -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null testserver0002 -l root "sudo /opt/freeware/bin/rsync" --server -vvvrcze.isfxC --delete-after --delay-updates "--usermap=*:root" "--groupmap=*:system" . /scratch/testfile  (19 args)
Warning: Permanently added 'testserver0002' (ECDSA) to the list of known hosts.
[sender] add_rule(-p .~tmp~/)
building file list ...
[sender] make_file(testfile,*,0)
done
send_file_list done
send_files starting
server_recv(2) starting pid=43450656
[Receiver] add_rule(: /.rsync-filter)
[Receiver] activating mergelist #0 [per-dir .rsync-filter]
[Receiver] add_rule(- .gitkeep)
[Receiver] add_rule(-p .~tmp~/)
recv_file_name(testfile)
received 1 names
>>> stuck here

Copy from 3.2.7 to 3.2.7 is working:

root@testserver0001 /root# " --chmod=F750,D750 --chown=root:system --exclude=.gitkeep /scratch/testfile root@testserver0002:/scratch/testfile                                                                                   <
opening connection using: /usr/bin/ssh -S none -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null testserver0002 -l root "sudo /opt/freeware/bin/rsync" --server -vvvogrcze.iLsfxCIvu --delete-after --delay-updates "--usermap=\*:root" "--groupmap=\*:system" . /scratch/testfile  (19 args)
Warning: Permanently added 'testserver0002' (ECDSA) to the list of known hosts.
[sender] add_rule(-p .~tmp~/)
building file list ...
[sender] make_file(testfile,*,0)
done
send_file_list done
send_files starting
server_recv(2) starting pid=30212432
[Receiver] add_rule(: /.rsync-filter)
[Receiver] activating mergelist #0 [per-dir .rsync-filter]
[Receiver] add_rule(- .gitkeep)
[Receiver] add_rule(-p .~tmp~/)
recv_file_name(testfile)
received 1 names
recv_file_list done
get_local_name count=1 /scratch/testfile
generator starting pid=30212432
delta-transmission enabled
recv_generator(testfile,0)
testfile
send_files(0, /scratch/testfile)
generate_files phase=1
recv_files(1) starting
send_files phase=1
recv_files(testfile)
recv_files phase=1
generate_files phase=2
send_files phase=2
recv_files phase=2
generate_files phase=3
send files finished
total: matches=0  hash_hits=0  false_alarms=0 data=0
recv_files finished
generate_files finished

sent 135 bytes  received 649 bytes  1,568.00 bytes/sec
total size is 0  speedup is 0.00
[sender] _exit_cleanup(code=0, file=main.c, line=1336): about to call exit(0)
gannaramu commented 1 year ago

I can confirm I have seen a similar behavior where rsync is stuck when Copy from 3.2.7 to 3.1.3 is stuck. we are using awx