Skip to content

Conversation

psanford
Copy link
Owner

Wormhole-william would hang for a long time if it got a message with 2 or more duplicate addresses in the direct tcp hints.

If the remote side sent duplicate hints (specifically more than 2)
we'd hang for a long time waiting for things to time out. This is
because we were hashing by address so we'd launch N go routines for
those connections, but we'd only have a single cancel function.

We now dedup by address to avoid this issue.

There was also a bug in the logic waiting for all the cancellations
to occur. That would leak a goroutine every time connectDirect timed
out.
Don't send duplicate addresses in hints. Its possible for this
to happen if you have multiple interfaces with the same IP address.
This would cause receivers to hang for a long time before timing out
because of a bug in the receive path of wormhole william.
@psanford psanford closed this in a830550 Dec 16, 2022
Jacalz pushed a commit to rymdport/wormhole that referenced this pull request Dec 28, 2022
Don't send duplicate addresses in hints. Its possible for this
to happen if you have multiple interfaces with the same IP address.
This would cause receivers to hang for a long time before timing out
because of a bug in the receive path of wormhole william.

Closes: psanford#89 [via git-merge-pr]
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