cloudamqp / cloudamqp/amqproxy

Option to turn off channel sharing, or a way for it to not share a channel when confirm_select is enabled

Open
#198 7 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.