Getting assert fail when transition libnice from GATHERING to CONNECTED happens
Submitted by Igor Khomenko
Assigned to Igor Khomenko
I'm using Janus WebRTC Gateway https://github.com/meetecho/janus-gateway which has this library libnice as a dependency.
I notice some issues with ICE stack, here is my story:
Initially we used libnice 0.1.13 but had some issues with it:
- 100% CPU load issue caused by some specific user/environment/location. Do not have specific steps, we just had some users who join video chat and the issue happens.
- no video & audio on some iOS devices (an issue with ICE, selected-pair exists, but still no data on the peer.)
Next, we upgraded libnice to this commit:
as suggested there https://github.com/meetecho/janus-gateway/issues/788#issuecomment-356935641
this commit fixes 2 above issues, but a have a new one:
getting assert crash related to wrong NICE states
old_state = NICE_COMPONENT_STATE_GATHERING
in this line https://github.com/libnice/libnice/blob/dbaf8f5ccd76089e340883887c7e08e6c04de80a/agent/agent.c#L2320
So it looks like this transition is not valid according to libnice src code.
I want to understand why this transition is not valid and can we fix the issue by adding this transition to a valid list and what this change can cause.