Perte de la clef de synchronisation au bout d'un moment ?
publié le , mis à jouril ne se passe rien quand je clique sur le bouton étoile d'une fiche lieu. ça marche plus en prod, mais ça marche encore sur dev3 qui affiche https://codeberg.org/cartes/web/commit/d099d3f8a3afde4589dc5296944d102ff05dce10 donc je me dis que c'est lié à la nouvelle modale css, non ?
edge 153.0.4234.32 sur win11
laem
alors là ! Je pige pas essayez en navigation privée ? j'ai l'impression que c'est chromium qui merde sur le coup ça marche pour moi en nav privée, j'ai l'impression que c'est une erreur d'un composant interne de chromimum
Test sans pb sur Firefox.
n4n5
Moi ça marche mais c'est long la première fois genre 5sec
etienneJr
- ça marchait en navigation privée
- mais toujours pas en normal
- Ctrl+F5 ne changeait rien
- mais vider le localStorage a fonctionné
- comme un con j'ai pas pensé à faire une capture avant 🤦
- et je ne vois pas le lien car les favoris ne sont plus stockés en localStorage ?!?
laem
Ah oui c'est très étrange. Gardons ouvert.
laem
OK je pige. C'est syncKey. Quand tu effaces ton localStorage, ta clef de synchronisation est effacée.
D'une manière ou d'une autre, la clef était donc périmée. Peut-être que le serveur a une fonctionnalité de nettoyage des clefs (donc des documents automerge) qui ne sont pas utilisés ?
C'est pas bon signe, ça veut dire qu'on peut perdre la synchronisation au bout d'un moment. À investiguer.
De mémoire, tu sais si t'avais des favoris synchronisés, ou si c'était vide ?
laem
En plus de ça, l'erreur n'est pas explicite, le minimum c'est de la rendre explicite.
laem
J'avais testé l'autre fois, je viens de retester, la sync marche. Avec une nouvelle que je viens de recréer.
etienneJr
@laem wrote in https://codeberg.org/cartes/web/issues/3026#issuecomment-22977769:
De mémoire, tu sais si t'avais des favoris synchronisés, ou si c'était vide ?
non seulement je n'avais pas de favoris synchronisés, et en plus je n'avais très probablement pas de favoris du tout (c'est mon ordi du boulot)
n4n5
Voila ma situation: erreur avec automerge et mettre en favories ne marche pas
etienneJr
ah ! c'est cool que ça se soit reproduit chez toi aussi ! 😅
laem
Merde, donc il semblerait bien qu'on ait un système de péremption de clef, ça craint. Merci pour la vidéo.
laem
Ah, je viens de capter que le serveur automerge que j'ai mis en place n'était qu'un exemple aux dépendances pas mises à jour :o
Donc on tourne sur une version du serveur très vieille. M'étonnerait pas que la disparition des clefs vienne de là.
laem
OK c'est bon. J'ai intégré le code d'automerge qui tournait avec bunx dans notre serveur avec bun, et ça fonctionne, testé à l'instant. Gageons que ça résolve notre problème ici ! Sinon, il faudra continuer d'investiguer le pourquoi de ces documents périmés.
laem
Bon, j'ai retesté, que ce soit chromium linux ou chrome android, mettre en favori plante en fenêtre normale avec zéro données, mais fonctionne en navigation privée.
Il y a quelque chose qui se passe que je ne pige pas. On parle même pas de synchronisation là, c'est juste du Automerge en local sur l'indexedDb. C'est problématique, ça veut dire que les favoris ne marchent pas sur chrome !
laem
Ah j'ai ! Enfin j'ai la subtilité.
- si je vais sur /blog et que j'efface les données du site, puis ensuite je vais sur la carte, ça marche
- si je suis sur la carte, j'efface les données, puis je fais maj, ça marche pas
laem
Donc on doit avec un chevauchement de fonction, une clef générée dès qu'il en manque une, un truc comme ça.
laem
Bon, j'ai passé du temps sur ce sujet. Ce que je sais, c'est que le nettoyage des données de chrome cassait la partie sync.
C'est très simple au final : on n'instancie le stockage IndexedDB (donc local) d'automerge qu'à l'initialisation de la page. Le nettoyage des données détruit cette IDB.
Normalement c'est corrigé : on détecte ça et on force un rechargement de la page.
Au final, je me dis qu'on a peut-être tous eu ce bug suite à un effacement des données, en tant que dev.
Mais peut-être pas, il se pourrait bien qu'il y ait vraiment eu des clefs périmées pour autre raison !
laem
Donc une partie du problème est réglé, gardons ouvert au cas où :)