You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With #3268 was decided to deprecate ConnectionHandler::{In,Out}boundOpenInfo. #5242 made it official, but there's a bug with these deprecations:
storing the upgrade info in a VecDeque loses the order significance match they prevously had with StreamUpgrade.
Example with request-response after #3914 was merged:
This is specially problematic in the Ethereum consensus spec as the negotiated protocol matches the request type and the outbound peer ends up discarding the request as it doesn't match the protocol negotiated.
We should rollback the deprecation attributes of ConnectionHandler::{In,Out}boundOpenInfo at least
cc @elenaf9@dariusc93
The text was updated successfully, but these errors were encountered:
Description
With #3268 was decided to deprecate
ConnectionHandler::{In,Out}boundOpenInfo
.#5242 made it official, but there's a bug with these deprecations:
storing the upgrade info in a
VecDeque
loses the order significance match they prevously had withStreamUpgrade
.Example with
request-response
after #3914 was merged:Behaviour
notifies handler with a requestHandler
puts the request onrequested_outbound
and asks theSwarm
for aOutboundSubstreamRequest
Handler
receives a newFullyNegotiatedOutbound
from theSwarm
and pops the request fromrequested_outbound
.Problem:
the popped request may not match inserted request in
requested_outbound
and therefore the negotiatedProtocol
with the outbound peer asSwarm
'snegotiating_out
is aFuturesUnordered
.This is specially problematic in the Ethereum consensus spec as the negotiated protocol matches the request type and the outbound peer ends up discarding the request as it doesn't match the protocol negotiated.
We should rollback the deprecation attributes of
ConnectionHandler::{In,Out}boundOpenInfo
at leastcc @elenaf9 @dariusc93
The text was updated successfully, but these errors were encountered: