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

Fix deadlock in appsrc #116

Merged
merged 4 commits into from
Jun 13, 2023
Merged

Fix deadlock in appsrc #116

merged 4 commits into from
Jun 13, 2023

Conversation

biglittlebigben
Copy link
Contributor

No description provided.

@biglittlebigben
Copy link
Contributor Author

This calls UnBind manually on the sample provider when the LocalSampleTrack fails, since it seems that Pion/the Go SDK do not. Is this the right approach, or should the fix be made in Pion or the SDK?

@davidzhao
Copy link
Member

would be good to fix the root cause here, either in Pion or SDK

@biglittlebigben
Copy link
Contributor Author

would be good to fix the root cause here, either in Pion or SDK

The SDK/Pion do end up calling Unbind, when we unpublish the whole track. However, here, the pipeline ends up entirely stuck when the Go SDK stops pulling samples for one of the variants because of the read error I generate for testing. This means the the GST EOF message is never received, the other variants never finish processing, and the track never gets unpublished.

I think calling Unbind manually is the right fix here, as it prevents the whole GST pipeline from being stuck by discarding buffers on the failed variant.

@biglittlebigben biglittlebigben merged commit 9153100 into main Jun 13, 2023
3 checks passed
@biglittlebigben biglittlebigben deleted the benjamin/appsrc_deadlock branch June 13, 2023 17:22
biglittlebigben added a commit that referenced this pull request Jun 26, 2023
This is the v1.0.0 release of the ingress service. This release stabilizes the API and adds support for the WHIP protocol

 ## Changelog

 ### Added
-  WHIP support (#97)
- Expose heath and availability on the WHIP HTTP server (#109)
- Add support for optimally bypassing transcoding when ingesting WHIP (#111)
- Set the source track information in the ingress state (#121)

 ### Fixed

- Validate IngressInfo and populate missing fields with defaults (#90)
- Fix deadlock in appsrc (#116)
- Update synchronizer and use Jitter Buffer (#118)
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.

None yet

3 participants