Summary: | Akonadi fail to fetch IMAP folder content with over 100MiB of messages (akonadi try to fetch too many UIDs at once) | ||
---|---|---|---|
Product: | [Frameworks and Libraries] Akonadi | Reporter: | boris.sh.1983+kde.bugzilla |
Component: | IMAP resource | Assignee: | Christian Mollekopf <chrigi_1> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | adeptsmail, franzschrober, kdepim-bugs, martin.steigerwald, Martin, mollekopf, vkrause, woebbeking |
Priority: | NOR | ||
Version: | 1.13.0 | ||
Target Milestone: | --- | ||
Platform: | Debian unstable | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Instead of fetching everything in every attempt try to work with 2K intervals
Split large UID Search commands to multiple smaller ones in batchfetcher |
Description
boris.sh.1983+kde.bugzilla
2014-09-25 18:46:30 UTC
Created attachment 89092 [details]
Instead of fetching everything in every attempt try to work with 2K intervals
I don't understand why the it does not work with Batchfetcher, but this dirty workaround allowed me to fetch (slowly) the data.
After additional review , Please ignore 0001-use-2K-in-every-attempt-to-use-retrieve-items.patch and do not apply this Created attachment 89107 [details]
Split large UID Search commands to multiple smaller ones in batchfetcher
Split SearchJob inside batchfetcher if amount of messages is above a threshold (2K).
Hi Boris, thanks for your fix but it doesn't work for me. Only some mails of the folder are synced. I wondered about a too low unread count and if you (re)create an IMAP account the folders also only contains some mails. This is probably caused as you simply start n SearchJobs and call onUidSearchDone() n times instead of collecting all results and then call onUidSearchDone() only once. Cheers, André Hi, at https://git.reviewboard.kde.org/r/120644/ you find a new patch for 4.14 based on Boris' one. Please test it. Hi Andre, thanks for your fix but it doesn't work for me, Only a small portion of the emails had been downloaded (<800), and then the sync drops along with a parser exception. I suspect that I get a variant of 338967. Traces : SearchManager::registerInstance( "akonadi_imap_resource_20" ) Registering search instance "akonadi_imap_resource_20" list is empty Database "akonadi" opened using driver "QMYSQL" QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadi_mailfilter_agent_11668_akKvoX" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadi_mailfilter_agent_11668_akKvoX" true false Database "akonadi" opened using driver "QMYSQL" Database "akonadi" opened using driver "QMYSQL" QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadi_archivemail_agent_11660_LnpgTG" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadi_archivemail_agent_11660_LnpgTG" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadi_mailfilter_agent_11668_dq9if3" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadi_mailfilter_agent_11668_dq9if3" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadi_archivemail_agent_11660_NGtPSO" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadi_archivemail_agent_11660_NGtPSO" true false . . . akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::LoginJob: KIMAP::LoginJob(0x1612d90) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::reconnect: connectToHost "exchange2007.domain.tld" 143 QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadi_mailfilter_agent_11668_sgrR5V" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadi_mailfilter_agent_11668_sgrR5V" true false akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::doStart: KIMAP::LoginJob(0x1612d90) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "StartTls" "A000001" . . . akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::sslConnected: TLS negotiation done. . . . akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Capability" "*" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: Capabilities updated: ("IMAP4", "IMAP4rev1", "AUTH=NTLM", "AUTH=GSSAPI", "AUTH=PLAIN", "IDLE", "NAMESPACE", "LITERAL+") akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Capability" "A000002" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Login" "+" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Login" "A000003" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::~LoginJob: KIMAP::LoginJob(0x1612d90) Database "akonadi" opened using driver "QMYSQL" QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_B9OzyL" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_B9OzyL" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_fjn7xb" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_fjn7xb" true false Database "akonadi" opened using driver "QMYSQL" QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_uxYeH2" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_uxYeH2" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_LG85jc" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_LG85jc" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_qzFFSK" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_qzFFSK" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_TbRpaQ" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_TbRpaQ" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_u59tgu" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_u59tgu" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_TCf9Sm" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11752_TCf9Sm" true false Database "akonadi" opened using driver "QMYSQL" Database "akonadi" opened using driver "QMYSQL" QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_8lAMgy" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_8lAMgy" true false Database "akonadi" opened using driver "QMYSQL" QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_RUNGgq" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_RUNGgq" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_iJpHqu" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_iJpHqu" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_0ZaAsY" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_0ZaAsY" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_LQYlXh" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_LQYlXh" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_GfSP16" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_GfSP16" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_LRaghF" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_LRaghF" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_WPWJgM" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "kontact_11766_WPWJgM" true false . . . akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::LoginJob: KIMAP::LoginJob(0x1607190) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::reconnect: connectToHost "exchange2007.domain.tld" 143 akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::doStart: KIMAP::LoginJob(0x1607190) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "StartTls" "A000001" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::sslConnected: TLS negotiation done. akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Capability" "*" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: Capabilities updated: ("IMAP4", "IMAP4rev1", "AUTH=NTLM", "AUTH=GSSAPI", "AUTH=PLAIN", "IDLE", "NAMESPACE", "LITERAL+") akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Capability" "A000002" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Login" "+" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Login" "A000003" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) RetrieveItemsTask::startRetrievalTasks: Starting retrieval for "INBOX" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::~LoginJob: KIMAP::LoginJob(0x1607190) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) RetrieveItemsTask::onFinalSelectDone: Starting message retrieval. Elapsed(ms): 1842 akonadi_imap_resource_20(11666)/kdepimlibs (kimap) RetrieveItemsTask::onFinalSelectDone: MessageCount: 26103 Local message count: 0 akonadi_imap_resource_20(11666)/kdepimlibs (kimap) RetrieveItemsTask::onFinalSelectDone: UidNext: 43273 Local UidNext: 0 akonadi_imap_resource_20(11666)/kdepimlibs (kimap) RetrieveItemsTask::onFinalSelectDone: HighestModSeq: 0 Local HighestModSeq: 0 akonadi_imap_resource_20(11666)/kdepimlibs (kimap) RetrieveItemsTask::onFinalSelectDone: Fetching complete mailbox "INBOX" void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "kontact_11766_WPWJgM" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "kontact_11766_LRaghF" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "kontact_11766_GfSP16" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "kontact_11766_LQYlXh" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "kontact_11766_0ZaAsY" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "kontact_11766_iJpHqu" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "kontact_11766_RUNGgq" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "kontact_11766_8lAMgy" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11752_TCf9Sm" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11752_u59tgu" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11752_TbRpaQ" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11752_qzFFSK" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11752_LG85jc" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11752_uxYeH2" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11752_fjn7xb" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11752_B9OzyL" now serving: () QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_vdqiCR" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_vdqiCR" true false Database "akonadi" opened using driver "QMYSQL" QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_KIwwe5" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_KIwwe5" true false Database "akonadi" opened using driver "QMYSQL" QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_9OTmNc" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_9OTmNc" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_HizrfC" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_HizrfC" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_eYk8ta" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_eYk8ta" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_4mDuVP" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_4mDuVP" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_1tT46D" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_1tT46D" true false QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_xzk3ws" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadiconsole_11793_xzk3ws" true false Database "akonadi" opened using driver "QMYSQL" list is empty void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11793_xzk3ws" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11793_1tT46D" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11793_4mDuVP" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11793_eYk8ta" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11793_HizrfC" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11793_9OTmNc" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11793_KIwwe5" now serving: () void Akonadi::Server::NotificationSource::serviceUnregistered(const QString&) Notification source "akonadiconsole_11793_vdqiCR" now serving: () akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::doCloseSocket: close akonadi_imap_resource_20(11666)/kdepimlibs (kimap) ImapIdleManager::onIdleStopped: IDLE dropped maybe we should reconnect? akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::LoginJob: KIMAP::LoginJob(0x1612cb0) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::reconnect: connectToHost "exchange2007.domain.tld" 143 akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::doStart: KIMAP::LoginJob(0x1612cb0) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "StartTls" "A000001" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::sslConnected: TLS negotiation done. akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Capability" "*" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: Capabilities updated: ("IMAP4", "IMAP4rev1", "AUTH=NTLM", "AUTH=GSSAPI", "AUTH=PLAIN", "IDLE", "NAMESPACE", "LITERAL+") akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Capability" "A000002" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Login" "+" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Login" "A000003" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::~LoginJob: KIMAP::LoginJob(0x1612cb0) . . . akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionPrivate::onSocketTimeout: Socket timeout! akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::doCloseSocket: close akonadi_imap_resource_20(11666) BatchFetcher::onUidSearchDone: Search job failed: "Connection to server lost." akonadi_imap_resource_20(11666) RetrieveItemsTask::onRetrievalDone: "" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::LoginJob: KIMAP::LoginJob(0x155b500) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::reconnect: connectToHost "exchange2007.domain.tld" 143 akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::doStart: KIMAP::LoginJob(0x155b500) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "StartTls" "A000001" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::sslConnected: TLS negotiation done. akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Capability" "*" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: Capabilities updated: ("IMAP4", "IMAP4rev1", "AUTH=NTLM", "AUTH=GSSAPI", "AUTH=PLAIN", "IDLE", "NAMESPACE", "LITERAL+") akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Capability" "A000002" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Login" "+" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Login" "A000003" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) RetrieveCollectionMetadataTask::doStart: "/INBOX" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::~LoginJob: KIMAP::LoginJob(0x155b500) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) RetrieveItemsTask::startRetrievalTasks: Starting retrieval for "INBOX" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) RetrieveItemsTask::onFinalSelectDone: Starting message retrieval. Elapsed(ms): 1879 akonadi_imap_resource_20(11666)/kdepimlibs (kimap) RetrieveItemsTask::onFinalSelectDone: MessageCount: 26103 Local message count: 0 akonadi_imap_resource_20(11666)/kdepimlibs (kimap) RetrieveItemsTask::onFinalSelectDone: UidNext: 43273 Local UidNext: 0 akonadi_imap_resource_20(11666)/kdepimlibs (kimap) RetrieveItemsTask::onFinalSelectDone: HighestModSeq: 0 Local HighestModSeq: 0 akonadi_imap_resource_20(11666)/kdepimlibs (kimap) RetrieveItemsTask::onFinalSelectDone: Fetching complete mailbox "INBOX" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) ImapIdleManager::onIdleStopped: IDLE dropped maybe we should reconnect? akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::doCloseSocket: close akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::LoginJob: KIMAP::LoginJob(0x1552060) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::reconnect: connectToHost "exchange2007.domain.tld" 143 akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::doStart: KIMAP::LoginJob(0x1552060) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "StartTls" "A000001" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::sslConnected: TLS negotiation done. akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Capability" "*" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: Capabilities updated: ("IMAP4", "IMAP4rev1", "AUTH=NTLM", "AUTH=GSSAPI", "AUTH=PLAIN", "IDLE", "NAMESPACE", "LITERAL+") akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Capability" "A000002" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Login" "+" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Login" "A000003" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::~LoginJob: KIMAP::LoginJob(0x1552060) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) BatchFetcher::fetchNextBatch: Fetching 44 intervals akonadi_imap_resource_20(11666)/kdepimlibs (kimap) BatchFetcher::fetchNextBatch: Fetching 28 intervals QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV2(const QString&, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadi_newmailnotifier_agent_11671_XKMNfG" true QDBusObjectPath Akonadi::Server::NotificationManager::subscribeV3(const QString&, bool, bool) Akonadi::Server::NotificationManager(0x23c6410) "akonadi_newmailnotifier_agent_11671_XKMNfG" true false akonadi_imap_resource_20(11666)/kdepimlibs (kimap) BatchFetcher::fetchNextBatch: Fetching 16 intervals akonadi_imap_resource_20(11666)/kdepimlibs (kimap) ImapIdleManager::onIdleStopped: IDLE dropped maybe we should reconnect? akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::doCloseSocket: close akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::LoginJob: KIMAP::LoginJob(0x163f480) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::reconnect: connectToHost "exchange2007.domain.tld" 143 akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::doStart: KIMAP::LoginJob(0x163f480) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "StartTls" "A000001" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::sslConnected: TLS negotiation done. akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Capability" "*" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: Capabilities updated: ("IMAP4", "IMAP4rev1", "AUTH=NTLM", "AUTH=GSSAPI", "AUTH=PLAIN", "IDLE", "NAMESPACE", "LITERAL+") akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Capability" "A000002" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Login" "+" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Login" "A000003" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::~LoginJob: KIMAP::LoginJob(0x163f480) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) BatchFetcher::fetchNextBatch: Fetching 36 intervals akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionPrivate::onSocketTimeout: Socket timeout! The stream parser raised an exception: Unable to read more data akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::doCloseSocket: close akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::doCloseSocket: close akonadi_imap_resource_20(11666) BatchFetcher::onHeadersFetchDone: Fetch job failed "Connection to server lost." akonadi_imap_resource_20(11666) RetrieveItemsTask::onRetrievalDone: "" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::LoginJob: KIMAP::LoginJob(0x20816e0) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::reconnect: connectToHost "exchange2007.domain.tld" 143 akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::doStart: KIMAP::LoginJob(0x20816e0) akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "StartTls" "A000001" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::sslConnected: TLS negotiation done. akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Capability" "*" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: Capabilities updated: ("IMAP4", "IMAP4rev1", "AUTH=NTLM", "AUTH=GSSAPI", "AUTH=PLAIN", "IDLE", "NAMESPACE", "LITERAL+") akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Capability" "A000002" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Login" "+" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::handleResponse: "Login" "A000003" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) RetrieveCollectionMetadataTask::doStart: "/INBOX" akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::LoginJob::~LoginJob: KIMAP::LoginJob(0x20816e0) . . . akonadi_imap_resource_20(11666)/kdepimlibs (kimap) KIMAP::SessionThread::doCloseSocket: close akonadi_imap_resource_20(11666)/kdepimlibs (kimap) ImapIdleManager::onIdleStopped: IDLE dropped maybe we should reconnect? Boris, thanks for testing. Two things: 1) in BatchFetcher::setSearchUids() I only activate the splitted SearchJobs if serverGreeting().contains("Microsoft Exchange"). Maybe your server has another text. 2) I wonder about RetrieveItemsTask::onFinalSelectDone: UidNext: 43273 Local UidNext: 0. E. g. I've UidNext: 41364 Local UidNext: 41364. AFAIK the 0 results in a SearchJob UID 1:0 which cannot be splittet. Hi Andre, Your patch does solve the problem of Exchange choking on large UID search, however the inital bug of unable to sync over 100 Mib folder is not solved yet. It does split the search job as expected, yet when exchange disconnects the session we do not continue from the last fetched uid. After the next akonadi restart, retrieveitemstask will trigger refetching of the dir and and not from the last uid in the collection. Git commit 94b64eebb6a88846b221aad810045fecb4173f79 by Andre Woebbeking. Committed on 30/10/2014 at 19:46. Pushed by woebbe into branch 'KDE/4.14'. Make BatchFetcher workaround MS Exchange "bugs" If the result of UID SEARCH is too big Exchange just disconnects. To work around this the UID SEARCH is splitted into smaller chunks (I choose 2000 arbitrarily). First I wanted to do this for all servers but I've a server where UIDs go up to 1 billion which results in half a million SearchJobs. So I do the splitting only for Exchange servers. I don't know if there is a better way to recognize Exchange servers than to look at Session::serverGreeting()? There are still issues with Exchange but at least for me it's usable again. REVIEW: 120644 M +31 -9 resources/imap/batchfetcher.cpp M +3 -2 resources/imap/batchfetcher.h M +2 -2 resources/imap/retrieveitemstask.cpp http://commits.kde.org/kdepim-runtime/94b64eebb6a88846b221aad810045fecb4173f79 Andre, may this help with: Bug 343114 - gets stuck on one request that times out, kmail and akonadiconsole do not display any mail payloads anymore, stuck waiting ? I get this several times a day with an Exchange account and need to restart at least KMail, sometimes also Akonadi to get it to work again. I have KMail 4.14.2 debian package installed, but am using latest Akonadi 1.13 git with MySQL optimizations. I may complete a more recent KMail 4.14.4 and kdepim-runtime 4.14.4 if need be. I don't know. I had no timeout but a "Server Unavailable. 15" error when Exchange disconnected. For the fix you only need the imap resource (from kdepim-runtime). But at work I'm running KDE 4.14.2 with kdepim-runtime 4.13.x now. This works surprisingly well :-) |