Les notifications reviennent même après les avoir lues [plugin Sujets privés]

Bonjour, j’utilise la version 3.2.0.beta4-dev (auto-hébergée) et à ce commit. Après les mises à jour, les utilisateurs ont commencé à recevoir des notifications doubles/triples dans l’interface utilisateur. (Je parle de l’interface utilisateur de Discourse, pas des e-mails, etc.)

Même après avoir cliqué et lu, les notifications reviennent parfois. Je rencontre également ces problèmes. Je ne sais pas comment dépanner cela ni fournir des journaux utiles. Je voulais partager cela, peut-être s’agit-il d’un problème global ou sur mon instance ?

Je soupçonne qu’il s’agit d’un problème de RAM, combien de RAM votre instance Discourse a-t-elle ?

Je suppose que vous voulez dire « l’interface utilisateur de Discourse » ?

D’accord, mais ce serveur est actif depuis près de 2 mois, ce problème n’est pas apparu avant. Actuellement, sur mon serveur, nous avons 4 Go de RAM et la moitié est vide. 2 Go de swap sont également vides.

Je pense que la mise à jour l’a fait, mais peut-être que les extensions l’ont fait. Je ne suis pas sûr. Je suppose que la prochaine étape sera de désactiver toutes les extensions et de voir si cela aide.

Oui, j’ai inclus une image dans mon premier message. Je veux dire les notifications de l’interface utilisateur Discourse.

J’ai désactivé un tas d’extensions et le problème persiste. Des idées ou est-il possible de rétrograder vers la version 3.2.0.beta3-dev ? Merci.

Bonjour, je sais que personne n’est obligé d’aider et qu’il s’agit d’un forum communautaire et bien sûr, je ne suis pas un client payant, mais ce bug me frustre énormément, ainsi que les utilisateurs. Nous avons créé une communauté il y a 2 mois grâce à Discourse, où nous avons 458 utilisateurs actifs mensuels. Mais depuis que ce bug nous est arrivé (il y a 20 jours), j’ai tout essayé. C’est assez mauvais pour l’expérience utilisateur et maintenant j’essaie de trouver des scripts pour migrer vers Flarum ou une autre plateforme de forum. Regardez ceci :

output

Les utilisateurs reçoivent la même notification encore et encore. Ils reçoivent les notifications d’il y a 20 jours, 5 jours ou n’importe quand. Même si vous rejetez toutes les notifications, vous recevrez à nouveau la même notification après quelques heures et il n’y a aucun moyen de résoudre ce problème !

Encore une fois, je sais où je me situe, c’est une plateforme communautaire. Je n’ai pas le droit de me plaindre, mais si personne n’aide après ce message, même si cela signifie que tous nos messages et sujets précédents seront supprimés (1,2 mille sujets et 12,7 mille messages), nous devrons aller ailleurs…

Juste pour information, j’étais un défenseur de Discourse. J’ai créé des vidéos à ce sujet sur ma chaîne YouTube. Les communautés turques utilisent généralement des forums obsolètes et j’ai eu une excellente expérience avec Discourse auparavant, donc après avoir ouvert mon propre forum, je voulais que les gens connaissent ce logiciel.

Quoi qu’il en soit, je ne veux vraiment pas perdre toutes les solutions et le travail des autres sur notre forum actuel. Je demande donc à nouveau votre aide. Merci.

Juste par curiosité, pouvez-vous trouver un point commun entre les publications qui ont des notifications répétées ?

1 « J'aime »

D’après ce que je comprends, c’est différent pour chaque utilisateur. Mais elles se répètent. Sur mon compte, je reçois les mêmes notifications encore et encore. Bien que cela n’arrive pas sur les publications datant d’avant 21 jours, pour lesquelles nous avons effectué une mise à jour 3.2.0beta4 et j’ai également ajouté des extensions à notre forum.

Initialement, j’ai pensé que les extensions déclenchaient cela, j’ai donc désactivé toutes les extensions, mais cela n’a pas résolu le problème. Soit dit en passant, devrais-je peut-être les supprimer et reconstruire complètement ? Je ne sais pas.

Ensuite, j’ai pensé que c’était à cause de la beta4. J’ai donc rétrogradé vers la beta3 où nous n’avions pas le problème, mais il persistait toujours.

