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?

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.

Sì, capisco che sia difficile individuarlo con precisione. Per questo avevo sperato che sparisse da solo dopo un po’, ma non è successo.

Penso di avere lo stesso problema di questo: Users getting notifictations from long ago

Sì, ho un’installazione standard, ma l’unica differenza è che sono dietro Cloudflare. Potresti pensare che sia a causa di Cloudflare, ma prima non avevamo questo problema. Non credo sia probabile.

Non ho trovato nulla relativo alle notifiche, ma non sono un esperto in materia, quindi lasciatemi condividere un breve estratto; forse i vostri occhi noteranno qualcosa.

Avvisi:


MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Impossibile inviare notifica push: WebPush::Unauthorized : host: fcm.googleapis.com, #<Net::HTTPForbidden 403 Forbidden readbody=true> body: le credenziali VAPID nell'intestazione di autorizzazione non co
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Impossibile gestire l'eccezione nel middleware dell'app di eccezione: ArgumentError : Elenco vuoto di attributi passato
Impossibile gestire l'eccezione nel middleware dell'app di eccezione: ArgumentError : Elenco vuoto di attributi passato
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Il tema/componente DiscoTOC sta generando errori: TypeError: Impossibile leggere le proprietà di null (lettura di 'en')
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Impossibile gestire l'eccezione nel middleware dell'app di eccezione: ArgumentError : Elenco vuoto di attributi passato
Impossibile inviare notifica push: WebPush::Unauthorized : host: updates.push.services.mozilla.com, #<Net::HTTPUnauthorized 401 Unauthorized readbody=true> body: {"code":401,"errno":109,"error":"Unaut
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Impossibile gestire l'eccezione nel middleware dell'app di eccezione: ActiveRecord::RecordNotUnique : PG::UniqueViolation: ERRORE: valore chiave duplicato viola il vincolo unico "index_topic_tags_on_topic_id_and_t
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Impossibile elaborare correttamente la risposta dirottata: EOFError : fine file raggiunta
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
Avviso di deprecazione: `SiteSetting.anonymous_posting_min_trust_level` è deprecato. Si prega di utilizzare `SiteSetting.anonymous_posting_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/disc
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Impossibile inviare notifica push: WebPush::ResponseError : host: web.push.apple.com, #<Net::HTTPBadRequest 400 Bad Request readbody=true> body: {"reason":"VapidPkHashMismatch"}
Il tema/componente discourse-gifs sta generando errori: TypeError: Impossibile leggere le proprietà di null (lettura di 'en')
Il tema/componente DiscoTOC sta generando errori: TypeError: Impossibile leggere le proprietà di null (lettura di 'en')
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Impossibile inviare notifica push: WebPush::Unauthorized : host: updates.push.services.mozilla.com, #<Net::HTTPUnauthorized 401 Unauthorized readbody=true> body: {"code":401,"errno":109,"error":"Unaut
Sidekiq sta consumando troppa memoria (utilizzo: 558.27M) per 'btt.community', riavvio in corso
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Impossibile inviare notifica push: WebPush::PushServiceError : host: updates.push.services.mozilla.com, #<Net::HTTPBadGateway 502 Bad Gateway readbody=true> body: {"code":502,"errno":903,"error":"Bad
Avviso di deprecazione: `SiteSetting.min_trust_level_for_here_mention` è deprecato. Si prega di utilizzare `SiteSetting.here_mention_allowed_groups` al suo posto. (rimozione in Discourse 3.3) In /var/www/discourse/
Avviso di deprecazione: Jobs::Chat::NotifyMentioned è stato accodato con valori di argomento che non si serializzano/deserializzano correttamente in/from JSON. Ciò significa che il job verrà eseguito con valori leggermente diversi da quelli originali.
Avviso di deprecazione: Jobs::Chat::NotifyWatching è stato accodato con valori di argomento che non si serializzano/deserializzano correttamente in/from JSON. Ciò significa che il job verrà eseguito con valori leggermente diversi da quelli originali.
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) non trovato: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Avviso di deprecazione: Jobs::Chat::NotifyMentioned è stato accodato con valori di argomento che non si serializzano/deserializzano correttamente in/from JSON. Ciò significa che il job verrà eseguito con valori leggermente diversi da quelli originali.
Avviso di deprecazione: Jobs::Chat::NotifyWatching è stato accodato con valori di argomento che non si serializzano/deserializzano correttamente in/from JSON. Ciò significa che il job verrà eseguito con valori leggermente diversi da quelli originali.

Errori:

Eccezione del job: Net::ReadTimeout
Eccezione del job: Net::ReadTimeout
Eccezione del job: Net::SMTPAuthenticationError
Eccezione del job: Net::SMTPAuthenticationError
Eccezione del job: Net::SMTPAuthenticationError
(google_oauth2) Autenticazione fallita! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF rilevato
Eccezione del job: Net::ReadTimeout
(github) Autenticazione fallita! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF rilevato
(discord) Autenticazione fallita! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF rilevato
default: Impossibile scaricare l'immagine hotlinked (https://btt.community/uploads/default/optimized/2X/9/9394498c413ffd7cefbee2461a83d1a66b3b499c_2_690x388.jpeg) post: 10185 PG::UniqueViolation: ERRORE: duplicat
Eccezione del job: ERRORE: valore chiave duplicato viola il vincolo unico "pg_type_typname_nsp_index" DETTAGLIO: Chiave (typname, typnamespace)=(gamification_leaderboard_cache_1_all_time_1, 2200) già esistente
(google_oauth2) Autenticazione fallita! invalid_credentials: OAuth2::Error, invalid_grant: Bad Request { "error": "invalid_grant", "error_description": "Bad Request" }
Eccezione del job: Net::ReadTimeout
Eccezione del job: fine file raggiunta
(github) Autenticazione fallita! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF rilevato
(twitter) Autenticazione fallita! invalid_credentials: OAuth::Unauthorized, 401 Unauthorized
Eccezione del job: Net::SMTPAuthenticationError
Eccezione del job: fine file raggiunta
(google_oauth2) Autenticazione fallita! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF rilevato
(google_oauth2) Autenticazione fallita! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF rilevato
Eccezione del job: Net::ReadTimeout
Eccezione del job: numero errato di argomenti (0 forniti, 1 atteso)
Eccezione del job: fine file raggiunta
Eccezione del job: numero errato di argomenti (0 forniti, 1 atteso)
(discord) Autenticazione fallita! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF rilevato
Eccezione del job: Net::ReadTimeout
Eccezione del job: numero errato di argomenti (0 forniti, 1 atteso)

Fatali:

ActiveRecord::StatementInvalid (PG::UndefinedTable: ERRORE: la relazione "categories" non esiste LINEA 1: SELECT "categories"."id" FROM "categories" LEFT JOIN categor...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERRORE: la relazione "user_auth_tokens" non esiste LINEA 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERRORE: la relazione "user_auth_tokens" non esiste LINEA 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERRORE: la relazione "user_auth_tokens" non esiste LINEA 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERRORE: la relazione "user_auth_tokens" non esiste LINEA 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
Regexp::TimeoutError (timeout nella corrispondenza regexp) 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: ERRORE: la transazione corrente è abortita, i comandi vengono ignorati fino alla fine del blocco di transazione) lib/post_action_creator.rb:295:in `rescue in creat
NoMethodError (metodo `title` non definito per 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 (Elenco vuoto di attributi passato) 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 (Elenco vuoto di attributi passato) 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 (Elenco vuoto di attributi passato) 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 (metodo `title` non definito per 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 (Elenco vuoto di attributi passato) 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 (Elenco vuoto di attributi passato) 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 (Elenco vuoto di attributi passato) 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 (Elenco vuoto di attributi passato) 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 (metodo `title` non definito per 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 (metodo `title` non definito per 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 (Elenco vuoto di attributi passato) 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: ERRORE: valore chiave duplicato viola il vincolo unico "index_topic_tags_on_topic_id_and_tag_id" DETTAGLIO: Chiave (topic_id, tag_id)=(2907, 1) già esistente)

Per Sidekiq non so esattamente dove guardare. Sidekiq non gestisce le e-mail? Ha qualcosa a che fare con le notifiche?

Ok, proverò a disinstallarli tutti e a ricostruire nel frattempo.

Ecco le estensioni che ho installato prima che iniziasse questo problema (è iniziato esattamente quel giorno):

  • Who’s Online
  • Cakeday
  • Signature
  • Adsense
  • ActivityPub (l’ho eliminato completamente e ricostruito poiché non potevo disabilitarlo)

Come componente del tema:

  • GIF

MODIFICA: Ho dimenticato di aggiungerne un paio

  • 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:

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?

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 ↩︎

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…

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ò.

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…

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:

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: