On Sun, Jan 24, 2010 at 08:42:42PM -0800, Marvin Humphrey wrote:
> We should try to hunt this down logically before spending too much time on
> reproducing it.
I bet it's this, from PostPool_Shrink():
mar...@smokey:~/projects/ks/perl $ svn diff ..
Index: ../core/KinoSearch/Index/PostingPool.c
===================================================================
--- ../core/KinoSearch/Index/PostingPool.c (revision 5749)
+++ ../core/KinoSearch/Index/PostingPool.c (working copy)
@@ -254,6 +254,7 @@
}
else {
FREEMEM(self->cache);
+ self->cache = NULL;
self->cache_tick = 0;
self->cache_max = 0;
self->cache_cap = 0;
Without that NULL assignment, you'd probably see a double free on destroy under
the right circumstances.
Fixed by r5750.
Marvin Humphrey