systemd trouble after v1.1.1 upgrade

I’ve been using syncthing on my Ubuntu server (now 18.04 LTS) for years. With the v1.1.1 upgrade, my install stopped working.

After a reboot, systemd reports:

● syncthing@acr.service - Syncthing - Open Source Continuous File Synchronization for acr
Loaded: loaded (/lib/systemd/system/syncthing@.service; indirect; vendor preset: enabled)
Active: inactive (dead)
Docs: man:syncthing(1)

If I try to restart the service

sudo systemctl restart syncthing@acr.service

it hangs the terminal window (and the service does not start). I tried to look over the systemd logs using journald (using journalctl -e -u syncthing@acr.service) but the last entries are from the v1.1.0 install.

I have also tried disabling and re-enabling the service with those systemctl commands.

Incidentally, if I just start syncthing from the command line, everything looks good.

How shall I proceed?

P.s. Thank you for this awesome software.

The only thing that changed was, that there is now a After dependency on multi-user.target, but that should be a non-issue. It seems “wrong” to use restart instead of start when the service isn’t running, but that shouldn’t cause hanging either. So in the end I have no clue what might be going on.

1 Like

Very mysterious.

I’ve just downgraded to v1.1.0 and everything works now. (I used apt to uninstall and then reinstall the old version.)

If there is something I could do to help identify this bug, let me know. In the meantime, I will hope that someone with better systemd skills will run into the same problem and figure out what’s up.

Same problem here, also 18.04, I can confirm the observations. I didn’t make any changes to my config, so it must be related to the upgrade. Unfortunately, no clue either :confused:

Okay there’s a clue now, removing the multiuser after dependency does the trick.

I’m no systemd expert, but maybe that is the issue: When enabling the syncthing service, I get the output

$ sudo systemctl enable syncthing@linus.service
Created symlink /etc/systemd/system/multi-user.target.wants/syncthing@linus.service → /lib/systemd/system/syncthing@.service

Does that mean multiuser already depends on syncthing and we get a circular dependency?

Sounds like it! Our unit file:

...
[Install]
WantedBy=multi-user.target

This seems like a logic error, maybe saved by earlier versions of systemd not actually implementing logic. We should revert that latest change I think.

Someone mind filing an official bug on this on our tracker on GitHub to motivate the change?

Sure, will do :slight_smile:

Edit: For reference, see Systemd circular dependency prevents startup · Issue #5676 · syncthing/syncthing · GitHub

1 Like

As mentioned on that issue, but for the audience here,

I’m actually pulling this into 1.1.2 even though it’s very late in the cycle. I think this is justified by 1) it being a serious issue that blocks startup of syncthing and 2) the fix being a revert to a previously tested and known good (enough) setup.

I don’t plan to make another 1.1.2 RC for this.

Thanks @lseelinger for figuring it out.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.