Discussion:
something weird with proxy(sipXtackLib) [high cpu]
Domenico Chierico
2012-11-13 14:14:40 UTC
Permalink
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based virtual machine.
We had the proxy that ran over 290% of cpu with an average cpu load
close to 95%. Applying the review #22, the stuff start goes better and
we are now close to 40% of cpu load.

Some of this load come from the known SUBSCRIBE issue, but some others
come from a strange behaviour of the tcp part of the sip stack that we
found:

- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and switching the
transport from tcp to udp.

- Some other evidences come from my personal tests as I notify on 3 of
August on dev-ml.

Now I'm testing a solution that seems to work, but I wish to know your
opinion. I've change the order of "if" statements into SipClient::run
and I moved the branch about POLLERR and POLLHUP as first.

On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was starting
with sip stack implementation, just when messages starts float around
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180 and so I
"2012-08-03T09:31:03.817653Z":43810:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817668Z":43811:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817683Z":43812:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817698Z":43813:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817714Z":43814:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817728Z":43815:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
Domenico Chierico
2012-11-13 14:53:00 UTC
Permalink
Just to simplify tests here is the patch

On Tue, Nov 13, 2012 at 3:14 PM, Domenico Chierico
Post by Domenico Chierico
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based virtual machine.
We had the proxy that ran over 290% of cpu with an average cpu load
close to 95%. Applying the review #22, the stuff start goes better and
we are now close to 40% of cpu load.
Some of this load come from the known SUBSCRIBE issue, but some others
come from a strange behaviour of the tcp part of the sip stack that we
- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and switching the
transport from tcp to udp.
- Some other evidences come from my personal tests as I notify on 3 of
August on dev-ml.
Now I'm testing a solution that seems to work, but I wish to know your
opinion. I've change the order of "if" statements into SipClient::run
and I moved the branch about POLLERR and POLLHUP as first.
On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was starting
with sip stack implementation, just when messages starts float around
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180 and so I
"2012-08-03T09:31:03.817653Z":43810:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817668Z":43811:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817683Z":43812:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817698Z":43813:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817714Z":43814:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817728Z":43815:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
Joegen Baclor
2012-11-13 15:09:07 UTC
Permalink
Domenico,

Thanks for the patch. Just clarifying, this patch is for the behavior
you specified in the August 3 post? If I'm correct, All I need to do to
reproduce is send an INVITE using TCP, on receipt of 183, close the socket.

-j
Post by Domenico Chierico
Just to simplify tests here is the patch
On Tue, Nov 13, 2012 at 3:14 PM, Domenico Chierico
Post by Domenico Chierico
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based virtual machine.
We had the proxy that ran over 290% of cpu with an average cpu load
close to 95%. Applying the review #22, the stuff start goes better and
we are now close to 40% of cpu load.
Some of this load come from the known SUBSCRIBE issue, but some others
come from a strange behaviour of the tcp part of the sip stack that we
- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and switching the
transport from tcp to udp.
- Some other evidences come from my personal tests as I notify on 3 of
August on dev-ml.
Now I'm testing a solution that seems to work, but I wish to know your
opinion. I've change the order of "if" statements into SipClient::run
and I moved the branch about POLLERR and POLLHUP as first.
On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was starting
with sip stack implementation, just when messages starts float around
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180 and so I
"2012-08-03T09:31:03.817653Z":43810:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817668Z":43811:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817683Z":43812:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817698Z":43813:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817714Z":43814:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817728Z":43815:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
Domenico Chierico
2012-11-13 15:48:04 UTC
Permalink
Hi Joegen

In more genereical way I've found that we have a problem with
uncorrectly closed socket from UA, this can be seen with an unfinished
sip stack that ends prematurely and with some softphone that crash or
(like linphone) allow to change the transport protocol on fly.

Using many different softphone make our server behave as I described,
with this patch seems that things go better.

