[radvd-devel-l] Linux infinite loop if interface goes down

Teemu Torma teemu at torma.org
Thu Aug 27 15:09:48 EDT 2009


On Thursday 27 August 2009 15:20:23 Pekka Savola wrote:
> Anyone interested and have time to look at this?  I'll try to figure
> out more when I have a bit more time.

I did that yesterday and I have been running the radvd with attached patch 
which seems to cure the problem.

The issue is that when interface comes back up, send_ra will call 
reload_config which will reset timers for all interfaces.  However, the 
current timer event will continue processing as usual and at the end will 
reset the current timer.  Since reload_config already did that, timer list 
pointers will be screwed and at least in my case cause an infinite loop.

I haven't tried this, but it might suffice to ignore already existing timer 
entry in set_timer (i.e, tm->next && tm->prev).

I don't know the code well enough to say if this is a good way to deal with 
the issue.

Teemu
-------------- next part --------------
A non-text attachment was scrubbed...
Name: radvd-reload.patch
Type: text/x-patch
Size: 3936 bytes
Desc: not available
URL: <http://lists.litech.org/pipermail/radvd-devel-l/attachments/20090827/d0666acf/attachment.bin>


More information about the radvd-devel-l mailing list