From: Marvin Schenkel Date: Tue, 9 Dec 2025 19:14:44 +0000 (+0100) Subject: Fix race condition in Airplay stream cleanup (#2780) X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=8fc5df76300a0710bac393c76f196c888fc5feab;p=music-assistant-server.git Fix race condition in Airplay stream cleanup (#2780) --- diff --git a/music_assistant/providers/airplay/protocols/airplay2.py b/music_assistant/providers/airplay/protocols/airplay2.py index 678ce2d8..e090ff46 100644 --- a/music_assistant/providers/airplay/protocols/airplay2.py +++ b/music_assistant/providers/airplay/protocols/airplay2.py @@ -159,4 +159,5 @@ class AirPlay2Stream(AirPlayProtocol): await asyncio.sleep(0) # Yield to event loop # ensure we're cleaned up afterwards (this also logs the returncode) - await self.stop() + if not self._stopped: + await self.stop() diff --git a/music_assistant/providers/airplay/protocols/raop.py b/music_assistant/providers/airplay/protocols/raop.py index 0d8bec5c..d3cd5581 100644 --- a/music_assistant/providers/airplay/protocols/raop.py +++ b/music_assistant/providers/airplay/protocols/raop.py @@ -198,4 +198,5 @@ class RaopStream(AirPlayProtocol): # ensure we're cleaned up afterwards (this also logs the returncode) logger.debug("CLIRaop stderr reader ended") - await self.stop() + if not self._stopped: + await self.stop()