cloudamqp / cloudamqp/amqproxy
Option to turn off channel sharing, or a way for it to not share a channel when confirm_select is enabled
Nobody has claimed this yet.
- Dominant language
- Crystal
- Stars
- 408
- Forks
- 50
- Avg merge
- 18h 30m
- Merged PRs (30d)
- 3
Description
I am setting up the proxy, when upgrading to version 2, it locks up connections.
My best guess, is it's lumping 130 connections and channels together. But some of them have publisher confirms and some do not. When one of those publishes, it changes a shared channel, breaking anyone else using it.
That's my best theory anyways. The problem of it hanging with no errors seems to resolve when I roll back to proxy v1.0.0.
If it matters, we are using PhpAmqpLib with channel->confirm_select() and handlers for channel->set_ack_handler() channel->set_nack_handler() set. Connections come from 100s of different sources and scripts all going through the 1 proxy.
Contributor guide
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
No source files or tests are named. Start by tracing the v2 connection and channel pooling behavior, then reproduce the lockup with PhpAmqpLib using confirm_select and the ack/nack handlers, comparing it with proxy v1.0.0. Done means confirming the shared-channel cause and providing either configurable channel sharing or a safe path for confirmed publishers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- crystal, php, rabbitmq
- Domain
- backend, networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100