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

Close RTCPeerConnection objects before deleting #47

Conversation

golgirihm
Copy link
Contributor

This helps the Chromium garbage collection system clean up resources. If we don't do this, and we create and destroy too many instances, we get this error: Uncaught DOMException: Failed to construct 'RTCPeerConnection': Cannot create so many PeerConnections

Note that there is a separate bug with Chromium that has existed for 5+ years. The bug is that garbage collection does not get triggered at all for lots of deleted RTCPeerConnections: https://bugs.chromium.org/p/chromium/issues/detail?id=825576

People have worked around this Chromium bug using queueMicrotask(). That correctly works around the issue, but only if the RTCPeerConnection was closed before deleting.

This helps the Chromium garbage collection system clean up resources.
If we don't do this, and we create and destroy too many instances, we get this error:
Uncaught DOMException: Failed to construct 'RTCPeerConnection': Cannot create so many PeerConnections

Note that there is a separate bug with Chromium that has existed for 5+ years.
The bug is that garbage collection does not get triggered at all for lots of deleted RTCPeerConnections:
https://bugs.chromium.org/p/chromium/issues/detail?id=825576

People have worked around this Chromium bug using queueMicrotask().
That correctly works around the issue, but only if the RTCPeerConnection was closed before deleting.
@golgirihm golgirihm force-pushed the close_rtcpeerconnections_before_deleting branch from fc66d4f to 4ade96f Compare December 20, 2023 17:06
@paullouisageneau paullouisageneau merged commit 5cfdce2 into paullouisageneau:master Dec 21, 2023
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