Heute Nacht habe ich mich einem hartnäckigen Syncthing-Problem gewidmet: Zwei meiner Dateien ließen sich partout nicht mit dem Server synchronisieren. Wie sich herausstellte, treten bei verschlüsselten Geräten in Kombination mit gelöschten Dateien regelmäßig solche Synchronisationskonflikte auf. Ein seit 2023 dokumentiertes Problem. Eine dauerhafte Lösung gibt es noch immer nicht, aber zumindest existiert ein Workaround.
Seit Wochen, vielleicht schon seit Monaten, sehe ich diese Konflikte in den Protokollen. Und immer wieder mal habe ich kleine Versuche unternommen, sie los zu werden. Doch bisher ohne Erfolg. Heute Nacht nun wollte ich einfach nicht müde werden, und so nahm ich mir die Zeit, dieses Problem endlich mal anzupacken. Es ist zwar nichts Großes oder Schlimmes, aber es störte mich schon lange.
Ich betreibe auf meinem VPS eine eigene Syncthing-Instanz, die ich hauptsächlich für Logseq eingerichtet habe. Da Logseq meine Knowledge-Base ist und viele persönliche Daten enthält, werden die Daten bereits Client-seitig verschlüsselt. Der Server kennt den Inhalt der Dateien nicht. Das ist ein tolles Feature! Nur leider experimentell:
Warning: This feature should still be considered beta / testing only.
Bei meiner Recherche stieß ich auf ein GitHub-Issue, das das Zurücksetzen der Delta-Indizes empfiehlt:
syncthing --debug-reset-delta-idxs
Als ich den Befehl testen wollte, bemerkte ich, dass meine Version veraltet war! Die Option wurde nicht erkannt. Hui! Wie konnte mir das entgehen? Ein einfaches Update genügte auch nicht. Es musste ein vollständiges Upgrade her:
# Repository-Schlüssel und Quellen einrichten
sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list
# System aktualisieren und Syncthing installieren
sudo apt-get update
sudo apt-get install syncthing
Und auch in der 2er-Version ist dieses tolle Feature weiterhin experimentell. Tja. Nach dem Upgrade ließ sich der Workaround aber auf dem Syncthing-Client ausführen, und die entsprechenden Meldungen verschwanden endlich aus den Protokollen \o/