HgWeb.cgi Hanging During Push

Matt Mackall mpm at selenic.com
Thu Apr 26 19:08:38 UTC 2012


On Wed, 2012-04-25 at 19:57 -0400, Jensen, Aaron wrote:
> > With Apache, it'll end up in an error.log (not to be confused with access.log). In IIS, somewhere in the system event log.
> 
> I couldn't find anything in the system event, so I hacked hgweb.cgi to output stderr to a file:
> 
>      import os
>      errlog = "C:/inetpub/logs/httperr.%d.log" % os.getpid()
>      sys.stderr = open(errlog, "w")
>      sys.stderr.write("Writing to standard error.\n")
>      sys.stderr.flush()
> 
> I had to add the sys.stderr.flush() because the process that hangs never gets to a point where stderr is written out. 
> 
> It looks like its hanging waiting for the repo lock to release (approximately line 589 of wireproto.py): 
> 
> 	finally:
> 		lock.release() # <- here
> 	return pushres(r)

It's probably running your changegroup or incoming hooks, which are run
in the lock release callback.

-- 
Mathematics is the supreme nostalgia of our time.





More information about the Mercurial mailing list