Skip to content

smp: fix proxy reconnection to relay after restart#1806

Open
shumvgolove wants to merge 1 commit into
masterfrom
sh/fix-proxy-reconnect
Open

smp: fix proxy reconnection to relay after restart#1806
shumvgolove wants to merge 1 commit into
masterfrom
sh/fix-proxy-reconnect

Conversation

@shumvgolove

Copy link
Copy Markdown
Collaborator

Problem

An SMP proxy permanently stops reconnecting to a destination relay after the relay restarts. The logs show repeated PCEResponseTimeout for that relay, and only restarting the proxy server recovers it.

Cause

A PRXY request makes the proxy open a connection to the relay in a worker forked from the sender's client. The worker inserts an empty session var into smpClients and then blocks in the connection/handshake. If the sender disconnects while that connect is in flight, the worker is killed by an async exception before the session var is ever filled.

Nothing removes an empty session var, so every later request to that relay waits on it until the connection timeout and fails with PROXY (BROKER TIMEOUT) - forever, even once the relay is healthy again.

Reproduces the proxy failing to reconnect to a destination relay when the
sender disconnects mid-connection (empty session var left in smpClients).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant