From c377c9c175ddfa6b3126fc95f52b722f469ee7d2 Mon Sep 17 00:00:00 2001 From: "Nyeki.py" <84998222+Nekidev@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:13:38 -0300 Subject: [PATCH] fix(bot): :bug: Deadlock in `on_message`. --- payphone/cogs/calls/cog.py | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/payphone/cogs/calls/cog.py b/payphone/cogs/calls/cog.py index 95ffba8..92e0df1 100644 --- a/payphone/cogs/calls/cog.py +++ b/payphone/cogs/calls/cog.py @@ -11,6 +11,8 @@ from discord.utils import find from tortoise import transactions +import asyncpg.exceptions + import aiohttp from payphone import bot @@ -718,16 +720,22 @@ class Calls(base.Cog): wait=True, ) - message_row = await models.Message.create( - id=message.id, - call=call, - channel=channel, - user=user, - profile=profile, - mask=call_rs.mask if call_rs.is_masked else None, - propagation_id=webhook_message.id if webhook_message else None, - propagation_channel=other_channel if webhook_message else None, - ) + while True: + try: + message_row = await models.Message.create( + id=message.id, + call=call, + channel=channel, + user=user, + profile=profile, + mask=call_rs.mask if call_rs.is_masked else None, + propagation_id=webhook_message.id if webhook_message else None, + propagation_channel=other_channel if webhook_message else None, + ) + break + + except asyncpg.exceptions.DeadlockDetectedError: + continue await models.MessageContent.create( message=message_row,