Possible concurrency issues
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 1.5k
- Forks
- 88
- Avg merge
- 3d 19h
- Merged PRs (30d)
- 5
Description
@casperisfine @Sirupsen
I was poking around and found what I think are a few (hypothetical) issues when some semian methods are called concurrently. It's possible I'm missing something in the architecture (e.g are adapter methods expected to always be mutexed by the parent driver the way redis is?) but if not then here are some things I noticed:
- multiple concurrent calls to a new adapter can end up racing in
retrieve_or_registercreating multiple instances of the same circuit-breaker and protected resource - various issues in the circuit-breaker, e.g. concurrent calls to
request_allowed?can "lose" successful responses by triggering multiple transitions to the half-open state
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing concurrent calls through retrieve_or_register and the circuit-breaker request_allowed? path, then confirm the adapter and parent-driver locking expectations. Reproduce duplicate circuit-breaker or protected-resource instances and conflicting half-open transitions under concurrency; done means the expected behavior is documented and covered by concurrency tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100