Skip to Content
Menu
This question has been flagged
1 Reply
8527 Views

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!!

Avatar
Discard
Author Best Answer

My bad... it turns out that I was recycling the same XMLRPC object for the same function.

I need to create a new object for each connection. As soon as I did, it worked!

Thanks :)

Avatar
Discard
Related Posts Replies Views Activity
1
Apr 18
4483
1
Oct 24
263
1
Apr 24
506
2
Mar 24
732
0
Sep 23
575