Removal of a device from an introducer doesn't carry over to other devices


#1

I have a syncthing setup with 3 shared folders, and a few devices, one of which is an introducer. All nodes are added and removed through the introducer only (i.e. when I want to add a new device, I would add it to the introducer only, and everyone else adds it automatically).

From what I understand from the documentation, removing a device from the introducer node would remove the device from all the other nodes (if those nodes were introduced to that device by the introducer). I have twice tried to remove devices from the introducer node, thinking it would carry down to the rest of the nodes. However, this has not happened.

Is there something I’m missing?


(Audrius Butkevicius) #2

It depends, check the config file to see who introduced it, perhaps that is not set. Also, devices have to connect for the removal to happen. There is also a flag to disable removals, just do additions, yet I don’t remember what the default state of that flag is, perhaps it’s enabled by default (check advanced settings).


#3

I have looked into the config file. I have noticed that each folder has a list of devices, and these devices can be the same in other folders. It seems that many of the devices have the introducedBy flag set for one folder, but in other folders, the introducedBy flag is not set. I’m not sure how this happened. Is this normal and expected behaviour? Maybe this is why the nodes haven’t been removed from the other computers.

It’s worth noting however that the “Introduced By” value in the GUI is set for all remote devices.

It is also worth noting that different computers run different versions of Syncthing. This might be the cause?

Also, scrolling down, I have noticed that each device is listed as a separate entry, outside of the folder tags and each have the correct introducedBy attribute. So it seems to me that there that each device is listed multiple times in the config file, sometimes with a valid introducedBy attribute and sometimes without. This may be the reason?

The flag to disable removals is called skipIntroductionRemovals. All nodes have this set to false.


#4

Also, just to be clear, when you say devices have to connect for that to happen, what do you mean?

Say there are 3 devices, A, B, and C, with A being the introducer. If A removes C, does B need to only connect to A in order for B to remove C? Or will B also need to connect to C before the removal happens? Also, will C need to be connected to A at all for the removal to happen?


(Audrius Butkevicius) #5

There are two concepts, introduced devices and introduced devices into “share with” in a folder.

If introduced by is not set on a device on a folder, that means you manually pressed accept when the prompt to share a folder came up, so some device stopping sharing that folder has no effect.

Same goed for devices, if you manually pressed accept when the device connected to you, it’s not introduced, it’s manually added.


#6

It seems that I may have made a mistake when accepting a shared folder.

This is how I created the shared folder for everyone:

  • On the introducer device, I have added all the remote devices. All the remote devices also added the introducer, and set it as the introducer in the settings. This may have been done in the past already for other folders
  • I created this folder on the introducer device, and shared it with the remote devices
  • I wait for the remote devices to get a notification for a new shared folder from the introducer device, then I press accept. Sometimes I get a lot of notiications for sharing the folder, from the other non-introducer devices, which I ignore. I only accept the request from the introducer device. In the options, it asks me who to share it with. I assumed that this would be set automatically, so I only select to share it with the introducer device.

Is there anything wrong with the steps I have taken?


(Audrius Butkevicius) #7

Right, but what you expect to happen after that?


#8

Well, I assume that if I decide to remove a remote device from the introducer, then it should get removed from all shared folders on the introducer, and subsequently it should get removed from all the other devices as well.

I feel like there’s something I’m not understanding here…


(Audrius Butkevicius) #9

Yes, that’s what should happen, but only in the scenario where the device was added to the folder via due to the introduction, and whether that happened you can check by checking the introducedBy in the config.

Can you reliably reproduce the issue?


#10

I see, so this shouldn’t be normal behaviour. However, I may have followed incorrect steps inadvertantly, or maybe the use of different versions for different clients has caused an issue.

I may try to reproduce the issue with VM’s if I have the time. If I can reproduce it, I’ll raise the issue separately issue tracker.

Thank you for your help.