Summary: | IMAP (sub-)subfolders empty in kmail2 | ||
---|---|---|---|
Product: | [Frameworks and Libraries] Akonadi | Reporter: | Richard Homonnai <Chain> |
Component: | Migration | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED UNMAINTAINED | ||
Severity: | normal | CC: | arne, bugs, finex, gassauer, laurent.rineau, modax |
Priority: | NOR | ||
Version: | 4.7 | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Richard Homonnai
2011-06-11 19:00:13 UTC
I can confirm this with Kmail 2.1.0 on KDE 4.6.4. IMAP server in use is Dovecot 1.2.12 All subfolders appear empty. The containing folder appear to have a correct message count. Possibly important, the subfolders are not under the inbox (which is named INBOX). The containign folders are all on the same level as INBOX, like this; Afolder Bfolder Container1 - some messages Subfolder1 Subfolder2 Dfolder Efolder INBOX Ffolder ListcontainerFolder List1 List2 OneMoreFolder and so on. All folders on the first level are correct. The subfolders appear empty In short the cause of this bug is that migrator assumes (or misdetects) that a IMAP hierarchy separator. It assumes it to be '/' (GMail default) while dovecot uses '.' by default. If you're using akonadi mysql backend (if not, you can still adapt the instructions), read the IRC conversation below to fix this for your setup. Please note that these instructions deal with consequences, not the cause. [Wednesday 15 June 2011] [01:07:42] <MoDaX> do have imap folders like INBOX/something ? [Wednesday 15 June 2011] [01:07:55] <MoDaX> or rather INBOX.something [Wednesday 15 June 2011] [01:08:51] <otherperson> On my private accout all folders are subfolders of INBOX [Wednesday 15 June 2011] [01:09:19] <MoDaX> and they open fine? [Wednesday 15 June 2011] [01:09:24] <otherperson> yes [Wednesday 15 June 2011] [01:09:35] <otherperson> MoDaX: wait [Wednesday 15 June 2011] [01:09:38] <otherperson> no they don't [Wednesday 15 June 2011] [01:09:41] <MoDaX> heh [Wednesday 15 June 2011] [01:09:44] <otherperson> :S [Wednesday 15 June 2011] [01:10:39] <otherperson> Did I lose all my mails in INBOX/sent ? [Wednesday 15 June 2011] [01:11:10] <MoDaX> otherperson: not yet [Wednesday 15 June 2011] [01:11:19] <otherperson> promising words :D [Wednesday 15 June 2011] [01:11:19] <MoDaX> kmail2 does not show them [Wednesday 15 June 2011] [01:11:57] <otherperson> MoDaX: strange is, that I sent a test mail, and it (and only it) is visibile in IBOX/sent [Wednesday 15 June 2011] [01:12:43] <MoDaX> otherperson: akonadi cached it, it's not on the imap server though [Wednesday 15 June 2011] [01:12:54] <otherperson> ok [Wednesday 15 June 2011] [01:13:01] <MoDaX> you better delete it [Wednesday 15 June 2011] [01:13:08] <otherperson> so how do I make subfolders visibile [Wednesday 15 June 2011] [01:13:12] <otherperson> ok [Wednesday 15 June 2011] [01:13:27] <MoDaX> otherperson: scroll back to my backlog from yesterday [Wednesday 15 June 2011] [01:13:53] <MoDaX> I hope you use mysql as akonadi backend, don't you? [Wednesday 15 June 2011] [01:14:39] <otherperson> MoDaX: yes [Wednesday 15 June 2011] [01:16:10] <MoDaX> otherperson: this is going to be a bit tricky. connect to mysql server [Wednesday 15 June 2011] [01:16:12] <MoDaX> mysql --socket ~/.local/share/akonadi/socket-`hostname`/mysql.socket [Wednesday 15 June 2011] [01:16:47] <MoDaX> there do 'use akonadi' [Wednesday 15 June 2011] [01:17:14] <otherperson> database changed [Wednesday 15 June 2011] [01:18:02] <MoDaX> otherperson: select id, remoteid, name, parentid from collectiontable; [Wednesday 15 June 2011] [01:18:16] <MoDaX> remember IDs of your imap folders [Wednesday 15 June 2011] [01:19:17] <MoDaX> stop kmail2 [Wednesday 15 June 2011] [01:19:23] <otherperson> where to find the ID's [Wednesday 15 June 2011] [01:19:29] <otherperson> IDs [Wednesday 15 June 2011] [01:19:43] <MoDaX> otherperson: select gave them to you [Wednesday 15 June 2011] [01:19:51] <MoDaX> first column [Wednesday 15 June 2011] [01:20:10] <otherperson> MoDaX: ahh, overread that line [Wednesday 15 June 2011] [01:20:12] <otherperson> ok [Wednesday 15 June 2011] [01:20:30] <otherperson> kmail stoped [Wednesday 15 June 2011] [01:21:25] <MoDaX> your mailbox subfolders should be sequential and fit into min <= id AND id <= max . find those min and max from the output [Wednesday 15 June 2011] [01:22:33] <otherperson> so there is a line: 7->imap:... and all in between until 27->/Trash [Wednesday 15 June 2011] [01:22:51] <otherperson> is then 8-27 ? [Wednesday 15 June 2011] [01:23:00] <MoDaX> yeah [Wednesday 15 June 2011] [01:23:13] <MoDaX> what you need to do here is to change the first symbol of remoteid column from '/' to '.' [Wednesday 15 June 2011] [01:23:14] <otherperson> ok [Wednesday 15 June 2011] [01:23:37] <MoDaX> update collectiontable set remoteid = concat('.', substr(remoteid from 2)) where id >= 80 AND id <= 85 [Wednesday 15 June 2011] [01:23:43] <MoDaX> replace min and max [Wednesday 15 June 2011] [01:25:47] <MoDaX> then in another console restart akonadi (akonadictl restart). mysql server will restart, reconnect to it and recheck with select if remoteid where actually changed [Wednesday 15 June 2011] [01:27:37] <otherperson> ok, went fine I guess [Wednesday 15 June 2011] [01:27:42] <otherperson> start kmail2 ? [Wednesday 15 June 2011] [01:28:08] <otherperson> really annoying bug [Wednesday 15 June 2011] [01:28:24] <otherperson> imagine explaining this to old users at a university [Wednesday 15 June 2011] [01:28:29] <MoDaX> yeah, start it [Wednesday 15 June 2011] [01:28:46] <MoDaX> folder icons should be back too now [Wednesday 15 June 2011] [01:28:53] <otherperson> MoDaX: Yippie [Wednesday 15 June 2011] [01:29:00] <otherperson> thanks a lot [Wednesday 15 June 2011] [01:29:55] <MoDaX> but kmail2 might still eat your mail. better disable automatic expurging in account settings. might help [Wednesday 15 June 2011] [01:30:20] <MoDaX> I think I have already "saved" 5 mails with this today [Wednesday 15 June 2011] [01:30:33] <MoDaX> they are both 'deleted' and 'unread' now :) I am using Dovecot on one of my servers, the others have Courier-IMAP I think. Is this one also affected by this bug? Because on both of them I don't see any subfolder contents. Can I edit the db with normal SQLite tools if using SQLite? Or is there something to keep in mind? I deleted the account in Kmail2 (which as imported by the migrator), then recreated it manually. That fixed it for me. AFAIK '.' is more common than '/' among IMAP servers. Richard, of course you can edit using SQLite tools. You might just need to adapt SQL syntax a bit. Well, this fixed it for me. If anybody also uses SQlite, here's the query: update collectiontable set remoteid = '.' || substr(remoteid,2) where id >= 80 AND id <= 85 of course, replace 80 and 85 accordingly. I for myself just updated all rows and then fixed a few (3, I think) calendar entries by hand. Was much less effort than the 114 broken subdirs on four mail servers ;) The most safe approach might be: update collectiontable set remoteid = '.' || substr(remoteid,2) where remoteid NOT LIKE '/home/username/%' of course, assuming all your local calendars are on your home. Same here (Arch Linux, KMail 2.1.1), the IRC snippet helped I confirm the bug. I've migrated an IMAP account (dovecot) with about 50000 email and hundred of subfolders and all looks empty :-( Unfortunatly I don't have time to play with scripts and configuration files. So I will downgrade to KMail 1 until KMail 2 is an alpha-quality version :-( bye :-) Humm... I've deleted the account from Kmail and I've recreated a new one and now it shows all my emails... :-/ same problem with mailstore: cyrus imap deleting and recreating fixes the ssue that *only* happens when migrating accounts, right ? Yes, it is the migration that fails. I've tested on two different machines, and if account is created from scratch, then the subfolders are populated. If the accounts are migrated, then the subfolders are empty Thanks I did not experience this when I migrated my kmail 1 accounts with kdepim(libs) 4.8.4 today. It has been fixed probably. This bug has only been reported for versions older than KDEPIM 4.14 (at most akonadi-1.3). Can anyone tell if this bug still present? If noone confirms this bug for a recent version of akonadi (part of KDE Applications 15.08 or later), it gets closed in about three months. Just as announced in my last comment, I close this bug. If you encounter it again in a recent version (at least 5.0 aka 15.08), please open a new one unless it already exists. Thank you for all your input. |