Notificações voltando mesmo após lê-las [plugin Private Topics]

Olá, estou usando a versão 3.2.0.beta4-dev (auto-hospedada) e neste commit. Após as atualizações, os usuários começaram a experimentar notificações duplas/triplas na interface do usuário. (Estou falando da interface do Discourse, não de e-mails, etc.)

Mesmo depois de clicar e ler, as notificações às vezes retornam. Estou tendo esses problemas também. Não sei como solucionar isso ou fornecer logs úteis. Queria compartilhar isso, talvez se for um problema global ou na minha instância?

Suspeito que seja um problema de RAM, quanta RAM sua instância do Discourse tem?

Presumo que você queira dizer ‘Interface do Discourse’?

Ok, mas este servidor está ativo há quase 2 meses, este problema não apareceu antes. Atualmente, em meu servidor, temos 4 GB de RAM e metade dela está vazia. 2 GB de swap também estão vazios.

Estou pensando que talvez a atualização tenha feito isso, mas talvez as extensões tenham feito isso. Não tenho certeza. Acho que o próximo passo que darei será desativar todas as extensões e ver se isso ajuda.

Sim, incluí uma imagem na minha primeira postagem. Quero dizer notificações do Discourse UI.

Desabilitei várias extensões e o problema persiste. Alguma ideia ou é possível fazer o downgrade para a versão 3.2.0.beta3-dev? Obrigado.

Olá novamente, sei que ninguém é obrigado a ajudar e que este é um fórum da comunidade e, claro, não sou um cliente pagante, mas este bug está a tornar-se realmente frustrante tanto para mim como para os utilizadores. Criámos uma comunidade há 2 meses graças ao Discourse, onde temos 458 utilizadores ativos mensais. Mas desde que este bug nos aconteceu (há 20 dias), tentei tudo o que pude. É bastante mau para a experiência do utilizador e agora estou a tentar encontrar scripts para migrar para o Flarum ou alguma outra plataforma de fórum. Basta olhar para isto:

output

Os utilizadores recebem a mesma notificação repetidamente. Recebem notificações de 20 dias atrás, 5 dias atrás ou de qualquer outra altura. Mesmo quando descarta todas as notificações, receberá a mesma notificação novamente após algumas horas e não há como resolver isto!

Novamente, sei qual é a minha posição, esta é uma plataforma comunitária. Não tenho o direito de reclamar, mas se ninguém ajudar após esta publicação, mesmo que isso signifique que todas as nossas publicações e tópicos anteriores serão eliminados (1,2 mil tópicos e 12,7 mil publicações), teremos de ir para outro lugar…

Apenas como nota, eu era um defensor do Discourse. Criei vídeos sobre ele no meu canal do YouTube. As comunidades turcas geralmente usam fóruns desatualizados e tive uma ótima experiência usando o Discourse antes, então, depois de abrir o meu próprio fórum, queria que as pessoas conhecessem este software.

De qualquer forma, realmente não quero perder todas as soluções e o trabalho de outras pessoas no nosso fórum atual. Por isso, peço gentilmente a sua ajuda novamente. Obrigado.

Só por curiosidade, você consegue encontrar algo em comum entre as postagens que têm notificações repetidas?

1 curtida

Pelo que entendi, é diferente para cada usuário. Mas elas se repetem. Na minha conta, recebo as mesmas notificações repetidamente. Embora isso não aconteça em posts com mais de 21 dias atrás, nos quais fizemos uma atualização 3.2.0beta4 e também adicionei extensões ao nosso fórum.

Inicialmente, pensei que as extensões tivessem causado isso, então desativei todas as extensões, mas isso não resolveu o problema. Em tempo, talvez eu devesse excluí-las e reconstruir completamente? Não sei.

Então pensei que fosse por causa da beta4. Então fiz o downgrade para a beta3, onde não tínhamos o problema, mas ele ainda persistia.

Infelizmente, não tivemos outros relatos disso, então é difícil identificar o que está acontecendo em seu site. Você tem uma instalação padrão?

Há algo em sua página /logs ou /sidekiq que possa fornecer mais informações?

