Bug nextcloud avec object store quand move de documents

Pour info on a fait face à un joli bug sur Nextcloud à partir de 28.0.11, 29.0.7 et 30.0.0.

Quand on move des documents, les documents sont supprimés dans l’object store

C’est fix dans la 30.0.1 mais pas backport: perf(ObjectStoreStorage): Improve (slow) move on same object bucket by cfiehe · Pull Request #47986 · nextcloud/server · GitHub
Si vous voulez mettre un petit pouce sur mon commentaire ça peut aider: perf(ObjectStoreStorage): Improve (slow) move on same object bucket by cfiehe · Pull Request #47986 · nextcloud/server · GitHub

On a fait un patch de notre côté pour la 28.0.11 de notre côté: nextcloud/patches/moveFromStorage.diff · main · indiehost / libre.sh / Images · GitLab

On a perdu pas mal de fichiers depuis la mise à jours de nos nextcloud jeudi dernier… On est en train de faire un script pour les restore, on pourra le partager. On va faire mode bourrin dans un premier temps, restore de tous les fichiers avec un delete marker à partir de la date de la mise à jours et on fera tourner un autre script qu’on a déjà pour nettoyer - on compare la db et les objets dans l’object store.

Pour info notre Post-mortem: [Bug] Nextcloud - Déplacement de fichiers rend ces fichiers inacessibles - PostMortem - Forum IndieHosters

Je ne sais pas qui dans les CHATONS utilisent un object store et est donc concernés, à ma connaissance c’est le cas de @LeCloudGirofle @Framasoft

3 « J'aime »

Ca aussi ca fait peur: fix: ensure only object versions are returned by hrenard · Pull Request #62 · nextcloud/files_versions_s3 · GitHub
On a vu des trucs dans nos logs qui ne nous ont pas rassuré…

Je ne sais pas vous mais sur les dernières versions Nextcloud c’est un peu le bordel, on enchaîne les bugs…

Merci pour le ping, on avait prévu de mettre à jour Framaspace vers 29.0.8 sous peu, on va regarder de plus près.

Cela dit, le problème semble bien être cet ajout (backporté dans toutes les versions majeures que tu cites) : fix: write object to the correct urn when moving from another storage to object store by icewind1991 · Pull Request #46013 · nextcloud/server · GitHub, identifié comme tel dans ce ticket Large files (>10MB) on S3 primary storage are lost when uploaded to group folder · Issue #48481 · nextcloud/server · GitHub et soit-disant corrigé en 29.0.8.

Or, je ne vois rien de très parlant dans les changements de la 29.0.8 sauf cette PR très mal nommée : [stable29] Ci fixes by backportbot[bot] · Pull Request #48214 · nextcloud/server · GitHub, donc on va regarder ce que ça donne déjà avec cela, sinon on backportera effectivement perf(ObjectStoreStorage): Improve (slow) move on same object bucket by cfiehe · Pull Request #47986 · nextcloud/server · GitHub, par dessus.

On a choisi de ne pas utiliser files_versions_s3, c’était assez embêtant même si je n’ai plus la raison exacte en tête.

En tout cas, c’est clairement un témoignage de plus que suivre les dernières versions de Nextcloud de trop près, c’est vraiment payer les pots cassés. Et encore, sur le serveur il y a des vraies versions beta et release candidates qui évitent en général ce genre de souci, je ne parle pas des applis desktop et mobile. Là, c’est un vrai fail pour avoir backporté des trucs cassés.

Hello,
Nous aussi c’est le bordel, dossiers qui disparaissent, corbeille en vrac, etc. Ping @keo @yann.ck. Je cache pas qu’au Cloud Girofle on est fatigué⋅es de payer les pots cassés, on compte plus les bugs et régressions qui nous affectent, mais on en rajoute toutes les semaines si on inclut le desktop.

1 « J'aime »

Courage à vous. J’imagine à peine à quel point ça doit vous faire vous arracher les cheveux :frowning:

1 « J'aime »

c’est assez facile à tester:

  1. Tu partages un dossier avec des documents à un UserA
  2. Depuis le compte de UserA tu prends un document de son dossier et tu le bouge à la racine de son espace.

Tu verras bien le document mais tu ne pourras pas l’ouvrir, il a été supprimé de l’ObjectStore.

C’est ce commit qui introduit le bug: fix: rework move into object store to better preserve fileids · nextcloud/server@3e12e1e · GitHub

Ca part d’une bonne idée, ne pas changer l’id du fichier ce qui évite de créer un nouvel objet dans l’ObjectStore, sauf que après dans le unlink l’objet est supprimé mais comme c’est le même que l’original…
Si le bucket n’est pas versionné c’est encore plus risqué…

Cette PR fix indirectement le problème en bypassant le code quand t’es dans le même objectstore et ça fait juste un move dans la db perf(ObjectStoreStorage): Improve (slow) move on same object bucket by cfiehe · Pull Request #47986 · nextcloud/server · GitHub

1 « J'aime »

Oué c’est assez pénible, alors certes on ne va pas trop se plaindre on ne paye pas le support… mais bon je rêve d’une mise à jours même mineure qui se passe bien… Là on vient de passer un sale mois et tu sais que dans 6 mois tu vas y retourner.

