diff --git a/openerp/service/workers.py b/openerp/service/workers.py index ed77b28cf1b..6d2da2d927b 100644 --- a/openerp/service/workers.py +++ b/openerp/service/workers.py @@ -319,7 +319,13 @@ class WorkerHTTP(Worker): fcntl.fcntl(client, fcntl.F_SETFD, flags) # do request using WorkerBaseWSGIServer monkey patched with socket self.server.socket = client - self.server.process_request(client,addr) + # tolerate broken pipe when the http client closes the socket before + # receiving the full reply + try: + self.server.process_request(client,addr) + except IOError, e: + if e.errno != errno.EPIPE: + raise self.request_count += 1 def process_work(self):