Hi, Dan!
This is the intended behavior, since OpenSIPS 1.8 (or 1.11, can't
remember for sure).
In order to avoid moving TCP connections from one process to the other
answer, when data is sent to a TCP connection, that connection is moved
to a TCP worker and is kept by that process for a while. It is only
moved back to the main if the connection is idle.
Regarding the file descriptors, it is normal to have different values in
different processes, as each process has its own file descriptors table.
Best regards,
Răzvan
On 5/21/19 2:55 PM, Dan Pascu wrote:
I noticed TCP connections behave differently now. Not sure if it's intentional
or a problem.
Before, all TCP connections were hold by the TCP Main process and they would be
passed to TCP receiver processes when some message was received, at which point
the TCP receiver would process the message and then pass the connection back to
TCP main when it was done. If I used lsof or netstat they would should the
connections belonging to TCP main and occasionally being moved to a TCP
receiver and back as messages arrived.
In the latest git version I see the connections under both TCP main and the TCP
receivers all the time (even when there are no messages to process) if I look
with lsof. If I look with netstat, then the connections are all listen under
various TCP receiver processes and none under TCP main.
Even more weird, the file descriptor for the same connection is different under
TCP receiver and TCP main in lsof.
Here are my processes:
{
"ID": 10,
"PID": 21441,
"Type": "TCP receiver"
},
{
"ID": 11,
"PID": 21442,
"Type": "TCP receiver"
},
{
"ID": 16,
"PID": 21450,
"Type": "TCP main"
}
And these are the TCP connections (the output never changes, the connections do
not seem to be moved between TCP main and a TCP receiver and back anymore):
$ sudo netstat -pan | grep opensips | grep tcp
tcp 0 0 81.23.228.160:5060 0.0.0.0:* LISTEN
21430/./opensips
tcp 0 0 81.23.228.160:5061 0.0.0.0:* LISTEN
21430/./opensips
tcp 0 0 81.23.228.160:5060 86.121.160.133:44102 ESTABLISHED
21441/./opensips
tcp 0 0 81.23.228.160:5060 152.156.209.166:56317 ESTABLISHED
21442/./opensips
(notice how all established connections belong only to TCP receiver processes
according to netstat)
$ sudo lsof -np 21450 | grep TCP # This is TCP main
opensips 21450 opensips 116u IPv4 580308849 0t0 TCP
81.23.228.160:sip->86.121.160.133:44102 (ESTABLISHED)
opensips 21450 opensips 117u IPv4 580313129 0t0 TCP
81.23.228.160:sip->152.156.209.166:56317 (ESTABLISHED)
opensips 21450 opensips 159u IPv4 580280113 0t0 TCP
81.23.228.160:sip (LISTEN)
opensips 21450 opensips 160u IPv4 580280114 0t0 TCP
81.23.228.160:sip-tls (LISTEN)
$ sudo lsof -np 21441 | grep TCP # This is the first TCP receiver
opensips 21441 opensips 5u IPv4 580308849 0t0 TCP
81.23.228.160:sip->86.121.160.133:44102 (ESTABLISHED)
opensips 21441 opensips 159u IPv4 580280113 0t0 TCP
81.23.228.160:sip (LISTEN)
opensips 21441 opensips 160u IPv4 580280114 0t0 TCP
81.23.228.160:sip-tls (LISTEN)
$ sudo lsof -np 21442 | grep TCP # This is the 2nd TCP receiver
opensips 21442 opensips 5u IPv4 580313129 0t0 TCP
81.23.228.160:sip->152.156.209.166:56317 (ESTABLISHED)
opensips 21442 opensips 159u IPv4 580280113 0t0 TCP
81.23.228.160:sip (LISTEN)
opensips 21442 opensips 160u IPv4 580280114 0t0 TCP
81.23.228.160:sip-tls (LISTEN)
As mentioned before, the output is stable and it doesn't change until the
connection is closed. The connections do not seem to be moved back to TCP main.
Also notice the file descriptor being 5 in the TCP receiver process and
something like 116/117 in TCP main.
Otherwise TCP connections seem to work, but I noticed the behavior changed from
what it used to be in previous versions. Is this an issue, or is it intended?
--
Dan
_______________________________________________
Devel mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel
--
Răzvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
Meet the OpenSIPS team at the next OpenSIPS Summit:
https://www.opensips.org/events
_______________________________________________
Devel mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel