Gogs error: 413 Request Entity Too Large

Bonjour.

Un de mes utilisateurs me remonte cette erreur qu’il semble avoir eu lieu pendant un git push vers l’application Gogs.

git push -u origin master

Counting objects: 16, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (16/16), done.
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large
fatal: The remote end hung up unexpectedly
Writing objects: 100% (16/16), 70.15 MiB | 330.00 KiB/s, done.
Total 16 (delta 4), reused 0 (delta 0)
fatal: The remote end hung up unexpectedly
Everything up-to-date

J’ai regardé rapidement dans la configuration Gogs mais je n’ai pas trouvé la solution alors je poste ici:
Pourquoi cette erreur ?
Quelle est la bonne solution ?

J’ai fait quelques essais suite au poke de @ppr sur le sujet Wallabag2 - 413 Request Entity Too Large.

Information préliminaire:
Depuis l’apparition du problème, yunohost a été migré vers la version 3.0.0.1 et le service Gogs a été mis a jour également (0.11.43.0330). Mais le problème est toujours présent.

les tests:

Premier essai:
  1. J’ai ajouté la ligne client_max_body_size 8M; a la fin de la section http du fichier /etc/nginx/nginx.conf
  2. J’ai modifié les valeurs upload_max_filesize et post_max_size a 8M du fichier /etc/php/7.0/fpm/php.ini
  3. Restart:
# service nginx restart
# service php7.0-fpm restart
  1. Reproduction du problème : push un gros commit (même erreur):
$ git push origin master

Counting objects: 19273, done.
Compressing objects: 100% (17718/17718), done.
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large
fatal: The remote end hung up unexpectedly
Writing objects: 100% (19273/19273), 127.16 MiB | 8.03 MiB/s, done.
Total 19273 (delta 4650), reused 0 (delta 0)
fatal: The remote end hung up unexpectedly
Everything up-to-date
Deuxième essai:
  1. J’ai modifié la valeur de client_max_body_size ; a 900M du fichier /etc/nginx/nginx.conf
  2. J’ai modifié les valeurs upload_max_filesize et post_max_size a 900M du fichier /etc/php/7.0/fpm/php.ini
  3. Restart
# service nginx restart
# service php7.0-fpm restart
  1. Reproduction du problème de push le même gros commit (même erreur):
git push origin master

Counting objects: 19273, done.
Compressing objects: 100% (17718/17718), done.
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large
fatal: The remote end hung up unexpectedly
Writing objects: 100% (19273/19273), 127.16 MiB | 8.06 MiB/s, done.
Total 19273 (delta 4650), reused 0 (delta 0)
fatal: The remote end hung up unexpectedly
Everything up-to-date

Conclusion:
J’ai testé avec une valeur faible (8M) et forte (900M) et je ne constate aucune modification du problème. J’ai remis les fichiers comme ils étaient. Et je me demande si ce n’est pas dans la configuration du serveur interne à l’application Gogs qu’il faudrait agir?!

Hello,

Quand tu as un problème avec une application spécifique ça sert à rien de toucher au fichier /etc/nginc/nginx.conf, dans ce cas là il te faut adapter le fichier /etc/nginx/conf.d/domain.tld.d/gogs.conf

D’autre part cette app n’utilise nullement php donc toute modification de la config php ne changera rien.

Essaye donc d’adapter la valeur de client_max_body_size dans /etc/nginx/conf.d/domain.tld.d/gogs.conf car actuellement c’est à 50M. Ça peut être intéressant de voir si ca change quelque chose.

2 Likes

Merci pour les éclaircissements et pour la solution.

La solution:
  1. Augmentation de la valeur du paramètre client_max_body_size dans le fichier /etc/nginx/conf.d/domain.tld.d/gogs.conf
  2. redémarrage du service nginx: # service nginx restart

Encore merci !

Ok,

Du coup je pense qu’il serait bien d’ajuster cette valeur dans le package. Car actuellement a chaque mise à jours de gogs tu va devoir refaire la modification. D’autre part ce problème peut affecter d’autres utilisateurs.

Pense tu que ajuster client_max_body_sizeà 200 M est suffisant ?

Oui, je pense en effet que comme valeur par défaut 200M serait plus confortable.

Idéalement, il faudrait pouvoir modifier ce paramètre via les options Gogs de l’interface web d’administration, mais je ne sais pas si c’est facilement réalisable.

Option du genre ‘Taille maximum par push’ (option a modifier si vous avez des erreurs, HTTP 413, lors d’un push)