Closed ddiaz-yx closed 1 year ago
Sounds like a valid point, would you be ready to contribute a PR?
I noticed this as well. Any updates @ddiaz-yx ?
I created a PR that do not start a check if a check is already ongoing: https://github.com/aiortc/aioice/pull/68
Fixed in https://github.com/aiortc/aioice/commit/54a575139b398a5d168512bc8c26b13d868068ce, thanks @eerimoq
Tested on version 0.7.6.
If multiple checks from a remote peer arrive before checklist from Connection class is set, then all of them are appended to the earlychecks list and then acted upon on the connect method:
Then the _checkincoming method creates a task for each early check and overwrites the handle for the associated pair:
Since the handle for some tasks is lost, they become unreachable and are not canceled after completion.
It is even possible to see mutiple times a transition
State.IN_PROGRESS -> State.IN_PROGRESS
for some candidate pairs.