Malheureusement, nous n’avons reçu aucun autre rapport à ce sujet, il est donc difficile de déterminer ce qui se passe sur votre site. Avez-vous une installation standard ?

Y a-t-il quelque chose sur votre page /logs ou /sidekiq qui pourrait fournir plus d’informations ?

Oui. La désactivation peut ne pas supprimer complètement le problème. Mais quels plugins avez-vous récemment installés ? Nous pourrions peut-être savoir si certains ont eu des problèmes signalés.

2 « J'aime »

Yes I understand it is hard to pinpoint. That’s why I hoped it would go away after a while but it didn’t.

I think I am having the same problem as this: Users getting notifictations from long ago

Yes I have a standart install but only difference is I am behind Cloudflare. You might think this is because of Cloudflare but before we didn’t had such issue. I don’t think it’s likely.

I couldn’t find anything related to notifications but I am not an expert on this so let me share a quick bit of it maybe your eyes will catch something

Warnings:


MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Failed to send push notification : WebPush::Unauthorized : host: fcm.googleapis.com, #<Net::HTTPForbidden 403 Forbidden readbody=true> body: the VAPID credentials in the authorization header do not co
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Failed to handle exception in exception app middleware : ArgumentError : Empty list of attributes passed
Failed to handle exception in exception app middleware : ArgumentError : Empty list of attributes passed
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
DiscoTOC theme/component is throwing errors: TypeError: Cannot read properties of null (reading 'en')
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Failed to handle exception in exception app middleware : ArgumentError : Empty list of attributes passed
Failed to send push notification : WebPush::Unauthorized : host: updates.push.services.mozilla.com, #<Net::HTTPUnauthorized 401 Unauthorized readbody=true> body: {"code":401,"errno":109,"error":"Unaut
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Failed to handle exception in exception app middleware : ActiveRecord::RecordNotUnique : PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_topic_tags_on_topic_id_and_t
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Failed to process hijacked response correctly : EOFError : end of file reached
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Failed to send push notification : WebPush::ResponseError : host: web.push.apple.com, #<Net::HTTPBadRequest 400 Bad Request readbody=true> body: {"reason":"VapidPkHashMismatch"}
discourse-gifs theme/component is throwing errors: TypeError: Cannot read properties of null (reading 'en')
DiscoTOC theme/component is throwing errors: TypeError: Cannot read properties of null (reading 'en')
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Failed to send push notification : WebPush::Unauthorized : host: updates.push.services.mozilla.com, #<Net::HTTPUnauthorized 401 Unauthorized readbody=true> body: {"code":401,"errno":109,"error":"Unaut
Sidekiq is consuming too much memory (using: 558.27M) for 'btt.community', restarting
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Failed to send push notification : WebPush::PushServiceError : host: updates.push.services.mozilla.com, #<Net::HTTPBadGateway 502 Bad Gateway readbody=true> body: {"code":502,"errno":903,"error":"Bad
Deprecation notice: `SiteSetting.min_trust_level_for_here_mention` has been deprecated. Please use `SiteSetting.here_mention_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/
Deprecation notice: Jobs::Chat::NotifyMentioned was enqueued with argument values which do not cleanly serialize to/from JSON. This means that the job will be run with slightly different values than t
Deprecation notice: Jobs::Chat::NotifyWatching was enqueued with argument values which do not cleanly serialize to/from JSON. This means that the job will be run with slightly different values than th
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Deprecation notice: Jobs::Chat::NotifyMentioned was enqueued with argument values which do not cleanly serialize to/from JSON. This means that the job will be run with slightly different values than t
Deprecation notice: Jobs::Chat::NotifyWatching was enqueued with argument values which do not cleanly serialize to/from JSON. This means that the job will be run with slightly different values than th

Errors:

Job exception: Net::ReadTimeout
Job exception: Net::ReadTimeout
Job exception: Net::SMTPAuthenticationError
Job exception: Net::SMTPAuthenticationError
Job exception: Net::SMTPAuthenticationError
(google_oauth2) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
Job exception: Net::ReadTimeout
(github) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
(discord) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
default: Failed to pull hotlinked image (https://btt.community/uploads/default/optimized/2X/9/9394498c413ffd7cefbee2461a83d1a66b3b499c_2_690x388.jpeg) post: 10185 PG::UniqueViolation: ERROR: duplicat
Job exception: ERROR: duplicate key value violates unique constraint "pg_type_typname_nsp_index" DETAIL: Key (typname, typnamespace)=(gamification_leaderboard_cache_1_all_time_1, 2200) already exist
(google_oauth2) Authentication failure! invalid_credentials: OAuth2::Error, invalid_grant: Bad Request { "error": "invalid_grant", "error_description": "Bad Request" }
Job exception: Net::ReadTimeout
Job exception: end of file reached
(github) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
(twitter) Authentication failure! invalid_credentials: OAuth::Unauthorized, 401 Unauthorized
Job exception: Net::SMTPAuthenticationError
Job exception: end of file reached
(google_oauth2) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
(google_oauth2) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
Job exception: Net::ReadTimeout
Job exception: wrong number of arguments (given 0, expected 1)
Job exception: end of file reached
Job exception: wrong number of arguments (given 0, expected 1)
(discord) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
Job exception: Net::ReadTimeout
Job exception: wrong number of arguments (given 0, expected 1)

Fatal:

ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "categories" does not exist LINE 1: SELECT "categories"."id" FROM "categories" LEFT JOIN categor...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
Regexp::TimeoutError (regexp match timeout) lib/crawler_detection.rb:38:in `match?' lib/crawler_detection.rb:38:in `crawler?' lib/middleware/anonymous_cache.rb:129:in `is_crawler?' (eval):2:in `__comp
ActiveRecord::StatementInvalid (PG::InFailedSqlTransaction: ERROR: current transaction is aborted, commands ignored until end of transaction block ) lib/post_action_creator.rb:295:in `rescue in creat
NoMethodError (undefined method `title' for nil:NilClass) app/models/reviewable_queued_post.rb:166:in `perform_revise_and_reject_post' app/models/reviewable.rb:331:in `public_send' app/models/reviewab
ArgumentError (Empty list of attributes passed) lib/plugin/instance.rb:522:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
ArgumentError (Empty list of attributes passed) lib/plugin/instance.rb:522:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
ArgumentError (Empty list of attributes passed) lib/plugin/instance.rb:522:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
NoMethodError (undefined method `title' for nil:NilClass) app/models/reviewable_queued_post.rb:166:in `perform_revise_and_reject_post' app/models/reviewable.rb:331:in `public_send' app/models/reviewab
ArgumentError (Empty list of attributes passed) lib/plugin/instance.rb:522:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
ArgumentError (Empty list of attributes passed) lib/plugin/instance.rb:522:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
ArgumentError (Empty list of attributes passed) lib/plugin/instance.rb:522:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
ArgumentError (Empty list of attributes passed) lib/plugin/instance.rb:522:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
NoMethodError (undefined method `title' for nil:NilClass) app/models/reviewable_queued_post.rb:166:in `perform_revise_and_reject_post' app/models/reviewable.rb:331:in `public_send' app/models/reviewab
NoMethodError (undefined method `title' for nil:NilClass) app/models/reviewable_queued_post.rb:166:in `perform_revise_and_reject_post' app/models/reviewable.rb:331:in `public_send' app/models/reviewab
ArgumentError (Empty list of attributes passed) lib/plugin/instance.rb:521:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_topic_tags_on_topic_id_and_tag_id" DETAIL: Key (topic_id, tag_id)=(2907, 1) already e

For sidekiq I don’t know where to look exactly. Isn’t sidekiq handling e-mails? Does it have anything to do with notifications?

Okay I will try to uninstall every one of them and rebuild in the meantime.

Here are the extensions I installed before this problem started (it started the exact day):

  • Who’s Online
  • Cakeday
  • Signature
  • Adsense
  • ActivityPub (I deleted this completely and rebuilt since I couldnt disable this)

As a theme component:

  • GIF

EDIT: I forgot to add couple more of them

  • Discourse Private Topics
  • Discourse Force Moderation

Je pourrais me tromper, mais c’est un composant de thème, n’est-ce pas ?

Oui, c’est vrai, c’est un composant thématique à ce stade, je ne sais pas ce qui est quoi, alors je l’ai inclus de toute façon. :grinning_face_with_smiling_eyes:

1 « J'aime »

Sidekiq gère tous les travaux en arrière-plan, y compris les notifications. Vous avez un mélange éclectique d’erreurs là-dedans :slight_smile: Je pense reconnaître quelques-unes qui ont été corrigées depuis et ne devraient donc pas se reproduire après une reconstruction/mise à jour. Cependant, je vois :

Sidekiq consomme trop de mémoire (utilisation : 558.27M)

Cela pourrait le forcer à réessayer des tâches (y compris l’envoi de notifications à nouveau). Pourriez-vous cliquer dessus pour voir s’il y a plus d’informations ?

2 « J'aime »

Je vois, si c’est le cas, c’est effectivement peut-être le problème.

image

Sur le côté gauche, c’est le nombre, n’est-ce pas ? Donc, cela s’est produit 10 fois.

Voici toutes les fois où cela s’est produit :

8 sept. 18:55
25 sept. 21:44
4 oct. 21:53
10 nov. 02:26 (Le problème a commencé le 9 novembre)
11 nov. 11:37
11 nov. 13:37
23 nov. 18:43
25 nov. 18:59
dim. 07:32
lun. 13:12

Mais le fait est que nous avons 4 Go de RAM et 2 Go de SWAP, et je ne l’ai jamais vu utilisé plus que cela :

Et la capture d’écran que je viens de prendre, c’est maintenant. Alors peut-être que cela se produit lorsque les utilisateurs sont au pic d’activité, ou si ce n’est pas le cas, peut-être que je dois augmenter le seuil de Sidekiq ?

INFO :

Sidekiq consomme trop de mémoire (utilisé : 558.27M) pour 'btt.community', redémarrage

BACKTRACE :

config/unicorn.conf.rb:164:in `check_sidekiq_heartbeat'
config/unicorn.conf.rb:244:in `master_sleep'
unicorn-6.1.0/lib/unicorn/http_server.rb:295:in `join'
unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'

