From f759f9ddb2ab39b03fd7afa7d25cb8e7dffaa51a Mon Sep 17 00:00:00 2001 From: nex Date: Mon, 15 Jan 2024 10:51:53 +0000 Subject: [PATCH] Properly cleanup chromedriver --- Dockerfile | 2 +- src/cogs/screenshot.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4f08639..8c4f275 100644 --- a/Dockerfile +++ b/Dockerfile @@ -45,7 +45,7 @@ libnss3 \ lsb-release \ xdg-utils -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y \ +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ traceroute \ iputils-ping \ dnsutils \ diff --git a/src/cogs/screenshot.py b/src/cogs/screenshot.py index ed2e7ad..019216e 100644 --- a/src/cogs/screenshot.py +++ b/src/cogs/screenshot.py @@ -127,11 +127,13 @@ class ScreenshotCog(commands.Cog): try: await asyncio.to_thread(driver.get, url) except selenium.common.WebDriverException as e: + await self.bot.loop.run_in_executor(None, driver.quit) if "TimeoutException" in str(e): return await ctx.respond("Timed out while loading webpage.") else: return await ctx.respond("Failed to load webpage:\n```\n%s\n```" % str(e.msg)) except Exception as e: + await self.bot.loop.run_in_executor(None, driver.quit) await ctx.respond("Failed to get the webpage: " + str(e)) raise end_request = time.time() @@ -165,8 +167,7 @@ class ScreenshotCog(commands.Cog): await ctx.edit(content="Cleaning up...") start_cleanup = time.time() - await asyncio.to_thread(driver.close) - await asyncio.to_thread(driver.quit) + await self.bot.loop.run_in_executor(None, driver.quit) end_cleanup = time.time() screenshot_size_mb = round(len(await asyncio.to_thread(file.getvalue)) / 1024 / 1024, 2)