Sim. Desativar pode não remover completamente a peça problemática. Mas quais plugins você instalou recentemente? Podemos tentar descobrir se algum deles teve problemas relatados.

2 curtidas

Yes I understand it is hard to pinpoint. That’s why I hoped it would go away after a while but it didn’t.

I think I am having the same problem as this: Users getting notifictations from long ago

Yes I have a standart install but only difference is I am behind Cloudflare. You might think this is because of Cloudflare but before we didn’t had such issue. I don’t think it’s likely.

I couldn’t find anything related to notifications but I am not an expert on this so let me share a quick bit of it maybe your eyes will catch something

Warnings:


MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Failed to send push notification : WebPush::Unauthorized : host: fcm.googleapis.com, #<Net::HTTPForbidden 403 Forbidden readbody=true> body: the VAPID credentials in the authorization header do not co
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Failed to handle exception in exception app middleware : ArgumentError : Empty list of attributes passed
Failed to handle exception in exception app middleware : ArgumentError : Empty list of attributes passed
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
DiscoTOC theme/component is throwing errors: TypeError: Cannot read properties of null (reading 'en')
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Failed to handle exception in exception app middleware : ArgumentError : Empty list of attributes passed
Failed to send push notification : WebPush::Unauthorized : host: updates.push.services.mozilla.com, #<Net::HTTPUnauthorized 401 Unauthorized readbody=true> body: {"code":401,"errno":109,"error":"Unaut
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Failed to handle exception in exception app middleware : ActiveRecord::RecordNotUnique : PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_topic_tags_on_topic_id_and_t
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Failed to process hijacked response correctly : EOFError : end of file reached
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
Deprecation notice: `SiteSetting.anonymous_posting_min_trust_level` has been deprecated. Please use `SiteSetting.anonymous_posting_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/disc
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Failed to send push notification : WebPush::ResponseError : host: web.push.apple.com, #<Net::HTTPBadRequest 400 Bad Request readbody=true> body: {"reason":"VapidPkHashMismatch"}
discourse-gifs theme/component is throwing errors: TypeError: Cannot read properties of null (reading 'en')
DiscoTOC theme/component is throwing errors: TypeError: Cannot read properties of null (reading 'en')
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Failed to send push notification : WebPush::Unauthorized : host: updates.push.services.mozilla.com, #<Net::HTTPUnauthorized 401 Unauthorized readbody=true> body: {"code":401,"errno":109,"error":"Unaut
Sidekiq is consuming too much memory (using: 558.27M) for 'btt.community', restarting
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Failed to send push notification : WebPush::PushServiceError : host: updates.push.services.mozilla.com, #<Net::HTTPBadGateway 502 Bad Gateway readbody=true> body: {"code":502,"errno":903,"error":"Bad
Deprecation notice: `SiteSetting.min_trust_level_for_here_mention` has been deprecated. Please use `SiteSetting.here_mention_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/
Deprecation notice: Jobs::Chat::NotifyMentioned was enqueued with argument values which do not cleanly serialize to/from JSON. This means that the job will be run with slightly different values than t
Deprecation notice: Jobs::Chat::NotifyWatching was enqueued with argument values which do not cleanly serialize to/from JSON. This means that the job will be run with slightly different values than th
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Deprecation notice: Jobs::Chat::NotifyMentioned was enqueued with argument values which do not cleanly serialize to/from JSON. This means that the job will be run with slightly different values than t
Deprecation notice: Jobs::Chat::NotifyWatching was enqueued with argument values which do not cleanly serialize to/from JSON. This means that the job will be run with slightly different values than th

Errors:

