<html><head></head><body><div>Hi,</div><div><br></div><div>That actually really helps! Which exact version of libnice are you using ?</div><div><br></div><div>On Tue, 2021-07-20 at 17:20 +0100, Graham Hazel wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div dir="ltr">Hi Olivier,<div><br>Thanks for your reply. It happened ~8-10 times over ~20k CPU-hours of execution (and has happened 0 times in well over 10k hours since I vandalised the assertion statement).</div><div>I'm afraid I don't have an easy way to reproduce it, nor a useable stack trace, but by code inspection and correlation with Janus logs I infer that the call stack is:</div><div><br></div><div>Janus function janus_ice_restart calls nice_agent_restart -> nice_agent_restart calls nice_stream_restart -> nice_stream_restart calls agent_signal_component_state_change</div><div><br></div><div>I hope that helps!</div><div><br></div><div>Graham</div><div><br></div><div><br></div><div><br></div></div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jul 20, 2021 at 4:48 PM Olivier CrĂȘte <<a href="mailto:olivier.crete@collabora.com">olivier.crete@collabora.com</a>> wrote:<br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Hi,<br></div><div><br>Can you get a stack trace when the assertion is triggered? It's<br>definitely not a valid transition. How often can you reproduce this? Do<br>you have an easy way to trigger it ?<br></div><div><br>If you're running a production server, you can always compile with -<br>DG_DISABLE_ASSERT if you want to not abort. But it would really help me<br>if you have a way to know where this invalid transition is called from.<br></div><div><br>Olivier<br></div><div><br>On Tue, 2021-07-20 at 14:00 +0100, Graham Hazel wrote:<br>> Hi,<br>> <br>> I'm running the Janus WebRTC Server to handle some video transport and<br>> on several occasions have observed an assertion firing in libnice<br>> (agent/agent.c, line 2573) during an ICE restart.<br>> <br>> It appears likely that adding TRANSITION(CONNECTING, GATHERING) to the<br>> list of valid state changes in the assert statement "fixes" the issue.<br>> <br>> Now, I fully admit both (a) I'm probably doing "something weird" in my<br>> setup to hit this case surprisingly often; and (b) I have very little<br>> idea what any of the libnice code is doing. So my very naive question<br>> is: is this actually a valid transition that's missing from the<br>> assertion, or is something bad happening that I'm now ignoring?<br>> <br>> Thanks!<br>> Graham<br>> <br>> _______________________________________________<br>> nice mailing list<br>> <a href="mailto:nice@lists.freedesktop.org" target="_blank">nice@lists.freedesktop.org</a><br>> <a href="https://lists.freedesktop.org/mailman/listinfo/nice" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/nice</a><br></div><div><br></div></blockquote></div></blockquote><div><br></div><div><span><pre>-- <br></pre><pre>Olivier CrĂȘte
olivier.crete@collabora.com
</pre></span></div></body></html>