wrap shield around aiospamc.check to avoid the task being canceled

This commit is contained in:
Son NK 2020-09-16 19:47:12 +02:00
parent 4b697fc897
commit 5f8fff5af3
1 changed files with 2 additions and 1 deletions

View File

@ -36,6 +36,7 @@ import email
import os import os
import time import time
import uuid import uuid
from asyncio import shield
from email import encoders from email import encoders
from email.message import Message from email.message import Message
from email.mime.application import MIMEApplication from email.mime.application import MIMEApplication
@ -1466,7 +1467,7 @@ async def get_spam_score(message: Message) -> float:
try: try:
# wait for at max 300s which is the default spamd timeout-child # wait for at max 300s which is the default spamd timeout-child
response = await asyncio.wait_for( response = await asyncio.wait_for(
aiospamc.check(sa_input, host=SPAMASSASSIN_HOST), timeout=300 shield(aiospamc.check(sa_input, host=SPAMASSASSIN_HOST)), timeout=300
) )
return response.headers["Spam"].score return response.headers["Spam"].score
except asyncio.TimeoutError: except asyncio.TimeoutError: