[libnice] TRANSITION(CONNECTING, GATHERING) in agent.c/agent_signal_component_state_change

Olivier Crête olivier.crete at collabora.com
Tue Jul 20 16:25:29 UTC 2021


Hi,

That actually really helps! Which exact version of libnice are you
using ?

On Tue, 2021-07-20 at 17:20 +0100, Graham Hazel wrote:
> Hi Olivier,
> 
> 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).
> 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:
> 
> 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
> 
> I hope that helps!
> 
> Graham
> 
> 
> 
> 
> On Tue, Jul 20, 2021 at 4:48 PM Olivier Crête
> <olivier.crete at collabora.com> wrote:
> > Hi,
> > 
> > Can you get a stack trace when the assertion is triggered? It's
> > definitely not a valid transition. How often can you reproduce
> > this? Do
> > you have an easy way to trigger it ?
> > 
> > If you're running a production server, you can always compile with -
> > DG_DISABLE_ASSERT if you want to not abort. But it would really
> > help me
> > if you have a way to know where this invalid transition is called
> > from.
> > 
> > Olivier
> > 
> > On Tue, 2021-07-20 at 14:00 +0100, Graham Hazel wrote:
> > > Hi,
> > > 
> > > I'm running the Janus WebRTC Server to handle some video
> > transport and
> > > on several occasions have observed an assertion firing in libnice
> > > (agent/agent.c, line 2573) during an ICE restart.
> > > 
> > > It appears likely that adding TRANSITION(CONNECTING, GATHERING)
> > to the
> > > list of valid state changes in the assert statement "fixes" the
> > issue.
> > > 
> > > Now, I fully admit both (a) I'm probably doing "something weird"
> > in my
> > > setup to hit this case surprisingly often; and (b) I have very
> > little
> > > idea what any of the libnice code is doing. So my very naive
> > question
> > > is: is this actually a valid transition that's missing from the
> > > assertion, or is something bad happening that I'm now ignoring?
> > > 
> > > Thanks!
> > > Graham
> > > 
> > > _______________________________________________
> > > nice mailing list
> > > nice at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/nice
> > 

-- 
Olivier Crête
olivier.crete at collabora.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/nice/attachments/20210720/fa70c021/attachment.htm>


More information about the nice mailing list