Même en mode sans échec (je n’ai pas de thèmes ou de plugins personnalisés, sauf data-explorer), version 2.6.0.beta2
Mon serveur tourne sous Ubuntu 18, avec 4 vCPU, 8 Go de RAM et 160 Go d’espace disque.
Est-ce que cela prend beaucoup de temps avant que l’erreur se manifeste ? Je pense que vous rencontrez un dépassement de délai en raison d’une requête lourde.
20 à 30 secondes peut-être ? De plus, cela ne se produit pas lors du renommage d’autres catégories.
edit : cela se produit également sur mon forum de développement (un ordinateur assez puissant avec un sous-système Ubuntu).
re-edit :
Les découpages en petits lots semblent fonctionner. Donc Discourse n’aime pas déplacer plus de 3000 sujets, même sur un serveur plus puissant (j’ai augmenté à 16 vCPU / 32 Go). Je suppose donc que ce problème est différent du renommage de mes catégories. Je n’ai toujours pas pu renommer la catégorie.
J’ai créé une nouvelle catégorie B (que je peux renommer à volonté), j’ai déplacé tous les sujets de la catégorie A (que je ne peux pas renommer) vers la catégorie B : ensuite, je ne peux plus renommer la catégorie B, et je peux renommer la catégorie A.
J’ai essayé de renommer mes catégories, en choisissant à chaque fois une catégorie contenant plus de messages. La catégorie avec plus de contenu (plus de messages, sujets plus longs) semble prendre plus de temps à être renommée.
Il y a 2 catégories que je ne peux pas renommer (cela semble vraiment prendre trop de temps…):
30 secondes, c’est le délai d’expiration d’nginx, donc cela a du sens. Il lui faut juste un peu plus de temps que ça.
Si j’étais toi, j’essaierais cela depuis une console Rails.
J’avais pensé le faire ainsi, mais je n’étais pas sûr que ce soit sûr : je me demande pourquoi cela prend autant de temps juste pour renommer un titre de catégorie dans Discourse
Est-ce qu’il doit vérifier des choses auxquelles je ne pense pas ?
Apparemment
Je suppose qu’il recalcule peut-être certaines statistiques. Ce que vous pourriez faire, c’est vous connecter à Postgres et exécuter quelque chose comme
SELECT pid, age(query_start, clock_timestamp()), usename, query
FROM pg_stat_activity
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%'
ORDER BY query_start desc;
Puisque j’ai le même problème sur mon installation de développement sur mon ordinateur personnel, j’ai essayé sur mon forum de développement.
J’ai tenté de modifier le nom de la catégorie via l’interface de Discourse. L’erreur que j’ai affichée dans mon premier message s’est produite et ma mémoire RAM s’est saturée :
Mise à jour : J’ai essayé de renommer une catégorie sur mon autre forum en ligne (données/serveur/système d’exploitation/etc. différents, mais même version de Discourse).
Le changement de nom d’une catégorie est lent (~10 s). J’ai essayé plusieurs fois et j’ai également rencontré une erreur 502 une fois.
J’ai l’impression que cela vient peut-être de Discourse, peut-être lié à une mise à jour récente ?
Les deux forums utilisent la version 2.6.0.beta2.
Quelqu’un peut-il essayer de changer le nom d’une catégorie (une catégorie avec des milliers, voire des dizaines de milliers de sujets) sur son propre forum, avec la même version de Discourse, pour voir si c’est lent ou si cela génère une erreur 502 ?
Je ne me souviens pas avoir rencontré une erreur 502 sur mon ancien forum (qui a également été importé), mais je n’ai pas renommé de catégorie depuis l’importation il y a trois ans. Je ne me rappelle pas si le renommage d’une catégorie était lent.
En ce qui concerne mon nouveau forum, plus vaste, il a été importé sur la version de Discourse dont je parle, je ne peux donc pas la comparer à une version antérieure.
Juste une correction à ce sujet : je pense avoir précédemment exécuté Category.where(id: 21).update(name: "General") pour une catégorie dont j’avais déplacé les sujets ou quelque chose de similaire, car j’ai dû utiliser cette commande plusieurs fois sur diverses catégories récemment, et il semble que la durée d’exécution de la commande soit proportionnelle au nombre de messages dans la catégorie cible.
Donc, en gros, c’est le même problème que lorsque je mets à jour la catégorie via l’interface, sauf que cela ne dépasse pas le délai d’attente en ligne de commande.
Cela a pris peut-être plus d’une minute pour une catégorie avec plus de 30 000 sujets, plus de 30 secondes pour une catégorie avec plus de 15 000 sujets, et c’était rapide pour les catégories avec peu de sujets.
Notre forum a connu de plus en plus d’erreurs au cours des six derniers mois. Je viens de doubler nos ressources serveur (16 CPU, 64 Go de RAM) et, bien que cela fonctionne beaucoup mieux, j’ai découvert une erreur reproductible.
Tenter de renommer une seule catégorie entraîne systématiquement une erreur 502.
Avez-vous ajusté les paramètres dans le fichier app.yml en conséquence ?
Vous devriez consulter les journaux pour voir si cela vous donne un indice. Y a-t-il quelque chose de particulier concernant cette catégorie ? Peut-être une corruption d’index de base de données ?