Notifications régénérées en parcourant les actions

Bon, voici une histoire étrange concernant une version plus ancienne, mais j’espérais que quelqu’un aurait des pistes ou peut-être une expérience similaire.

Nous avons un forum (en version 2.4.5 à cause d’une dépendance à un plugin sur mesure) où les utilisateurs se plaignent de notifications en double. Parfois, des notifications sont régénérées des jours après qu’un événement s’est produit et après qu’un utilisateur les a vues (et cliquées dessus) à plusieurs reprises — dans l’interface Discourse (pas dans l’application, pas dans le navigateur).

posts pour un sujet :

 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

notifications pour cet utilisateur sur ce sujet :

   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

Comme vous pouvez le voir, une notification de réponse a été générée pour le post #7 plus de 3,5 jours après que la réponse ait été publiée.

En parcourant les journaux d’accès pour voir ce qui s’est passé à 21:11:44, nous avons constaté que cet utilisateur naviguait dans son Profil - Activité - Réponses (/user_actions.json?username=redacted&filter=5&offset=240) à cette seconde exacte.

On dirait presque que naviguer parmi ces réponses a régénéré la notification.

Les plugins concernés sont onesignal et push-notifications.

Est-ce que quelqu’un a UNE idée ?

EDIT un jour plus tard, la notification pour le post #7 a été régénérée :

   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
1 « J'aime »

Cela me rappelle vaguement un bug que nous avons corrigé à un moment donné ? C’est difficile à dire.

2 « J'aime »

Hmm, les plugins pertinents sont onesignal, push-notifications et follow.

@outofthebox Je pense que cela est lié à :

L’utilisateur qui a créé le message (utilisateur #15356), ce qui génère la notification envoyée en boucle à l’utilisateur qui la reçoit (utilisateur #956), est :

  • en train de suivre l’utilisateur qui reçoit la notification
  • suivi par un utilisateur qui n’existe pas (utilisateur #16229)

:

 select user_id, name, value from user_custom_fields where user_id=15356;
 user_id |     name     |         value          
---------+--------------+------------------------
   15356 | followers    | 16229 --> cet utilisateur n'existe pas
   15356 | following    | 56,0
   15356 | following    | 956,0 --> l'utilisateur qui reçoit la notification
2 « J'aime »

Donc, c’est une autre occurrence du bug du plugin follow ?

Je ne suis pas encore sûr, cela semble un peu différent, mais d’un autre côté, il y a beaucoup de points communs.

2 « J'aime »