멀티스레드 Ruby 구현과 서버(TruffleRuby/Puma)에서 Discourse를 사용할 때, logster gem의 다음 섹션 근처에서 unsafe hash 사용으로 인해 오류가 발생합니다:
3개의 좋아요
네, 알겠습니다. PR에서 거기에 Mutex를 추가할 수 있을까요? 이 문제를 수정하는 데 가장 적절한 방법인 것 같습니다.
(참고: @dev-managers / @jomaxro 다른 프로젝트들과의 일관성을 위해 GitHub에서 logster 이슈를 활성화해 두는 것이 좋을까요? 제 의견은 네입니다.)
4개의 좋아요
게시물이 새 주제로 분리되었습니다: 어떤 Discourse 관리 gems에 GitHub issues를 활성화해야 할까요
Mutex가 사용된다면, 정확성을 위해 쓰기 및 읽기 접근 모두에 사용되어야 합니다.
이 기능은 섬유/스레드 로컬 변수(fiber/thread-local variables)에 더 적합해 보입니다.
Logster::Logger 인스턴스를 여러 개 가질 수 있나요, 아니면 항상 하나만 존재하나요? 여러 개가 가능하다면, 섬유/스레드 로컬 조회에 사용되는 키에 인스턴스의 object_id를 포함해야 합니다.
1개의 좋아요
물론입니다! 이 방법으로 문제를 해결할 수 있을 것 같고, 동시에 코드를 상당히 단순화할 수 있을 것 같습니다 ![]()
2개의 좋아요
인스턴스가 하나만 있는 것 같습니다. 하지만 몇 가지 보호 조치를 추가했습니다.
define_finalizer 사용은 제외했습니다. 클린업은 사용자의 책임이며, 그렇지 않으면 계정이 매우 복잡해지기 때문입니다.
이 주제는 3일 후 자동으로 닫혔습니다. 새로운 답변은 더 이상 허용되지 않습니다.