Notifiche rigenerate esaminando le azioni

Ok, questa è una storia strana su una versione più vecchia, ma speravo che qualcuno potesse dare qualche indicazione o magari avere un’esperienza simile.

Abbiamo un forum (sulla versione 2.4.5 a causa di una dipendenza da un plugin personalizzato) dove gli utenti si lamentano di notifiche duplicate. A volte le notifiche vengono rigenerate giorni dopo che si è verificato un evento e dopo che un utente le ha già viste (e cliccate) più volte - nell’interfaccia utente di Discourse (non nell’app, non nel browser).

post di un argomento:

 post_number |         created_at         
-------------+----------------------------
           1 | 2020-06-22 17:06:42.531868
           2 | 2020-06-23 00:11:07.159579
           3 | 2020-06-24 00:35:06.000641
           4 | 2020-06-25 00:17:16.998622
           5 | 2020-06-29 00:00:39.712988
           6 | 2020-06-29 01:03:20.137653
           7 | 2020-06-29 01:32:45.604947

notifiche per questo utente per questo argomento:

   id    | notification_type | user_id |         created_at         | topic_id | post_number 
---------+-------------------+---------+----------------------------+----------+-------------
 1125345 |                 5 |     956 | 2020-06-24 21:45:21.521173 |    39247 |           3
 1133280 |                 5 |     956 | 2020-06-29 01:27:32.242212 |    39247 |           6
 1140349 |                 2 |     956 | 2020-07-02 21:11:44.843782 |    39247 |           7

Come potete vedere, una notifica di risposta è stata generata per il post #7 oltre 3,5 giorni dopo che la risposta è stata pubblicata.

Quando abbiamo cercato nei log di accesso per scoprire cosa è successo alle 21:11:44, abbiamo visto che in quel preciso istante questo utente stava navigando nel proprio Profilo - Attività - Risposte (/user_actions.json?username=redacted&filter=5&offset=240).

Sembra quasi che navigare tra quelle risposte abbia rigenerato la notifica.

I plugin rilevanti sono onesignal e push-notifications.

Qualcuno ha un’idea?

EDIT un giorno dopo la notifica per il post #7 è stata rigenerata:

   id    | notification_type | user_id |         created_at         | topic_id | post_number 
---------+-------------------+---------+----------------------------+----------+-------------
 1125345 |                 5 |     956 | 2020-06-24 21:45:21.521173 |    39247 |           3
 1133280 |                 5 |     956 | 2020-06-29 01:27:32.242212 |    39247 |           6
 1141684 |                 2 |     956 | 2020-07-04 02:23:12.188685 |    39247 |           7

Questo mi suona vagamente familiare come un bug che abbiamo corretto in qualche momento? È difficile dirlo.

Hmm, i plugin rilevanti sono onesignal, push-notifications e follow.

@outofthebox penso che questo sia correlato

L’utente che ha creato il post (utente #15356) che genera la notifica per l’utente che la riceve ripetutamente (utente #956) è:

  • sta seguendo l’utente che riceve la notifica
  • è seguito da un utente che non esiste (utente #16229)

:

 select user_id, name, value from user_custom_fields where user_id=15356;
 user_id |     name     |         value          
---------+--------------+------------------------
   15356 | followers    | 16229 --> questo utente non esiste
   15356 | following    | 56,0
   15356 | following    | 956,0 --> l'utente che riceve la notifica

Quindi si tratta di un’altra istanza del bug del plugin follow?

Non sono ancora sicuro, sembra un po’ diverso, ma d’altro canto c’è molto in comune.