/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'

env :

hostname	dc-app, [dc-discourse]
process_id	1215943
application_version	a55f924e279b45b81e69e720faeb38284aed90d4
time	lun. 13:12

Je sais, cela ne prouve rien, mais j’ai la même erreur tous les jours plusieurs fois[1] et rien de similaire à ce que l’OP rencontre ne se produit de mon côté.


  1. parce que la corriger semble trop exigeant et coûteux ↩︎

2 « J'aime »

En y regardant de plus près, je constate également des erreurs qui pourraient y être liées :

1er :

Message (109 copies signalées)

Avis de dépréciation : Jobs::Chat::NotifyMentioned a été mis en file d'attente avec des valeurs d'arguments qui ne se sérialisent/désérialisent pas proprement en JSON. Cela signifie que la tâche sera exécutée avec des valeurs légèrement différentes de celles fournies à `enqueue`. Les valeurs d'arguments doivent être des chaînes de caractères, des booléens, des nombres ou nil (ou des tableaux/hash de ces types de valeurs). (déprécié depuis Discourse 2.9) (suppression dans Discourse 3.0)
À /var/www/discourse/plugins/chat/lib/chat/notifier.rb:355:in `notify_mentioned_users`

Trace

/var/www/discourse/lib/discourse.rb:1030:in `deprecate'
/var/www/discourse/app/jobs/base.rb:371:in `enqueue'
/var/www/discourse/plugins/chat/lib/chat/notifier.rb:355:in `notify_mentioned_users'
/var/www/discourse/plugins/chat/lib/chat/notifier.rb:78:in `notify_new'
/var/www/discourse/plugins/chat/app/jobs/regular/chat/process_message.rb:42:in `block in execute'
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/var/www/discourse/plugins/chat/app/jobs/regular/chat/process_message.rb:7:in `execute'

