Hi, Steve!
The transport layer was heavily refactored roughly three years ago, see
[1], [2] and [3] for the relevant commits which, indeed, bumped the
default connect timeout down a lot, to a much lower value (10s ->
100ms). Although 100ms might seem unnecessary (it's async! let it sleep
as long as it wants!), keep in mind that the TLS support isn't async at
all, yet it will also make use of the same, default
"tcp_connect_timeout" - a 10s default here is quite bad for high traffic
volume TLS proxies which often need to open up lots of TCP/TLS connections.
All in all, the "tcp_connect_timeout" should not get ignored at all. The
"tcp_async_local_connect_timeout" [4] is the first one that hits, after
which the connect waiting will be performed by a non-TCP worker, up to
"tcp_connect_timeout" milliseconds. If it doesn't behave like this, let
us know, and we'll look into it more.
Best regards,
[1]: https://github.com/OpenSIPS/opensips/commit/b343ca1c
[2]: https://github.com/OpenSIPS/opensips/commit/78c84620
[3]: https://github.com/OpenSIPS/opensips/commit/11aedc6
[4]:
http://www.opensips.org/html/docs/modules/2.4.x/proto_tcp.html#idp5544000
Liviu Chircu
OpenSIPS Developer
http://www.opensips-solutions.com
On 08.01.2018 22:38, Steve Brisson wrote:
Hi,
I've run into some issues related to tcp_async and tcp/tls timeouts
since upgrading opensips from v1.8 to v2.3.
Based on my v1.8 config, I had the tcp_connect_timeout set to 3 secs
but this gets ignored in v2.3 because tcp_async is enabled by default.
As a result, calls made from a local opensips endpoint to a remote
registered endpoint (through a cisco vcs) were failing. I then noticed
that the tcp/tls timeouts were aggressively reduced from 10-30s to
100ms by default with the tcp_async feature.
My main questions are:
- How is the tcp_async feature supposed to function if the
tcp_async_local_connect_timeout expires? The code seems to imply that
the socket gets put onto a tcp main thread and handled.
- 100ms seems pretty short as a default for these timeouts, especially
tls. Does a timeout result in the sip request getting cancelled or is
there still some processing that can occur after because of handling
on the tcp main thread.
In short, I'm a confused about what the tcp_async feature does and how
the timeouts should be set. Any explanations would be greatly appreciated.
Thanks for your time.
steve
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users