Crap :)

Trond and I actually spotted a ton of the refcount leaks last night (well trond discovered them;). At my next opportunity I'll be posting a patch which should fix most/all of them.

We're still a bit stumped as to the assoc_find bug, I'll post as much information as I can once I get a chance, but I'm not sure at all how it gets that way.

Looks like it can re-associate an item back into a hash bucket right after evicting it? But maybe not? This bug is likely an incredibly simple one-liner we just can't figure out how to reproduce. I wrote a bunch of hash bucket torture tests and ran them for several days. No dice.

If there're any devs working on the binary protocol still, we should probably drop everything and look at this assoc_find bug. It hits very, very few people but it exists and we should fix it now.

That + refcount and I'll cut a 1.2.6 in short order.

-Dormando

Miguel DeAvila wrote:
On Friday 18 April 2008 13:25:38 Trond Norbye wrote:

We have had some discussions lately about a loop in assoc_find, and since we currently haven't been able to reproduce this problem in our test environment I think that we should add loop detection into the assoc_find routine.

The following is a patch (for the binary branch) that implements this.

I don't think the patch is sufficient. The loop that I encountered involved 
three
items (A -> B -> C -> A) ... the patch only detects loops between adjacent items. Also, the 'expanding' variable was false (at least in the core file that I have).
Lastly ... not sure if this is  related, but we also seem to have a 
out-of-memory/refcount-leak
(see this thread 
http://www.mail-archive.com/[email protected]/msg02871.html )

We definitely have servers though that suffer from the out-of-memory errors 
that don't hang
in assoc_find, so I'm not sure if they are related.

Let me know if there is anything I can do to help.

regards,

Miguel

Reply via email to