diff options
| author | Antony Lesuisse <al@openerp.com> | 2013-02-09 18:29:32 +0100 |
|---|---|---|
| committer | Antony Lesuisse <al@openerp.com> | 2013-02-09 18:29:32 +0100 |
| commit | d0392a2db083899786b9cd965bd01469e893d281 (patch) | |
| tree | cc2c7392228bc77793d6126460831c8bcba8748e | |
| parent | ec6a6782c9356387afc36fc4d00d0d4c40ab61c6 (diff) | |
[FIX] workers no suicide on broken pipe
bzr revid: al@openerp.com-20130209172932-5w8zt239tw0sirne
| -rw-r--r-- | openerp/service/workers.py | 8 |
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): |
