Le notifiche continuano ad arrivare anche dopo averle lette [Private Topics plugin]

Ciao, sto usando la versione 3.2.0.beta4-dev (self-hosted) e a questo commit. Dopo gli aggiornamenti, gli utenti hanno iniziato a ricevere notifiche doppie/triple nell’interfaccia utente. (Sto parlando dell’interfaccia utente di Discourse, non delle e-mail, ecc.)

Anche dopo aver cliccato e letto, le notifiche a volte ritornano. Sto riscontrando anch’io questi problemi. Non so come risolvere questo problema o fornire log utili. Volevo condividerlo magari se si tratta di un problema globale o della mia istanza?

Sospetto che sia un problema di RAM, quanta RAM ha la tua istanza di discourse?

Presumo tu intenda ‘Interfaccia utente di Discourse’?

Va bene, ma questo server è attivo da quasi 2 mesi, questo problema non si è presentato prima. Al momento sul mio server abbiamo 4 GB di RAM e metà è libera. Anche 2 GB di swap sono liberi.

Sto pensando che forse l’aggiornamento l’ha causato, ma forse le estensioni l’hanno causato. Non sono sicuro. Immagino che il prossimo passo che farò sarà disabilitare tutte le estensioni e vedere se aiuta.

Sì, ho incluso un’immagine nel mio primo post. Intendo le notifiche di Discourse UI.

Ho disabilitato un po’ di estensioni e il problema persiste. Qualche idea o è possibile che io possa tornare alla versione 3.2.0.beta3-dev? Grazie.

Ciao di nuovo, so che nessuno è obbligato ad aiutare e questo è un forum della community e ovviamente non sono un cliente pagante, ma questo bug sta diventando davvero frustrante sia per me che per gli utenti. Abbiamo creato una community 2 mesi fa grazie a Discourse dove abbiamo 458 utenti attivi mensili. Ma da quando questo bug ci è successo (20 giorni fa) ho provato tutto ciò che potevo. È piuttosto negativo per l’esperienza utente e ora sto cercando script per migrare a Flarum o qualche altra piattaforma di forum. Guarda qui:\n\noutput\n\nGli utenti ricevono la stessa notifica ancora e ancora e ancora. Ricevono notifiche di 20 giorni fa, 5 giorni fa o quando vogliono. Anche quando si chiudono tutte le notifiche, si riceverà nuovamente la stessa notifica dopo qualche ora e non c’è modo di risolvere questo problema!\n\nDi nuovo, so dove mi trovo, questa è una piattaforma comunitaria. Non ho il diritto di lamentarmi, ma se nessuno aiuterà dopo questo post, anche se ciò significa che tutti i nostri post e argomenti precedenti verranno eliminati (1,2 mila argomenti e 12,7 mila post), dovremo andare altrove…\n\nSolo per la cronaca, ero un sostenitore di Discourse. Ho creato video su questo nel mio canale YouTube. Le community turche di solito usano forum obsoleti e ho avuto un’ottima esperienza usando Discourse prima, quindi dopo aver aperto il mio forum volevo che le persone conoscessero questo software.\n\nComunque, davvero non voglio perdere tutte le soluzioni e il lavoro degli altri sul nostro attuale forum. Quindi chiedo gentilmente il tuo aiuto ancora una volta. Grazie.

Giusto per curiosità, riesci a trovare qualcosa in comune tra i post che hanno notifiche ripetute?

1 Mi Piace

Per quanto ne so, è diverso per ogni utente. Ma si ripetono. Sul mio account ricevo le stesse notifiche più e più volte. Anche se questo non accade per i post precedenti a 21 giorni fa, per i quali abbiamo effettuato un aggiornamento 3.2.0beta4 e ho anche aggiunto estensioni al nostro forum.

Inizialmente ho pensato che le estensioni avessero causato questo problema, quindi ho disabilitato tutte le estensioni, ma non ha risolto il problema. A margine, forse dovrei eliminarle e ricostruire completamente? Non lo so.

Poi ho pensato che fosse a causa della beta4. Quindi sono tornato alla beta3, dove non avevamo il problema, ma persisteva ancora.

Purtroppo non abbiamo ricevuto altre segnalazioni di questo problema, quindi è difficile individuare cosa stia succedendo sul tuo sito. Hai un’installazione standard?

C’è qualcosa nella tua pagina /logs o /sidekiq che potrebbe fornire maggiori informazioni?

Sì. La disabilitazione potrebbe non rimuovere completamente il pezzo problematico. Ma quali plugin hai installato di recente? Potremmo essere in grado di dire se a uno di essi sono stati segnalati problemi.

2 Mi Piace

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

Potrei sbagliarmi, ma quello è un componente tematico, giusto?

Sì, è vero, è un componente tematico a questo punto non so cosa sia cosa, quindi l’ho incluso comunque. :grinning_face_with_smiling_eyes:

1 Mi Piace

Sidekiq gestisce tutti i processi in background, incluse le notifiche. Hai un mix eclettico di errori lì dentro :slight_smile: Penso di riconoscere alcuni che sono stati corretti e quindi non dovrebbero ripresentarsi dopo aver eseguito una ricostruzione/aggiornamento. Tuttavia, vedo:

Sidekiq sta consumando troppa memoria (utilizzando: 558.27M)

