Notifiche ricorrenti dai post degli utenti dovute al plugin Follow User

Ciao a tutti,

Ho un dubbio veloce: da quando ho ripristinato il sito da un backup, ogni volta che questo specifico utente risponde a un argomento, vengono generate notifiche continue di “Modifica” per l’utente che ha creato l’argomento o per quello a cui è stata data la risposta.

Ho provato a indagare e sembra esserci qualcosa di strano in Sidekiq: nella sezione “Retries” alcuni lavori continuano ad accumularsi senza mai riuscire a completarsi. Dopo averli rimossi, le notifiche si fermano (finché la persona non pubblica su un altro argomento, generando un nuovo lavoro).

I messaggi hanno questo formato:

Next Retry Retry Count Queue Job Arguments Error
in 1 minuto 10 default Jobs::PostAlert {“post_id”=>25977142, “new_record”=>true, “options”=>nil, “current_site_id”=>“default”} Jobs::HandledExceptionWrapper: Wrapped ActiveRecord::RecordNotFound: Impossibile trovare l’Utente con ‘id’=1452

Da quanto riesco a dedurre, sembra che un utente non esista (anche se ciò accade con i post di un utente che esiste ed è attivo). Quindi forse si tratta di un altro utente. C’è una query o qualcosa che posso fare per verificare meglio?

Ho cercato nella documentazione, ma se devo “aggiustare” qualcosa sono preoccupato di combinare qualche guaio :sweat_smile:

Grazie mille per qualsiasi aiuto!

2 Mi Piace

Piccolo aggiornamento:

  • Succede solo con quell’utente.
  • Nelle notifiche inviate agli utenti appare come se ogni messaggio scritto da quell’utente fosse “modificato” (cioè: se risponde a un altro utente, quest’ultimo riceverà notifiche di modifica ricorrenti relative a quel singolo post).
  • La ricostruzione non risolve il problema.
  • Eliminare il job in ripetizione su Sidekiq sembra fermarlo definitivamente per quella specifica notifica, ma ogni volta che quell’utente pubblica, il problema si ripresenta.

Aggiornamento rapido:

  • Ho provato a eseguire una query per quell’utente: non esiste, ma non vedo come questo possa collegarlo a uno esistente (forse la query è errata?). Nella pagina di amministrazione, guardando questo post sia per la query che per l’URL di amministrazione, ho un utente “1451” e un utente “1453”, ma (come dice l’errore) non un utente “1452”. E l’utente che “attiva” questo problema è un moderatore e il suo ID utente è 55 :stuck_out_tongue:

Aggiornamento rapido +:

  • Ci ho pensato un po’. Qualcuno può dirmi quali sono le implicazioni di “iniettare” il cosiddetto “utente mancante” che appare negli errori? Cioè, se aggiungessi quella riga al DB, Sidekiq e i job smetterebbero di fallire?
1 Mi Piace

Per caso stai usando il plugin Follow User? Ho riscontrato un problema simile in cui gli utenti eliminati non venivano rimossi dalla lista di chi segue e le notifiche rimanevano bloccate in un loop. La mia soluzione è stata rimuovere manualmente alcune record dal database. Il problema nel plugin è stato risolto, ma se stai utilizzando una versione più vecchia potresti ancora incorrere in questo problema.

3 Mi Piace

Ma dai, Discourse! Sì, lo sto usando! :stuck_out_tongue:

Controllo la versione per vedere se c’entra qualcosa. Un milione di grazie @bartv!

3 Mi Piace

Ottimo! Tieni presente che anche se il plugin è stato aggiornato, i tuoi dati potrebbero essere stati danneggiati dalla versione precedente. Ho ritrovato il mio vecchio post a riguardo. Non è dettagliato, ma forse ti metterà sulla strada giusta:

https://meta.discourse.org/t/follow-plugin/110579/41?u=bartv

4 Mi Piace