Table of Contents

KMail 2 - is it finally usable?

I think I may have frightened KMail 2 into behaving itself.

Note:

  1. If you've only just started reading here, you may want to back up a moment to learn about my experience of "upgrading" to KMail 2 in the first place.
  2. I don't normally write in quite such an acerbic style as this, but given how awful KMail 2 is compared to KMail 1, and how irritating some of the ways in which it's broken are, anything else would have been a misrepresentation of my opinions.

I was watching what my system was up to using 'top', and for the past 50 hours or so, mysqld has been using 100% of a CPU core, so I decided to start investigating what it was actually doing.

Looking at the mysqld process command line, I could see that it was listening on a socket named /tmp/akonadi-antony.Lago56/mysql.socket, so I tried:

mysql --socket=/tmp/akonadi-antony.Lago56/mysql.socket akonadi

and sure enough I could get into MySQL (without any password, which was helpful).

I tried standard MySQL commends such as show processlist, show full processlist, show status like '%conn%', and mostly what I saw was a whole load (around 40) of processes in 'Sleep' state with a 'NULL' query.

Then I suddenly noticed that mysqld was no longer using 100% of a CPU core, so I somewhat tentatively clicked on an email folder in KMail. Two new processes appeared in the processlist:

SELECT PimItemTable.id, FlagTable.name FROM PimItemTable INNER JOIN PimItemFlagRelation ON ( PimItemTable.id = PimItemFlagRelation.PimItem_id ) INNER JOIN FlagTable ON ( FlagTable.id = PimItemFlagRelation.Flag_id ) WHERE ( collectionId = ? ) ORDER BY PimItemTable.id DESC

and

Copying to tmp table | SELECT PimItemTable.id, PartTypeTable.ns, PartTypeTable.name, PartTable.data, PartTable.external, PartTable.version FROM PimItemTable INNER JOIN PartTable ON ( PimItemTable.id = PartTable.pimItemId ) INNER JOIN PartTypeTable ON ( PartTable.partTypeId = PartTypeTable.id ) WHERE ( ( ( ( PartTypeTable.ns = ? AND PartTypeTable.name = ? ) OR ( PartTypeTable.ns = ? AND PartTypeTable.name = ? ) ) ) AND collectionId = ? ) ORDER BY PimItemTable.id DESC

A few seconds later (I think this is the first time I've seen this version of KMail do anything in just a few seconds, although it's worth pointing out that that even this is still a lot slower than KMail 1 was), I got the list of emails in that folder, and wonder of wonders, it even showed me the body of the selected email!

"Wow," I thought, "this is finally working. Whatever the hell it's been up to in the background has finally finished (just in time for me not to find out what it actually was doing), and I seem to have a usable mail client at last."

I stepped through a few emails in the folder, and was amazed to see not only that I got shown the bodies of each email in turn, but that the status of the email in the message list changed to "read" with only a modest delay - certainly something I could live with.

So, I pushed my luck, and clicked on a few more folders which had unread emails in them, and stepped through the emails.

I pushed my luck too far.

On about the tenth folder, it reverted to showing me the list of messages, but not showing the email in the preview pane. As I stepped through the messages, they no longer changed status from 'new' to 'read'.

The preview pane is stuck with the sadly-familiar message "Retrieving Folder Contents - Please wait…", and I can no longer look at any emails, change the status of them, move them to other folders, delete them… you know - the sorts of things you might generally expect to do with an email client if it worked.

The thing I find most offensive about that "Retrieving Folder Contents - Please wait…" message is that it isn't retrieving the folder contents, and no matter how long you want, it's not going to show them to you. I wouldn't mind so much if the message said "folder index is broken" or "folder contents can't be retrieved" or even "email cannot be displayed", because at least these are fairly solid confirmations that there's a big problem. "Please wait" is just annoying.

I think my next approach is going to be to delete all my emails (remember: I have backups), but keep the folders as they are, and restart the entire KMail 1 → KMail 2 migration process. The theory is that having no emails in the folders should make the process quick and sensible (I regard 50 hours as neither quick nor sensible, especially with no indication at all of how long it's going to take, or even that it's worth waiting for things to improve). If that works and I appear to have an email client I can actually do things with, I'll then Import the emails bit by bit from backup, keeping a close eye on whether the system remains responsive and usable, or gradually slows down as more emails get imported, or grinds to a shuddering halt, showing me once again nothing but "Retrieving Folder Contents - Please wait…" and the progress bar of the pig swimming through the treacle.

I'll let you know if I feel the inclination to do that, but it won't be immediate, because believe it or not I actually have work to do for customers, so for the next few days at least, I'm going back to the old Debian Wheezy / KMail 1 system, because it works.

After a few days...

Hi. I'm back again.

It turned out that the above process (delete all the emails, keep the folders, repeat the import process) was not necessary. After waiting the 50 hours for KMail to migrate everything (not that it gave me any indication of progress, or that it was now complete; I only knew because MySQL and Akonadi stopped using 100% of 2 cores of my CPU), I could finally click on a folder, click on an email, and actually read it.

More than that, I could reply, write new emails, and actually use KMail 2.

So, that's what I've been doing for the past 2½ weeks.

That's the good news.

The bad news is, it's shit.

Here's a list of the ways in which KMail 2 is better, and worse, than KMail 1:

Why KMail 2 is better

Why KMail 2 is worse

Summary

All in all, having used this system for exactly three weeks now, since Devuan 1.0 LTS was released, I've come to the conclusion that KMail 2 is a frustrating and unusable version of what used to be a perfectly functional email client.

I'm quite certain that many of the problems outlined above are down to Akonadi being crap, but some of them (folder sort order, not selecting an email when entering a folder, unilaterally deciding to crypto-sign replies, etc) are clearly KMail itself, and they are not an improvement on KMail 1.

It makes me wonder:

What to do next?

I think I have three options from this point forward:

Relief at last

I've reverted to Debian Wheezy and KMail 1.

It's wonderful :)

I have nice fonts in my browser again; I have speling errors highlighted; I have all the things I'm used to, and I have a working email client again!

I'm happy.

A lesson well-learned

  1. Users don't know what they want until they see what they get
  2. Never commit yourself to an upgrade without being sure you can revert to a working system if you need to
  3. Where version numbers are concerned, don't assume that bigger is better

Go up
Return to main index.