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

protocol/notif: Fix panic on missing peer state #143

Merged
merged 3 commits into from
Jun 7, 2024

Conversation

lexnv
Copy link
Collaborator

@lexnv lexnv commented Jun 6, 2024

This PR aims to remove the possible panics from the protocol/notification that may happen on missing peer contexts.

cc @paritytech/networking

lexnv added 2 commits June 6, 2024 18:02
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
@lexnv lexnv added the bug Something isn't working label Jun 6, 2024
@lexnv lexnv self-assigned this Jun 6, 2024
Copy link
Collaborator

@dmitry-markin dmitry-markin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

One thing to consider is whether it's a logic error that peer doesn't exist (internal state mismatch), or some possible thing during normal operation. In the first case I would promote logging to error! and do debug_assert! to fix the inconsistency if it happens in the wild. But in the second case I wouldn't do debug_assert! and also may be demote the message to debug!.

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
@lexnv lexnv merged commit d905ec1 into master Jun 7, 2024
8 checks passed
@lexnv lexnv deleted the lexnv/protoc-panics-fix branch June 7, 2024 12:24
dmitry-markin added a commit that referenced this pull request Jun 14, 2024
## [0.6.0] - 2024-06-14    
    
This release introduces breaking changes into `kad` module. The API has
been extended as following:
    
- An event `KademliaEvent::IncomingRecord` has been added.    
- New methods `KademliaHandle::store_record()` /
`KademliaHandle::try_store_record()` have been introduced.
    
This allows implementing manual incoming DHT record validation by
configuring `Kademlia` with `IncomingRecordValidationMode::Manual`.
    
Also, it is now possible to enable `TCP_NODELAY` on sockets.    
    
Multiple refactorings to remove the code duplications and improve the
implementation robustness have been done.
    
### Added    
    
- Support manual DHT record insertion
([#135](#135))
- transport: Make `TCP_NODELAY` configurable
([#146](#146))
    
### Changed    
    
- transport: Introduce common listener for tcp and websocket
([#147](#147))
- transport/common: Share DNS lookups between TCP and WebSocket
([#151](#151))
    
### Fixed    
    
- ping: Make ping fault tolerant wrt outbound substreams races
([#133](#133))
- crypto/noise: Make noise fault tolerant
([#142](#142))
- protocol/notif: Fix panic on missing peer state
([#143](#143))
- transport: Fix erroneous handling of secondary connections
([#149](#149))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants