# mkdir -p a/1 b/1; echo "/1/2/3" > list
# rsync --dry-run --stats -Pav --delete-missing-args --files-from=list a b
file has vanished: "/root/a/1/2"
ABORTING due to invalid path from sender: 1/2/3
rsync error: protocol incompatibility (code 2) at generator.c(1271) [generator=3.1.2]
Next, updating the package to the version available in -proposed, clearing the directory, and making sure that the bug is fixed:
# mkdir -p a/1 b/1; echo "/1/2/3" > list
# rsync --dry-run --stats -Pav --delete-missing-args --files-from=list a b
file has vanished: "/root/a/1/2"
WARNING: parent dir is absent in the file list: 1/2
Number of files: 2 (reg: 1, dir: 1)
Number of created files: 0
Number of deleted files: 0
Number of regular files transferred: 0
Total file size: 0 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 60
Total bytes received: 68
sent 60 bytes received 68 bytes 256.00 bytes/sec
total size is 0 speedup is 0.00 (DRY RUN)
rsync warning: some files vanished before they could be transferred (code 24) at main.c(1196) [sender=3.1.2]
As shown above, there is no longer a crash due to missing parent folders. Therefore, the bug has been fixed for bionic and verification is complete.
Performing the verification for Bionic:
First, reproducing the bug with the current version:
# apt policy rsync archive. ubuntu. com/ubuntu bionic-updates/main amd64 Packages security. ubuntu. com/ubuntu bionic- security/ main amd64 Packages dpkg/status 1.2-2.1ubuntu1 500 archive. ubuntu. com/ubuntu bionic/main amd64 Packages
rsync:
Installed: 3.1.2-2.1ubuntu1.1
Candidate: 3.1.2-2.1ubuntu1.1
Version table:
*** 3.1.2-2.1ubuntu1.1 500
500 http://
500 http://
100 /var/lib/
3.
500 http://
# mkdir -p a/1 b/1; echo "/1/2/3" > list missing- args --files-from=list a b
# rsync --dry-run --stats -Pav --delete-
file has vanished: "/root/a/1/2"
ABORTING due to invalid path from sender: 1/2/3
rsync error: protocol incompatibility (code 2) at generator.c(1271) [generator=3.1.2]
Next, updating the package to the version available in -proposed, clearing the directory, and making sure that the bug is fixed:
# apt policy rsync archive. ubuntu. com/ubuntu bionic- proposed/ main amd64 Packages dpkg/status 1.2-2.1ubuntu1. 1 500 archive. ubuntu. com/ubuntu bionic-updates/main amd64 Packages security. ubuntu. com/ubuntu bionic- security/ main amd64 Packages 1.2-2.1ubuntu1 500 archive. ubuntu. com/ubuntu bionic/main amd64 Packages
rsync:
Installed: 3.1.2-2.1ubuntu1.2
Candidate: 3.1.2-2.1ubuntu1.2
Version table:
*** 3.1.2-2.1ubuntu1.2 500
500 http://
100 /var/lib/
3.
500 http://
500 http://
3.
500 http://
# mkdir -p a/1 b/1; echo "/1/2/3" > list missing- args --files-from=list a b
# rsync --dry-run --stats -Pav --delete-
file has vanished: "/root/a/1/2"
WARNING: parent dir is absent in the file list: 1/2
Number of files: 2 (reg: 1, dir: 1)
Number of created files: 0
Number of deleted files: 0
Number of regular files transferred: 0
Total file size: 0 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 60
Total bytes received: 68
sent 60 bytes received 68 bytes 256.00 bytes/sec
total size is 0 speedup is 0.00 (DRY RUN)
rsync warning: some files vanished before they could be transferred (code 24) at main.c(1196) [sender=3.1.2]
As shown above, there is no longer a crash due to missing parent folders. Therefore, the bug has been fixed for bionic and verification is complete.