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