This forum has been archived. All content is frozen. Please use KDE Discuss instead.

KMail: disconnected IMAP very slow

Tags: None
(comma "," separated)
Turing
Registered Member
Posts
19
Karma
0
OS

KMail: disconnected IMAP very slow

Mon May 10, 2010 10:59 pm
Hi,

I am using KMail 1.13.3 and I have an IMAP account on a different machine, which is a small self-configured home server where courier-imap 4.5.0 is running. My machine and the server are connected via a 100MBit Network.
My IMAP account contains about 30000 emails in about 10 folders which consume altogether about 1.8GB.

Recently, I switched in KMail from a "normal" IMAP account to a disconnected IMAP account. (Reason: I want to use the IMAP account as ressource for KAddressbook and KOrganizer)

Now, a mailcheck takes about 7 minutes! :((
(Even a check of my inbox folder, that contains only 3711 emails and consumes 218MB, takes about 1 minute)

During a mailcheck,
  • the traffic over the network is low,
  • the CPU load on the server increases from 1% to about 25% (the disk is encrypted),
  • and the disk usage on the server increases to about 4MB/s (average).

So I have the feeling that during a mailcheck KMail requests the server to read every single email.

Does this sound like
  1. a wrong configured KMail,
  2. a wrong configured IMAP server,
  3. or is this an unavoidable problem of this "disconnected imap"?

Technically this problem should be avoidable. Simplified explained, KMail could just ask:
"Hey IMAP server, my latest change in folder My-Spam-Folder was 17 seconds after 3 o'clock, has something happend since then?"

But I do not know if this kind of query is
  1. implemented in KMail,
  2. implemented in courier-imap,
  3. or supported by the IMAP protocol at all.

Do you have any suggestions how I could speed up my mailcheck?
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
It could be possible that KMail's internal state of your mailbox is corrupted as this is not expected behaviour.

Please try removing your account ( in KMail ) and adding it again.


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
Turing
Registered Member
Posts
19
Karma
0
OS
Thanks. To be sure, that no corrupted configuration or cache is used, I created a new user account kmailtestuser on my local machine.

Afterwards I configured for kmailtestuser the disconnected IMAP account.
The first mailcheck took about 20-30 minutes. All furher mailchecks took, as before, about 5-10 minutes.

During a mailcheck, KMail writes a lot of output to the console. I copy&pasted something of this output below.
Can you see there something suspicious?
E.g. is it ok that there are so many empty strings in the following line?
kio_imap4(4711)/kio_imap imapParser::parseURL: URL: box= "INBOX.Sent" , section= "" , type= "" , uid= "" , validity= "" , info= ""

Code: Select all
kio_imap4(4711)/kio_imap IMAP4Protocol::get: IMAP4::get -  finished
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 80
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 77
kio_imap4(4711)/kio_imap IMAP4Protocol::special: IMAP4Protocol::special
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 80
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 77
kio_imap4(4711)/kio_imap IMAP4Protocol::special: IMAP4Protocol::special
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 80
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 77
kio_imap4(4711)/kio_imap IMAP4Protocol::special: IMAP4Protocol::special
kio_imap4(4711)/kio_imap imapParser::parseURL: imapParser::parseURL "/INBOX.Sent/"
kio_imap4(4711)/kio_imap imapParser::parseURL: URL: box= "INBOX.Sent" , section= "" , type= "" , uid= "" , validity= "" , info= ""
kio_imap4(4711)/kio_imap imapParser::namespaceForBox: imapParse::namespaceForBox "INBOX.Sent"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - namespace= "INBOX."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - delimiter= "."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - box= "INBOX.Sent"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - return 2
kio_imap4(4711)/kio_imap IMAP4Protocol::specialACLCommand: GETACL "INBOX.Sent"
kio_imap4(4711)/kio_imap IMAP4Protocol::specialACLCommand: ("owner", "acdilrsw", "administrators", "acdilrsw")
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 80
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 77
kio_imap4(4711)/kio_imap IMAP4Protocol::special: IMAP4Protocol::special
kio_imap4(4711)/kio_imap imapParser::parseURL: imapParser::parseURL "/INBOX.Sent/"
kio_imap4(4711)/kio_imap imapParser::parseURL: URL: box= "INBOX.Sent" , section= "" , type= "" , uid= "" , validity= "" , info= ""
kio_imap4(4711)/kio_imap imapParser::namespaceForBox: imapParse::namespaceForBox "INBOX.Sent"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - namespace= "INBOX."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - delimiter= "."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - box= "INBOX.Sent"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - return 2
kio_imap4(4711)/kio_imap IMAP4Protocol::specialQuotaCommand: QUOTAROOT "INBOX.Sent"
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 80
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 77
kio_imap4(4711)/kio_imap IMAP4Protocol::special: IMAP4Protocol::special
kio_imap4(4711)/kio_imap imapParser::parseURL: imapParser::parseURL "/INBOX.sommercampus/"
kio_imap4(4711)/kio_imap imapParser::parseURL: URL: box= "INBOX.sommercampus" , section= "" , type= "" , uid= "" , validity= "" , info= ""
kio_imap4(4711)/kio_imap imapParser::namespaceForBox: imapParse::namespaceForBox "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - namespace= "INBOX."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - delimiter= "."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - box= "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - return 3
kio_imap4(4711)/kio_imap IMAP4Protocol::specialACLCommand: MYRIGHTS "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::specialACLCommand: myrights results: ("acdilrsw")
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 80
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 67
kio_imap4(4711)/kio_imap IMAP4Protocol::get: IMAP4::get - "imaps://matthias@xayn:993/INBOX.sommercampus/;UID=0:0"
kio_imap4(4711)/kio_imap imapParser::parseURL: imapParser::parseURL "/INBOX.sommercampus/;UID=0:0"
kio_imap4(4711)/kio_imap imapParser::parseURL: URL: box= "INBOX.sommercampus" , section= "" , type= "" , uid= "0:0" , validity= "" , info= ""
kio_imap4(4711)/kio_imap imapParser::namespaceForBox: imapParse::namespaceForBox "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - namespace= "INBOX."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - delimiter= "."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - box= "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - return 3
kio_imap4(4711)/kio_imap IMAP4Protocol::assureBox: IMAP4Protocol::assureBox - opening box
kio_imap4(4711)/kio_imap imapParser::sendCommand: imapParser::sendCommand - setting current box to "INBOX.sommercampus"
kio_imap4(4711)/kio_imap imapParser::parseResult: imapParser::parseResult - current box is now "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::get: IMAP4::get -  finished
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 80
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 71
kio_imap4(4711)/kio_imap IMAP4Protocol::listDir:  IMAP4::listDir - "imaps://matthias@xayn:993/INBOX.sommercampus/;TYPE=LIST"
kio_imap4(4711)/kio_imap imapParser::parseURL: imapParser::parseURL "/INBOX.sommercampus/;TYPE=LIST"
kio_imap4(4711)/kio_imap imapParser::parseURL: URL: box= "INBOX.sommercampus" , section= "" , type= "LIST" , uid= "" , validity= "" , info= ""
kio_imap4(4711)/kio_imap imapParser::namespaceForBox: imapParse::namespaceForBox "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - namespace= "INBOX."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - delimiter= "."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - box= "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - return 3
kio_imap4(4711)/kio_imap IMAP4Protocol::listDir: IMAP4Protocol::listDir - listStr= "INBOX.sommercampus.%"
kio_imap4(4711)/kio_imap IMAP4Protocol::listDir: IMAP4Protocol::listDir - got 0
kio_imap4(4711)/kio_imap IMAP4Protocol::listDir: IMAP4Protocol::listDir - Finishing listDir
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 80
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 67
kio_imap4(4711)/kio_imap IMAP4Protocol::get: IMAP4::get - "imaps://matthias@xayn:993/INBOX.sommercampus/;UID=1:*;SECTION=FLAGS RFC822.SIZE"
kio_imap4(4711)/kio_imap imapParser::parseURL: imapParser::parseURL "/INBOX.sommercampus/;UID=1:*;SECTION=FLAGS RFC822.SIZE"
kio_imap4(4711)/kio_imap imapParser::parseURL: URL: box= "INBOX.sommercampus" , section= "FLAGS RFC822.SIZE" , type= "" , uid= "1:*" , validity= "" , info= ""
kio_imap4(4711)/kio_imap imapParser::namespaceForBox: imapParse::namespaceForBox "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - namespace= "INBOX."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - delimiter= "."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - box= "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - return 2
kio_imap4(4711)/kio_imap IMAP4Protocol::assureBox: IMAP4Protocol::assureBox - reusing box
kio_imap4(4711)/kio_imap IMAP4Protocol::assureBox: IMAP4Protocol::assureBox - noop timer fired
kio_imap4(4711)/kio_imap IMAP4Protocol::get: IMAP4::get -  finished
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 80
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 77
kio_imap4(4711)/kio_imap IMAP4Protocol::special: IMAP4Protocol::special
kio_imap4(4711)/kio_imap imapParser::parseURL: imapParser::parseURL "/INBOX.sommercampus/"
kio_imap4(4711)/kio_imap imapParser::parseURL: URL: box= "INBOX.sommercampus" , section= "" , type= "" , uid= "" , validity= "" , info= ""
kio_imap4(4711)/kio_imap imapParser::namespaceForBox: imapParse::namespaceForBox "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - namespace= "INBOX."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - delimiter= "."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - box= "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - return 2
kio_imap4(4711)/kio_imap IMAP4Protocol::specialACLCommand: GETACL "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::specialACLCommand: ("owner", "acdilrsw", "administrators", "acdilrsw")
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 80
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 77
kio_imap4(4711)/kio_imap IMAP4Protocol::special: IMAP4Protocol::special
kio_imap4(4711)/kio_imap imapParser::parseURL: imapParser::parseURL "/INBOX.sommercampus/"
kio_imap4(4711)/kio_imap imapParser::parseURL: URL: box= "INBOX.sommercampus" , section= "" , type= "" , uid= "" , validity= "" , info= ""
kio_imap4(4711)/kio_imap imapParser::namespaceForBox: imapParse::namespaceForBox "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - namespace= "INBOX."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - delimiter= "."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - box= "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - return 2
kio_imap4(4711)/kio_imap IMAP4Protocol::specialQuotaCommand: QUOTAROOT "INBOX.sommercampus"
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 80
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 77
kio_imap4(4711)/kio_imap IMAP4Protocol::special: IMAP4Protocol::special
kio_imap4(4711)/kio_imap imapParser::parseURL: imapParser::parseURL "/INBOX.Spam/"
kio_imap4(4711)/kio_imap imapParser::parseURL: URL: box= "INBOX.Spam" , section= "" , type= "" , uid= "" , validity= "" , info= ""
kio_imap4(4711)/kio_imap imapParser::namespaceForBox: imapParse::namespaceForBox "INBOX.Spam"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - namespace= "INBOX."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - delimiter= "."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - box= "INBOX.Spam"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - return 3
kio_imap4(4711)/kio_imap IMAP4Protocol::specialACLCommand: MYRIGHTS "INBOX.Spam"
kio_imap4(4711)/kio_imap IMAP4Protocol::specialACLCommand: myrights results: ("acdilrsw")
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 80
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 67
kio_imap4(4711)/kio_imap IMAP4Protocol::get: IMAP4::get - "imaps://matthias@xayn:993/INBOX.Spam/;UID=0:0"
kio_imap4(4711)/kio_imap imapParser::parseURL: imapParser::parseURL "/INBOX.Spam/;UID=0:0"
kio_imap4(4711)/kio_imap imapParser::parseURL: URL: box= "INBOX.Spam" , section= "" , type= "" , uid= "0:0" , validity= "" , info= ""
kio_imap4(4711)/kio_imap imapParser::namespaceForBox: imapParse::namespaceForBox "INBOX.Spam"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - namespace= "INBOX."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - delimiter= "."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - box= "INBOX.Spam"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - return 3
kio_imap4(4711)/kio_imap IMAP4Protocol::assureBox: IMAP4Protocol::assureBox - opening box
kio_imap4(4711)/kio_imap imapParser::sendCommand: imapParser::sendCommand - setting current box to "INBOX.Spam"
kio_imap4(4711)/kio_imap imapParser::parseResult: imapParser::parseResult - current box is now "INBOX.Spam"
kio_imap4(4711)/kio_imap IMAP4Protocol::get: IMAP4::get -  finished
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 80
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 71
kio_imap4(4711)/kio_imap IMAP4Protocol::listDir:  IMAP4::listDir - "imaps://matthias@xayn:993/INBOX.Spam/;TYPE=LIST"
kio_imap4(4711)/kio_imap imapParser::parseURL: imapParser::parseURL "/INBOX.Spam/;TYPE=LIST"
kio_imap4(4711)/kio_imap imapParser::parseURL: URL: box= "INBOX.Spam" , section= "" , type= "LIST" , uid= "" , validity= "" , info= ""
kio_imap4(4711)/kio_imap imapParser::namespaceForBox: imapParse::namespaceForBox "INBOX.Spam"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - namespace= "INBOX."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - delimiter= "."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - box= "INBOX.Spam"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - return 3
kio_imap4(4711)/kio_imap IMAP4Protocol::listDir: IMAP4Protocol::listDir - listStr= "INBOX.Spam.%"
kio_imap4(4711)/kio_imap IMAP4Protocol::listDir: IMAP4Protocol::listDir - got 0
kio_imap4(4711)/kio_imap IMAP4Protocol::listDir: IMAP4Protocol::listDir - Finishing listDir
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 80
kio_imap4(4711)/kio_imap IMAP4Protocol::dispatch: IMAP4::dispatch - command= 67
kio_imap4(4711)/kio_imap IMAP4Protocol::get: IMAP4::get - "imaps://matthias@xayn:993/INBOX.Spam/;UID=1:*;SECTION=FLAGS RFC822.SIZE"
kio_imap4(4711)/kio_imap imapParser::parseURL: imapParser::parseURL "/INBOX.Spam/;UID=1:*;SECTION=FLAGS RFC822.SIZE"
kio_imap4(4711)/kio_imap imapParser::parseURL: URL: box= "INBOX.Spam" , section= "FLAGS RFC822.SIZE" , type= "" , uid= "1:*" , validity= "" , info= ""
kio_imap4(4711)/kio_imap imapParser::namespaceForBox: imapParse::namespaceForBox "INBOX.Spam"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - namespace= "INBOX."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - delimiter= "."
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - box= "INBOX.Spam"
kio_imap4(4711)/kio_imap IMAP4Protocol::parseURL: IMAP4::parseURL - return 2
kio_imap4(4711)/kio_imap IMAP4Protocol::assureBox: IMAP4Protocol::assureBox - reusing box
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
I can't see anything obviously wrong with that. I would recommend asking the PIM developers in #kontact ( on Freenode ) to see if they know why this is occurring.


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
Turing
Registered Member
Posts
19
Karma
0
OS
Meanwhile I had some time to process further on this problem and to investigate the imap server.

I first tried some reconfiguration of courier-imap but gave up after a few hours.
Then I switched the Dovecot imap server and with the default configuration of my gentoo linux distribution everything worked from the start.

A mailcheck takes now about 4 seconds. :)
User avatar
annew
Manager
Posts
1155
Karma
11
OS
Interesting. I'm inclined to suggest that you post a bug report then send the link to the developers (KDE PIM <kde-pim@kde.org>) with a short summary. There may be something there that they need to know about.


annew, proud to be a member of KDE forums since 2008-Oct and a KDE user since 2002.
Join us on http://userbase.kde.org
jhf2442
Registered Member
Posts
2
Karma
0
Same issue here with Arch linux.

Installing dovecot on my Ubuntu 9.10 server didn't solve the issue, it's still taking minutes to sync 450 folders.

-> could you send me your dovecot.conf (per PM if you like)

Thanks


Bookmarks



Who is online

Registered users: Bing [Bot], Evergrowing, Google [Bot], ourcraft