libp2p / rust-libp2p

The Rust Implementation of the libp2p networking stack.
https://libp2p.io
MIT License
4.48k stars 930 forks source link

request-response: Connection and codec failures are never reported #4597

Closed oblique closed 3 months ago

oblique commented 11 months ago

At Eiger we are facing an issue in celestia-node-rs: As soon as there is a connection error on the request-response protocol, our code gets stall because we were assuming that OutboundFailure would be generated. After investigation we noticed that the same happens if we return an error from Codec.

This is due to the fact that failures of upgrade_outbound stopped being reported by https://github.com/libp2p/rust-libp2p/pull/3913. We also noticed that there is an ongoing effort of moving out of the upgrade infrastructure in https://github.com/libp2p/rust-libp2p/pull/3914, which as we understood the issue will get fixed by it.

Is the wrapping the ConnectionHandler the only possible solution right now?

When do you expect to merge #3914? Is there anything pending? Is there any way we can help?

thomaseizinger commented 11 months ago

When do you expect to merge #3914? Is there anything pending? Is there any way we can help?

It will be merged with the next breaking release which we are aiming to start next week or the week after.

thomaseizinger commented 11 months ago

This is due to the fact that failures of upgrade_outbound stopped being reported by #3913

Hmm, that wasn't the intention. We should have probably returned the error and not just log it. If the current type signatures allow it, I am happy to merge and release a patch that forwards the error (but not by closing the connection).

oblique commented 3 months ago

Closing. This was fixed long ago.