##// 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:

r34715:f4aeb952 default
r37229:f09a2eab default
Show More
map-cmdline.compact
31 lines | 1018 B | text/plain | TextLexer
Yuya Nishihara
templater: load template fragments from [templates] section in map file...
r34715 [templates]
timeless
compact: add color labels to -Tcompact
r28827 ldate = '{label("log.date",
"{date|isodate}")}'
ldesc = '{label('ui.note log.description',
'{desc|strip}')}'
ldescfirst = '{label('ui.note log.description',
'{desc|firstline|strip}')}'
changeset = '{lrev}{tags}{bookmarks}{parents} {lnode} {ldate} {luser}\n {ldescfirst}\n\n'
changeset_quiet = '{lrev}:{lnode}\n'
changeset_verbose = '{lrev}{tags}{parents} {lnode} {ldate} {lauthor}\n {ldesc}\n\n'
lrev = '{label("log.changeset changeset.{phase}",
"{rev}")}'
lnode = '{label("log.node",
"{node|short}")}'
lauthor = '{label("log.user",
"{author}")}'
luser = '{label("log.user",
"{author|user}")}'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 start_tags = '['
timeless
compact: add color labels to -Tcompact
r28827 tag = '{label("log.tag",
"{tag},")}'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 last_tag = '{tag}]'
start_parents = ':'
timeless
compact: add color labels to -Tcompact
r28827 parent = '{lrev},'
last_parent = '{lrev}'
Augie Fackler
compact style: show bookmarks in the same manner as tags
r13933 start_bookmarks = '['
timeless
compact: add color labels to -Tcompact
r28827 bookmark = '{label("log.bookmark",
"{bookmark},")}'
Augie Fackler
compact style: show bookmarks in the same manner as tags
r13933 last_bookmark = '{bookmark}]'