I've been trying for several weeks to find an elusive bug where the structure of my storage file is corrupted. I found your memory-mapping information useful, but it dispensed with some of my leads (my premises were "fiction"alized) and now I'm wondering what to check next. A major difficulty is that I put out a build with a new "fix" and takes about a week for one of the testers to report that the same bug is still present. No steps to reproduce have been generated, seemingly because the bug isn't much affected by what the user does in the application. The only pattern I can see is that the corruption usually occurs when the user exits the application.
The commit buffers are also memory-mapped files? In which case they couldn't be corrupted by stray writes from my application code, right?
Is there the possibility of exiting before writes performed in a commit are finished? The question sounds dumb to me, but I am grasping at straws because I've already tried so many things.
The only other hint I have is that the bug was never reported until I split my database into three separate storage files. Another programmer is playing around with the order we perform commits and delete storage objects during the application exit, but each tweak takes about a week to confirm whether it did anything or not. This is the final release-stopping bug after a year of development.
-Erik
_______________________________________________ metakit mailing list - [EMAIL PROTECTED] http://www.equi4.com/mailman/listinfo/metakit
