German Umlaute like äöü seems to make trouble

Looks like fixing incorrectly normalized names on macOS doesn’t work any more; whether that’s a change in Syncthing or macOS I’m not sure.

Is the absolute path guaranteed to be normalized at this point?

It’s in the normalization step of the scanner, i.e. there’s no absolute path involved at all - it’s all relative paths on top of fs.Filesystem. And it occurs while normalizing, so path is not normalized, normPath is.
I know where the error occurs because of the “normalizing path” context in the log:

Then in normalizePath there’s only two places where a filesystem error can be returned:

This operation returning no such file is weird, given path comes from walking, i.e. has been stat-ed without error before.

rsync with iconv produce the same directory like mkdir :thinking:

So, currently file names must be in NFD (macOS standard) for Syncthing to pick them up on macOS.

1 Like

So OP can fix this by converting his remaining NFC normalized files to NFD first.

e.g using rsync locally to a temp folder with rsync --iconv=UTF-8,UTF-8-MAC

1 Like
1 Like

Must install a newer version of rsync for that. Local it work remote the name isn’t converted.

Can we check if this is the root-cause for the issues? Or does it sound reasonable to you?

Then I would remove the complete folder on the mac and transport it again, via syncthing. Seems a cleaner approach to me with no garbage in the database. Or is the conversion with rsync the better approach?

Everything points at the normalization as the root cause. The fix has just been merged to the main branch, and an v1.17.0-rc.4 will be out soon containing that fix. You can wait for that or check on your test setup already now with the current build artifact from main: https://build.syncthing.net/buildConfiguration/Syncthing_BuildMac/103268?buildTab=artifacts

I download the version. Get at about versionnr: v1.17.0-rc.3.dev.11.g97437cad, macOS (64-bit ARM) Still no success. console-out.log (66.9 KB) syncthing.log (319.2 KB)

Testscenario is still the same. Create at commandline a file with echo “asd” > äöüß.cox.txt

Forgot to activate debug, so once again syncthing.log (351.0 KB) console-out.log (32.3 KB)

The logs are still from v1.16.1:

[start] 13:28:27 INFO: syncthing v1.16.1 “Fermium Flea” (go1.16.3 darwin-arm64) teamcity@build.syncthing.net 2021-05-05 07:37:23 UTC [stnoupgrade]

Base on console-out.log it’s [start] 2021/05/21 20:04:39.938450 main.go:571: INFO: syncthing v1.17.0-rc.3.dev.11.g97437cad "Fermium Flea" (go1.16.4 darwin-arm64) teamcity@build.syncthing.net 2021-05-17 10:35:03 UTC The syncthing.log contains the whole log of all test. I didn’t create a complete new environment. Only new files. Look at line 2113.

If it’s necessary to create a complete new environment. I can do this too.

This is new and amazing:

folder.go:1080: INFO: Scanner (folder "testSyncFolder" (testSyncFolder), item "äöüß.cox.txt"): normalizing path: file does not exist

1 Like

We have such message at the beginning, so for me, it looks like nothing has changed. What can I do to enable further improvements of syncthing?

You caught a bug in the fix that greatroar noticed and fixed already: Fix UnicodeLowercaseNormalized on lowercase NFD by greatroar · Pull Request #7692 · syncthing/syncthing · GitHub. With a newer build that includes said fix, this issue should finally be gone: https://build.syncthing.net/buildConfiguration/Syncthing_BuildMac/103620?buildTab=artifacts

Made a retest, now everything seems okay. Many thanks! Will the 1.7 released in the first week of July?

1 Like

great. ~yes~ no

No, June, as per the header here on the forum.

1 Like