Bug 28868

Summary: Blow away corrupt caps caches.
Product: Wocky Reporter: Will Thompson <will>
Component: GeneralAssignee: Will Thompson <will>
Status: RESOLVED FIXED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium CC: sjoerd
Version: git masterKeywords: patch
Hardware: Other   
OS: All   
URL: http://git.collabora.co.uk/?p=user/jonny/wocky.git;a=shortlog;h=refs/heads/blow-away-corrupt-caps-caches
Whiteboard:
i915 platform: i915 features:

Description Will Thompson 2010-07-01 05:48:16 UTC
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.
Comment 1 Will Thompson 2010-12-01 08:33:39 UTC
I think this branch should do the trick. But it could use some testing with real corrupted caps caches!
Comment 2 Simon McVittie 2010-12-13 03:18:56 UTC
"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?
Comment 3 Jonny Lamb 2011-01-17 05:09:29 UTC
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.
Comment 4 Jonny Lamb 2011-02-03 01:19:52 UTC
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.
Comment 5 Will Thompson 2011-02-25 05:32:01 UTC
Merged to Wöcky.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.