Erreur 500 lors de la synchronisation d'un dossier nextcloud existant

Bonjour à tous,

Notre association est inscrit sur framaspace depuis le début, mais cela ne fait que quelques mois que j’essaie d’utiliser le service de stockage cloud sans succès.

Nous avons déjà un dossier NextCloud chez un autre hébergeur et j’aimerai migrer les données qui sont dessus sur notre framaspace.

Voilà comment j’ai procédé :

  • Depuis le client NextCloud (j’ai testé plusieurs versions sur plusieurs systèmes)
  • Je créer un nouveau compte de synchronisation que je configure avec les identifiants framaspace et que je rattache à mon dossier existant déjà synchronisé
  • Je coupe la synchronisation de l’autre compte qui pointe sur le même dossier pour éviter les erreurs de synchro croisées (j’ai aussi tenté de supprimer le compte de synchro local c’est pareil)
  • Je lance la synchro du dossier sur mon compte framaspace
  • La synchro se lance, mais le client NextCloud m’indique des choses très bizarres : le nombre de fichiers à synchroniser change régulièrement, j’ai des erreurs 500, il envoie des fichiers, mais cela n’apparait pas dans « Activity » quand je vais sur l’interface de frama.space. Bref, ça bug un max.
  • Parfois j’ai une erreur qui s’affiche sur certains fichiers :

Le serveur à répondu « 500 Internal Server error » a « PUT …<path_vers_le_fichier> » ou parfois à « MOVE …<path_vers_le_fichier> (could not write chunked file) »

  • A chaque tentative, j’ai laissé tourner la synchro pendant une journée et ça ne fini jamais, ça bug, je relance la synchro, il me redit que j’ai des milliers de fichiers à synchro etc. Pourtant mon upload est à fond donc il envoit bien quelque chose ! Je n’y comprends rien.

Il y a environ une dizaine de giga à envoyer et quelques miliers de fichiers.
Certains fichiers sont lourd (plusieurs centaines de Mo), mais dans l’ensemble rien de bien méchant.

Est-ce que je fais quelque chose qui ne va pas ?

Pour info, je me suis basé sur ce qui est dit dans le wiki de zaclys sur la migration de serveur :
https://wiki.zaclys.com/index.php/Transfert_des_données_d'un_serveur_Nextcloud_à_l'autre

Je pensais que le problème venait de ma très mauvaise connexion en téléversement, mais j’ai testé sur une autre connexion, sur un autre poste et j’ai le même problème.

Voilà, en espérant que vous puissiez m’aider, merci beaucoup,
Andréas

Bon, je tente une autre technique :

  • J’ai créé un autre dossier vide pour la synchro Framaspace et je le remplis petit à petit avec les éléments de l’autre dossier et ça semble aller mieux.

Je vous tiens au courant.

EDIT : Même avec cette technique ça ne fonctionne pas… J’ai encore des erreurs 500 ou des erreurs 499, le client m’indique qu’il reste -500325 octets à synchroniser (la blague!) et même sur un dossier de 200Mo il n’y arrive pas.

Le problème c’est qu’on a du mal a bien saisir qu’est-ce que le client fait, je trouve l’interface très mal pensée. On ne voit pas quel fichier est en train d’être synchro, les logs d’erreur sont quasi illisible (en tout cas depuis le client), bref, pas évident.

EDIT 2 : j’ai des erreurs 499 même sur de tous petits fichiers (genre 250ko)…

Hello @Andreas (a priori, vu ton adresse, il s’agit de l’espace le****dufil ?)

On a constaté que ce comportement pouvait survenir notamment lorsque le client de synchro tente d’uploader de nombreux petits fichiers (cf partie « explications techniques » ci dessous)

On a fait sur ton espace une modif qui devrait aider à résoudre le problème.
Cette modif, dans le fichier config.php a consisté à passer la commande 'bulkupload.enabled' à la valeur false

L’idéal serait que :

  1. tu te déconnecte de ton client de synchro
  2. tu te reconnecte
  3. tu relance la synchronisation.

Peux-tu essayer et noous dire ce qu’il en est ?

Explications techniques

(je copie colle ce que m’a signalée notre (fabuleuse) équipe technique, c’est pas/peu important de comprendre ce qui est écrit, mais c’est important de garder trace et de partager :slight_smile: )

Il y a deux soucis qu’on peut rencontrer lors la synchronisation :

  • envoyer plein de petits fichiers (multiplie l’overhead avec des connexions inutiles)
  • envoyer des gros fichiers (risque de timeout)

Face à cela, Nextcloud utilise la technique du chunkage : ça envoie des quantités de données « raisonnables » (par défaut avec un minimum de 5MB et un maximum 5GB). Si l’on a plein de petits fichiers, ils seront fusionnés pour faire au minimum 5MB, puis désassemblés sur le serveur. À contrario, si l’on a un gros fichier, il sera coupé en bouts d’au maximum 5GB, puis réassemblés en un seul fichier sur le serveur. (HS : Avec S3 Il y a une fonctionnalité spécifique qui permet de faire ce ré-assemblement directement sur le serveur S3 au lieu de sur le serveur Nextcloud. Je ne crois pas que le désassemblement soit possible par contre) La valeur exacte de la taille des chunks est calculée de manière heuristique après quelques envois, le client essayant de faire en sorte que l’envoi de chaque chunk dure une minute. C’est bien…sauf que si la connexion est coupée pendant ces 60 secondes , eh bien… on réessaye en boucle. Il y a une PR qui existe depuis 2022 pour prendre en compte ce cas et baisser la taille du chunk si l’on a une erreur réseau.

Les paramètres sur lesquels on peut jouer dans le fichier de configuration du client de synchro ne sont pas documentés (enfin la doc est cassée, puisqu’on retrouve ça là) nextcloud.cfg, mais la section troubleshooting en parle. Appendix C: Troubleshooting — Nextcloud Client Manual 3.12.3 documentation

Par contre, ici concernant ton espace, plutôt que de te demander de modifier la configuration de ton client de synchro, on a donc désactivé le bulkupload, ce qui fait que (normalement) les fichiers sont envoyés l’un apres l’autre et non plus en lots/chunks. Ca sera (probablement) plus lent, mais réduit la possibilité d’erreur.

Merci pour la réactivité, vous assurez trop.
J’ai relancé une synchro pour tester, je vous tiens au courant demain normalement.
Très bonne soirée !
Andréas

Bon, ça ne fonctionne pas. Là j’ai essayé de synchro quelques gros fichiers (genre 300~400Mo) et j’ai encore des erreurs.

Je ne sais pas si c’est ma connexion cette fois, mais ça a l’air de faire pareil…