Skip to content
Snippets Groups Projects
Commit 36630fa2 authored by François-Simon Fauteux-Chapleau's avatar François-Simon Fauteux-Chapleau
Browse files

ice_transport: edit misleading error message

In pj_stun_client_tsx_send_msg, the timeout for a STUN transaction is
set to 16 times its RTO, which is 500 ms in our case (see the
IceTransportFactory constructor). This means that the timer heap can
contain timers with values of up to 16 * 500 = 8000 ms.

When an IceTransport::Impl object gets destroyed, the
flushTimerHeapAndIoQueue function is called and attempts to process the
remaining timers in the timer heap. However, the amount of time it can
spend doing this is limited by the value of MAX_DESTRUCTION_TIMEOUT,
which is currently 3000 ms. Since this is less than the timeout for a
STUN transaction, it is expected that there will sometimes be timers
left in the heap (especially in case of connectivity changes, which make
it more likely that STUN messages will need to be retransmitted).

Change-Id: I309250923425f9e325b39b63bfd9380cff3eec91
parent 6fa22e5c
No related branches found
No related tags found
No related merge requests found
...@@ -375,9 +375,7 @@ IceTransport::Impl::~Impl() ...@@ -375,9 +375,7 @@ IceTransport::Impl::~Impl()
logger_->error("[ice:{}] I/O queue polling failed", fmt::ptr(this)); logger_->error("[ice:{}] I/O queue polling failed", fmt::ptr(this));
} else if (ret > 0) { } else if (ret > 0) {
if (logger_) if (logger_)
logger_->error("[ice:{}] Unexpected left timer in timer heap. " logger_->warn("[ice:{}] {} timers left in timer heap.", fmt::ptr(this), ret);
"Please report the bug",
fmt::ptr(this));
} }
if (checkEventQueue(1) > 0) { if (checkEventQueue(1) > 0) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment