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
Libp2p Pubsub kicks all of my peers after upgrading from 0.8.0 to 0.9.3 #530
Comments
Its a go-libp2p problem, not a pubsub bug. |
Hrm, it might be relates to the notifiee trying to open a stream? |
Disabling pubsub does not make my peers get kicked out so I think it is pubsub or you mean something else? What I know is that after the upgrade with no change of config whatsoever, this issue arose. I would also like to note that disabling gossip publishing does NOT fix the issue. |
pubsub doesn't do anything out of the ordinary, so it is libp2p bug triggered by pubsub probably. |
uhm, okay so I will try to get the debug logs for @MarcoPolo then, I think that is my only choice in light of this plot twist |
I think this also happened to me also. Trying to bump from v0.8.1 to v0.9.3. |
Pubsub streams are unidirectional. Prevously it would read incoming data and ignore them, now it resets the stream, which makes it stricter. Are you interoping with a faulty peer? |
no, just a peer that uses the following libp2p libs versions:
We have a go-libp2p-pubsub fork and now we are trying with the reverted code for the handlePeerDead function to track if that is the cause. I've suspected pubsub lib for the following reason:
By discrepancies, I mean the |
running with debug logs enabled, I've stumbled across this section when the discrepancies between the host's network and pubsub became evident:
I think the PEERDOWN event shouldn't have happened 🤔 |
Interesting, seems like an issue with multiple connections. |
Yes, it takes ~1h-2h for each test but we will pursue finding what is wrong. |
I have this sequence on 2 peers that are both running the pubsub 0.9.3 version. Something went wrong on the muxer (please note that besides pubsub, we've implemented a custom direct-send protocol that makes use of separate streams): PID 16Uiu2HAkuyCrWCEBtubkbhfUKMuw9BJtL7Fe799v1rUnazbcwkFG logs:
PID 16Uiu2HAmPru7627X1dFqsNsxaSyjyS15ZFAkGmbJsn73PwkQEgMN logs:
will try to dig further based on these logs |
After trying with the new go-libp2p version v0.28.1 everything worked fine: no more connectedness discrepancies between the pubsub and the host, or at least not detectable. Probably the streams do not reset after normal message write/read.
|
thank you for the detailed investigation on this!
…On Thu, Jun 29, 2023 at 12:11 PM Iulian Pascalau ***@***.***> wrote:
After trying with the new go-libp2p version v0.28.1 everything worked
fine: no more connectedness discrepancies between the pubsub and the host,
or at least not detectable. Probably the streams do not reset after normal
message write/read.
We also tested the backward compatibility with the pubsub v0.8.0 &
go-libp2p 0.22.0 and we did not find any issues.
The final go.mod imports that we use and found that are working properly
are these:
github.com/gogo/protobuf v1.3.2github.com/ipfs/go-log v1.0.5github.com/jbenet/goprocess v0.1.4github.com/libp2p/go-libp2p v0.28.1github.com/libp2p/go-libp2p-kad-dht v0.23.0github.com/libp2p/go-libp2p-kbucket v0.6.3github.com/libp2p/go-libp2p-pubsub v0.9.3github.com/multiformats/go-multiaddr v0.9.0
—
Reply to this email directly, view it on GitHub
<#530 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAI4SWKGTBTQ6VZKISA2I3XNVBFTANCNFSM6AAAAAAWI44LKQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Copypasted from the go-libp2p issue
Hello, I am from the Erigon team, one of the Ethereum clients, I am trying to build a consensus client and I am having issues after upgrading libp2p-pubsub to 0.9.3. What seems to happen is that after the upgrade I lose all the peers I have. I found a work around that seems to somehow fix this as long as I do not do any request which is calling host.RemoveStreamHandler("/p2p/id/delta/1.0.0") . If I do that when I only subscribe and publish to gossip it seems to not give any issue, however if I repeatedly make requests to the network, I will get kicked out from the network (or at least lose all peers and be unable to reconnect).
I get kicked out after a while from the ETH 2.0 network after upgrading libp2p version.
I first posted this issue on the go-libp2p github but then I found out that disabling pubsub fixed the issue for seemingly no reason so now it is here. the original issue and discussion is at: libp2p/go-libp2p#2202 . @MarcoPolo
The text was updated successfully, but these errors were encountered: