fix(bot): 🐛 Deadlock in on_message.
This commit is contained in:
+18
-10
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user