Et justement @tcit on a toujours eu cette stratégie d’avoir 2 versions majeures de retards, on a même trop tardé en passant sur la 28 au début du mois, elle est sortie depuis décembre 2023 et le 27 était end of life fin Juin. Je pense que l’on peut dire que l’on a été safe et pourtant on se tape des bugs vraiment critiques de ce type.

Ce que j’ai du mal à comprendre c’est que même des mineurs introduisent des bugs comme là. On a du mal à trouver la bonne stratégie de mise à jours…

C’est dommage je reprenais espoir, on était bien sur notre 27 qui était stable… Je demande pas grand chose, je comprends que maintenir la galaxie d’apps soit complexe mais juste files, calendar et contact qui ne pètent pas à chaque mise à jours… j’ose même pas demander le desktop client :stuck_out_tongue:

Bon aussi faut dire que l’on est sur une infra un peu exotique avec du, nginx php-fpm, pg et s3… Sûrement que passer sur une infra Apache avec un filesystem « classique » nous permettrait d’avoir moins de bugs…

En tout cas, de notre côté on commence à avoir plus de ressources pour faire un process QA, insuffisant apparemment vu que l’on se fait encore surprendre, et on se disait que ça pourrait être bien de mutualiser cet effort entre hébergeurs Nextcloud. @Arnaud est chaud pour initier quelque chose.

On voudrait aussi payer du dev, je balance à chiffre au pif et sans concertation mais on pourrait probablement payer autour d’1/4 de dev. Je ne sais pas qui pourrait se joindre à nous mais on pourrait s’émanciper de l’hégémonie de l’entreprise Nextcloud en étant capable de contribuer et fix du code core nextcloud sans financer des features IA :see_no_evil:

4 « J'aime »

Moi qui me demandais si on devrait pas passer à S3 sur sans-nuage.fr, je pense qu’on va attendre un peu :confused:

Courage à vous, et merci pour vos contrib’/debug.

Chez @Paquerette aussi on pensait regarder pour mettre en place du stockage S3, je pense que cela sera pas pour Nextcloud en tout cas :-/

Merci beaucoup pour les retours de chacun. Il faut que l’on regarde si on a de la ressource pour s’ajouter au financement

On en parle en réu collégiale et on en reparle :small_airplane:

1 « J'aime »

De notre côté, le sujet de la mutualisation des efforts sur Nextcloud peut nous intéresser également.

Néanmoins, 2024 ayant été une année fort difficile pour Framasoft, cela va fortement dépendre de nos moyens et de nos ambitions pour 2025. On reviendra donc sur le sujet l’année prochaine, mais on suit de près en attendant.

2 « J'aime »

Merci beaucoup pour ce partage, et tous les messages hyper précis !
Sur isidorus.fr j’envisageais aussi très sérieusement de basculer vers un stockage s3 pour les données de Nextcloud, je vais revoir mes plans du coup. Peut-être que j’y viendrai mais plus prudemment (plus de sauvegarde, peut-être avec un bucket version né).

Bon courage pour la récupération de fichiers :pray::pray::pray:

On confirme que le souci semble résolu en 29.0.9, avec le mode opératoire de test décrit par @unteem.

2 « J'aime »

Salut à vous !

Je vous parle au nom du BIB, hackerspace qui fournit entre autre du NC mais sans la charte chaton qu’on ne peut tenir pour cause de manque de temps vu tous les projets… Pour l’instant notre plus grosse instance compte environ 500 comptes inscrits.

L’équipe frama via masto m’a transmis le lien de ce fil.
On tente de mettre en place des outils le plus accessible pour des orga collectives horizontales. Malheureusement le dev de NC est quand même bien orienté entreprises et donc pyramidale. Après pas mal d’issues ouvertes sur pas mal d’applications et notamment des fonctionnalités qui touches au core, j’ai cru comprendre que ça va pas du tout être une priorité.

Au vu du nombre d’orga qui ont besoin de ces outils (avec peu de sous chacune, mais peut-être qu’on peut collectiviser), ça me parait être important de pousser ces fonctions.

S’il y a un mouvement collectif pour financer du dev, j’en parle dans ces réseaux !

1 « J'aime »

Je reviens sur le sujet avec un premier effort de recensement des versions que l’on utilise chez Framasoft et des éventuels patchs appliqués (on verra par la suite pour les bugs).

J’ajoute aussi un lien pour un document partagé avec nos spécificités d’infrastructure et un template de test/validation (QA) des versions Nextcloud.

Je mets sur CryptPad sur la table pour faire remarsuer qu’il y a des alternatives à Nextcloud qui soient KISS et au modèle éco agréable (quoi que pas pérenne vu qu’ils dépendent de NGI).
Oui ya pas les apps NC, mais à vous lire je me dis qu’on passe moins de temps à administrer 5 softs que juste NC.
Bien sûr vous êtes tributaires de vos choix passés et n’allez pas éteindre NC sans raison impérieuse. Je vous transmets donc tous mes vœux de courage :slight_smile:

1 « J'aime »