Getting assert fail when transition libnice from GATHERING to CONNECTED happens
@soulfly
Submitted by Igor Khomenko Assigned to Igor Khomenko @soulfly
Description
Hi there,
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:
dbaf8f5c
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
new_state=new_state@entry=NICE_COMPONENT_STATE_CONNECTED
)
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.