Hi Pekka,<br><br>This is happening in the latest from CVS in the timer code?  Can you reproduce this crash in the code I submitted which removes the timers?  It seems like the timers are the source of half the problems submitted to the mailing list.  I stand by removing the timers.  Building a poll/select based solution will dramatically simplify the code and debugging.  Please let me know what guidelines I should follow to get my code integrated into the next version...<br>
<br>Thanks,<br>Reuben<br><br><div class="gmail_quote">On Tue, May 4, 2010 at 2:20 AM, Pekka Savola <span dir="ltr">&lt;<a href="mailto:pekkas@netcore.fi">pekkas@netcore.fi</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello,<br>
<br>
During today&#39;s testing I found a similar problem that Teemu fixes last year.<br>
<br>
When you have multiple interfaces (IgnoreIfMissing=on, and one interface is down, when you bring it back up, radvd crashes with a segfault in timer.c:152 (&quot;tm-&gt;prev-&gt;next = tm-&gt;next;&quot;).<br>
<br>
Interestingly enough, I don&#39;t see this happening when running radvd as root.<br>
<br>
I played around with this a bit, but could not figure out the real root cause.  I&#39;m tempted to work around this by applying the following work-around fix.  Anyone else interested in looking into this a bit more?<br>
<br>
On Thu, 27 Aug 2009, Teemu Torma wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Thursday 27 August 2009 15:20:23 Pekka Savola wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Anyone interested and have time to look at this?  I&#39;ll try to figure<br>
out more when I have a bit more time.<br>
</blockquote>
<br>
I did that yesterday and I have been running the radvd with attached patch<br>
which seems to cure the problem.<br>
<br>
The issue is that when interface comes back up, send_ra will call<br>
reload_config which will reset timers for all interfaces.  However, the<br>
current timer event will continue processing as usual and at the end will<br>
reset the current timer.  Since reload_config already did that, timer list<br>
pointers will be screwed and at least in my case cause an infinite loop.<br>
<br>
I haven&#39;t tried this, but it might suffice to ignore already existing timer<br>
entry in set_timer (i.e, tm-&gt;next &amp;&amp; tm-&gt;prev).<br>
<br>
I don&#39;t know the code well enough to say if this is a good way to deal with<br>
the issue.<br>
<br>
Teemu</blockquote>
<br>--<br>
radvd-devel-l mailing list  :  <a href="mailto:radvd-devel-l@litech.org">radvd-devel-l@litech.org</a><br>
<a href="http://lists.litech.org/listinfo/radvd-devel-l" target="_blank">http://lists.litech.org/listinfo/radvd-devel-l</a><br></blockquote></div><br>