crossbario / crossbario/autobahn-python

Event Loop neither Terminates nor reconnects when connection breaks

Open
#1,556 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

wamp
Dominant language
Python
Stars
2.5k
Forks
768
PR merge metrics
No merged PRs in 30d

Description

Hi,
I am starting using Autobahn-Python.
maybe this is a noob-problem. I did the following (based on the example code):

  1. started a router
  2. started a callee process offering some rpcs
  3. started a caller, called the rpcs

all works fine.

problem:
if the connection to the router goes down, the callee side shows a warning "WAMP transport was lost before closing"
Then it does not terminate and also does not attempt to reconnect

I tried with both: asyncio and twisted implementations because someone said that twisted would reconnect. But also there: Error is detected and logged, but event-loop does not terminate and als no re-connect. This questions my whole concept (one weekend of work).

What does help terminating the loop is:

    async def onDisconnect(self):
        loop = asyncio.get_running_loop()
        loop.stop()

is this the way to go?

There still is a problem when initial connection to WAMP Router works but registration does not (because router is currently coming up for example). In that case, the callee system hangs forever. Is there a solution for that?

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

Reproduce the example router, callee, and caller setup with both asyncio and Twisted, including a dropped router connection and a registration attempted during router startup. Read the connection lifecycle around the shown onDisconnect handler and compare the observed event-loop behavior with the expected termination or reconnection behavior. Done means both failure cases have a documented, verified outcome.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
distributed-systems, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.