Skip to content
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

Fix stuck peer #1752

Merged
merged 2 commits into from
Sep 15, 2022
Merged

Fix stuck peer #1752

merged 2 commits into from
Sep 15, 2022

Conversation

alexsporn
Copy link
Member

@alexsporn alexsporn commented Sep 14, 2022

libp2p removed the OpenedStream/ClosedStream callbacks from network.Notifee
libp2p/go-libp2p-core#250

If we have an protocol error on the stream level we no only deregister the protocol, we also close the underlying connection and let the peering manager reconnect to the peer. This fixes stucked peers where a connection is still open, but no protocol is running on top.

@alexsporn alexsporn linked an issue Sep 14, 2022 that may be closed by this pull request
@muXxer muXxer merged commit 5405b5d into develop Sep 15, 2022
@muXxer muXxer deleted the fix/stuck-peer branch September 15, 2022 12:36
muXxer pushed a commit that referenced this pull request Dec 27, 2022
* Removed OpenedStream/ClosedStream since they were removed from network.Notifee

* Drop connection to peer if the stream is closed
muXxer added a commit that referenced this pull request Jan 9, 2023
* Use iotaledger repository

* Update go version to 1.19

* Upgrade libp2p to monorepo version

* Fix libp2p connection issue (#1533)

* Use fixed private keys in peering tests

* Fix libp2p connection issue

* Send correct error message if a block is submitted without parents and no PoW is enabled

* Add new `/api/routes` endpoint

* Block static peers in autopeering module (#1608)

* Block static peers in autopeering module

* Disable TTL in selection blocklist

* Use hive.go chrysalis backports

* Avoid locking of the p2p Manager while connection attempts are performed (#1614)

* Avoid locking of the p2p Manager while connection attempts are performed

* Fix missing handling of peers already known to the manager

* Add per-request Rest metrics to prometheus (#1651)

* - Add per-request Rest metrics to prometheus

* - Made echo dep optional

* Extend dockerignore (#1660)

* Add new config param to disable snapshot file creation. Defaults to false. (#1711)

* Add config parameter to control whether the ledger state is checked on startup. Defaults to false. (#1712)

* Add config parameter to control whether the ledger state is checked on startup

* Measure and log ledger check time

* Added a ledger token supply check to the db-hash tool

* Drop unhealthy peers (#1736)

* Drop peers that are below our pruning index (#1739)

* Fix stuck peer (#1752)

* Removed OpenedStream/ClosedStream since they were removed from network.Notifee

* Drop connection to peer if the stream is closed

* Solidify messages synchronously while they are processed (#1761)

* Solidify messages synchronously while they are processed

* Only trigger the future cone solidifier if the message is solid

* Fix edge case in warpsync which deadlocks syncing (#1763)

* Github workflow updates

* Update CodeQL action to v2

* Run security-and-quality query suite

* Update actions/checkout to v3

* Update docker actions

* Add /metadata, /raw, /children endpoints to /included-message

* Release v1.2.2

* Read info from SyncManager atomically

* Add timestamp funcs to MilestoneStorage

* Update workflows

* Fix linter errors

* Add context to connect and reconnect peer

* Fix syncing issue by preventing requests race condition

* Address review comments

* Update modules

* Ignore linter warning

Co-authored-by: Alexander Sporn <github@alexsporn.de>
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.

Requests stuck in pending state
2 participants