libp2p / go-libp2p-pubsub

The PubSub implementation for go-libp2p
https://github.com/libp2p/specs/tree/master/pubsub
Other
317 stars 182 forks source link

Respect Backoff For Pruned Peer #456

Closed nisdas closed 2 years ago

nisdas commented 2 years ago

Peer A and Peer B are subscribed to the same topic(Topic X) and have each other in their mesh for Topic X

Peer A then decides to leave the topic and both remove each other from their mesh for this topic. However since Peer B receives a prune message from A ( due to A leaving the topic), it adds a backoff for that topic with that peer. If A rejoins Topic X before the backoff period ends, it will try to graft new peers into the mesh. And if peer B is still connected, Peer B will be regrafted into the mesh. However because Peer B already was pruned previously and had a backoff for that topic, it will penalize Peer A for trying to regraft it into the mesh for Topic X.

The correct behaviour would be for Peer A to also add a corresponding backoff for peers that it prunes this way. That way it will know not to graft in peers who had been previously pruned and had a backoff running(and therefore unintentionally being penalised). Although this would only ever happen if the period of leaving and joining the same topic is within the prune backoff period, this edge case should be handled so that peers are not unintentionally penalised.

nisdas commented 2 years ago

Seems like #367 is essentially the same issue too.

aschmahmann commented 2 years ago

@nisdas can this be closed as a duplicate issue? cc @vyzo.

vyzo commented 2 years ago

wait, we do that already iirc, both sides backoff.

On Fri, Oct 8, 2021, 18:40 Adin Schmahmann @.***> wrote:

@nisdas https://github.com/nisdas can this be closed as a duplicate issue? cc @vyzo https://github.com/vyzo.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/libp2p/go-libp2p-pubsub/issues/456#issuecomment-938740190, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAI4SXBAAGTXXE73BOOUM3UF4GGVANCNFSM5FLGGGZQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

vyzo commented 2 years ago

ah the leave/join thing. Yes, duplicate afaict.

On Fri, Oct 8, 2021, 19:56 Dimitris Vyzovitis @.***> wrote:

wait, we do that already iirc, both sides backoff.

On Fri, Oct 8, 2021, 18:40 Adin Schmahmann @.***> wrote:

@nisdas https://github.com/nisdas can this be closed as a duplicate issue? cc @vyzo https://github.com/vyzo.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/libp2p/go-libp2p-pubsub/issues/456#issuecomment-938740190, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAI4SXBAAGTXXE73BOOUM3UF4GGVANCNFSM5FLGGGZQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

nisdas commented 2 years ago

Alright lets shift the conversation to #367 .