При использовании Discourse в многопоточной реализации Ruby и сервере (TruffleRuby/Puma) из-за небезопасного использования хешей в библиотеке logster вблизи указанного раздела возникают ошибки:
Понятно, есть ли шанс, что вы добавите мьютекс там в PR? Похоже, это правильный подход к исправлению этой проблемы.
(кстати, @dev-managers / @jomaxro, я полагаю, для паритета с другими проектами нам стоит оставить включёнными issues для Logster на GitHub? Мой голос — за)
Пост был разделён на новую тему: На каких управляемых Discourse gems следует включить GitHub issues
Если используется мьютекс, то для обеспечения корректности его следует применять как при записи, так и при чтении.
Однако эта функциональность кажется более подходящей для переменных, локальных по отношению к фибрам или потокам.
Возможно ли создание нескольких экземпляров класса Logster::Logger, или всегда существует только один? Если экземпляров несколько, то каким-то образом необходимо включать object_id экземпляра в ключ, используемый для поиска по переменным, локальным по отношению к фибрам или потокам.
Конечно! Я думаю, это должно исправить проблему и при этом значительно упростить этот код ![]()
Довольно уверен, что только один, но я добавил некоторые защиты.
Я отказался от использования define_finalizer: потребители сами отвечают за очистку, иначе учёт становится очень запутанным.
Эта тема была автоматически закрыта через 3 дня. Новые ответы больше не принимаются.