Erreur HTTP 413 sur Docker/K8S

Bonjour,

J’ai une erreur http 413 lors de l’upload d’une configuration d’environs 5Mo.
image latest-light avec la même configuration tomcat.
le paramètre système : MAX_UPLOAD_SIZE=100

Je vous remercie d’avance pour votre aide.

Cordialement.
Kahina Ferroukhi

La limite n’est à priori pas au niveau de l’image Simplicité :

  • Tomcat est “passant” sur la taille des posts (maxPostSize="-1" sur les connecteurs HTTP et AJP)
  • Simplicité met une limite sur l’upload des fichiers via le param système MAX_UPLOAD_SIZE, s’il vaut 100 cela veut dire 100Mb

Vous devez donc avoir une limite sur votre infra en amont

PS: quand vous parlez d’ “upload d’une configuration” vous parlez de quoi exactement ? D’un upload de fichier via la UI ? si oui via quel page ? d’un appel de service via curl ? si oui sur quelle URL ? etc.

Il s’agit l’upload d’un module (xml) via l’interface modules (administration).
Nous sommes entrain de regarder la configuration registry-ingress sur kubernetes.

Merci de me faire une copie d’écran de ce que vous faites exactement car votre description peut vouloir dire plusieurs choses.

Bonjour,

Voici ce que nous avons fait dans le configuration du chart Helm (Kubernetes) :

image

Cordialement

1 Like

OK je n’ai pas l’expertise pour vous confirmer que ce que vous avez fait au niveau de votre config Docker/K8S est la bonne chose à faire pour autoriser des uploads de fichiers d’une taille adaptée à vos besoins au niveau de votre reverse proxy.

Tout ce que je peux dire c’est que sur nos reverse proxies nginx nous mettons client_max_body_size 0; dans le nginx.conf (dans le bloc http { ... }) pour ne pas avoir de limites à ce niveau. Pour rappel on n’en met pas non plus de limite niveau Tomcat c’est donc bien alors le param système Simplicité qui est la seule limite d’upload configurée.

PS: Je repose tout de même la question sur la manip exacte que vous avez faite sur Simplicité car je voudrais être sûr que cette manip est bien la bonne. En effet lorsqu’on importe un module il est important de le faire de la bonne manière, il y a au moins une mauvaise manière que le gens utilisent souvent à tort.

David,

J’ai suivi la doc que vous nous avez fourni: Tu trouveras ci-dessous le process d’import.
il s’agit bien d’un premier import donc création de module, j’effectue un clear cache session à chaque fois aussi.
Pour infos, j’ai déjà importé un module et l’import s’est correctement effectué, la taille du fichier était moins importante que le module qui nous génère un HTTP 413 error.

Aussi, j’ai récupéré hier les logs d’échec d’import du module, je ne peux te les fournir que par mails.

OK Je voulais juste m’assurer que l’import n’avait pas été fait via la page d’import XML qui permet d’uploader et d’importer des fichiers XML/ZIP (qui peuvent contenir du paramétrage) mais qui ne fait pas ce que l’import de module fait (et qui est fondamental s’agissant de modules = le diff final pour supprimer les paramétrage obsolètes).

Pour faire suite à des échanges par mail qui n’ont pas été reportés dans ce post comme demandé, il est impératif d’éliminer toutes les erreurs que vous obtenez lors d’un import de module.

En effet comme expliqué précédemment, s’il y a au moins une erreur d’import, le diff final de l’import module ne sera pas effectué et vous risquez d’avoir un paramétrage “bancal” car il contiendra potentiellement des paramétrages obsolètes et surabondants que le diff final n’aura pas supprimés.

Il n’y a donc pas d’erreur “pas grave” qu’on peut ignorer.

