Raphael Manfredi wrote:
> Quoting Bill Pringlemeir <[EMAIL PROTECTED]> from ml.softs.gtk-gnutella.devel:
> :I am not quite capable of solving this one.  The DHT lookup seems to
> :have timed out, but the original lookup has been freed already.  If we
> :do an n-lookup and any of one the lookup succeeds, is the look up
> :freed and then some latent lookup comes in with a timeout?  I think
> :that is the condition; very tricky.
> 
> I think the "lookup_value_delay(nl);" call should be enclosed in an else {}
> block related to the if() above.
> 
> Can you double check your logs to see you have a
> 
>       "aborting secondary key fetch..."
> 
> trace before the crash? (provided you had dht_lookup_debug set to a level
> greater than 1).
> 
> Still, looking at the code quickly, I believe the else {} block is missing.

I don't see what lookup_is_alive() is good for. It is not valid C if the
pointer actually references a freed object as per C standard section 6.2.4. If
you want to use weak references, look at core/nodes.c and "node_id". You have
to use numeric IDs, not pointers to track objects beyond their life-cycle.

-- 
Christian

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gtk-gnutella-devel mailing list
gtk-gnutella-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtk-gnutella-devel

Reply via email to