I'm still testing so this aren't final results, what I really like to
know is your opinion about the validity of the approach, basically I
think that check if socket is broken before read or write on it seems
to be more safe way of manage.
Do you agree ?
Post by Joegen Baclor
Domenico,
Thanks for the patch. Just clarifying, this patch is for the behavior you
specified in the August 3 post? If I'm correct, All I need to do to
reproduce is send an INVITE using TCP, on receipt of 183, close the socket.
-j
Just to simplify tests here is the patch
On Tue, Nov 13, 2012 at 3:14 PM, Domenico Chierico
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based virtual machine.
We had the proxy that ran over 290% of cpu with an average cpu load
close to 95%. Applying the review #22, the stuff start goes better and
we are now close to 40% of cpu load.
Some of this load come from the known SUBSCRIBE issue, but some others
come from a strange behaviour of the tcp part of the sip stack that we
- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and switching the
transport from tcp to udp.
- Some other evidences come from my personal tests as I notify on 3 of
August on dev-ml.
Now I'm testing a solution that seems to work, but I wish to know your
opinion. I've change the order of "if" statements into SipClient::run
and I moved the branch about POLLERR and POLLHUP as first.
On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was starting
with sip stack implementation, just when messages starts float around
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180 and so I
"2012-08-03T09:31:03.817653Z":43810:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817668Z":43811:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817683Z":43812:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817698Z":43813:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817714Z":43814:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817728Z":43815:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
Tony Graziano
2012-11-13 16:40:32 UTC
Permalink
does it make sense for us to try to build the proxy up to fix UA's that
might be considered a little more than misguided in the way they handle
transactions? I don't disagree with the concept of trying to fix it, I just
wonder if we head down a path of no-return by having to deal with poorly
written ua's...

On Tue, Nov 13, 2012 at 10:48 AM, Domenico Chierico <
Post by Domenico Chierico
Hi Joegen
In more genereical way I've found that we have a problem with
uncorrectly closed socket from UA, this can be seen with an unfinished
sip stack that ends prematurely and with some softphone that crash or
(like linphone) allow to change the transport protocol on fly.
Using many different softphone make our server behave as I described,
with this patch seems that things go better.
I'm still testing so this aren't final results, what I really like to
know is your opinion about the validity of the approach, basically I
think that check if socket is broken before read or write on it seems
to be more safe way of manage.
Do you agree ?
Post by Joegen Baclor
Domenico,
Thanks for the patch. Just clarifying, this patch is for the behavior
you
Post by Joegen Baclor
specified in the August 3 post? If I'm correct, All I need to do to
reproduce is send an INVITE using TCP, on receipt of 183, close the
socket.
Post by Joegen Baclor
-j
Just to simplify tests here is the patch
On Tue, Nov 13, 2012 at 3:14 PM, Domenico Chierico
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based virtual
machine.
Post by Joegen Baclor
We had the proxy that ran over 290% of cpu with an average cpu load
close to 95%. Applying the review #22, the stuff start goes better and
we are now close to 40% of cpu load.
Some of this load come from the known SUBSCRIBE issue, but some others
come from a strange behaviour of the tcp part of the sip stack that we
- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and switching the
transport from tcp to udp.
- Some other evidences come from my personal tests as I notify on 3 of
August on dev-ml.
Now I'm testing a solution that seems to work, but I wish to know your
opinion. I've change the order of "if" statements into SipClient::run
and I moved the branch about POLLERR and POLLHUP as first.
On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was starting
with sip stack implementation, just when messages starts float around
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180 and so I
SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
--
~~~~~~~~~~~~~~~~~~
Tony Graziano, Manager
Telephone: 434.984.8430
sip: ***@voice.myitdepartment.net
Fax: 434.465.6833
~~~~~~~~~~~~~~~~~~
Linked-In Profile:
http://www.linkedin.com/pub/tony-graziano/14/4a6/7a4
Ask about our Internet Fax services!
~~~~~~~~~~~~~~~~~~

Using or developing for sipXecs from SIPFoundry? Ask me about sipX-CoLab
2013!
<http://sipxcolab2013.eventbrite.com/?discount=tony2013>
--
LAN/Telephony/Security and Control Systems Helpdesk:
Telephone: 434.984.8426
sip: ***@voice.myitdepartment.net

Helpdesk Customers: http://myhelp.myitdepartment.net
Blog: http://blog.myitdepartment.net
Domenico Chierico
2012-11-13 16:47:57 UTC
Permalink
I'm speaking of self protect .. a server can't be undermined by a poorly
written client.

