Notificações sendo regeneradas ao analisar ações

Ok, essa é uma história estranha em uma versão mais antiga, mas eu esperava que alguém tivesse algumas orientações ou talvez uma experiência semelhante.

Temos um fórum (na versão 2.4.5 devido a uma dependência de um plugin personalizado) onde as pessoas reclamam de notificações duplicadas. Às vezes, as notificações são regeneradas dias após um evento ter ocorrido e depois que um usuário já visualizou (e clicou em) essas notificações várias vezes — na interface do Discourse (não no aplicativo, nem no navegador).

postagens de um tópico:

 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

notificações para este usuário sobre este tópico:

   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

Como você pode ver, uma notificação de resposta foi gerada para a postagem #7 mais de 3,5 dias após a resposta ter sido feita.

Ao fazer grep nos logs de acesso para descobrir o que aconteceu às 21:11:44, vimos que este usuário estava navegando por seu Perfil - Atividade - Respostas (/user_actions.json?username=redacted&filter=5&offset=240) exatamente naquele segundo.

Parece quase que navegar por essas respostas regenerou a notificação.

Os plugins relevantes são onesignal e push-notifications.

Alguém tem alguma ideia?

EDIT: um dia depois, a notificação para a postagem #7 foi regenerada:

   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 curtida

Isso me soa vagamente familiar como um bug que corrigimos em algum momento? Difícil dizer.

2 curtidas

Hmm, os plugins relevantes são onesignal, push-notifications e follow.

@outofthebox Acredito que isso esteja relacionado:

O usuário que criou a postagem (usuário #15356), que gera a notificação para o usuário que recebe repetidamente a notificação (usuário #956), está:

  • seguindo o usuário que recebe a notificação
  • sendo seguido por um usuário que não existe (usuário #16229)

:

 select user_id, name, value from user_custom_fields where user_id=15356;
 user_id |     name     |         value          
---------+--------------+------------------------
   15356 | followers    | 16229 --> este usuário não existe
   15356 | following    | 56,0
   15356 | following    | 956,0 --> o usuário que recebe a notificação
2 curtidas

Então, isso é mais um caso do bug do plugin de acompanhamento?

Não tenho certeza (ainda), parece um pouco diferente, mas, por outro lado, há muito em comum.

2 curtidas