Global state different from local state

Running test at lan and wan level, I’m playing with less than 2Gb data, 20 files and 5 directories. But I’ve been using syncthing while some devices were off. So the “master” v0.14.43, Linux (ARM) read-only was unable to display a correct global state; exploding to 76 files /43 folders while local state idle at last with 23/3. To try to stabilise this, I set the master in read-write mode before returning to read only. Then I started all the other device to set everything on and see if I could recover a steady correct state. It took time (I’m using portable versions on usb key too…) and when everything was stable, I still had this difference between global and local state. Reanalyse, restart… nothing did change. I’ve seen discuss about exclusion, so I empty the only one excluded file in the cluster but no change either. Alle devices run various arm/ win/ lin v0.14.43 except one linux running v14.38 from .deb depot.

Thanks !

Weird.

1 Like

Yep. And difficult to try to reproduce because I didn’t find how to reset this counter to the real present state… Is it computed or is it written in a hidden config file somewhere ? Edit : or a debug mode to change it ? Or maybe view where they are coming from… to have a track to understand. Thanks.

Some ignores in other nodes ?

No, there shouldn’t be. At least on the devices I can handle in my lan. I can switch off sync with distant device if needed to check. Edit : re-check all locally, no exclusion file. The two distant nodes are test mates, I didn’t ask them to put anything in .stignore. Unless this file would have been copied, it shouldn’t be on distant node either.

I met this issue too. AFAIR I had to “Remove” the share in some nodes to see what happens to local vs global in other nodes, and I saw they turned to be the same at some point. Then I added back excluded nodes one by one. Kind of index rebuild. The nice nowadays is that .stignore will survive.

1 Like

How did you proceed ? I turned some share off but they were reintroduced immediatly. I tried to pause them too then resume… Now I think totally removing the unstable device and then reintroduce it into the cluster.

Gérer -> Enlever (badly localised ?)

1 Like

Where did you saw that ??? We only have Pause/Resume !!!

Here : uncheck “synchronise with”

Edit : I 've just tried to uncheck all devices; even when “not sharing”, stand alone, the difference between global and local remains…

Thanks ! It did it. I’ve removed the share and the device from the cluster from the “buggy” device, then put it back in and after it re-sync, everything was ok, so I set it again as read only (it has to be the master). It seems ok now. :slight_smile:

So, I 've found what happend : when trying various exclude config in .stignore, the number of file/folder begins to increase in global while it changes up/down in local counter. It happens even in a stand alone configuration with a single directory, not shared yet and without any other device in the cluster. Thanks :slight_smile:

Can you give some more details about what you do when “trying various exclude config in .stignore”? Ideally some simple steps such that it can be reproduced and debugged - that’d be great.

Edit the .stignore file, try various way to understand how to distinguish root files, root folders, subdir folders and file types, then save and rescan to see what happens on another device. I wanted to exclude everything, except any .Pdf anywhere in the tree. Here are collected the tested contents of .stignore. Display is a bit weird here, without CReturn replaced by /. I cannot be more precise as I don’t know which one causes the trouble exactly. Hope it helps, otherwise just ask :slight_smile:

(?i)!/*.PdF
!/*
/*/
*

//19/0
(?i)!/*/*.pDf
(?i)!/*.PdF
/*/*/
!/*/*
/*/
//!/* sinon 21/2
*

//19/0
(?i)!/*/*.pDf
(?i)!/*.PdF
//!/*/*
//(?i)!/English
//(?i)!/FrencH
//!/*
*/*/
*/
*

//20/0
(?i)!/*.PdF
!/*/
*

//20/2
(?i)!/*/*.pDf
(?i)!/*.PdF
/*/*/
// !/*/*
/*/
!/*
*

//18/0
(?i)!/*/*.pDf
(?i)!/*.PdF
/*/*/
/*/
*

//18/0
(?i)!/*/*.pDf
(?i)!/*.PdF
*/*/
*/
*

//21/2
(?i)!/*/*.pDf
(?i)!/*.PdF
!/*/*
!/*
/*/*/
/*/
*

//21/2
(?i)!/*/*.pDf
(?i)!/*.PdF
!/*
*/*/
*/
*

//17/0
(?i)!/*/*.pDf
(?i)!/*.PdF
*/*/
*/
*
1 Like

I never thought multiple (?i) or (?d) prefixes in the same pattern would ever work. Are you sure of that ?

(?i)*.pdf would do the job I think

They are not in my case; it’s displayed on one line because the carriadge return are omitted in “code display”. But anyway, I think I’ve read in doc that it’s allowed. I 'll post back if I find it. Here is how the first should look like :

(?i)!/*.PdF

!/*

/*/

  • (<- this is a star)

Edit : https://docs.syncthing.net/users/ignoring.html

quote : Prefixes can be specified in any order (e.g. “(?d)(?i)”), but cannot be in a single pair of parentheses (not “(?di)”).

Mistake. Good way :

!(?i)*.pdf
*

(?i)!*.Pdf do the job but when you try to exclude all rest with a star *, it cuts the subdirectories too. So you only have the root .pdf. (Spending 2 days with this…) So the target was to design generic subfolder content with something like **/*.pdf, **/**/*.pdf, but I didn’t succeed. So I had to list all directories in the exclude file. Inspired from : (searching source). Edit : found un-ignore subfolders & files of ignored folder

Hmmm, strange, I didn’t thought it did.

Then what about this ? :

!(?i)**.pdf
*

Nope, tried too, like

 *, **, /*, /**, /*/, /**/...