-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
flaky TestGlobalPreferenceV4 on Ubuntu #1611
Comments
Assigning myself. |
Working on this. |
We're hitting the global/fallback dialer go-libp2p/p2p/net/reuseport/reuseport.go Line 32 in 7facd81
which doesn't have the reuse-port settings like the local variable go-libp2p/p2p/net/reuseport/reuseport.go Lines 18 to 21 in 7facd81
I'm thinking we can either:
@Stebalien Could you expand on the rationale of the |
We hit the fallback dialer if dialing with reuseport fails for some reason. We do this because reuseport doesn't always work:
The first thing to investigate would be why the first dial is failing. |
Maybe the other side is dialing us automatically for some reason? Or it could be some form of spurious failure. |
go-libp2p/p2p/net/reuseport/transport_test.go Lines 165 to 180 in 7facd81
What I'm seeing locally on my From my limited understanding of address/port reuse rules this isn't what I would have expected, so I might be misinterpreting some part of the failed test. Will double check to confirm the above. @Stebalien Does any of this make sense to you? |
There shouldn't be a conflict between the host and the container. However, there may be a conflict between Are you sure the container isn't just auto-forwarding ports? |
@Stebalien Sorry, the Everything works if the port is not bound by the root process. Bind to wildcard
Bind to localhost
This was tested forcing the listener on the |
This address may already be in-use (on that other address) somewhere else. Thanks to @schomatis for figuring this out. fixes #1611
Yeah, that makes sense. So this looks like an actual bug. Basically, we shouldn't do: go-libp2p/p2p/net/reuseport/dial.go Lines 106 to 112 in 68722aa
or:
Instead, if we "don't know", we should just not set a local address. I've filed a patch here because, well, I wrote this code and it was... overcomplicated. |
This address may already be in-use (on that other address) somewhere else. Thanks to @schomatis for figuring this out. fixes #1611
https://github.com/libp2p/go-libp2p/runs/7028901565?check_suite_focus=true
The text was updated successfully, but these errors were encountered: