Las notificaciones vuelven a aparecer incluso después de leerlas [plugin Temas Privados]

Hola, estoy usando la versión 3.2.0.beta4-dev (autoalojada) y en este commit. Después de las actualizaciones, los usuarios han comenzado a experimentar notificaciones dobles/triples en la interfaz de usuario. (Estoy hablando de la interfaz de usuario de Discourse, no de correos electrónicos, etc.)

Incluso después de hacer clic y leer, las notificaciones a veces vuelven. Yo también estoy teniendo esos problemas. No sé cómo solucionar esto o proporcionar registros útiles. Quería compartir esto, tal vez si es un problema global o en mi instancia.

Sospecho que es un problema de RAM, ¿cuánta RAM tiene tu instancia de Discourse?

Supongo que te refieres a la ‘interfaz de usuario de Discourse’.

Ok, pero este servidor ha estado activo durante casi 2 meses, este problema no apareció antes. En este momento en mi servidor tenemos 4 GB de RAM y la mitad está vacía. 2 GB de swap también están vacíos.

Creo que tal vez la actualización lo hizo, pero tal vez las extensiones lo hicieron. No estoy seguro. Supongo que el siguiente paso que daré será deshabilitar todas las extensiones y ver si ayuda.

Sí, he incluido una imagen en mi primera publicación. Me refiero a las notificaciones de Discourse UI.

He deshabilitado un montón de extensiones y el problema persiste. ¿Alguna idea o es posible que pueda degradar a la versión 3.2.0.beta3-dev? Gracias.

Hola de nuevo, sé que nadie tiene que ayudar y que este es un foro comunitario y, por supuesto, no soy un cliente de pago, pero este error me está resultando muy frustrante tanto a mí como a los usuarios. Hemos creado una comunidad hace 2 meses gracias a Discourse, donde tenemos 458 usuarios activos mensuales. Pero desde que nos ocurrió este error (hace 20 días) he intentado todo lo que he podido. Es bastante malo para la experiencia del usuario y ahora estoy intentando encontrar scripts para migrar a Flarum o alguna otra plataforma de foros. Solo mira esto:

output

Los usuarios reciben la misma notificación una y otra vez. Reciben notificaciones de hace 20 días, de hace 5 días o de cualquier momento. Incluso cuando descartas todas las notificaciones, vuelves a recibir la misma notificación después de un par de horas y ¡no hay forma de solucionarlo!

De nuevo, sé cuál es mi posición, esta es una plataforma comunitaria. No tengo derecho a quejarme, pero si nadie ayuda después de esta publicación, incluso si eso significa que todas nuestras publicaciones y temas anteriores serán eliminados (1.2 mil temas y 12.7 mil publicaciones), tendremos que ir a otro lugar…

Solo como nota, fui un defensor de Discourse. He creado videos sobre él en mi canal de YouTube. Las comunidades turcas suelen usar foros desactualizados y tuve una gran experiencia usando Discourse antes, así que después de abrir mi propio foro, quería que la gente conociera este software.

De todos modos, realmente no quiero perder todas las soluciones y el trabajo de otras personas en nuestro foro actual. Así que amablemente les pido ayuda de nuevo. Gracias.

Solo por curiosidad, ¿puedes encontrar algo en común entre las publicaciones que tienen notificaciones repetidas?

1 me gusta

Según entiendo, es diferente para cada usuario. Pero se repiten. En mi cuenta, recibo las mismas notificaciones una y otra vez. Aunque esto no sucede en publicaciones de hace más de 21 días, para las cuales hicimos una actualización 3.2.0beta4 y también agregué extensiones a nuestro foro.

Inicialmente pensé que las extensiones desencadenaban esto, así que deshabilité todas las extensiones, pero no resolvió el problema. Por cierto, ¿quizás debería eliminarlas y reconstruir completamente? No lo sé.

Luego pensé que era por la beta4. Entonces, volví a la beta3, donde no teníamos el problema, pero aún persistía.

Lamentablemente, no hemos tenido otros informes de esto, por lo que es difícil determinar qué está sucediendo en tu sitio. ¿Tienes una instalación estándar?

¿Hay algo en tu página /logs o /sidekiq que pueda proporcionar más información?

Sí. Deshabilitar puede no eliminar por completo la pieza problemática. Pero, ¿qué plugins instalaste recientemente? Es posible que podamos saber si alguno ha tenido problemas reportados.

2 Me gusta

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

Podría estar equivocado, pero eso es un componente temático, ¿verdad?

Sí, es cierto, es un componente temático en este punto, no sé qué es qué, así que lo incluí de todos modos. :grinning_face_with_smiling_eyes:

1 me gusta

Sidekiq se encarga de todos los trabajos en segundo plano, incluidas las notificaciones. Tienes una mezcla ecléctica de errores ahí :slight_smile: Creo que reconozco algunos que ya se han corregido y no deberían volver a ocurrir después de que realices una reconstrucción/actualización. Aunque veo:

Sidekiq está consumiendo demasiada memoria (usando: 558.27M)

Lo que podría estar obligándolo a reintentar trabajos (incluido el envío de notificaciones nuevamente). ¿Podrías hacer clic en ese y ver si hay más información?

2 Me gusta

