panic: bug: Notify backend is processing a change outside of the filesystem root


(Samuel Bruyère) #1

Hi, I have 2 computers :

  • One his “server” Windows 10 Pro N/x64/12Go RAM/6Tb HDD/ i7
  • Second is my laptop (Asus i7/8GoRAm)

I want to share my photos ~250Go / 50Kfiles. Server show error =>

panic: bug: Notify backend is processing a change outside of the filesystem root: f.root==\\?\d:\!\bruyere.samuel@gmail.com\hibou, root==\\?\D:\!\bruyere.samuel@gmail.com\hibou, path==\\?\d:\!\bruyere.samuel@gmail.com\hibou
[monitor] 17:00:53 WARNING: Panic detected, writing to "c:\hdrive\data\syncthing\panic-20180910-170053.log"
[monitor] 17:00:53 WARNING: Please check for existing issues with similar panic message at https://github.com/syncthing/syncthing/issues/
[monitor] 17:00:53 WARNING: If no issue with similar panic message exists, please create a new issue with the panic log attached
[monitor] 17:00:54 INFO: Syncthing exited: exit status 2
[monitor] 17:00:55 INFO: Starting syncthing

And it seams no files where send (upload/download at 0).

panic-20180910-170053.log (325.6 KB)

Thank’s for help ! Sam


(Simon) #2

For easier comparison:

f.root == \\?\d:\!\bruyere.samuel@gmail.com\hibou
root   == \\?\D:\!\bruyere.samuel@gmail.com\hibou  
path   == \\?\d:\!\bruyere.samuel@gmail.com\hibou  

The issue is, that filepath.EvalSymlink always converts drive letters to uppercase, while notify apparently does not and neither do we when creating a filesystem. I see two possible solutions:

  • Make the watcher check case insensitive on windows.
  • Always convert drive letter to uppercase on filesystem creation.

@AudriusButkevicius @calmh What do you think?

Also I am pretty sure that this issue is in place since before 0.14.50, so no RC material (though I am a bit astonished it never came up before).

@Samuel_Bruyere The quick workaround is to change the drive letter in the folder root path to be uppercase (you need to do that in the config while syncthing is stopped, it’s entirely harmless).


Panic Bug v0.14.50 Windows
(Antony Male) #3

Personally I think that makes most sense?


(Jakob Borg) #4

This has come up before, I’m sure we have / had an issue on it and discussed the case of drive letters then. And yeah it sounds like the entire check could be case insensitive on Windows…


Edit: Yeah, it showed up in https://github.com/syncthing/syncthing/issues/4877.

panic: bug: Notify backend is processing a change outside of the filesystem root: 
root        == \\?\d:\minecraft\curse,
rootSymEval == \\?\D:\Minecraft\curse,
path        == \\?\d:\minecraft\curse\.syncthing.tmp.973959822

(Simon) #5

Great, and I even added a test back then, but crippled it by a later general watcher test “improvement” - so it didn’t catch the regression…

Also I don’t think this should be possible on 50-rc.3, so lets try to uncripple that test.


(Samuel Bruyère) #6

Hi all, I’ve stop syncthing, editing the xml and replace d: with D: ; restarting.

Waiting for tests :slight_smile:

Tks Sam


(Simon) #7

I fixed the test and it looks like it does what it should, but the issue doesn’t reproduce: https://github.com/syncthing/syncthing/pull/5176

I am at a loss how the panic in the first post could happen on 0.14.50-rc.3.


(Samuel Bruyère) #8

Hi, WIth D:\ that’s work.

/!\ On my “server”, it’s seams to be on V0.14.50 and no updates was found => 11:02:17 INFO: Default folder created and/or linked to new config 11:02:18 INFO: No upgrade available (current “v0.14.50” >= latest “v0.14.50”).

Parameters are

image

Don’t understand why Beta was not download, copy paste V0.14.50 RC3 manually ?

Regards Sam


(Simon) #9

0.14.50 is newer than 0.14.50-rc.3. Well actually it’s the same thing, but it is correct that it updated to it, as it is the final release of .50, while .50-rc.3 is the last release candidate. As soon as 0.14.51-rc.1 is out it will update to that.

It is conceivable that your rather exotic path (\!\bruyere.samuel@gmail.com) makes the difference, but I don’t see any reason why it should.

Anyway, as far as my understanding of the code goes and with regards to the working and passing test, there is no problem with the casing of volume letters. Your case shows there is some kind of issue, but unfortunately not how. And I don’t have time to investigate into the blue, meaning this issue will rest on my side until I get new pointers (and even then it might take a moment).


(Dr Schnagels) #10

I got this now to when i changed the folder from sendreceive to receiveonly. [RYPX3] 13:45:50 INFO: Folder wserver isn’t making sync progress - retrying in 4m0s. panic: bug: Notify backend is processing a change outside of the filesystem root: f.root==\?\n:\wserver, root==\?\N:\wserver, path==\?\n:\wserver goroutine 133 [running]:


(Dr Schnagels) #11

after setting it to N: in the config file manually the panic is gone. Unfortunately i use lower case drive letters in all my folders. If i change it to upper case, will a rescan be triggered?


(Simon) #12

Nope, that shouldn’t cause a rehashing of your files.


(Jordan Gomila Garriga) #13

how to ammend this issue in a windows 2003 ?


(Simon) #14

No difference - changing the path in the config has nothing to do with windows version.


(Jakob Borg) #15

This should also be solved in .51-rc.1 that is out.


(Samuel Bruyère) #16

cool :slight_smile:

Tks !


(Ingo Karstein) #17

First: THANK YOU FOR SYNCTHING!

I have the same bug but in another situation:

I have linked a syncthing folder using mklink on windows to another folder. Because I have several machines with different drive configurations.

On one machine I have a physical drive “W:” with plenty of space. On the other machine there is only “C:” drive.

To be able to use the same path to my files I have created a symbolic link from W:\Sync to C:\Sync on the one machine.

There I get the error:

panic: bug: Notify backend is processing a change outside of the filesystem root: f.root==\?\C:\Sync, root==\?\w:\sync (lower), path==\?\c:\sync (lower)

The symbolic link was created with

mklink /D C:\Sync W:\Sync

Regards Ingo


(Jakob Borg) #18

Simplest change is to change from C: to W: in the config.xml as well.


(system) #19

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