What seems to be happening is that upon the first update, all files are created normally. Upon the second update, saving the sbtore files succeeds but saving the pset files doesn't. The data in memory *is* updated, though. When the user restarts the browser, our corruption detection will see that the sbstore data is not in sync with the pset data, and blow away the database. Bugs are: a) prefixSet->WriteFile(); in Classifier.cpp doesn't have its return value checked b) Windows doesn't allow us to rename into the file (SafeOutputStream) while we have an open read handle to it. This is a known problem that was fixed in HashStore.cpp but missed in LookupCache.cpp c) I think its possible to make a testcase for this, so we should probably do that.
Created attachment 595825 [details] [diff] [review] Patch. Fix WriteFile on Windows https://tbpl.mozilla.org/?tree=Try&rev=0ad1f7d95261 Adding a test for this specific failure seems tricky. I'd need to shut down the entire classifier system, afaik. Not sure how to achieve that.
Created attachment 616610 [details] [diff] [review] Patch. Backout [Approval Request Comment] Backout due to bug 744993: a01cf079ee0b Bug 730247 1a6d008acb4f Bug 729928 f8bf3795b851 Bug 729640 35bf0d62cc30 Bug 726002 a010dcf1a973 Bug 726002 e9291f227d63 Bug 725597 db52b4916cde Bug 673470 173f90d397a8 Bug 673470
Comment on attachment 616610 [details] [diff] [review] Patch. Backout Sorry - thought this bug was reopened because the backout was backed out. My mistake. Approved for Aurora 13 (or Beta 13 if the merge occurs before we land).
Relanding after fixes in bug 673470 to fix bug 744993. https://hg.mozilla.org/integration/mozilla-inbound/rev/e63466828f6b