KDE PIM/Meetings/PIM October 2012 meeting


Please do add your topics.


These are just possible topics that i'd like to know more about.

  • Introduce new PIM folks to the PIM principle.
  • A lot of Akonadi knowledge sharing so a broader range of people knows what it all about and can use it in applications. Right now i know close to nothing about it.
  • Developing PIM applications.
  • Developing simple Akonadi example applications which showcase Akonadi and should hopefully make it easier for developers to integrate Akonadi in their applications
  • KMail dev sprint and bug squashing?
  • Related to kmail but mentioning specifically. Since KDE 4.9.2 there seems to be an issue with kmail getting slower. I'd be nice to dive in this issue with the people there and fix it.
  • QML Calendar Akonadi integration sprint.
  • Figuring out all the PIM classes and improving their documentation.
  • Discussing the future of Kontact. Right now it looks out of place in the current KDE. Perhaps replacing applications with modern ones where they exist and fit KDE. I for one would like to replace KOrganizer with my QML Calendar once it's production ready (far from that at the moment).


These are just possible topics that i'd like to know more about.

  • Showcase how may laptop gets up to 2gb memory using KMail, try to fix that.
  • Add a new status for resources called "Unconfigured"
  • EntityTreeModelPrivate::retrieveAncestors won't work (We have to figure out a way of fixing this, I have a patch and an idea we have to talk about it)
  • Activating resources when added (When a new resource is adding for example in AddressBook, the user will have to "check it" manually.
  • Try to improve KMail user perception by fine-tunning when and how we FETCH
  • Investigate if we can use accounts-sso instead of doing our own thing

DFaure (remotely)

I plan to implement some sort of incremental saving in ChangeRecorder to speed up operations affecting a large number of items. If there's still time after that, I'll ask for input on how to fix my other pet peeves:

  • Some sent mails have "Date: Unknown" (and others are 2 hours in the future)
  • Debugging mixedmaildir ending up with "MySQL server has gone away"
  • Plans for more parallelism in resources, for better reactivity to user actions

Marty K

  • Social Feed (lots of stuff)
  • New Address Book (+metacontacts a bit)


  • performance

John Layt


Friday 12th

Saturday 13th

Sunday 14th

Meeting Notes

Friday 12th

IMAP Improvements

  • support dynamic switching between online and offline IMAP
  • implement two pass (initial) sync, ie. do a first sync with online mode, and then if the user selected offline mode initially run a second sync with that enabled to fetch the missing bodies (depends on the above point obviously), this will give you a much faster initial access to the mail before having the full sync completed, aka the "Spanish sync"
  • download throttling, to prevent a fast network connection from overflowing the IMAP resource
  • parallel fetching and syncing, so that reading a single mail with online IMAP is not blocked by a long on-going sync (aka the "d4 problem")
  • increase default sync interval from 5 to 60 min, common users are assumed to mainly work with inbox for incoming mails (ie. no shared folders and server side filtering), so IMAP IDLE is all they need and we can avoid the high load caused by frequent syncs
  • fix cache policy overwriting by the IMAP resource to preserve user changes
  • consider the time it took to sync when determining when the next interval sync happens, aka the "continuous sync problem"
  • fix progress indicator during initial sync, aka the "non-monotonous progress problem"

IndexingHeavy Task Scheduling (aka "Spanish Scheduling")

Things to consider:

  • KIdleTime
  • OS scheduler
  • PM inhibitions
  • Akonadi agent status
  • Battery/AC status
  • Activities
  • manual override
  • other ongoing heavy tasks

Saturday 13th

Fixed stuff:

  • Fixed accidental by-passing of unit test isolation.
  • Fixed ETM not freeing up memory (pending review),
  • Memory optimization by leveraging implict QString sharing for message headers (~10% reduction) (pending review).
  • Optimize memory layout of Akonadi::ItemPrive (~5% reduction on 64bit architectures).
  • Fixed ETM not updating correctly for resources with structural ancestor collections.
  • Replaced synchronous Nepomuk calls in KMail with async ones.
  • Fix individual item retrieval in the Kolab resource.
  • Optimize Mixedmaildir resource filesystem access.
  • Don't trigger Nepomuk Feeder for irrelevant changes.
  • Fix filtering on MBox folders.
  • Fix progress/status reporting during filtering.
  • Fix folder monitoring in filter agent.
  • Fix conflict handling in filter agent.
  • Optimize required part calculation in filter agent by ignoring disabled filters.
  • Fix install location of Sqlite Akonadi backend.

Sunday 14th

Fixed stuff:

  • Improved handling of not configured vs. broken agent instances
  • Optimized change recorder saving (pending review)
  • Kill obsolete address completion jobs.

Analysis for the filter duplication issue:

  • Problem: mails are duplicated on IMAP with spam-filtering locally
    • Filter setup: pass-through spam filter, move and mark as read if spam
    • Observation on IMAP log: FETCH UID x; APPEND ... -> UID 2; DELETE UID 1; DELETE UID 1
    • APPEND is caused by a change due to spam filters adding headers, first delete belongs to that
    • second DELETE is due to the move to a local maildir trash, but is replayed with the wrong RID
  • Filter agent does store before move (log says "to be on the safe side")
  • Conceptually move before store seems to be right (avoid expensive modifications that are deleted anyway)
  • We did not find a scenario where move before store would be unsafe nowadays

Akonadi Server 1.8.1 release.

Blogs / Media


See the Sprint page for more details.


Name Arrival Note Accommodation Departure Note
Kevin Krammer 2012-10-12 08:40 OS 271 NH Express, Stresemannstr. 2012-10-14 19:10 LH 197
Mark Gaiser 2012-10-11 18:00 Eldenaerstr 28A 2012-10-15 14:00
Volker Krause 2012-10-11 20:35 AB 6538 Home 2012-10-15 07:25 LH 2057

This page was last edited on 18 October 2012, at 07:26. Content is available under Creative Commons License SA 4.0 unless otherwise noted.