From d0392a2db083899786b9cd965bd01469e893d281 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Sat, 9 Feb 2013 18:29:32 +0100 Subject: [PATCH] [FIX] workers no suicide on broken pipe bzr revid: al@openerp.com-20130209172932-5w8zt239tw0sirne --- openerp/service/workers.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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):