the situation here is a server with 50 users that sends to me allarms every
5 minutes 'cause proxy is at 300% of cpu usage.
Post by Tony Graziano
does it make sense for us to try to build the proxy up to fix UA's that
might be considered a little more than misguided in the way they handle
transactions? I don't disagree with the concept of trying to fix it, I just
wonder if we head down a path of no-return by having to deal with poorly
written ua's...
On Tue, Nov 13, 2012 at 10:48 AM, Domenico Chierico <
Post by Domenico Chierico
Hi Joegen
In more genereical way I've found that we have a problem with
uncorrectly closed socket from UA, this can be seen with an unfinished
sip stack that ends prematurely and with some softphone that crash or
(like linphone) allow to change the transport protocol on fly.
Using many different softphone make our server behave as I described,
with this patch seems that things go better.
I'm still testing so this aren't final results, what I really like to
know is your opinion about the validity of the approach, basically I
think that check if socket is broken before read or write on it seems
to be more safe way of manage.
Do you agree ?
Post by Joegen Baclor
Domenico,
Thanks for the patch. Just clarifying, this patch is for the behavior
you
Post by Joegen Baclor
specified in the August 3 post? If I'm correct, All I need to do to
reproduce is send an INVITE using TCP, on receipt of 183, close the
socket.
Post by Joegen Baclor
-j
Just to simplify tests here is the patch
On Tue, Nov 13, 2012 at 3:14 PM, Domenico Chierico
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based virtual
machine.
Post by Joegen Baclor
We had the proxy that ran over 290% of cpu with an average cpu load
close to 95%. Applying the review #22, the stuff start goes better and
we are now close to 40% of cpu load.
Some of this load come from the known SUBSCRIBE issue, but some others
come from a strange behaviour of the tcp part of the sip stack that we
- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and switching the
transport from tcp to udp.
- Some other evidences come from my personal tests as I notify on 3 of
August on dev-ml.
Now I'm testing a solution that seems to work, but I wish to know your
opinion. I've change the order of "if" statements into SipClient::run
and I moved the branch about POLLERR and POLLHUP as first.
On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was starting
with sip stack implementation, just when messages starts float around
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180 and so I
SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
--
~~~~~~~~~~~~~~~~~~
Tony Graziano, Manager
Telephone: 434.984.8430
Fax: 434.465.6833
~~~~~~~~~~~~~~~~~~
http://www.linkedin.com/pub/tony-graziano/14/4a6/7a4
Ask about our Internet Fax services!
~~~~~~~~~~~~~~~~~~
Using or developing for sipXecs from SIPFoundry? Ask me about sipX-CoLab
2013!
<http://sipxcolab2013.eventbrite.com/?discount=tony2013>
Telephone: 434.984.8426
Helpdesk Customers: http://myhelp.myitdepartment.**net<http://myhelp.myitdepartment.net>
Blog: http://blog.myitdepartment.net
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
Joegen Baclor
2012-11-14 02:26:22 UTC
Permalink
Domenico,

Can I reproduce this then by using sipp over TCP transport and kill both
sipp-uac and sipp-uas by sending SIGKILL (This will put the sockets in
an unknown state)?

Although I agree in the design philosophy you have proposed, to patch
sipXtackLib, we need to adhere to an acceptance test and this is the
thing I need to provide before the GIT gatekeeper allows this to be
committed.

