If your caps cache becomes corrupted, sometimes sqlite only notices when you try to write to it.
0.9.15 fixed a Wocky bug that made Gabble crash when that happens, but what we really should do is blow the cache away and start again if sqlite tells us it's corrupt.
http://git.collabora.co.uk/?p=user/wjt/telepathy-gabble-wjt.git;a=shortlog;h=refs/heads/blow-away-corrupt-caps-caches is the start of that fix.
I think this branch should do the trick. But it could use some testing with real corrupted caps caches!
"CapsCache: don't potentially double-free statement" is pretty subtle; I think it'd be less astonishing to make caps_cache_bind_* never free stmt, but I realise that'd mean changing quite a few callers.
This looks OK to merge; Sjoerd, IIRC you saw some actual cache corruption? Does this help?
Sjoerd? Did you look at this? Seeing that you're the only one who actually came across this it'd be nice to hear from your experiences.
Last Christmas, you gave me your caps cache. But the very next day, I gave it to Wocky.
To try and make up for it, I threw your patches onto a Wocky branch.
Merged to Wöcky.