Closed yenshirak closed 1 year ago
Thanks for the report! Will take a look today.
The issue is fixed in master (so, you can try using edge
or commit-specific version if you're using Docker). The next release is planned for the end of this week.
Thank you
Released in 1.4.2
Tell us about your environment
AnyCable-Go version: 1.4.1
AnyCable gem version: 1.4.1
We use the redisx broadcast adapter, the memory broker and the actioncable-v1-ext-json protocol, 1 anycable-go instance, no pub/sub. JWT authentication is enforced, we don't use RPC.
What did you do?
We switched to the actioncable-v1-ext-json protocol.
What did you expect to happen?
No panics.
What actually happened?
The anycable-go service panicked daily with the following error message (the range in the error message varied):
These happened in production where debug logging wasn't enabled. We switched back to actioncable-v1-json for now. I couldn't replicate the issue on staging.
I have zero Go experience but it seems to me that the length of
ms.data
isn't checked in thefilterByOffset
function before slicing: https://github.com/anycable/anycable-go/blob/master/broker/memory.go#L99Please let me know if you need any additional info or help with debugging and fixing the issue.