-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Izak Burger wrote: > Tres Seaver wrote: >> You might also look at "fixing" varnish: I don't know of any valid >> reason for it to be using the "half-open" connection model to test that >> an HTTP-based backend is "up" -- certainly no browser in the world does >> that; instead, modern browsers nearly always try to keep the connection >> open for subsequent requests. > > I have already "fixed" varnish, I commented out the shutdown() call. It > now works as expected. > > I just had a discussion about this with a colleague and it appears > unclear exactly where to blame this. > > When a client half-closes its connection while the server was calling > recv(), it makes absolute sense that recv() SHOULD return an empty > buffer. There is nothing to return, and there won't ever be, the > connection has been closed. Python is therefore not to blame, even if it > doesn't specifically check all the possible revents returned by poll(). > > When asyncore receives an empty result from recv(), it does correctly > assume that the connection was shut down. It doesn't seem wrong for > asyncore to let the upper layers know about this. It would seem that > asyncore is not to blame either. > > When asyncore calls the close() method inside zope, it ends up shuting > down the whole thing. Though I could argue that zope shouldn't be doing > this, the idea of a half-open connection doesn't work all that well in > python/asyncore anyway, so given the framework within which zope > operates, zope isn't to blame either. > > Given that no browser (that I know of) does this half-closing thing, I > would argue that varnish should at the very least offer a shutdown > option for probing, so as to appear more like a browser. > > In addition, HTTP 1.1 usually leaves the connection open unless you ask > for it to be closed, so it almost seems more common not to shutdown the > one end. > > It seems then that the only way to "fix" this is to either put zope > behind apache or something else that can handle half-closing, or to > "fix" varnish.
Spot on -- good analysis of the problem. Tres. - -- =================================================================== Tres Seaver +1 540-429-0999 tsea...@palladion.com Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkrYoMoACgkQ+gerLs4ltQ7X/QCfYFSSp1MOVuTryLynCvS3Khs9 AuMAn0bxsQ6zYdl82V4Ye5iFuFptL5tQ =ka8O -----END PGP SIGNATURE----- _______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )