Bei der Verwendung von Discourse in einer Multi-Thread-Ruby-Implementierung und einem Server (TruffleRuby/Puma) werden Fehler durch die unsichere Hash-Nutzung im Logster-Gem in der Nähe dieses Abschnitts erzeugt:
Ich verstehe, gibt es eine Möglichkeit, dass Sie einen Mutex in einem PR hinzufügen können? Das scheint der richtige Ansatz zur Behebung dieses Problems zu sein.
(Nebenbei @dev-managers / @jomaxro Ich schätze, um mit anderen Projekten Schritt zu halten, sollten wir die Logster-Probleme auf GitHub aktiviert lassen? Ich stimme dafür.)
Ein Beitrag wurde in ein neues Thema aufgeteilt: Bei welchen von Discourse verwalteten Gems sollen wir GitHub-Probleme aktivieren
Wenn ein Mutex verwendet wird, sollte er aus Gründen der Korrektheit sowohl für Schreib- als auch für Lesezugriffe verwendet werden.
Diese Funktionalität scheint besser zu Faser-/Thread-lokalen Variablen zu passen.
Ist es möglich, mehrere Logster::Logger-Instanzen zu haben, oder immer nur eine? Wenn mehrere, müssen wir irgendwie die object_id der Instanz zum Schlüssel machen, der für Faser-/Thread-lokale Lookups verwendet wird.
Absolut! Ich glaube, das sollte es beheben und den Code gleichzeitig stark vereinfachen ![]()
Ich bin mir ziemlich sicher, dass es nur eine gibt, aber ich habe einige Schutzmaßnahmen hinzugefügt.
Ich habe mich gegen die Verwendung eines define_finalizer entschieden, da die Verbraucher für die Bereinigung verantwortlich sind, andernfalls wird die Abrechnung sehr unübersichtlich.
Dieses Thema wurde nach 3 Tagen automatisch geschlossen. Neue Antworten sind nicht mehr möglich.