Backend IMAP calls block the event loop and have no timeout #5
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
handle_stat (proxy_server.py:233) and handle_list (proxy_server.py:244) call IMAPBackend.fetch_message_size synchronously inside a loop, on the asyncio event loop thread. Every blocking imaplib round-trip stalls all other clients. There is also no socket timeout on imaplib (smtplib already uses timeout=30), so a dead backend hangs the session indefinitely.
Fix:
Acceptance: