Le serveur rencontre des problèmes avec summary.json de certains utilisateurs aléatoires et renvoie un code 502. Cela a probablement commencé après la dernière mise à jour, mais je ne suis pas sûr.
Je ne suis pas familier avec la pile Discourse et j’ai du mal à trouver les logs. J’ai édité pour masquer le nom d’utilisateur et l’IP, l’heure peut varier mais il s’agit principalement de la même requête de page de profil répétée plusieurs fois.
Depuis l’application /var/log/nginx/error.log :
[error] 560#560: *416 upstream prematurely closed connection while reading response header from upstream, client: *.*.*.*, server: _, request: "GET /u/user/summary.json HTTP/2.0", upstream: "http://127.0.0.1:3000/u/user/summary.json", host: "forum.taucetistation.org", referrer: "https://forum.taucetistation.org/u/user"
/shared/log/rails/production_errors.log est vide, et /shared/log/rails/production.log ne contient que
Started GET "/u/user/summary.json" for *.*.*.* at 2024-05-24 20:26:56 +0000
Processing by UsersController#summary as JSON
Parameters: {"username"=>"user"}
sans “Completed 200 OK” pour des requêtes similaires.
Il ne semble y avoir aucun log lié dans unicorn (juste des erreurs de connexion avec redis au démarrage, mais cela semble réussir à la fin et n’est pas lié).
Mais il y a une requête suspecte avec une longue durée depuis /var/log/postgres/current :
2024-05-24 20:49:12.727 UTC [2919] discourse@discourse LOG: duration: 95288.368 ms execute <unnamed>: SELECT replies.user_id, COUNT(*) FROM "posts" INNER JOIN "topics" "topics_posts" ON "topics_posts"."deleted_at" IS NULL AND "topics_posts"."id" = "posts"."topic_id" JOIN posts replies ON posts.topic_id = replies.topic_id AND posts.reply_to_post_number = replies.post_number JOIN topics ON replies.topic_id = topics.id AND topics.archetype <> 'private_message' AND replies.post_type IN (1) WHERE "posts"."deleted_at" IS NULL AND (posts.post_type IN (1,4)) AND "topics"."deleted_at" IS NULL AND (topics.archetype <> 'private_message') AND "topics"."visible" = TRUE AND (topics.category_id IS NULL OR topics.category_id IN (SELECT id FROM categories WHERE NOT read_restricted OR id IN (4,8,20,46,55,60,62,67))) AND "posts"."user_id" = 5318 AND (replies.user_id <> posts.user_id) GROUP BY "replies"."user_id" ORDER BY COUNT(*) DESC LIMIT 6
2024-05-24 20:49:12.728 UTC [2919] discourse@discourse LOG: could not send data to client: Broken pipe
2024-05-24 20:49:12.729 UTC [2919] discourse@discourse FATAL: connection to client lost