Joegen
Post by Domenico Chierico
I'm speaking of self protect .. a server can't be undermined by a
poorly written client.
the situation here is a server with 50 users that sends to me allarms
every 5 minutes 'cause proxy is at 300% of cpu usage.
On Tue, Nov 13, 2012 at 5:40 PM, Tony Graziano
does it make sense for us to try to build the proxy up to fix UA's
that might be considered a little more than misguided in the way
they handle transactions? I don't disagree with the concept of
trying to fix it, I just wonder if we head down a path of
no-return by having to deal with poorly written ua's...
On Tue, Nov 13, 2012 at 10:48 AM, Domenico Chierico
Hi Joegen
In more genereical way I've found that we have a problem with
uncorrectly closed socket from UA, this can be seen with an unfinished
sip stack that ends prematurely and with some softphone that crash or
(like linphone) allow to change the transport protocol on fly.
Using many different softphone make our server behave as I described,
with this patch seems that things go better.
I'm still testing so this aren't final results, what I really like to
know is your opinion about the validity of the approach, basically I
think that check if socket is broken before read or write on it seems
to be more safe way of manage.
Do you agree ?
On Tue, Nov 13, 2012 at 4:09 PM, Joegen Baclor
Post by Joegen Baclor
Domenico,
Thanks for the patch. Just clarifying, this patch is for
the behavior you
Post by Joegen Baclor
specified in the August 3 post? If I'm correct, All I need
to do to
Post by Joegen Baclor
reproduce is send an INVITE using TCP, on receipt of 183,
close the socket.
Post by Joegen Baclor
-j
Just to simplify tests here is the patch
On Tue, Nov 13, 2012 at 3:14 PM, Domenico Chierico
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based
virtual machine.
Post by Joegen Baclor
We had the proxy that ran over 290% of cpu with an average
cpu load
Post by Joegen Baclor
close to 95%. Applying the review #22, the stuff start goes
better and
Post by Joegen Baclor
we are now close to 40% of cpu load.
Some of this load come from the known SUBSCRIBE issue, but
some others
Post by Joegen Baclor
come from a strange behaviour of the tcp part of the sip
stack that we
Post by Joegen Baclor
- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and
switching the
Post by Joegen Baclor
transport from tcp to udp.
- Some other evidences come from my personal tests as I
notify on 3 of
Post by Joegen Baclor
August on dev-ml.
Now I'm testing a solution that seems to work, but I wish to
know your
Post by Joegen Baclor
opinion. I've change the order of "if" statements into
SipClient::run
Post by Joegen Baclor
and I moved the branch about POLLERR and POLLHUP as first.
On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was
starting
Post by Joegen Baclor
with sip stack implementation, just when messages starts
float around
Post by Joegen Baclor
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180
and so I
Post by Joegen Baclor
close the socket, at this point I got this into the logs
"2012-08-03T09:31:03.817653Z":43810:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817668Z":43811:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817683Z":43812:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817698Z":43813:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817714Z":43814:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817728Z":43815:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
--
~~~~~~~~~~~~~~~~~~
Tony Graziano, Manager
Telephone: 434.984.8430
Fax: 434.465.6833
~~~~~~~~~~~~~~~~~~
http://www.linkedin.com/pub/tony-graziano/14/4a6/7a4
Ask about our Internet Fax services!
~~~~~~~~~~~~~~~~~~
Using or developing for sipXecs from SIPFoundry? Ask me about
sipX-CoLab 2013!
<http://sipxcolab2013.eventbrite.com/?discount=tony2013>
Telephone: 434.984.8426
Helpdesk Customers: http://myhelp.myitdepartment.net
Blog: http://blog.myitdepartment.net
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
Domenico Chierico
2012-11-14 09:09:30 UTC
Permalink
Post by Joegen Baclor
Domenico,
Can I reproduce this then by using sipp over TCP transport and kill both
sipp-uac and sipp-uas by sending SIGKILL (This will put the sockets in an
unknown state)?
I don't know .. maybe yes
Although I agree in the design philosophy you have proposed, to patch
sipXtackLib, we need to adhere to an acceptance test and this is the thing
I need to provide before the GIT gatekeeper allows this to be committed.
that's right .. let me know about
Joegen
I'm speaking of self protect .. a server can't be undermined by a poorly
written client.
the situation here is a server with 50 users that sends to me allarms
every 5 minutes 'cause proxy is at 300% of cpu usage.
On Tue, Nov 13, 2012 at 5:40 PM, Tony Graziano <
Post by Tony Graziano
does it make sense for us to try to build the proxy up to fix UA's that
might be considered a little more than misguided in the way they handle
transactions? I don't disagree with the concept of trying to fix it, I just
wonder if we head down a path of no-return by having to deal with poorly
written ua's...
On Tue, Nov 13, 2012 at 10:48 AM, Domenico Chierico <
Post by Domenico Chierico
Hi Joegen
In more genereical way I've found that we have a problem with
uncorrectly closed socket from UA, this can be seen with an unfinished
sip stack that ends prematurely and with some softphone that crash or
(like linphone) allow to change the transport protocol on fly.
Using many different softphone make our server behave as I described,
with this patch seems that things go better.
I'm still testing so this aren't final results, what I really like to
know is your opinion about the validity of the approach, basically I
think that check if socket is broken before read or write on it seems
to be more safe way of manage.
Do you agree ?
Post by Joegen Baclor
Domenico,
Thanks for the patch. Just clarifying, this patch is for the behavior
you
Post by Joegen Baclor
specified in the August 3 post? If I'm correct, All I need to do to
reproduce is send an INVITE using TCP, on receipt of 183, close the
socket.
Post by Joegen Baclor
-j
Just to simplify tests here is the patch
On Tue, Nov 13, 2012 at 3:14 PM, Domenico Chierico
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based virtual
machine.
Post by Joegen Baclor
We had the proxy that ran over 290% of cpu with an average cpu load
close to 95%. Applying the review #22, the stuff start goes better and
we are now close to 40% of cpu load.
Some of this load come from the known SUBSCRIBE issue, but some others
come from a strange behaviour of the tcp part of the sip stack that we
- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and switching the
transport from tcp to udp.
- Some other evidences come from my personal tests as I notify on 3 of
August on dev-ml.
Now I'm testing a solution that seems to work, but I wish to know your
opinion. I've change the order of "if" statements into SipClient::run
and I moved the branch about POLLERR and POLLHUP as first.
On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was starting
with sip stack implementation, just when messages starts float around
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180 and so I
SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
--
~~~~~~~~~~~~~~~~~~
Tony Graziano, Manager
Telephone: 434.984.8430
Fax: 434.465.6833
~~~~~~~~~~~~~~~~~~
http://www.linkedin.com/pub/tony-graziano/14/4a6/7a4
Ask about our Internet Fax services!
~~~~~~~~~~~~~~~~~~
Using or developing for sipXecs from SIPFoundry? Ask me about
sipX-CoLab 2013!
<http://sipxcolab2013.eventbrite.com/?discount=tony2013>
Telephone: 434.984.8426
Helpdesk Customers: http://myhelp.myitdepartment.net
Blog: http://blog.myitdepartment.net
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
_______________________________________________
List Archive: http://list.sipfoundry.org/archive/sipx-users/
Domenico Chierico
2012-11-20 09:16:18 UTC
Permalink
well now I'm running this patch on our production system from friday, and
everything seems to be solved. The load on CPU is under 4% and till now no
side effects are been revealed.

