OpenFGA
v1.15.1Securityv1.15.1 is a stability patch fixing two serious runtime bugs — a potential deadlock in Check and a semaphore leak under context cancellation — plus a cache collision in the experimental weighted graph check.
breakingUpgrade immediately — deadlock and semaphore leak bugs affect production stability
Two bugs here can quietly degrade running services. The deadlock in Check (message streams held open on error) can starve request processing over time. The semaphore leak in the bounded tuple reader under context cancellation means goroutine/resource exhaustion under load or timeout-heavy workloads. Neither requires config changes — just upgrade. If you've seen unexplained Check hangs or increasing resource pressure after cancellations, these are the culprits.
securityCache key collision in `weighted_graph_check` could return incorrect authorization results
If you're running the experimental `weighted_graph_check` feature, the cache collision bug means Check could return stale or wrong results for relationships in unions with direct types, wildcards, TTU paths, or intersections. This is an authorization correctness issue — wrong answers on permission checks. Upgrade before relying on this feature in any environment where correctness matters. If you can't upgrade immediately, disable the experimental feature flag.
enhancementListObjects now handles short-circuit errors correctly
A subtle bug was causing expected errors (non-fatal path short-circuits) to bubble up incorrectly in ListObjects responses. If you've seen unexpected errors returned from ListObjects queries that should have silently short-circuited, this fix resolves that. No action needed beyond upgrading — but worth re-validating ListObjects behavior in your test suite after the upgrade.
主な変更 (5)
- Fixed potential panic in command error handling
- Fixed deadlock risk in Check by ensuring message streams close on error instead of hanging indefinitely
- Fixed semaphore token leaks in the bounded tuple reader during context cancellation
- Fixed cache key collisions in experimental `weighted_graph_check` affecting unions with multiple branches
- Fixed incorrect error propagation in ListObjects when a path short-circuits