mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-12-07 18:02:31 -05:00
[3.4] Wait for two 'Started Launcher' lines before connecting to managed LL (#5751).
(cherry picked from commit cf85a6470f)
Co-authored-by: Jakub Kuczys <6032823+jack1142@users.noreply.github.com>
This commit is contained in:
@@ -230,12 +230,22 @@ class ServerManager:
|
|||||||
async def _wait_for_launcher(self) -> None:
|
async def _wait_for_launcher(self) -> None:
|
||||||
log.debug("Waiting for Lavalink server to be ready")
|
log.debug("Waiting for Lavalink server to be ready")
|
||||||
lastmessage = 0
|
lastmessage = 0
|
||||||
|
# Since Lavalink jar 3.4.0_1346, there are two "Started Launcher" lines logged
|
||||||
|
# before Lavalink is ready to receive requests.
|
||||||
|
started_line_seen = False
|
||||||
for i in itertools.cycle(range(50)):
|
for i in itertools.cycle(range(50)):
|
||||||
line = await self._proc.stdout.readline()
|
line = await self._proc.stdout.readline()
|
||||||
if _RE_READY_LINE.search(line):
|
if _RE_READY_LINE.search(line):
|
||||||
self.ready.set()
|
if started_line_seen:
|
||||||
log.info("Internal Lavalink server is ready to receive requests.")
|
self.ready.set()
|
||||||
break
|
log.info("Internal Lavalink server is ready to receive requests.")
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
log.debug(
|
||||||
|
"Seen first 'Started Launcher' line from internal Lavalink server."
|
||||||
|
" Waiting for the second one..."
|
||||||
|
)
|
||||||
|
started_line_seen = True
|
||||||
if _FAILED_TO_START.search(line):
|
if _FAILED_TO_START.search(line):
|
||||||
raise RuntimeError(f"Lavalink failed to start: {line.decode().strip()}")
|
raise RuntimeError(f"Lavalink failed to start: {line.decode().strip()}")
|
||||||
if self._proc.returncode is not None and lastmessage + 2 < time.time():
|
if self._proc.returncode is not None and lastmessage + 2 < time.time():
|
||||||
|
|||||||
Reference in New Issue
Block a user