Thanks
Domenico Chierico

On Wed, Nov 14, 2012 at 10:09 AM, Domenico Chierico <
Post by Joegen Baclor
Domenico,
Can I reproduce this then by using sipp over TCP transport and kill both
sipp-uac and sipp-uas by sending SIGKILL (This will put the sockets in an
unknown state)?
I don't know .. maybe yes
Although I agree in the design philosophy you have proposed, to patch
sipXtackLib, we need to adhere to an acceptance test and this is the thing
I need to provide before the GIT gatekeeper allows this to be committed.
that's right .. let me know about
Joegen
I'm speaking of self protect .. a server can't be undermined by a poorly
written client.
the situation here is a server with 50 users that sends to me allarms
every 5 minutes 'cause proxy is at 300% of cpu usage.
On Tue, Nov 13, 2012 at 5:40 PM, Tony Graziano <
Post by Tony Graziano
does it make sense for us to try to build the proxy up to fix UA's that
might be considered a little more than misguided in the way they handle
transactions? I don't disagree with the concept of trying to fix it, I just
wonder if we head down a path of no-return by having to deal with poorly
written ua's...
On Tue, Nov 13, 2012 at 10:48 AM, Domenico Chierico <
Post by Domenico Chierico
Hi Joegen
In more genereical way I've found that we have a problem with
uncorrectly closed socket from UA, this can be seen with an unfinished
sip stack that ends prematurely and with some softphone that crash or
(like linphone) allow to change the transport protocol on fly.
Using many different softphone make our server behave as I described,
with this patch seems that things go better.
I'm still testing so this aren't final results, what I really like to
know is your opinion about the validity of the approach, basically I
think that check if socket is broken before read or write on it seems
to be more safe way of manage.
Do you agree ?
Post by Joegen Baclor
Domenico,
Thanks for the patch. Just clarifying, this patch is for the
behavior you
Post by Joegen Baclor
specified in the August 3 post? If I'm correct, All I need to do to
reproduce is send an INVITE using TCP, on receipt of 183, close the
socket.
Post by Joegen Baclor
-j
Just to simplify tests here is the patch
On Tue, Nov 13, 2012 at 3:14 PM, Domenico Chierico
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based virtual
machine.
Post by Joegen Baclor
We had the proxy that ran over 290% of cpu with an average cpu load
close to 95%. Applying the review #22, the stuff start goes better and
we are now close to 40% of cpu load.
Some of this load come from the known SUBSCRIBE issue, but some others
come from a strange behaviour of the tcp part of the sip stack that we
- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and switching the
transport from tcp to udp.
- Some other evidences come from my personal tests as I notify on 3 of
August on dev-ml.
Now I'm testing a solution that seems to work, but I wish to know your
opinion. I've change the order of "if" statements into SipClient::run
and I moved the branch about POLLERR and POLLHUP as first.
On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was starting
with sip stack implementation, just when messages starts float around
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180 and so I
SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
Post by Joegen Baclor
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
Post by Joegen Baclor
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
--
~~~~~~~~~~~~~~~~~~
Tony Graziano, Manager
Telephone: 434.984.8430
Fax: 434.465.6833
~~~~~~~~~~~~~~~~~~
http://www.linkedin.com/pub/tony-graziano/14/4a6/7a4
Ask about our Internet Fax services!
~~~~~~~~~~~~~~~~~~
Using or developing for sipXecs from SIPFoundry? Ask me about
sipX-CoLab 2013!
<http://sipxcolab2013.eventbrite.com/?discount=tony2013>
Telephone: 434.984.8426
Helpdesk Customers: http://myhelp.myitdepartment.net
Blog: http://blog.myitdepartment.net
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
_______________________________________________
List Archive: http://list.sipfoundry.org/archive/sipx-users/
Joegen Baclor
2012-11-26 07:11:41 UTC
Permalink
Domenico,

