[Akonadi] [Bug 325699] New: Akonadi stores absolute path to maildir resource maildir in database, making it difficult to create a test setup

Martin Steigerwald Martin at Lichtvoll.de
Sun Oct 6 14:16:18 BST 2013


https://bugs.kde.org/show_bug.cgi?id=325699

            Bug ID: 325699
           Summary: Akonadi stores absolute path to maildir resource
                    maildir in database, making it difficult to create a
                    test setup
    Classification: Unclassified
           Product: Akonadi
           Version: 4.10
          Platform: unspecified
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: Maildir Resource
          Assignee: kdepim-bugs at kde.org
          Reporter: Martin at Lichtvoll.de

Hi!

I had 1-byte mail file size problem when using CRM114 filtering (see [Bug
319226] New: produces 1-byte-sized files on failed move attempts while
filtering). I have been copying my main accounts mail and recreated a fresh
POP3 resource and imported all my filter rules and added the CRM114 rules with
just a minor modification and I wasn´t able to reproduce the issue, filtering
worked slow, but fine. (I used different POP3 account which got gets the same
mail as my main POP3 account to ensure mails are safe.)


Reproducible: Always

Steps to Reproduce:
So I thought it might be best to reproduce with a clean 100% copy of my 
original setup. I did

 1141  rsync -aAHXSP --del martin/.local/share/akonadi martin2/.local/share
 1142  rsync -aAHXSP --del martin/.config/akonadi martin2/.config
 1143  rsync -aAHXSP martin/.kde/share/config/akonadi*
martin2/.kde/share/config
 1144  rsync -aAHXSP --del martin/.local/share/local-mail 
martin2/.local/share/
[…]
 1147  rsync -aAHXSP martin/.kde/share/config/kmail* martin2/.kde/share/config
 1148  rsync -aAHXSP martin/.kde/share/config/email* martin2/.kde/share/config
[…]
 1150  chown -R martin2:martin2 martin2

while neither the Akonadi of martin nor the Akonadi of martin2 was running.

Actual Results:  
Still I get the Local Folders resources duplicated in the martin2 account and 
apparently mails duplicated as well.

I do have the exact same database, the exact same maildir, the exact same 
config – why on earth do I see two Local Folders resources? And why does 
Akonadi seem to copy all the mails from one of the Local Folders resources to 
the other (and filling the remainder of my /home with it)?

After aborting this scenario I got 11GB for ~/.local/share/local-mail on both 
users, so there nothing seems to be duplicated, but I see:

merkaba:/home> du -sh martin/.local/share/akonadi/db_data 
1,5G    martin/.local/share/akonadi/db_data

merkaba:/home> du -sh martin2/.local/share/akonadi/db_data
1,8G    martin2/.local/share/akonadi/db_data

merkaba:/home> du -sh martin2/.local/share/akonadi/file_db_data 
204M    martin2/.local/share/akonadi/file_db_data

300 MiB additional stuff in database and 200 MiB in file_db_data when I just 
told Akonadi to use an existing and I thought *complete* configuration?


I sure hope that Akonadi doesn´t store any absolute directory paths in any 
configuration or database!

Well it does:

AkonadiAgentServer(7224): akonadi_ical_resource: Can't find incidence with uid 
"libkcal-224511270.1044" ; item.id() =  1 
ItemRetrieverException :  Unable to retrieve item from resource:
<html>Ungültigen Eintrag erhalten</html>
akonadi_nepomuk_feeder(7228) FeederPluginloader::feederPluginsForMimeType: No
feeder for type  "text/calendar"  found 
AkonadiAgentServer(7224): akonadi_ical_resource: Can't find incidence with uid 
"libkcal-224511270.1044" ; item.id() =  1 
ItemRetrieverException :  Unable to retrieve item from resource:
<html>Ungültigen Eintrag erhalten</html>
akonadi_maildispatcher_agent(7226)/libakonadi
Akonadi::GetLockJob::Private::timeout: Timeout trying to get lock. Check who
has acquired the name "org.kde.pim.SpecialCollections" on DBus, using qdbus or
qdbusviewer. 
akonadi_maildispatcher_agent(7226)/libakonadi
Akonadi::SpecialCollectionsRequestJobPrivate::lockResult: Failed to get lock:
"Zeitüberschreitung beim Erhalten der Sperre." 
akonadi_maildispatcher_agent(7226)
OutboxQueue::Private::localFoldersRequestResult: Failed to get outbox folder.
Retrying in:  5000 
AkonadiAgentServer(7225) MaildirResource::maildirForCollection: RID mismatch,
is  "/home/martin/.local/share/local-mail"  expected 
"/home/martin2/.local/share/local-mail" 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
akonadi_maildispatcher_agent(7226)/libakonadi
Akonadi::ResourceScanJob::Private::fetchResult: Resource has more than one root
collection. I don't know what to do. 
akonadi_nepomuk_feeder(7228) Akonadi::NepomukFeederAgent::foundUnindexedItems:
FindUnindexedItemsJob failed 

So Akonadi maildir resource will break whenever a user name changes. Akonadi
stores the path to the maildir resource in absolute form:

martin at merkaba:~/.local/share/akonadi/db_data/akonadi> LANG=C grep
/home/martin/.local/share/local-mail *
Binary file collectiontable.ibd matches
Binary file parttable.ibd matches

I think thats a bug.

Anything related to Akonadi except socket file path is relative to $HOME, this
is not. Why?



How can I change that RID path?

Expected Results:  
Akonadi just used copied configuration without insisting to duplicate Local
Folders resource.

Akonadi stores relative path to Local Folders in database by default.

I really want a 100% copy of my original account so I can test out CRM114 
filter rules without risking any of my precious mails one again. I do not feel 
comfortable with testing with my main setup. I still use my I delete spam 
mails manually (!) work-around there.

This still is with KDE SC 4.10, but I intend to install KDE SC 4.11 + newer 
Akonadi from Debian experimental soonish.

I cannot easily have the same absolute path for testing, so I chose a different
user name.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Kdepim-bugs mailing list