-
Notifications
You must be signed in to change notification settings - Fork 69
Description
In my setup I have a WebRTC data channel that I use to transfer relatively big data packages of ~30 MB. I observed connection closings when running the code on my embedded system (Jetson Nano). I investigated the errors and noticed that this line here is hit:
Line 951 in c71c3af
| self.__log_info("Consent to send expired") |
Root cause of that were 6 TransactionTimeouts: https://github.com/aiortc/aioice/blob/main/src/aioice/stun.py#L306 that were accumulated during the entire transfer.
I actually don't know why those timeouts happen (it is reproducible). But upon further digging into the code I notice that no retransmissions are done upon a failure: https://github.com/aiortc/aioice/blob/main/src/aioice/ice.py#L965
I would suggest to increase the retransmissions to at least 1. Or is there a particular reason for setting it to 0?
If anybody would have ideas for the root cause of my TransactionTimeouts it would be very welcome. Could a high system load (sending the data over the datachannel) lead to timeouts because the system misses to answer the Consent checks in time?
If it is of any help: I have wireshark traces of the STUN packages.