Плагин ActivityPub: слишком глубокий уровень стека

В логах недавно (последние 4–5 дней) появляется эта ошибка:

Сообщение (18 записей)

Исключение в задаче: переполнение стека
Трассировка

activesupport-7.2.2.1/lib/active_support/core_ext/object/blank.rb:166:in `present?'  
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/json_ld.rb:57:in `base_object_id'  
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/json_ld.rb:58:in `base_object_id'  
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/json_ld.rb:58:in `base_object_id'  
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/json_ld.rb:58:in `base_object_id'  

В окружении нет дополнительной информации об объекте:

|queue|default|
|---|---|
|class|Jobs::DiscourseActivityPubProcess|
|args|[object Object], []|
1 лайк

У меня есть 970 инцидентов такого рода за определённый период. Каждый день по несколько, в любом случае. Хотя я не вижу никаких реальных видимых проблем.

(И теперь у меня начались какие-то странные взаимные блокировки, но это уже заслуживает отдельной темы)

1 лайк

Я всё ещё получаю это, но не понимаю, как это возникает.

Я знаю об этом немного. Или, может, совсем мало.

В одном из логов эта строка повторяется очень много раз. Не знаю сколько именно, потому что от прокрутки начала болеть запястье.

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/json_ld.rb:58:in `base_object_id'

Мне не нравится этот символ обратного апострофа перед base_object_id.

Там отображается иконка ссылки, ведущая на GitHub, но там ошибка 404.

https://github.com/discourse/discourse/blob/3165992a90c481e5aa6fb1b18854cf7d9c3ed791/plugins/discourse-activity-pub/lib/discourse_activity_pub/json_ld.rb#L58

Это ни о чём не говорит, верно? В этой ветке нет директории activity-pub, но почему тогда она показывается? Просто любопытно.

Как-то я упустил это! Извините, это должно решить проблему.

https://github.com/discourse/discourse-activity-pub/pull/198

1 лайк

Спасибо @angus :+1: Это уже объединено.

2 лайка

Спасибо.

Очень базовый вопрос, потому что мне просто интересно. Я нигде не увидел ничего подозрительного, и всё это привело лишь к раздражающей ошибке в логах. Была ли эта ошибка чем-то… реальным?

Это использовалось в коде, который защищал от отправки дублирующихся действий в быстрой последовательности, что некоторые другие платформы иногда делают. Поэтому, если вы ничего не заметили, значит, вы не взаимодействуете с сервером, который это делает.

2 лайка