summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Lesuisse <al@openerp.com>2013-02-09 18:29:32 +0100
committerAntony Lesuisse <al@openerp.com>2013-02-09 18:29:32 +0100
commitd0392a2db083899786b9cd965bd01469e893d281 (patch)
treecc2c7392228bc77793d6126460831c8bcba8748e
parentec6a6782c9356387afc36fc4d00d0d4c40ab61c6 (diff)
[FIX] workers no suicide on broken pipe
bzr revid: al@openerp.com-20130209172932-5w8zt239tw0sirne
-rw-r--r--openerp/service/workers.py8
1 files changed, 7 insertions, 1 deletions
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):