Comment 78 for bug 705312

Revision history for this message
Olivier Dony (Odoo) (odo-openerp) wrote :

Hi Cristian,

I can only stress out the points I already mentioned (see also my comment #71 replying to your comment #70): the bug cannot be fixed in OpenERP itself, OPW or no OPW.

Technically the source of the problem is explained in CherryPy issue #853, specifically this comment:
    https://bitbucket.org/cherrypy/cherrypy/issue/853/#comment-693283

If you're interested you can read the code of the CherryPy fix here:
   https://bitbucket.org/cherrypy/cherrypy/commits/af590589b13770772830093dfd6feecf19ff24d2
You'll see that it's a very low-level problem that is very difficult to patch within OpenERP, short of doing a lot of ugly monkey-patching of CherryPy - at which point it would be ridiculous not to update CherryPy, as the fix *is* available (even if it's not packaged in an official CherryPy release)

So if upgrading to the 3.1.X branch of CherryPy does not fix the problem you should consider these possibilities:

- You did not perform the CherryPy upgrade correctly. For example you mention using a 3.1.3 tag of CherryPy but that does not exist. The recommended way it to use this command:
   sudo pip install hg+http://bitbucket.org/cherrypy/cherrypy@4c7d91d0b329#egg=cherrypy
- It is frequent to have multiple Python versions/environments installed on a single machine, and you may not have upgraded all of them - be sure to upgrade the one that is used by your OpenERP 6.0 Web Client, then restart it!
- Watch out: the 3.1.X branch is still labelled "3.1.2" so `pip freeze` and python -c 'import cherrypy;print cherrypy.__version__' will both report 3.1.2 as the version. You can't verify if CherryPy is correctly patched in this way. But you can look at the installed CherryPy source code to see if the changes of the patch linked above are present.
- You might actually be seeing a different issue than the one described here. You can double-check: the CherryPy bug will cause requests to be randomly dropped with a 408 HTTP error code - you can easily see this with your browser's debugging tools (e.g. Chrome Developer Tools, Firebug, etc.). If you don't see those 408 errors you might have a different problem.