Thanks for filing this bug in Ubuntu.

The scenario is confirmed: when specifying an address to bind to, rsync will 
fail if that address is not available:
/var/log/syslog:Jun  4 21:12:27 bionic-rsync-1774788 rsyncd[269]: rsyncd 
version 3.1.2 starting, listening on port 873
/var/log/syslog:Jun  4 21:12:27 bionic-rsync-1774788 rsyncd[269]: bind() 
failed: Cannot assign requested address (address-family 2)
/var/log/syslog:Jun  4 21:12:27 bionic-rsync-1774788 rsyncd[269]: unable to 
bind any inbound sockets on port 873
/var/log/syslog:Jun  4 21:12:27 bionic-rsync-1774788 rsyncd[269]: rsync error: 
error in socket IO (code 10) at socket.c(555) [Receiver=3.1.2]

The solution seems to be for rsync to adopt the socket option
IP_FREEBIND.

>From the ip(7) manpage:
IP_FREEBIND (since Linux 2.4)
If enabled, this boolean option allows binding to an IP
address that is nonlocal or does not (yet) exist.  This per‐
mits listening on a socket, without requiring the underlying
network interface or the specified dynamic IP address to be up
at the time that the application is trying to bind to it.
This option is the per-socket equivalent of the ip_nonlo‐ 
cal_bind /proc interface described below.

Until then, one workaround would be to configure the service file for
rsyncd to wait for the network to be online.

If you run:
sudo systemctl edit rsync.service

It will open an editor. Put these lines in:
[Unit]
After=network.target,network-online.target

Then save. That will create
/etc/systemd/system/rsync.service.d/override.conf with the two lines
above. Alternatively you can just create the file above directly with
the specified content without going through "systemctl edit".

You can then reboot and see if that helps. Note that the job will fail,
after reaching the network-online target, if you specify an IP address
that doesn't exist at that stage.

Another option I saw in https://unix.stackexchange.com/questions/442181
/sshd-failed-due-to-network-not-yet-available but haven't tested is to
make a system-wide change in /proc.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to rsync in Ubuntu.
https://bugs.launchpad.net/bugs/1774788

Title:
  Daemon won't start at boot up   (18LTS fully patched)

Status in rsync package in Ubuntu:
  New

Bug description:
  By adding the 'address=' option to the /etc/rsyncd.conf file, the
  daemon fails at boot.

  Once the NIC(s) is/are up, it will start fine when executed via
  systemctl start rsync

  
  ● rsync.service - fast remote file copy program daemon
     Loaded: loaded (/lib/systemd/system/rsync.service; enabled; vendor preset: 
enabled)
     Active: failed (Result: exit-code) since Sat 2018-06-02 08:01:31 CST; 
52min ago
    Process: 851 ExecStart=/usr/bin/rsync --daemon --no-detach (code=exited, 
status=10)
   Main PID: 851 (code=exited, status=10)

  Jun 02 08:01:31 billlaptop.private.ycc systemd[1]: Started fast remote file 
copy program daemon.
  Jun 02 08:01:31 billlaptop.private.ycc rsyncd[851]: rsyncd version 3.1.2 
starting, listening on port 873
  Jun 02 08:01:31 billlaptop.private.ycc rsyncd[851]: bind() failed: Cannot 
assign requested address (address-family 2)
  Jun 02 08:01:31 billlaptop.private.ycc systemd[1]: rsync.service: Main 
process exited, code=exited, status=10/n/a
  Jun 02 08:01:31 billlaptop.private.ycc rsyncd[851]: unable to bind any 
inbound sockets on port 873
  Jun 02 08:01:31 billlaptop.private.ycc systemd[1]: rsync.service: Failed with 
result 'exit-code'.
  Jun 02 08:01:31 billlaptop.private.ycc rsyncd[851]: rsync error: error in 
socket IO (code 10) at socket.c(555) [Receiver=3.1.2]

  ProblemType: Bug
  DistroRelease: Ubuntu 18.04
  Package: rsync 3.1.2-2.1ubuntu1
  ProcVersionSignature: Ubuntu 4.15.0-22.24-generic 4.15.17
  Uname: Linux 4.15.0-22-generic x86_64
  ApportVersion: 2.20.9-0ubuntu7.1
  Architecture: amd64
  CurrentDesktop: GNOME
  Date: Sat Jun  2 08:48:15 2018
  InstallationDate: Installed on 2018-06-01 (0 days ago)
  InstallationMedia: Ubuntu 18.04 LTS "Bionic Beaver" - Release amd64 (20180426)
  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/1774788/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to