Dave Balmain wrote: > After reading your first email I found the same things behavior as you > describe here. This is very frustrating because in this case I create > completely independent Ruby objects. They don't reference the Ferret > data space at all so this was the last place I expected to have > garbage collection problems. It makes no sense to me at all that not
I'm so glad to hear it's not just me! > freeing the offsets and positions arrays should make any difference at > all. If you have any more ideas with regard to this problem I'd love > to hear them as it has me a little stumped. I've long thought this problem is a just a pointer gone rampaging, not really a garbage collector issue so much, it's just that that's where it shows up..... the fact that disabling memory de-allocation code causes it to go into remission suggested to me that it was in fact a memory management issue. But it sounds like we both think the code that manages those variables is correct. (It's not code that I'm familiar with, so it's good that we concur on this point.) A workaround, even one that causes a memory leak, is important progress on this issue, as far as I'm concerned. It sounds like you came up with an even better workaround; I'll have to try it. I'm afraid this is one of those really nassty c pointer bugs that is difficult to solve because the problem is very far away from the code that actually fails. Perhaps this is a situation that calls for valgrind, or something like that? Some kind of library or tool for debugging memory allocation problems could help prove that the code really really does operate the way the programmers think it should. I've played with using valgrind to debug ferret before; I think it was in connection with another bug. I couldn't get very far in part because ruby pre-allocates pools of objects which it manages itself. That behavior would have to be disabled to permit valgrind to do its magic. Sticking lots of assertions into all the code that gets executed by the failing test script is another thing to try, I guess. That really more of a shot-gun approach... I'm sorry I can't offer anything but these really generic suggestions. _______________________________________________ Ferret-talk mailing list [email protected] http://rubyforge.org/mailman/listinfo/ferret-talk

