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

peer_connection: Implement state changes after spec and fix race #598

Merged
merged 3 commits into from
Aug 2, 2024

Conversation

haaspors
Copy link
Contributor

@haaspors haaspors commented Aug 2, 2024

Copy link

codecov bot commented Aug 2, 2024

Codecov Report

Attention: Patch coverage is 72.26277% with 38 lines in your changes missing coverage. Please review.

Project coverage is 61.33%. Comparing base (cc45df1) to head (974e9ec).

Files Patch % Lines
webrtc/src/peer_connection/peer_connection_test.rs 69.87% 1 Missing and 24 partials ⚠️
...tc/src/peer_connection/peer_connection_internal.rs 75.92% 7 Missing and 6 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #598      +/-   ##
==========================================
+ Coverage   61.29%   61.33%   +0.04%     
==========================================
  Files         532      532              
  Lines       49731    49812      +81     
  Branches    12656    12680      +24     
==========================================
+ Hits        30484    30554      +70     
+ Misses       9867     9858       -9     
- Partials     9380     9400      +20     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@haaspors haaspors changed the title peer_connection: Implement state changes after spec peer_connection: Implement state changes after spec and fix race Aug 2, 2024
DTLS transport state was previously acquired and sent over to the async
context returned. This would in some rare cases obviously lead to
updating peer connection state with an old DTLS transport state.
This would in turn lead to PeerConnection not updating it's state
correctly. Sometimes we would see PeerConnection never reaching Connected.
PeerConnectionInternal was initialized with default transports and then
mutated right after. This resulted in create_ice_transport() using the
default DTLS transport instance which again led to state transition
reading DTLS transport state from the wrong instance.
@rainliu rainliu merged commit 54b5843 into webrtc-rs:master Aug 2, 2024
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants