[Bug 1896251] Re: rsync --delete-missing-args fails with "error: protocol incompatibility"

Lena Voytek 1896251 at bugs.launchpad.net
Mon Nov 8 20:39:32 UTC 2021


Performing the verification for Bionic:

First, reproducing the bug with the current version:

# apt policy rsync
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://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
        100 /var/lib/dpkg/status
     3.1.2-2.1ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages

# 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:

# apt policy rsync
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://archive.ubuntu.com/ubuntu bionic-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     3.1.2-2.1ubuntu1.1 500
        500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
     3.1.2-2.1ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages

# 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.


** Tags removed: verification-needed verification-needed-bionic
** Tags added: verification-done-bionic

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to rsync in Ubuntu.
https://bugs.launchpad.net/bugs/1896251

Title:
  rsync --delete-missing-args fails with "error: protocol
  incompatibility"

Status in rsync package in Ubuntu:
  Fix Released
Status in rsync source package in Xenial:
  Won't Fix
Status in rsync source package in Bionic:
  Fix Committed
Status in rsync source package in Focal:
  Fix Committed

Bug description:
  [Impact]

  Rsync crashes when using --delete-missing-args on a file with a
  missing parent folder.

  Backporting this fix will allow users to delete missing source args
  when some files in the list have missing parent folders without
  interruption.

  This is fixed by patching in an upstream commit that allows files with
  missing parent folders to be handled without aborting.

  [Test Plan]

  # lxc launch images:ubuntu/focal builder
  # lxc exec builder bash
  # apt update
  # apt dist-upgrade
  # apt install -y rsync
  # mkdir -p a/1 b/1; echo "/1/2/3" > list
  # rsync --dry-run --stats -Pav --delete-missing-args --files-from=list a b

  * This should crash with exit code 2 after printing the following:

  building file list ...
   0 files...
  file has vanished: "/root/a/1/2"
  2 files to consider
  ABORTING due to invalid path from sender: 1/2/3
  rsync error: protocol incompatibility (code 2) at generator.c(1278) [generator=3.1.3]

  [Where problems could occur]

  Since the remove operation will now continue when files in the list
  have missing parent folders, other errors and warnings with different
  behaviors could arise instead.

  A warning that may arise the most often in these situations is the
  following:

  warning: some files vanished before they could be transferred (code
  24) at main.c(1207) [sender=3.1.3]

  This appears at the end of the above test case with the new code. The
  behavior is expected, but it may cause regressions due to changes in
  the output of certain use cases.

  [Original Description]

  Running

     rsync --delete-missing-args --files-from=...

  fails with error message like

  ABORTING due to invalid path from sender: dir1/dir2/dir3
  rsync error: protocol incompatibility (code 2) at generator.c(1271) [generator=3.1.2]

  if the listed directories are trying to delete full subtree of files.

  According to https://bugzilla.samba.org/show_bug.cgi?id=12569 this has
  been fixed in version 3.2.2.

  See also: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863334

  Could you update the rsync package or backport the fix?

  ProblemType: Bug
  DistroRelease: Ubuntu 18.04
  Package: rsync 3.1.2-2.1ubuntu1.1
  ProcVersionSignature: Ubuntu 5.4.0-47.51~18.04.1-lowlatency 5.4.55
  Uname: Linux 5.4.0-47-lowlatency x86_64
  ApportVersion: 2.20.9-0ubuntu7.17
  Architecture: amd64
  CurrentDesktop: MATE
  Date: Fri Sep 18 18:27:53 2020
  EcryptfsInUse: Yes
  InstallationDate: Installed on 2019-01-05 (621 days ago)
  InstallationMedia: Ubuntu 18.04.1 LTS "Bionic Beaver" - Release amd64 (20180725)
  SourcePackage: rsync
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/rsync/+bug/1896251/+subscriptions




More information about the foundations-bugs mailing list