circleState := circles[circle]
circleState.mtx.Lock() # line 131
Not sure I can explain that: circleState could be nil if circles[circle] doesn't exist, but then it should've crashed on reading circleState.mtx rather than calling (nil).Lock().
circleState being nil seems very plausible. This client has registered with this circle during its lifetime, so circleState not being initialized is possible. As usual, I suspect 058b215fd967e9964f3e3d05f764d3c1a724adb6.
Not sure I can explain that: circleState could be nil if circles[circle] doesn't exist, but then it should've crashed on reading circleState.mtx rather than calling (nil).Lock().
circleState being nil seems very plausible. This client has registered with this circle during its lifetime, so circleState not being initialized is possible. As usual, I suspect 058b215fd967e9964f3e3d05f764d3c1a724adb6.