Repository navigation
fix: take the transport's selected pair as the outside test's path - #626
Merged
Merged
Conversation
The outside test required each peer's working pair to be marked nominated and succeeded. libwebrtc's flags lag the traffic: on a phone on mobile data the controlling peer's working pair said not nominated, and the other peer's said in-progress while a fresh check was out, both after the data-channel echo had crossed them. A relay that passed inbound was reported as failing at "inbound". Seen on Android, which shares the engine. The path is now the pair a transport selects, which needs received bytes and not to have failed. Only when no transport names a pair does the nominated, succeeded one decide.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Parity with the Android fix. The outside test required each peer's working pair to be marked
nominatedandsucceeded. On Android, which uses the same libwebrtc, a Pixel on mobile data against a real router reported a reachable relay as failing atinboundon every run: A's working pair saidnominated=falseand B's saidin-progress(a fresh check was out) while each transport named that pair as selected, after the echo had already crossed them.Not seen failing on the web; the check is the same and the engine is the same.
Change:
selectedPathtakes the pair a transport names inselectedCandidatePairId, which needs received bytes and must not have failed. A nominated, succeeded pair decides only when no transport names one (unchanged behaviour, and what browsers without transport stats will use).Checks:
app/src/relay-outside-test.test.ts, 14 tests pass, including three new cases (selected pair not nominated, selected pair in-progress, selected pair failed). The new "not nominated" case fails on the old code.https://claude.ai/code/session_01P4tkjt9pRAySng1JJnHn9t