NB: Les erreurs liés aux paramètres utilisateur (typiquement ceux associés à des paramètres système HISTORY ... sont très simples à corriger => il suffit de les supprimer à la source avant d’exporter votre module, ou au pire à supprimer manuellement dans le fichier XML du paramétrage exporté.

Concernant les logs d’imports, ci-dessous ce que j’ai :

  • Module RCIB : aucune erreur dans les logs d’import et les données ont correctement été importées et pourtant le statut de l’import est KO. voir le ticket : Erreur 504 : import module

  • Module ApplicationUsers : une erreur :

2020-09-14 10:00:53,671 INFO  []   Found field usp_param_id.sys_type = []
2020-09-14 10:00:53,671 INFO  []   Found field usp_param_id.sys_value = [empty]
2020-09-14 10:00:53,671 INFO  []   Found field usp_param_id.sys_desc = []
2020-09-14 10:00:53,671 INFO  []   Found field row_module_id.mdl_name = [ApplicationUsers]
2020-09-14 10:00:53,673 INFO  []   New record key row_id
2020-09-14 10:00:53,673 INFO  []   Action: INSERT
2020-09-14 10:00:53,673 ERROR [] Validation error: [ERR_REQUIRED:Parameter#ERROR#usp_param_id]
2020-09-14 10:00:53,673 INFO  [] Start import object UserSysParam:
2020-09-14 10:00:53,673 INFO  []   Found field usp_user_id.usr_login = [pxxxxxx]
2020-09-14 10:00:53,673 INFO  []   Found field usp_param_id.sys_code = [TREEVIEW_PREFS]

Cordialement.
Kahina Ferroukhi

Le pb de 504 est traité dans un autre post et c’est sans doute un pb de configuration de reverse proxy, rien d’applicatif.

L’erreur que vous copiez collez ne permet pas de savoir sur quel record se produit l’erreur il faut copier/coller le bloc depuis le Start import... ex:

2020-07-03 15:02:27,155 INFO  [] Start import object UserSysParam:
2020-07-03 15:02:27,155 INFO  []   Found field usp_user_id.usr_login = [i0040000]
2020-07-03 15:02:27,155 INFO  []   Found field usp_param_id.sys_code = [HISTORY RciRepositoryAdmin]
2020-07-03 15:02:27,155 INFO  []   Found field usp_value = [[{"object":"RciApplication","rowId":"50","label":"Application : SAPHIR"}]]
2020-07-03 15:02:27,155 INFO  []   Found field usp_param_id.sys_type = []
2020-07-03 15:02:27,155 INFO  []   Found field usp_param_id.sys_value = [empty]
2020-07-03 15:02:27,155 INFO  []   Found field usp_param_id.sys_desc = []
2020-07-03 15:02:27,155 INFO  []   Found field row_module_id.mdl_name = [ApplicationUsers]
2020-07-03 15:02:27,158 INFO  []   New record key row_id
2020-07-03 15:02:27,158 INFO  []   Action: INSERT
2020-07-03 15:02:27,158 ERROR [] Validation error: [ERR_REQUIRED:Parameter#ERROR#usp_param_id]

J’ai expliqué dans ma réponse précédente ce qu’il faut faire pour éviter ces erreurs et j’ai expliqué en quoi avoir des erreurs à l’import d’un module pose pb (le diff final)

Si ces erreurs ne se produisent sur un module qui ne contient contient que des User, Responsability et UserSysParam (donc des users et leur droits) ce n’est pas forcément dramatique, au pire il vous restera des utilisateurs/responsabilités obsolètes à supprimer manuellement.

> grep Start flow_20200703_150228.log | awk '{print $8}' | sort -u
Dataset:
Module:
Responsability:
User:
UserSysParam:

Donc voir dans votre module pourquoi il y a des DataSets… car ils sont sans doute dans le mauvais module…

Mais sur un module qui contient d’autres types de paramétrages (objets métier, attributs, process, …), les éventuelles erreurs d’import doivent impérativement être analysées et corrigées et vous devez refaire l’import jusqu’à ne plus avoir aucune erreur.