[dotnet] [bidi] Give only one chance to receive from remote end #16360
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
User description
BiDi Broker listens to incoming WebSocket messages and repeats even if remote end is died.
🔗 Related Issues
Fixes #16134
💥 What does this PR do?
This PR gives only one chance. As soon as it fails for any reason, we stop to listen (with writing failure to internal logs only once). It is still not resolving more interesting issue when
WebSocketTransport
class should behave more robust, but this is right improvement (and quick win).🔄 Types of changes
PR Type
Bug fix
Description
Modify BiDi message receiving to fail fast on errors
Remove retry loop for failed WebSocket connections
Improve error handling with single attempt strategy
Diagram Walkthrough
File Walkthrough
Broker.cs
Implement fail-fast BiDi message reception
dotnet/src/webdriver/BiDi/Communication/Broker.cs
ReceiveMessagesAsync
methodOperationCanceledException