2ème :

Message (109 copies signalées)

Avis de dépréciation : Jobs::Chat::NotifyWatching a été mis en file d'attente avec des valeurs d'arguments qui ne se sérialisent/désérialisent pas proprement en JSON. Cela signifie que la tâche sera exécutée avec des valeurs légèrement différentes de celles fournies à `enqueue`. Les valeurs d'arguments doivent être des chaînes de caractères, des booléens, des nombres ou nil (ou des tableaux/hash de ces types de valeurs). (déprécié depuis Discourse 2.9) (suppression dans Discourse 3.0)
À /var/www/discourse/plugins/chat/lib/chat/notifier.rb:367:in `notify_watching_users`

Trace

/var/www/discourse/lib/discourse.rb:1030:in `deprecate'
/var/www/discourse/app/jobs/base.rb:371:in `enqueue'
/var/www/discourse/plugins/chat/lib/chat/notifier.rb:367:in `notify_watching_users'
/var/www/discourse/plugins/chat/lib/chat/notifier.rb:79:in `notify_new'
/var/www/discourse/plugins/chat/app/jobs/regular/chat/process_message.rb:42:in `block in execute'
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/var/www/discourse/plugins/chat/app/jobs/regular/chat/process_message.rb:7:in `execute'

3ème :

Message (29888 copies signalées)

