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

Graham Hazel graham.hazel at gmail.com
Tue Jul 20 16:57:02 UTC 2021


Hi,

AFAICS the HEAD of master (commit a0cfef727...) which helpfully predates
all my hackery, so I'm fairly sure both failing and "succeeding" builds are
using the same version.



On Tue, Jul 20, 2021 at 5:25 PM Olivier Crête <olivier.crete at collabora.com>
wrote:

> 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êteolivier.crete at collabora.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/nice/attachments/20210720/e2050e02/attachment-0001.htm>


More information about the nice mailing list