I've reviewed your patch and I am accepting it for commit. However:

[***@sipdevel sipxecs-master]$ git apply --check
~/Desktop/fix_sipxclient.patch
error: patch failed: sipXtackLib/src/net/SipClient.cpp:834
error: sipXtackLib/src/net/SipClient.cpp: patch does not apply


Can you create a new one against branch release-4.6 ?

Joegen
Post by Domenico Chierico
Just to simplify tests here is the patch
On Tue, Nov 13, 2012 at 3:14 PM, Domenico Chierico
Post by Domenico Chierico
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based virtual machine.
We had the proxy that ran over 290% of cpu with an average cpu load
close to 95%. Applying the review #22, the stuff start goes better and
we are now close to 40% of cpu load.
Some of this load come from the known SUBSCRIBE issue, but some others
come from a strange behaviour of the tcp part of the sip stack that we
- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and switching the
transport from tcp to udp.
- Some other evidences come from my personal tests as I notify on 3 of
August on dev-ml.
Now I'm testing a solution that seems to work, but I wish to know your
opinion. I've change the order of "if" statements into SipClient::run
and I moved the branch about POLLERR and POLLHUP as first.
On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was starting
with sip stack implementation, just when messages starts float around
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180 and so I
"2012-08-03T09:31:03.817653Z":43810:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817668Z":43811:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817683Z":43812:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817698Z":43813:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817714Z":43814:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817728Z":43815:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
Domenico Chierico
2012-11-26 09:25:03 UTC
Permalink
well I've rewritten the patch against 4.6 this one should apply clearly

thanks
Domenico Chierico
Post by Joegen Baclor
Domenico,
~/Desktop/fix_sipxclient.patch
error: patch failed: sipXtackLib/src/net/SipClient.cpp:834
error: sipXtackLib/src/net/SipClient.cpp: patch does not apply
Can you create a new one against branch release-4.6 ?
Joegen
Just to simplify tests here is the patch
On Tue, Nov 13, 2012 at 3:14 PM, Domenico Chierico
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based virtual machine.
We had the proxy that ran over 290% of cpu with an average cpu load
close to 95%. Applying the review #22, the stuff start goes better and
we are now close to 40% of cpu load.
Some of this load come from the known SUBSCRIBE issue, but some others
come from a strange behaviour of the tcp part of the sip stack that we
- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and switching the
transport from tcp to udp.
- Some other evidences come from my personal tests as I notify on 3 of
August on dev-ml.
Now I'm testing a solution that seems to work, but I wish to know your
opinion. I've change the order of "if" statements into SipClient::run
and I moved the branch about POLLERR and POLLHUP as first.
On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was starting
with sip stack implementation, just when messages starts float around
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180 and so I
"2012-08-03T09:31:03.817653Z":43810:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817668Z":43811:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817683Z":43812:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817698Z":43813:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817714Z":43814:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817728Z":43815:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
Joegen Baclor
2012-11-26 10:28:52 UTC
Permalink
Domenico,

