Closed KW-M closed 1 year ago
Base: 58.21% // Head: 58.08% // Decreases project coverage by -0.13%
:warning:
Coverage data is based on head (
d67a730
) compared to base (f8f8511
). Patch coverage: 33.33% of modified lines in pull request are covered.
:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.
Description
Occurs when read errors happen from a driver source during a call to track.Bind()
Example of deadlock:
When a driver reader function has a read error immediately after being initialized: contrived example:
Pion calls bind() on a track using that reader function.
Within NewRTPReader(): a. The reader function is wrapped to call track.onError if a read error is returned in newVideoTrackFromReader() b. Read is called synchronously in detectCurrentVideoProp() in the function newEncodedReader() c. track.onError() is triggered within the bind function (so without this fix, the mutex lock on bind() will not yet be released, and would deadlock in track.onError())