Jeremy, > The issue some (real) customers are seeing is with laptops > (mainly I believe) going down hard - no shutdown. In that > case without the equivalent of an msync it's easy to get > a corrupted tdb state.
That wasn't my question. I don't doubt that it is possible to get a corrupt tdb file. What I am asking is if you have seen a corrupt tdb file that causes a 'wild pointer', and presumably a crash in the tdb code that is reading the file. The patch you applied implied that you thought we might get a file like that, and that disabling MMAP would avoid the segv. I shouldn't matter if you have the contents of /dev/random in a tdb file, it should not segv, no matter if using mmap or not (there is an exception to this, where the file is truncated out from under a running program accessing tdb via mmap - that is arguably a kernel bug, and is not relevant to the situation you are trying to fix). So if you do have a tdb file that when read using mmap causes a crash, please give me a copy. It implies that we have a real bug. Cheers, Tridge