Job exception: Net::ReadTimeout
Job exception: Net::ReadTimeout
Job exception: Net::SMTPAuthenticationError
Job exception: Net::SMTPAuthenticationError
Job exception: Net::SMTPAuthenticationError
(google_oauth2) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
Job exception: Net::ReadTimeout
(github) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
(discord) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
default: Failed to pull hotlinked image (https://btt.community/uploads/default/optimized/2X/9/9394498c413ffd7cefbee2461a83d1a66b3b499c_2_690x388.jpeg) post: 10185 PG::UniqueViolation: ERROR: duplicat
Job exception: ERROR: duplicate key value violates unique constraint "pg_type_typname_nsp_index" DETAIL: Key (typname, typnamespace)=(gamification_leaderboard_cache_1_all_time_1, 2200) already exist
(google_oauth2) Authentication failure! invalid_credentials: OAuth2::Error, invalid_grant: Bad Request { "error": "invalid_grant", "error_description": "Bad Request" }
Job exception: Net::ReadTimeout
Job exception: end of file reached
(github) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
(twitter) Authentication failure! invalid_credentials: OAuth::Unauthorized, 401 Unauthorized
Job exception: Net::SMTPAuthenticationError
Job exception: end of file reached
(google_oauth2) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
(google_oauth2) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
Job exception: Net::ReadTimeout
Job exception: wrong number of arguments (given 0, expected 1)
Job exception: end of file reached
Job exception: wrong number of arguments (given 0, expected 1)
(discord) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
Job exception: Net::ReadTimeout
Job exception: wrong number of arguments (given 0, expected 1)

Fatal:

ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "categories" does not exist LINE 1: SELECT "categories"."id" FROM "categories" LEFT JOIN categor...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
Regexp::TimeoutError (regexp match timeout) 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: ERROR: current transaction is aborted, commands ignored until end of transaction block ) lib/post_action_creator.rb:295:in `rescue in creat
NoMethodError (undefined method `title' for 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 (Empty list of attributes passed) 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 (Empty list of attributes passed) 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 (Empty list of attributes passed) 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 (undefined method `title' for 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 (Empty list of attributes passed) 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 (Empty list of attributes passed) 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 (Empty list of attributes passed) 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 (Empty list of attributes passed) 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 (undefined method `title' for 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 (undefined method `title' for 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 (Empty list of attributes passed) 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: ERROR: duplicate key value violates unique constraint "index_topic_tags_on_topic_id_and_tag_id" DETAIL: Key (topic_id, tag_id)=(2907, 1) already e

For sidekiq I don’t know where to look exactly. Isn’t sidekiq handling e-mails? Does it have anything to do with notifications?

Okay I will try to uninstall every one of them and rebuild in the meantime.

Here are the extensions I installed before this problem started (it started the exact day):

  • Who’s Online
  • Cakeday
  • Signature
  • Adsense
  • ActivityPub (I deleted this completely and rebuilt since I couldnt disable this)

As a theme component:

  • GIF

EDIT: I forgot to add couple more of them

  • Discourse Private Topics
  • Discourse Force Moderation

Eu posso estar errado, mas isso é um componente de tema, certo?

Sim, verdade, é um componente de tema neste ponto, não sei o que é o quê, então o incluí de qualquer maneira. :grinning_face_with_smiling_eyes:

1 curtida

O Sidekiq lida com todos os trabalhos em segundo plano, incluindo notificações. Você tem uma mistura eclética de erros aí :slight_smile: Acho que reconheço alguns que já foram corrigidos e não devem ocorrer novamente após você realizar uma reconstrução/atualização. Embora eu veja:

Sidekiq está consumindo muita memória (usando: 558.27M)

Isso pode estar forçando-o a tentar novamente os trabalhos (incluindo o envio de notificações novamente). Você poderia clicar nesse e ver se há mais informações?

2 curtidas

Ah, entendi. Se for esse o caso, de fato, esse pode ser o problema.

image

No lado esquerdo é a contagem, certo? Então aconteceu 10 vezes.

Aqui estão todas as vezes em que aconteceu:

8 de set. 18:55
25 de set. 21:44
4 de out. 21:53
10 de nov. 02:26 (O problema começou em 9 de novembro)
11 de nov. 11:37
11 de nov. 13:37
23 de nov. 18:43
25 de nov. 18:59
Dom 07:32
Seg 13:12

Mas o fato é que temos 4 GB de RAM e 2 GB de SWAP, e eu nunca o vi sendo usado mais do que isso:

E a imagem que acabei de tirar foi agora. Então, talvez isso aconteça quando os usuários estão no pico ou, se esse não for o caso, talvez eu precise aumentar o limite do Sidekiq?

INFO:

Sidekiq está consumindo muita memória (usando: 558.27M) para 'btt.community', reiniciando

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	Seg 13:12

Eu sei, isso não está provando nada, mas eu tenho o mesmo erro todos os dias algumas vezes[1] e qualquer coisa semelhante ao que o OP está experimentando não está acontecendo do meu lado.


  1. porque consertá-lo parece muito exigente e caro ↩︎

2 curtidas

Ao olhar novamente, também vejo alguns erros que podem estar relacionados a isso:

1º:

Message (109 cópias relatadas)

Aviso de depreciação: Jobs::Chat::NotifyMentioned foi enfileirado com valores de argumento que não serializam/desserializam de/para JSON de forma limpa. Isso significa que o trabalho será executado com valores ligeiramente diferentes daqueles fornecidos para `enqueue`. Os valores dos argumentos devem ser strings, booleanos, números ou nil (ou arrays/hashes desses tipos de valor). (depreciado desde Discourse 2.9) (remoção em Discourse 3.0)
Em /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 cópias relatadas)

