Beaucoup d'erreurs HTTP 502 et 429 après mise à jour vers 3.4.0.beta1-dev

Version de Discourse : 3.4.0.beta1-dev (bf3d8a0a94)

Mis à jour hier et j’ai dû désactiver la minification de Cloudflare comme suggéré ici :

Cependant, depuis, de nombreux utilisateurs (moi y compris) ont rencontré plusieurs cas de 502 (Bad Gateway) et 529 (Too Many Requests).

Dans une tentative d’atténuer le problème, j’ai également suivi ce guide :

Cependant, rien ne semble avoir changé quant à la fréquence de ces erreurs.

La mise à jour a eu lieu hier vers 11h. J’ai effectué une reconstruction complète car je voulais également désactiver un plugin.

J’ai une instance Prometheus+Grafana qui surveille le serveur et Discourse, mais le serveur semble bien se comporter en termes de chargement :

Métriques Discourse (la baisse des métriques vers 11h hier correspond à la reconstruction qui a arrêté le conteneur) :

Encore une fois, je ne vois aucun schéma étrange.

Cependant, voici la console du navigateur il y a une minute, après avoir essayé d’envoyer un message privé à un utilisateur :

Si vous avez besoin d’autre chose (logs de toute sorte), n’hésitez pas à demander. Merci.

Oh, si cela peut aider, de nombreuses opérations “en arrière-plan” en temps réel sont également visiblement en retard.

Par exemple, les sujets déjà lus ne sont pas enregistrés comme lus.

Pour être sûr, vous avez également effectué cette étape, puis reconstruit, n’est-ce pas ?

1 « J'aime »

Oui, désolé, j’ai oublié d’ajouter que j’avais déjà ajouté le modèle Cloudflare au fichier app.yml il y a longtemps. Nous avons toujours été derrière Cloudflare, depuis le premier jour.

Voici une partie de app.yml, nous avons nos propres certificats renouvelés indépendamment, c’est pourquoi celui de letsencrypt est commenté :

## voici le modèle tout-en-un, autonome de conteneur Docker Discourse
##
## Après avoir apporté des modifications à ce fichier, vous DEVEZ reconstruire
## /var/discourse/launcher rebuild app
##
## SOYEZ *TRÈS* PRUDENT LORS DE LA MODIFICATION !
## LES FICHIERS YAML SONT EXTRÊMEMENT SENSIBLES AUX ERREURS D'ESPACEMENT OU D'ALIGNEMENT !
## visitez http://www.yamllint.com/ pour valider ce fichier si nécessaire

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Décommentez ces deux lignes si vous souhaitez ajouter Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
#  - "templates/web.letsencrypt.ssl.template.yml"
  - "templates/cloudflare.template.yml"

## quels ports TCP/IP ce conteneur doit-il exposer ?
## Si vous souhaitez que Discourse partage un port avec un autre serveur web comme Apache ou nginx,
## voir https://meta.discourse.org/t/17247 pour plus de détails
expose:
  - "80:80"   # http
  - "443:443" # https

[...]

Extrait des /logs

Je vois que cela a été déplacé vers Installation, juste pour être clair, il ne s’agit pas d’une nouvelle installation.

Cette instance de Discourse fonctionne depuis mars 2023 et n’a jamais eu ce problème spécifique.

Il y a eu un problème dans le passé avec certains 529 mais il a depuis été résolu.

Je pense que cela correspond toujours à

4 « J'aime »

Il semble que votre PostgreSQL soit surchargé. Il semble que la majeure partie de votre RAM soit inactive, j’essaierais d’ajuster la base de données pour qu’elle l’utilise et de voir comment les choses se passent ensuite.

1 « J'aime »

À quoi ressemble /sidekiq/queues ?
De quelle version mettiez-vous à jour ?

1 « J'aime »

Depuis la dernière version stable du 6 mai, v3.2.1 jusqu’à la dernière test-passed.

Files d’attente Sidekiq :

La section des tâches Dead est celle-ci, mais il semble que ce soit la même tâche depuis la nuit des temps.

Entrées les plus anciennes :

Celles en attente de réessai semblent être la même tâche retentée encore et encore.

Mais… pourquoi soudainement ? Après une simple mise à jour de la couche applicative ?

J’utilise le plugin d’exportation Prometheus de Discourse.
Si j’ajoutais un exportateur PostgreSQL en tant qu’autre conteneur sur la VM, serait-il possible de lui permettre d’accéder aux métriques de l’installation PostgreSQL de Discourse ?

Des indications plus précises sur la façon d’affiner la base de données pour Discourse ?

Pas sûr que ce soit lié, mais cela a certainement commencé après la mise à jour, cliquer sur le bouton ignorer dans l’onglet non lu renvoie toujours un 503.

Eh bien, comme il semble qu’il n’y ait pas de solution, je vais essayer de revenir à la dernière version stable car elle est censée être… vous savez, stable.

Je croise les doigts pour qu’il n’y ait pas une dépendance principale qui casse le processus de compilation, comme la dernière fois.

Vous ne pouvez pas revenir de tests-passés à stable, à moins qu’une version stable supérieure ne soit disponible. La prochaine occasion pour vous sera donc lorsque la 3.4.0 sera publiée, je suppose que ce sera autour de Noël ou après…

En outre, vous devrez vous y résoudre un jour.

1 « J'aime »

Eh bien, je viens de le faire. Cela semble fonctionner. Nous ne nous soucions de toute façon d’aucune des fonctionnalités de la 3.3.0.

Je vais voir s’il y a encore des problèmes. Le pire qui puisse arriver, c’est que nous ayons toujours une pléthore de 429 et 502, pas un si grand changement.

J’apprécierais des indications sur la façon de configurer Postgres sur Discourse afin qu’il dispose de plus de ressources, cependant.

Edit : Version 3.2.5 déployée. Le système semble stable.

Merci de nous le rappeler lorsque vous publierez votre prochain problème :wink:

1 « J'aime »

Je mentionne toujours la version dans laquelle je me trouve lorsque je publie un problème.
Je pense qu’il est important de se rappeler que, précisément parce qu’il s’agit d’un logiciel open source, les problèmes critiques devraient être pris en compte au lieu d’écrire des choses comme ceci :

C’est encore un autre exemple de personnes qui se donnent du mal et passent à la version « stable », rencontrant des bugs qui passent entre les mailles du filet parce que ce n’est pas la version déployée la plus populaire.

Quand « stable » devrait signifier « stable », pas « obsolète ».
Le fait que des dépendances de base comme discourse docker soient poussées sans système d’étiquetage devrait suffire à être un peu plus humble lorsque l’on répond aux utilisateurs qui signalent un problème.

Je parlais du fait que vous mentionniez que vous aviez rétrogradé alors que techniquement vous ne le pouviez pas.

Je pense qu’il est important de se rappeler… que je ne travaille pas pour Discourse et que je vous aide de mon propre temps, donc je n’apprécie pas votre ton, ni ne suis en mesure de faire quoi que ce soit avec vos commentaires.

2 « J'aime »

2 « J'aime »