Skip to content

v4.1.2

Compare
Choose a tag to compare
@FZambia FZambia released this 11 Jan 18:39
· 262 commits to master since this release
aa8b0ae

This is a quick fix release for Centrifugo v4.1.1, which introduced a bug in client protocol. We also copied release notes of Centrifugo v4.1.1 to this release marking v4.1.1 unusable.

Release notes

Fixes

  • Fix decoding of large protocol messages. The bug was introduced by v4.1.1. See bug report
  • Fix: slow down subscription dissolver workers while Redis PUB/SUB is unavailable. This solves a CPU usage spike which may happen while Redis PUB/SUB is unavailable and last client unsubscribes from some channel.
  • Relative static paths in Centrifugo admin web UI (to fix work behind reverse proxy on sub-path)

Improvements

  • Possibility to disable client protocol v1 using disable_client_protocol_v1 boolean option. To remind you about client protocol v1 vs v2 migration in Centrifugo v4 take a look at v3 to v4 migration guide. Centrifugo v4 uses client protocol v2 by default, all our recent SDKs only support client protocol v2. So if you are using modern stack then you can disable clients to use outdated protocol v1 right now. In Centrifugo v5 support for client protocol v1 will be completely removed, see Centrifugo v5 roadmap.
  • New boolean option disallow_anonymous_connection_tokens. When the option is set Centrifugo won't accept connections from anonymous users even if they provided a valid JWT. See #591 and docs
  • New option client_connection_rate_limit to limit the number of new real-time connections Centrifugo may accept per second, see docs
  • Implement sub_refresh proxy to periodically validate expiring subscriptions over the call from Centrifugo to the backend endpoint, see #592 and docs
  • More human-readable tracing logging output (especially in Protobuf protocol case). On the other hand, tracing log level is much more expensive now. We never assumed it will be used in production – so seems an acceptable trade-off.
  • Several internal optimizations in client protocol to reduce memory allocations.
  • More strict client protocol: only allow one pong message from client to server after receiving ping, disable sending commands over the connection which returned an error to the Connect command