Release v2.1.1
Fixed
- Fixed a race condition where starting a Chronicle connection session without an explicit client name could fail with
{:error, {:already_started, pid}}when done concurrently, because every unnamed session was registered under the same global process name.
Summary
CI (https://github.com/Cratis/Chronicle.Elixir/actions/runs/29910400838) was intermittently failing Chronicle.Connections.SessionTest with a MatchError on {:error, {:already_started, pid}}. Session.start_link/1 fell back to registering every session started without a client_name under the fixed name Chronicle.Connections.Session, so concurrent async tests raced to claim that same name. The session now stays unnamed (anonymous process) when no client_name is supplied, removing the collision.
Test plan
-
mix compile --warnings-as-errors -
mix test(full suite, run repeatedly — 0 failures) - Targeted stress test: 50 concurrent
Session.start_link/1calls withoutclient_name— 0 collisions