[Mercurial 2.2.2 error]

Quan Thanh Nguyen quantn at gcs-vn.com
Thu Mar 14 04:48:16 CDT 2013


Dear Mercurial development team

I'm using Mercurial 2.2.2 with Python 2.5.1. I install Python and 
Mercurial from Mercurial source release on Ubuntu 10.04.
My Mercurial server use apache2 with ssl protocol. When I use 'push' 
command the error happening:

   File 
"<mercurial_path>/lib/python2.5/site-packages/mercurial/keepalive.py", 
line 259, in do_open
     raise urllib2.URLError(err)
URLError: <urlopen error (8, 'EOF occurred in violation of protocol')>
abort: error: EOF occurred in violation of protocol

-----------------------------------------------------------------------------------------------------------------------------------------
I tried to debug and I get some information:
This error happen when attribute _start_transaction of class 
KeepAliveHandler in keepalive.py file call 'h.send(data)' with empty data.
And I modified the source code of _start_transaction attribute:

--- keepalive.py        2013-03-14 16:45:46.984593616 +0700
+++ keepalive.py.modify 2013-03-14 16:45:33.520094059 +0700
@@ -353,7 +353,8 @@
              h.putheader(k, v)
          h.endheaders()
          if req.has_data():
-            h.send(data)
+           if len(data) > 0:
+               h.send(data)


  class HTTPHandler(KeepAliveHandler, urllib2.HTTPHandler):

This error doesn't happen yet.

Could you please give me any information about this error case, and 
other officially fixing bug?

Thank you very much for your help

Best Regards

-- 


          *Quan Nguyen - EMB*

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20130314/864b0a2b/attachment.html>


More information about the Mercurial-devel mailing list