Paused (unused) remote device gets unpaused every time i start syncthing

Hello there,

my questions:

  • is this expected behaviour?
  • Do paused devices try to establish connections?
  • Do paused (unused) devices try to establish connections?
  • Do unpaused (unused) devices try to establish connections?

it is not clear to me, why the device gets unpaused everytime i start syncthing.

I am happy with my current setup, was just wondering :slight_smile:

Edit: My current setup:

  • The device “FKJEGNS” gets unpaused everytime i start Syncthing. I have to manually Pause it.
  • FKJEGNS is a remote device and when turned on by its operator, it does have active connections to server, but not my local device. While all three devices have access to the same folder, my local device does not share any folders and connections with FKJEGNS directly, but rather bottlenecks through the server.
  • i could remove this device from my device list, but i want to have it in there because 1) i don’t want to lookup the device id again as it is a remote device. 2) i want to have the device id in written form somewhere as backup in case my server crashes.

Here the logs:

2021-08-27 10:48:56 My ID: GTMM2PM-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX
2021-08-27 10:48:57 Single thread SHA256 performance is 1493 MB/s using minio/sha256-simd (351 MB/s using crypto/sha256).
2021-08-27 10:48:58 Hashing performance is 890.31 MB/s
2021-08-27 10:48:58 Overall send rate is unlimited, receive rate is unlimited
2021-08-27 10:48:58 Using discovery mechanism: IPv4 local broadcast discovery on port 21027
2021-08-27 10:48:58 Using discovery mechanism: IPv6 local multicast discovery on address [ff12::8384]:21027
2021-08-27 10:48:58 Ready to synchronize "server-ALLE" (6cjdy-yq7hw) (sendreceive)
2021-08-27 10:48:58 TCP listener ([::]:22000) starting
2021-08-27 10:48:58 QUIC listener ([::]:22000) starting
2021-08-27 10:48:58 GUI and API listening on 127.0.0.1:8384
2021-08-27 10:48:58 ...
2021-08-27 10:48:58 Access the GUI via the following URL: https://localhost:8384/
2021-08-27 10:48:58 My name is "Thilo-X470-AORUS-2019"
2021-08-27 10:48:58 Device SVA7MK7-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX is "Thilo-Laptop-HP-84AC" at [dynamic]
2021-08-27 10:48:58 Device WEALBVQ-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX is "thilo-Aspire-ES1-311" at [dynamic]
2021-08-27 10:48:58 Device BJGC44M-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX is "SimonPC-GA-H81M" at [dynamic]
2021-08-27 10:48:58 Device FKJEGNS-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX is "CZ-Ertel-Lenovo-H30-05" at [dynamic]
2021-08-27 10:48:58 Device F4MFRUP-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX is "server" at [tcp://192.168.178.22:22000]
2021-08-27 10:48:58 Device JQBL4SA-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX is "Ertel-thinkcentre-m83" at [tcp://192.168.178.21:22000]
2021-08-27 10:48:58 Ready to synchronize "server-e" (cnh7n-9nr2v) (sendreceive)
2021-08-27 10:48:58 Ready to synchronize "server-k" (n7sos-wqu7u) (sendreceive)
2021-08-27 10:48:58 Ready to synchronize "server-t-150" (zgeph-pvpqa) (sendreceive)
2021-08-27 10:48:58 Established secure connection to F4MFRUP-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX at 192.168.11.100:22000-192.168.178.22:22000/tcp-client/TLS1.3-TLS_CHACHA20_POLY1305_SHA256
2021-08-27 10:48:58 Device F4MFRUP-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX client is "syncthing v1.18.1" named "server" at 192.168.11.100:22000-192.168.178.22:22000/tcp-client/TLS1.3-TLS_CHACHA20_POLY1305_SHA256
2021-08-27 10:48:58 Completed initial scan of sendreceive folder "server-k" (n7sos-wqu7u)
2021-08-27 10:48:58 Resuming FKJEGNS-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX
2021-08-27 10:49:07 Completed initial scan of sendreceive folder "server-ALLE" (6cjdy-yq7hw)
2021-08-27 10:49:12 Completed initial scan of sendreceive folder "server-e" (cnh7n-9nr2v)
2021-08-27 10:49:13 Completed initial scan of sendreceive folder "server-t-150" (zgeph-pvpqa)
2021-08-27 10:49:31 Pausing FKJEGNS-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX

Paused devices and folders are set as such in the config file and not automatically resumed unless you start with --unpaused, so this is unexpected. And not reproducible, for me.

This is what i found in the config.xml file directly after starting syncthing:

</device>
<device id="FKJEGNS-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX" name="CZ-Ertel-Lenovo-H30-05" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
    <address>dynamic</address>
    <paused>false</paused>
    <autoAcceptFolders>false</autoAcceptFolders>
    <maxSendKbps>0</maxSendKbps>
    <maxRecvKbps>0</maxRecvKbps>
    <maxRequestKiB>0</maxRequestKiB>
    <untrusted>false</untrusted>
    <remoteGUIPort>0</remoteGUIPort>

This is what i found while syncthing was still running, but after i paused the device:

</device>
<device id="FKJEGNS-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX" name="CZ-Ertel-Lenovo-H30-05" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
    <address>dynamic</address>
    <paused>true</paused>
    <autoAcceptFolders>false</autoAcceptFolders>
    <maxSendKbps>0</maxSendKbps>
    <maxRecvKbps>0</maxRecvKbps>
    <maxRequestKiB>0</maxRequestKiB>
    <untrusted>false</untrusted>
    <remoteGUIPort>0</remoteGUIPort>

Anything else i could provide?

This looks correct. I suggest you check the command line of syncthing as you are starting it, perhaps it jas a -unpause argument, or the wrapper you use passes that argument.

I am using SyncTrayzor for Windows 10 on my local device. Ok, will try without the wrapper.

It is SyncTrayzor.

If i start Syncthing normally, i can’t reproduce the behaviour and the device keeps on being paused even after a restart, as i would want to and as you say would be expected. As soon as i use Synctrayzor, it unpauses after restart.

I created an issue over there:

Have you checked synctrayzor options? I know it allows passing extra command line options

I am using a standard installation of SyncTrayzor. I have not changed any notable settings.

I guess i could do something like this, but i am not sure if it would be overkill:

There are various parameters inside the file SyncTrayzor.exe.config which can be customised by system administrators, including the default SyncTrayzor configuration (used to create the user’s SyncTrayzor config file when SyncTrayzor is first launched). To override these, pass the flag /SyncTrayzorExeConfig="Path\To\Customized\SyncTrayzor.exe.config" to the installer – the specified SyncTrayzor.exe.config will overwrite the default.

Note that the contents / structure of SyncTrayzor.exe.config may change between releases. Using the wrong version may cause a crash, or incorrect behaviour.

I personally would prefer if SyncTrayzor behaved like Syncthing without me as the user having to change a lot of stuff in the config. That doesn’t mean that additional options and features on the part of SyncTrayzor are not a nice thing to have :slight_smile:

I am fairly certain synctrayzor would not do what you suggest by default, so I more inclined to believe that it’s caused by some change you’ve made.

I believe SyncTrayzor unpauses devices automatically if you have checked the SyncTrayzor-specific option

“Pause devices which connect over a metered network” (not enabled by default).

Do you have enabled that option?

Indeed, yes, that option seems to be enabled. If found the following entry in the SyncTrayzor.log:

2021-08-28 02:17:08.7097 #3116 [Info] SyncTrayzor.Services.Config.ConfigurationProvider: Loaded default configuration: <Configuration ShowTrayIconOnlyOnClose=False MinimizeToTray=False CloseToTray=True ShowDeviceConnectivityBalloons=True ShowDeviceOrFolderRejectedBalloons=True SyncthingAddress=localhost:8384 StartSyncthingAutomatically=True SyncthingCommandLineFlags=[] SyncthingEnvironmentalVariables=[] SyncthingDenyUpgrade=False SyncthingPriorityLevel=Normal Folders=[] NotifyOfNewVersions=True LatestNotifiedVersion= ObfuscateDeviceIDs=True UseComputerCulture=True SyncthingConsoleHeight=100 WindowPlacement= SyncthingWebBrowserZoomLevel=0 LastSeenInstallCount=0 SyncthingCustomPath= SyncthingCustomHomePath= ShowSynchronizedBalloonEvenIfNothingDownloaded=False DisableHardwareRendering=False HideIntelXeWarningMessage=False EnableFailedTransferAlerts=True EnableConflictFileMonitoring=True ConflictResolverDeletesToRecycleBin=True PauseDevicesOnMeteredNetworks=True HaveDonated=False IconAnimationMode=DataTransferring OpenFolderCommand=explorer.exe "{0}" ShowFileInFolderCommand=explorer.exe /select, "{0}"LogLevel=Info> 
2021-08-28 02:17:08.7097 #3116 [Debug] SyncTrayzor.Services.Config.ConfigurationProvider: Found existing configuration at C:\Users\Thilo\AppData\Roaming\SyncTrayzor\config.xml

I can’t remember enabling that option. To be honest, i don’t even know WHERE to enable this option. I can’t find it in advanced Synctrayzor options.

Edit: I think i found that option. When i choose English language, it doesn’t translate, so sorry i only can post the german equivalent here: “Geräte anhalten, die über ein Netzwerk ohne Flatrate verbunden sind”

When i un-tick this option, the device keeps being paused.

I don’t understand xD

1 Like

Yup, that’s the option I mean. The feature unpauses devices automatically at some checkpoints (like startup) to check if they can connect via a non-metered connection. Therefore it’s kinda intentional that it breaks device pausing - it’s limited in capabilites.

Looks like I also must correct myself:

Browsing the SyncTrayzor source code, this is apparently enabled by default nowadays - it wasn’t on my older machines.

I am glad my memory served me right in asserting that i did not change any settings. Thank you Nummer378 for confirming and more importantly, pointing towards this option!

Three question left :smiley::

  • Do paused devices try to establish connections?
  • Do paused (unused) devices try to establish connections?
  • Do unpaused (unused) devices try to establish connections?

I guess the whole idea of keeping the devices paused is that they do not try to sync in cases where it is not wanted to sync, right? Also, if they did try to establish connections, would that not be a waste of, albeit probably tiny, processing power and internet traffic? So there definitely is a rationale for a pause.

Feel free to answer only if you know. Nothing at stake here, no time pressure. Am just curious.

From my knowledge, there is no difference between the two regarding connectivity. They will keep trying to establish connections if your device has been added to them.

Same as above, but here the difference is that your device will also keep trying to connect to them.

In this case, if you want to save their power and traffic, you will need to pause (or remove) your device on them. Pausing just them on your device still won’t prevent them from trying to connect. You do save your power and traffic this way though.

We don’t try to establish connections to paused devices. (And incoming connections from them are rejected.)

1 Like

Thanks for the clarification!

Regardless of what the maintainer(s) of SyncTrayzor do with the information stored in this thread, since my initial questions have been addressed: A big thank you all for the fast responses and help! :sunny:

3 Likes

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