Oh, ya veo, si ese es el caso, de hecho, ese podría ser el problema.

image

A la izquierda está el conteo, ¿verdad? Así que sucedió 10 veces.

Aquí están todas las veces que sucedió:

8 sep 18:55
25 sep 21:44
4 oct 21:53
10 nov 02:26 (El problema comenzó el 9 de noviembre)
11 nov 11:37
11 nov 13:37
23 nov 18:43
25 nov 18:59
dom 07:32
lun 13:12

Pero la cosa es que tenemos 4 GB de RAM y 2 GB de SWAP, y nunca lo veo usado más allá de esto:

Y la imagen que tomé es ahora mismo. Así que tal vez esto sucede cuando los usuarios están en su punto máximo o, si ese no es el caso, ¿tal vez necesito aumentar el umbral de Sidekiq?

INFO:

Sidekiq está consumiendo demasiada memoria (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	lun 13:12

Lo sé, esto no demuestra nada, pero tengo el mismo error todos los días varias veces[1] y nada similar a lo que está experimentando el OP me está sucediendo.


  1. porque arreglarlo suena demasiado exigente y caro ↩︎

2 Me gusta

Al mirar de nuevo, también veo algunos errores que podrían estar relacionados con esto:

1º:

Mensaje (109 copias reportadas)

Aviso de depreciación: Jobs::Chat::NotifyMentioned se encoló con valores de argumento que no se serializan/deserializan limpiamente desde/hacia JSON. Esto significa que el trabajo se ejecutará con valores ligeramente diferentes a los proporcionados a `enqueue`. Los valores de los argumentos deben ser cadenas, booleanos, números o nulos (o matrices/hashes de esos tipos de valor). (obsoleto desde Discourse 2.9) (eliminación en Discourse 3.0)
En /var/www/discourse/plugins/chat/lib/chat/notifier.rb:355:in `notify_mentioned_users`

Rastreo

/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º:

Mensaje (109 copias reportadas)

Aviso de depreciación: Jobs::Chat::NotifyWatching se encoló con valores de argumento que no se serializan/deserializan limpiamente desde/hacia JSON. Esto significa que el trabajo se ejecutará con valores ligeramente diferentes a los proporcionados a `enqueue`. Los valores de los argumentos deben ser cadenas, booleanos, números o nulos (o matrices/hashes de esos tipos de valor). (obsoleto desde Discourse 2.9) (eliminación en Discourse 3.0)
En /var/www/discourse/plugins/chat/lib/chat/notifier.rb:367:in `notify_watching_users`

Rastreo

/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º:

Mensaje (29888 copias reportadas)

Excepción de trabajo: número incorrecto de argumentos (se dieron 0, se esperaban 1)

Rastreo

/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	We 1:55 pm

Mirando el rastreo del 3er error, parece que está relacionado con los plugins discourse-private-topics y discourse-follow. No soy un experto en esto, como dije, pero déjame eliminar y reconstruir esto desde cero…

1 me gusta

Tras eliminar los plugins y reconstruir, el tercer error desapareció, pero las dos primeras notificaciones de advertencia de obsolescencia aún persisten.

Y el problema no está resuelto.

En Sidekiq veo que hay docenas de Jobs::PostAlert en la sección de reintentos. Supongo que por eso vuelven todas esas notificaciones. Pero, ¿por qué iría a reintentos en primer lugar si en realidad envía la alerta?

Como puedes ver, hay 63 páginas de esto. ¿Debería matarlas a todas?

EDITAR:

Mirando el error, parece que se activa desde los plugins discourse-private-topics y discourse-follow.

E incluso cuando los eliminé, ya que estaban en la sección de reintentos, Sidekiq seguía enviando esas notificaciones. Ahora he eliminado todos esos reintentos y espero que el problema se haya resuelto. Lo actualizaré.

2 Me gusta

De acuerdo, eso resolvió el problema. Así que al final Job exception: wrong number of arguments (given 0, expected 1) este problema es causado por uno o ambos de los plugins Private Topics Plugin y Discourse Follow. Quizás ambos combinados crean este problema, no lo sé y no creo que quiera averiguarlo. Estoy un poco traumatizado lidiando con este problema durante 21 días. :grinning_face_with_smiling_eyes: Quizás a los autores de este plugin les gustaría saber esto, así que los etiquetaré aquí: @sam @RGJ

Gracias @JammyDodger @Firepup650

Supongo que aprendí a depurar un problema de Discourse y a no instalar nunca más de 1 plugin a la vez…

4 Me gusta

¡Gracias por llegar al fondo de esto! De hecho, fue un problema en mi plugin de temas privados que solo ocurría cuando el plugin de seguimiento también estaba habilitado.

He implementado una solución. Disculpa la experiencia traumática :wink:

3 Me gusta

Excelente depuración. :clap: :slight_smile: Y gracias por la rápida solución @RGJ :rocket:

Dado que se trataba de un problema con un plugin no oficial (#non-official), lo sacaré de la categoría de errores (Bug) (aunque no lo fusionaré en Private Topics Plugin ya que es un poco grande para eso).

Espero que ahora puedas tener ambos plugins instalados sin ninguna notificación emocionante. :crossed_fingers:

2 Me gusta