Aviso de depreciação: Jobs::Chat::NotifyWatching foi enfileirado com valores de argumento que não serializam/desserializam de/para JSON de forma limpa. Isso significa que o trabalho será executado com valores ligeiramente diferentes daqueles fornecidos para `enqueue`. Os valores dos argumentos devem ser strings, booleanos, números ou nil (ou arrays/hashes desses tipos de valor). (depreciado desde Discourse 2.9) (remoção em Discourse 3.0)
Em /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 cópias relatadas)

Exceção do trabalho: número incorreto de argumentos (dado 0, esperado 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	Qua 1:55 pm

Olhando para o backtrace do 3º erro, parece que está relacionado aos plugins discourse-private-topics e discourse-follow. Eu não sou um especialista nisso, como disse, mas vou remover e reconstruir do zero…

1 curtida

Após a exclusão de plugins e a reconstrução, o 3º erro desapareceu, mas as primeiras e segundas notificações de depreciação ainda persistem.

E o problema não foi resolvido.

No Sidekiq, vejo dezenas de Jobs::PostAlert na seção de retentativas. Acho que é por isso que todas essas notificações voltam. Mas por que iria para retentativas em primeiro lugar se realmente envia o alerta?

Como você pode ver, há 63 páginas disso. Devo matá-los todos?

EDITAR:

Olhando para o erro, parece que ele é acionado pelos plugins discourse-private-topics e discourse-follow.

E mesmo quando eu os deletei, já que estavam na seção de retentativas, o Sidekiq ainda estava enviando essas notificações. Agora matei todas essas retentativas e espero que o problema tenha sido resolvido. Vou atualizar.

2 curtidas

Ok, isso resolveu o problema. Então, no final, Job exception: wrong number of arguments (given 0, expected 1) este problema é causado por um ou ambos os plugins Private Topics Plugin e Discourse Follow. Talvez ambos combinados criem este problema, não sei e não acho que quero descobrir. Estou um pouco traumatizado aqui lidando com este problema por 21 dias. :grinning_face_with_smiling_eyes: Talvez os autores deste plugin gostariam de saber disso, então vou marcá-los aqui: @sam @RGJ

Obrigado @JammyDodger @Firepup650

Acho que aprendi como depurar um problema do Discourse e nunca mais instalar mais de 1 plugin de cada vez…

4 curtidas

Obrigado por chegar ao fundo disso! Foi, de fato, um problema no meu plugin de tópicos privados que só acontecia quando o plugin de seguir também estava ativado.

Eu publiquei uma correção. Desculpe pela experiência traumatizante :wink:

3 curtidas

Excelente depuração. :clap: :slight_smile: E obrigado pela correção rápida @RGJ :rocket:

Como este foi um problema com um plugin não #oficial, vou removê-lo da categoria Bug (embora não o mescle em Private Topics Plugin, pois é um pouco grande para isso).

Espero que agora você possa ter ambos os plugins instalados sem nenhuma notificação animada. :crossed_fingers:

2 curtidas