Hey there:
I have been looking for a solution to this problem everywhere and it may be that I'm not asking the right questions. It may be simple, maybe too simple...
I have no problems every time I try to access records through XMLRPC, but if I get two requests at the same time, OpenERP crashes.
I have been testing concurrency and threads this way:
===
try:
print 'Starting Threads...'
thread.start_new_thread(get_prods, ('Thead 1', 10))
thread.start_new_thread(get_partners, ('Thread 2', 10))
except:
code code code.. etc
====
and this is what I get:
File "/usr/lib/python2.7/xmlrpclib.py", line 1224, in __call__
return self.__send(self.__name, args)
File "/usr/lib/python2.7/xmlrpclib.py", line 1578, in __request
verbose=self.__verbose
File "/usr/lib/python2.7/xmlrpclib.py", line 1264, in request
return self.single_request(host, handler, request_body, verbose)
File "/usr/lib/python2.7/xmlrpclib.py", line 1294, in single_request
response = h.getresponse(buffering=True)
File "/usr/lib/python2.7/httplib.py", line 1033, in getresponse
raise ResponseNotReady()
httplib.ResponseNotReady
and...
File "/usr/lib/python2.7/xmlrpclib.py", line 1289, in single_request
self.send_request(h, handler, request_body)
File "/usr/lib/python2.7/xmlrpclib.py", line 1391, in send_request
connection.putrequest("POST", handler, skip_accept_encoding=True)
File "/usr/lib/python2.7/httplib.py", line 871, in putrequest
raise CannotSendRequest()
httplib.CannotSendRequest
But if I do a time.sleep(1) between both threads, they all work perfectly. The functions executed by the threads are simple XMLRP calls to get products and partners... nothing more.
I know this may be a concurrency issue. I even started the server with --workers=N without any success...
Any ideas?? Thanks!!