Daniel-Constantin Mierla writes:
I checked the xmlrpc module commit log and last code changes were in September 2014 - even those are not related to any xml ops. In the past, have you used the xmlrpc commands for other similar deployments with an older version than 4.4 of kamailio?
I have issued kamctl functions over xmlrpc for a long time and have never had issues before.
In the test where kamailio is crashing, xmlrpc command is issued from sems (which I have not tried earlier). I compared this test to my normal xmlrpc usage and found a difference.
Sems sends this kind of xmlrpc command:
T 2016/05/03 13:28:20.001689 127.0.0.1:48615 -> 127.0.0.1:6060 [AP] POST /RPC2 HTTP/1.1. User-Agent: XMLRPC++ 0.8. Host: 127.0.0.1:6060. Content-Type: text/xml. Content-length: 143. . <?xml version="1.0"?>. <methodCall><methodName>htable.reload</methodName>. <params><param><value>htable</value></param></params></methodCall>.
whereas the same command from my normal source (web server) looks like this:
T 2016/05/03 13:27:48.857234 127.0.0.1:48613 -> 127.0.0.1:6060 [AP] POST /RPC2 HTTP/1.0. Host: 127.0.0.1. Connection: close. User-Agent: OpenSIPg XML_RPC Client. Content-Type: text/xml. Content-Length: 194. .
## T 2016/05/03 13:27:48.857263 127.0.0.1:48613 -> 127.0.0.1:6060 [AP] <?xml version="1.0" ?>. <methodCall>. .<methodName>htable.reload</methodName>. .<params>. ..<param>. ...<value>. ....<string>htable</string>. ...</value>. ..</param>. .</params>. </methodCall>.
i see two differences:
1) sems does not include
Connection: close.
header in the requests
2) sems does not include param value inside <string></string>
perhaps the latter confuses kamailio xmlrpc request parser and causes the crash.
i made several tests generating xmlrpc requests from my wweb server and didn't get the crash. then i made one xmlrpc request from sems and got crash immediate when a made a call.
-- juha