##// END OF EJS Templates
server: add an error feedback mechanism for when the daemon fails to launch...
server: add an error feedback mechanism for when the daemon fails to launch There's a recurring problem on Windows where `hg serve -d` will randomly fail to spawn a detached process. The reason for the failure is completely hidden, and it takes hours to get a single failure on my laptop. All this does is redirect stdout/stderr of the child to a file until the lock file is freed, and then the parent dumps it out if it fails to spawn. I chose to put the output into the lock file because that is always cleaned up. There's no way to report errors after that anyway. On Windows, killdaemons.py is roughly `kill -9`, so this ensures that junk won't pile up. This may end up being a case of EADDRINUSE. At least that's what I saw spit out a few times (among other odd errors and missing output on Windows). But I also managed to get the same thing on Fedora 26 by running test-hgwebdir.t with --loop -j10 for several hours. Running `netstat` immediately after killing that run printed a wall of sockets in the TIME_WAIT state, which were gone a couple seconds later. I couldn't match up ports that failed, because --loop doesn't print out the message about the port that was used. So maybe the fix is to rotate the use of HGPORT[12] in the tests. But, let's collect some more data first.

File last commit:

r35136:e397f858 default
r37229:f09a2eab default
Show More
summary.tmpl
71 lines | 2.8 KiB | application/x-cheetah | CheetahLexer
{header}
<title>{repo|escape}: Summary</title>
<link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
<link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
</head>
<body>
<div id="container">
<div class="page-header">
<h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / summary</h1>
{searchform}
<ul class="page-nav">
<li class="current">summary</li>
<li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
<li><a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a></li>
<li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
<li><a href="{url|urlescape}file{sessionvars%urlparameter}">files</a></li>
{archives%archiveentry}
<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
</ul>
</div>
<h2 class="no-link no-border">Mercurial Repository Overview</h2>
<dl class="overview">
<dt>name</dt>
<dd>{repo|escape}</dd>
<dt>description</dt>
<dd>{desc}</dd>
<dt>owner</dt>
<dd>{owner|obfuscate}</dd>
<dt>last change</dt>
<dd class="date age">{lastchange|rfc822date}</dd>
</dl>
<h2><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">Changes</a></h2>
<table>
{shortlog}
<tr class="light">
<td colspan="4"><a class="list" href="{url|urlescape}shortlog{sessionvars%urlparameter}">...</a></td>
</tr>
</table>
<h2><a href="{url|urlescape}tags{sessionvars%urlparameter}">Tags</a></h2>
<table>
{tags}
<tr class="light">
<td colspan="3"><a class="list" href="{url|urlescape}tags{sessionvars%urlparameter}">...</a></td>
</tr>
</table>
<h2><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">Bookmarks</a></h2>
<table>
{bookmarks%bookmarkentry}
<tr class="light">
<td colspan="3"><a class="list" href="{url|urlescape}bookmarks{sessionvars%urlparameter}">...</a></td>
</tr>
</table>
<h2><a href="{url|urlescape}branches{sessionvars%urlparameter}">Branches</a></h2>
<table>
{branches%branchentry}
<tr class="light">
<td colspan="3"><a class="list" href="{url|urlescape}branches{sessionvars%urlparameter}">...</a></td>
</tr>
</table>
{footer}