I have an application that uses two probes/function_probe blocks
and an xmlrpc client.
Most of the times I see that the two threads are crushing, I guess
making
concurrent requests to the SimpleXMLRPCServer.
I googled it and I found that the SimpleXMLRPCServer cannot by default
handle these cases, but if it is derived by the “*MixIn” classes you can
handle concurrent requests.
Is there something obvious and simple that needs to be changed in the
xmlrpc_server.xml block?
thanks
Achilleas
===============
Exception in thread Thread-4:
Traceback (most recent call last):
File “/usr/lib64/python2.7/threading.py”, line 811, in
__bootstrap_inner
self.run()
File “/usr/lib64/python2.7/threading.py”, line 764, in run
self.__target(self.__args, **self.__kwargs)
File “./cdma_rx1.py”, line 213, in _Esest_probe
self.set_Esest(val)
File “./cdma_rx1.py”, line 280, in set_Esest
self.set_EsN0dB_est(10numpy.log10( cp.epsilon + abs(self.Esest)/
(abs(self.N0est)+cp.epsilon) ) )
File “./cdma_rx1.py”, line 296, in set_EsN0dB_est
self.set_DataEsN0dB_est(self.EsN0dB_est + 10*numpy.log10(
1.0-self.training_percent/100.0 ) )
File “./cdma_rx1.py”, line 329, in set_DataEsN0dB_est
self.set_appr_tcm_type(2 if (self.DataEsN0dB_est<=15.0) else (1 if
(self.DataEsN0dB_est<=20.0) else 0))
File “./cdma_rx1.py”, line 455, in set_appr_tcm_type
self.xmlrpc_client_0.set_tcm_type_selector(self.appr_tcm_type)
File “/usr/lib64/python2.7/xmlrpclib.py”, line 1224, in call
return self.__send(self.__name, args)
File “/usr/lib64/python2.7/xmlrpclib.py”, line 1578, in __request
verbose=self.__verbose
File “/usr/lib64/python2.7/xmlrpclib.py”, line 1264, in request
return self.single_request(host, handler, request_body, verbose)
File “/usr/lib64/python2.7/xmlrpclib.py”, line 1289, in single_request
self.send_request(h, handler, request_body)
File “/usr/lib64/python2.7/xmlrpclib.py”, line 1391, in send_request
connection.putrequest(“POST”, handler, skip_accept_encoding=True)
File “/usr/lib64/python2.7/httplib.py”, line 871, in putrequest
raise CannotSendRequest()
CannotSendRequest
Exception in thread Thread-3:
Traceback (most recent call last):
File “/usr/lib64/python2.7/threading.py”, line 811, in
__bootstrap_inner
self.run()
File “/usr/lib64/python2.7/threading.py”, line 764, in run
self.__target(self.__args, **self.__kwargs)
File “./cdma_rx1.py”, line 201, in _N0est_probe
self.set_N0est(val)
File “./cdma_rx1.py”, line 273, in set_N0est
self.set_EsN0dB_est(10numpy.log10( cp.epsilon + abs(self.Esest)/
(abs(self.N0est)+cp.epsilon) ) )
File “./cdma_rx1.py”, line 296, in set_EsN0dB_est
self.set_DataEsN0dB_est(self.EsN0dB_est + 10*numpy.log10(
1.0-self.training_percent/100.0 ) )
File “./cdma_rx1.py”, line 329, in set_DataEsN0dB_est
self.set_appr_tcm_type(2 if (self.DataEsN0dB_est<=15.0) else (1 if
(self.DataEsN0dB_est<=20.0) else 0))
File “./cdma_rx1.py”, line 455, in set_appr_tcm_type
self.xmlrpc_client_0.set_tcm_type_selector(self.appr_tcm_type)
File “/usr/lib64/python2.7/xmlrpclib.py”, line 1224, in call
return self.__send(self.__name, args)
File “/usr/lib64/python2.7/xmlrpclib.py”, line 1578, in __request
verbose=self.__verbose
File “/usr/lib64/python2.7/xmlrpclib.py”, line 1264, in request
return self.single_request(host, handler, request_body, verbose)
File “/usr/lib64/python2.7/xmlrpclib.py”, line 1294, in single_request
response = h.getresponse(buffering=True)
File “/usr/lib64/python2.7/httplib.py”, line 1033, in getresponse
raise ResponseNotReady()
ResponseNotReady