I committed to 4.6. Would you mind sending a patch for release-4.4 as well?
Post by Domenico Chierico
well I've rewritten the patch against 4.6 this one should apply clearly
thanks
Domenico Chierico
Post by Joegen Baclor
Domenico,
~/Desktop/fix_sipxclient.patch
error: patch failed: sipXtackLib/src/net/SipClient.cpp:834
error: sipXtackLib/src/net/SipClient.cpp: patch does not apply
Can you create a new one against branch release-4.6 ?
Joegen
Just to simplify tests here is the patch
On Tue, Nov 13, 2012 at 3:14 PM, Domenico Chierico
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based virtual machine.
We had the proxy that ran over 290% of cpu with an average cpu load
close to 95%. Applying the review #22, the stuff start goes better and
we are now close to 40% of cpu load.
Some of this load come from the known SUBSCRIBE issue, but some others
come from a strange behaviour of the tcp part of the sip stack that we
- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and switching the
transport from tcp to udp.
- Some other evidences come from my personal tests as I notify on 3 of
August on dev-ml.
Now I'm testing a solution that seems to work, but I wish to know your
opinion. I've change the order of "if" statements into SipClient::run
and I moved the branch about POLLERR and POLLHUP as first.
On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was starting
with sip stack implementation, just when messages starts float around
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180 and so I
"2012-08-03T09:31:03.817653Z":43810:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817668Z":43811:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817683Z":43812:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817698Z":43813:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817714Z":43814:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817728Z":43815:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
Domenico Chierico
2012-11-26 11:19:15 UTC
Permalink
yes it is mainly the same
Post by Joegen Baclor
Domenico,
I committed to 4.6. Would you mind sending a patch for release-4.4 as well?
Post by Domenico Chierico
well I've rewritten the patch against 4.6 this one should apply clearly
thanks
Domenico Chierico
Post by Joegen Baclor
Domenico,
~/Desktop/fix_sipxclient.patch
error: patch failed: sipXtackLib/src/net/SipClient.cpp:834
error: sipXtackLib/src/net/SipClient.cpp: patch does not apply
Can you create a new one against branch release-4.6 ?
Joegen
Just to simplify tests here is the patch
On Tue, Nov 13, 2012 at 3:14 PM, Domenico Chierico
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based virtual machine.
We had the proxy that ran over 290% of cpu with an average cpu load
close to 95%. Applying the review #22, the stuff start goes better and
we are now close to 40% of cpu load.
Some of this load come from the known SUBSCRIBE issue, but some others
come from a strange behaviour of the tcp part of the sip stack that we
- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and switching the
transport from tcp to udp.
- Some other evidences come from my personal tests as I notify on 3 of
August on dev-ml.
Now I'm testing a solution that seems to work, but I wish to know your
opinion. I've change the order of "if" statements into SipClient::run
and I moved the branch about POLLERR and POLLHUP as first.
On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was starting
with sip stack implementation, just when messages starts float around
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180 and so I
"2012-08-03T09:31:03.817653Z":43810:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817668Z":43811:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817683Z":43812:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817698Z":43813:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817714Z":43814:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817728Z":43815:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
Joegen Baclor
2012-11-26 11:49:52 UTC
Permalink
https://github.com/dhubler/sipxecs/commit/9b2ea254b15a6ade18a80a6790c6ba9ee6af6bb7
https://github.com/dhubler/sipxecs/commit/f8c70a8158cf24dbe10b04dd5ecb3dc7bde9bbd3


