mirror of
https://github.com/karatektus/pl_mail.git
synced 2026-10-25 10:04:18 +00:00
Both import consumers sat twenty minutes and more inside one fetch from a server delivering a few kilobytes every twenty seconds (#95). The thirty-second read timeout is per read and a trickle never trips it; nothing timed the command. A consumer handles one message at a time, so every other account's import waited behind it, and a stop signal did nothing: a worker stops between messages. ImapDeadline runs an alarm around every message a worker handles (AbortStalledImap, for a received envelope only). When it goes off, the IMAP connections opened since are shut down under their reader. The read is at end-of-file at once, the library reports a lost connection, and the message takes its retry ladder like any other network failure. not an exception thrown from a signal handler it would land in the from the alarm middle of a flush as readily as a read shutdown, not webklex's logout() and destructor call fclose stream_get_meta_data() on the stream and die with a TypeError on a closed resource a total, not a so it has to fit honest work: five minutes, which rate is seconds for an ordinary page of fifty messages and tight only for ~300 MB of attachments on a slow line. Wrong, it shows as the class's warning repeating for one folder Checked against imap.gmail.com over TLS: after the shutdown a read returns empty in under a millisecond with eof set. The IDLE process holds its connection for twenty-nine minutes on purpose and is not a worker handling a message; it is never armed. Also the changelog for #94 and #96. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>