From 6a354ddab75fee435da85f6dc89df90ef2d3baec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20R=C4=85czy?= Date: Mon, 4 Dec 2023 19:14:11 -0800 Subject: [PATCH] webrtcd: stop cereal proxy runner when data channel is closed (#30601) Stop the proxy when channel reaches invalid state --- system/webrtc/webrtcd.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/system/webrtc/webrtcd.py b/system/webrtc/webrtcd.py index 237cae78a..3f2ef2ceb 100755 --- a/system/webrtc/webrtcd.py +++ b/system/webrtc/webrtcd.py @@ -15,6 +15,7 @@ warnings.filterwarnings("ignore", category=DeprecationWarning) import aiortc from aiortc.mediastreams import VideoStreamTrack, AudioStreamTrack from aiortc.contrib.media import MediaBlackhole +from aiortc.exceptions import InvalidStateError from aiohttp import web import capnp from teleoprtc import WebRTCAnswerBuilder @@ -97,6 +98,9 @@ class CerealProxyRunner: while True: try: self.proxy.update() + except InvalidStateError: + self.logger.warning("Cereal outgoing proxy invalid state (connection closed)") + break except Exception as ex: self.logger.error("Cereal outgoing proxy failure: %s", ex) await asyncio.sleep(0.01)