Questo potrebbe costringerlo a ritentare i processi (incluso l’invio di notifiche) Potresti fare clic su quello e vedere se ci sono maggiori informazioni?

2 Mi Piace

Oh, capisco, se è così, in effetti potrebbe essere quello il problema.

image

A sinistra c’è il conteggio, giusto? Quindi è successo 10 volte.

Ecco tutte le volte che è successo:

8 set 18:55
25 set 21:44
4 ott 21:53
10 nov 02:26 (Il problema è iniziato il 9 novembre)
11 nov 11:37
11 nov 13:37
23 nov 18:43
25 nov 18:59
dom 07:32
lun 13:12

Ma il fatto è che abbiamo 4 GB di RAM e 2 GB di SWAP, non l’ho mai visto usare più di questo:

E l’immagine che ho appena scattato è di adesso. Quindi forse succede quando gli utenti sono al picco o, se non è così, forse devo aumentare la soglia di Sidekiq?

INFO:

Sidekiq sta consumando troppa memoria (utilizzando: 558.27M) per 'btt.community', riavvio

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

Lo so, questo non dimostra nulla, ma ho lo stesso errore ogni giorno alcune volte[1] e qualsiasi cosa simile a quella che l’OP sta riscontrando non sta accadendo dalla mia parte.


  1. perché risolverlo sembra troppo impegnativo e costoso ↩︎

2 Mi Piace

Guardando meglio, vedo anche alcuni errori che potrebbero essere correlati a questo:

1°:

Message (109 copies reported)

Deprecation notice: Jobs::Chat::NotifyMentioned è stato accodato con valori di argomento che non si serializzano/deserializzano in modo pulito da/verso JSON. Ciò significa che il job verrà eseguito con valori leggermente diversi da quelli forniti a `enqueue`. I valori degli argomenti dovrebbero essere stringhe, booleani, numeri o nil (o array/hash di tali tipi di valore). (deprecato da Discourse 2.9) (rimozione in Discourse 3.0)
Presso /var/www/discourse/plugins/chat/lib/chat/notifier.rb:355:in `notify_mentioned_users`

Backtrace

/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°:

Message (109 copies reported)

Deprecation notice: Jobs::Chat::NotifyWatching è stato accodato con valori di argomento che non si serializzano/deserializzano in modo pulito da/verso JSON. Ciò significa che il job verrà eseguito con valori leggermente diversi da quelli forniti a `enqueue`. I valori degli argomenti dovrebbero essere stringhe, booleani, numeri o nil (o array/hash di tali tipi di valore). (deprecato da Discourse 2.9) (rimozione in Discourse 3.0)
Presso /var/www/discourse/plugins/chat/lib/chat/notifier.rb:367:in `notify_watching_users`

Backtrace

/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°:

Message (29888 copies reported)

Job exception: wrong number of arguments (given 0, expected 1)


Backtrace

/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	We 1:55 pm

Guardando il backtrace del 3° errore sembra che sia correlato ai plugin discourse private topics e discourse follow. Non sono un esperto, come ho detto, ma rimuoverò e ricostruirò da zero…

1 Mi Piace

Dopo l’eliminazione dei plugin e la ricompilazione, il terzo errore è scomparso, ma i primi due avvisi di deprecazione persistono.

E il problema non è risolto.

In sidekiq vedo decine di Jobs::PostAlert nella sezione retries. Immagino sia questo il motivo per cui tutte quelle notifiche ritornano. Ma perché dovrebbe andare in retries in primo luogo se in realtà invia l’avviso?

Come puoi vedere ci sono 63 pagine di questo. Dovrei ucciderle tutte?

EDIT:

Guardando l’errore sembra che sia attivato dai plugin discourse-private-topics e discourse-follow.

E anche quando li ho eliminati dato che erano nella sezione retries, sidekiq continuava a inviare quelle notifiche. Ora ho eliminato tutti quei tentativi e spero che il problema sia risolto. Aggiornerò.

2 Mi Piace

Ok, questo ha risolto il problema. Quindi, alla fine, Job exception: wrong number of arguments (given 0, expected 1) questo problema è causato da uno o entrambi i plugin Private Topics Plugin e Discourse Follow. Forse entrambi combinati creano questo problema, non lo so e non credo di volerlo scoprire. Sono un po’ traumatizzato qui a gestire questo problema per 21 giorni. :grinning_face_with_smiling_eyes: Forse gli autori di questo plugin vorrebbero saperlo, quindi li taggherò qui: @sam @RGJ

Grazie @JammyDodger @Firepup650

Suppongo di aver imparato come eseguire il debug di un problema di Discourse e a non installare mai più di 1 plugin alla volta…

4 Mi Piace

Grazie per essere arrivato in fondo alla questione! Era effettivamente un problema nel mio plugin per gli argomenti privati che si verificava solo quando anche il plugin “follow” era abilitato.

Ho rilasciato una correzione. Mi scuso per l’esperienza traumatica :wink:

3 Mi Piace

Ottimo debug. :clap: :slight_smile: E grazie per la rapida correzione @RGJ :rocket:

Dato che si trattava di un problema con un plugin non-official, lo sposterò dalla categoria Bug (anche se non lo unirò a Private Topics Plugin poiché è un po’ troppo grande per quello).

Spero che ora tu possa installare entrambi i plugin senza alcuna notifica eccitante. :crossed_fingers:

2 Mi Piace