Thanks for the patch!
Post by Domenico Chierico
yes it is mainly the same
Post by Joegen Baclor
Domenico,
I committed to 4.6. Would you mind sending a patch for release-4.4 as well?
Post by Domenico Chierico
well I've rewritten the patch against 4.6 this one should apply clearly
thanks
Domenico Chierico
Post by Joegen Baclor
Domenico,
~/Desktop/fix_sipxclient.patch
error: patch failed: sipXtackLib/src/net/SipClient.cpp:834
error: sipXtackLib/src/net/SipClient.cpp: patch does not apply
Can you create a new one against branch release-4.6 ?
Joegen
Just to simplify tests here is the patch
On Tue, Nov 13, 2012 at 3:14 PM, Domenico Chierico
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based virtual machine.
We had the proxy that ran over 290% of cpu with an average cpu load
close to 95%. Applying the review #22, the stuff start goes better and
we are now close to 40% of cpu load.
Some of this load come from the known SUBSCRIBE issue, but some others
come from a strange behaviour of the tcp part of the sip stack that we
- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and switching the
transport from tcp to udp.
- Some other evidences come from my personal tests as I notify on 3 of
August on dev-ml.
Now I'm testing a solution that seems to work, but I wish to know your
opinion. I've change the order of "if" statements into SipClient::run
and I moved the branch about POLLERR and POLLHUP as first.
On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was starting
with sip stack implementation, just when messages starts float around
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180 and so I
"2012-08-03T09:31:03.817653Z":43810:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817668Z":43811:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817683Z":43812:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817698Z":43813:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817714Z":43814:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817728Z":43815:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
Domenico Chierico
2012-11-26 12:11:18 UTC
Permalink
thanks :)
Post by Joegen Baclor
https://github.com/dhubler/sipxecs/commit/9b2ea254b15a6ade18a80a6790c6ba9ee6af6bb7
https://github.com/dhubler/sipxecs/commit/f8c70a8158cf24dbe10b04dd5ecb3dc7bde9bbd3
Thanks for the patch!
yes it is mainly the same
Domenico,
I committed to 4.6. Would you mind sending a patch for release-4.4 as well?
well I've rewritten the patch against 4.6 this one should apply clearly
thanks
Domenico Chierico
Domenico,
~/Desktop/fix_sipxclient.patch
error: patch failed: sipXtackLib/src/net/SipClient.cpp:834
error: sipXtackLib/src/net/SipClient.cpp: patch does not apply
Can you create a new one against branch release-4.6 ?
Joegen
Just to simplify tests here is the patch
On Tue, Nov 13, 2012 at 3:14 PM, Domenico Chierico
Hi
We have 1 sipxecs 4.4 with 50 users installed on kvm based virtual machine.
We had the proxy that ran over 290% of cpu with an average cpu load
close to 95%. Applying the review #22, the stuff start goes better and
we are now close to 40% of cpu load.
Some of this load come from the known SUBSCRIBE issue, but some others
come from a strange behaviour of the tcp part of the sip stack that we
- linphone client increases the load on sipXproxy, with his own
strange keepalive method ("Jak" msg to the proxy) and switching the
transport from tcp to udp.
- Some other evidences come from my personal tests as I notify on 3 of
August on dev-ml.
Now I'm testing a solution that seems to work, but I wish to know your
opinion. I've change the order of "if" statements into SipClient::run
and I moved the branch about POLLERR and POLLHUP as first.
On Fri, Aug 3, 2012 at 11:43 AM, Domenico Chierico
I'm just playing around with go(lang), and this days I was starting
with sip stack implementation, just when messages starts float around
I'd realize that I've written a DOS for proxy ..
I just send INVITE to the proxy than reads for 100 and 180 and so I
"2012-08-03T09:31:03.817653Z":43810:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817668Z":43811:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817683Z":43812:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817698Z":43813:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
"2012-08-03T09:31:03.817714Z":43814:SIP:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"SipClient[SipClientTcp-30]::run
resPoll= 1 revents: fd[0]= 0 fd[1]= 1d"
"2012-08-03T09:31:03.817728Z":43815:KERNEL:DEBUG:testpbx.labsip2ser.net:SipClientTcp-30:22CEF700:SipXProxy:"OsSocket::isReadyToWrite
poll returned 1 in socket: 21 0x7f5eec002070"
I hope this helps..
bye
Domenico Chierico
_______________________________________________
sipx-users mailing list
List Archive: http://list.sipfoundry.org/archive/sipx-users/
Loading...