Exception de tâche : nombre d'arguments incorrect (donné 0, attendu 1)

Trace

/var/www/discourse/plugins/discourse-private-topics/plugin.rb:20:in `get_filtered_category_ids'
/var/www/discourse/plugins/discourse-private-topics/plugin.rb:149:in `handle'
/var/www/discourse/plugins/discourse-follow/plugin.rb:131:in `block (2 levels) in activate!'
/var/www/discourse/lib/plugin/instance.rb:521:in `block in on'
/var/www/discourse/lib/discourse_event.rb:12:in `block in trigger'
/usr/local/lib/ruby/3.2.0/set.rb:511:in `each_key'
/usr/local/lib/ruby/3.2.0/set.rb:511:in `each'
/var/www/discourse/lib/discourse_event.rb:12:in `trigger'
/var/www/discourse/app/services/post_alerter.rb:205:in `after_save_post'
/var/www/discourse/app/jobs/regular/post_alert.rb:10:in `execute'

hostname	dc-app
process_id	190
application_version	95b7cbd8a13ec82003936ef9408ec83bc9f3c2ea
current_db	default
current_hostname	btt.community
job	Jobs::PostAlert
problem_db	default
time	Mer 13h55

En regardant la trace de la 3ème erreur, il semble qu’elle soit liée aux plugins discourse-private-topics et discourse-follow. Je ne suis pas un expert en la matière, comme je l’ai dit, mais je vais essayer de les supprimer et de les reconstruire à partir de zéro…

1 « J'aime »

Après la suppression des plugins et la reconstruction, la 3ème erreur a disparu, mais les 1ère et 2ème notices de dépréciation persistent.

Et le problème n’est pas résolu.

Dans sidekiq, je vois des dizaines de Jobs::PostAlert dans la section retries. Je suppose que c’est la raison pour laquelle toutes ces notifications reviennent. Mais pourquoi irait-il dans les retries en premier lieu s’il envoie réellement l’alerte ?

Comme vous pouvez le voir, il y a 63 pages de cela. Dois-je tout tuer ?

EDIT :

En regardant l’erreur, il semble qu’elle soit déclenchée par les plugins discourse-private-topics et discourse-follow.

Et même lorsque je les ai supprimés car ils étaient dans la section retries, sidekiq continuait d’envoyer ces notifications. Maintenant, j’ai tué toutes ces retries et j’espère que le problème est résolu. Je mettrai à jour.

2 « J'aime »

D’accord, cela a résolu le problème. Donc, au final, Job exception: wrong number of arguments (given 0, expected 1) ce problème est causé par un ou les deux plugins suivants : Private Topics Plugin et Discourse Follow. Peut-être que les deux combinés créent ce problème, je ne sais pas et je ne pense pas vouloir le découvrir. Je suis un peu traumatisé ici à gérer ce problème pendant 21 jours. :grinning_face_with_smiling_eyes: Peut-être que les auteurs de ce plugin aimeraient le savoir, alors je vais les mentionner ici : @sam @RGJ

Merci @JammyDodger @Firepup650

Je suppose que j’ai appris comment déboguer un problème Discourse et ne plus jamais installer plus d’un plugin à la fois…

4 « J'aime »

Merci d’avoir résolu ce problème ! Il s’agissait en effet d’un problème dans mon plugin de sujets privés qui ne se produisait que lorsque le plugin de suivi était également activé.

J’ai publié un correctif. Désolé pour cette expérience traumatisante :wink:

3 « J'aime »

Excellent débogage. :clap: :slight_smile: Et merci pour la correction rapide @RGJ :rocket:

Comme il s’agissait d’un problème avec un plugin non-#officiel, je vais le retirer de la catégorie Bug (sans le fusionner dans Private Topics Plugin car il est un peu grand pour cela).

J’espère que vous pourrez maintenant installer les deux plugins sans aucune notification excitante. :crossed_fingers:

2 « J'aime »