##// END OF EJS Templates
worker: ignore meaningless exit status indication returned by os.waitpid()...
worker: ignore meaningless exit status indication returned by os.waitpid() Before this patch, worker implementation assumes that os.waitpid() with os.WNOHANG returns '(0, 0)' for still running child process. This is explicitly specified as below in Python API document. os.WNOHANG The option for waitpid() to return immediately if no child process status is available immediately. The function returns (0, 0) in this case. On the other hand, POSIX specification doesn't define the "stat_loc" value returned by waitpid() with WNOHANG for such child process. http://pubs.opengroup.org/onlinepubs/9699919799/functions/waitpid.html CPython implementation for os.waitpid() on POSIX doesn't take any care of this gap, and this may cause unexpected "exit status indication" even on POSIX conformance platform. For example, os.waitpid() with os.WNOHANG returns non-zero "exit status indication" on FreeBSD. This implies os.kill() with own pid or sys.exit() with non-zero exit code, even if no child process fails. To ignore meaningless exit status indication returned by os.waitpid(), this patch skips subsequent steps forcibly, if os.waitpid() returns 0 as pid. This patch also arranges examination of 'p' value for readability. FYI, there are some issues below about this behavior reported for CPython. https://bugs.python.org/issue21791 https://bugs.python.org/issue27808

File last commit:

r28433:3b67f27b default
r31063:18fb3cf5 stable
Show More
fsmonitor
52 lines | 1.3 KiB | text/plain | TextLexer
Martijn Pieters
fsmonitor: new experimental extension...
r28433 # Blacklist for a full testsuite run with fsmonitor enabled.
# Use with
# run-tests --blacklist=blacklists/fsmonitor \
# --extra-config="extensions.fsmonitor="
# The following tests all fail because they either use extensions that conflict
# with fsmonitor, use subrepositories, or don't anticipate the extra file in
# the .hg directory that fsmonitor adds.
test-basic.t
test-blackbox.t
test-check-commit.t
test-commandserver.t
test-copy.t
test-debugextensions.t
test-eol-add.t
test-eol-clone.t
test-eol-hook.t
test-eol-patch.t
test-eol-tag.t
test-eol-update.t
test-eol.t
test-eolfilename.t
test-extension.t
test-fncache.t
test-hardlinks.t
test-help.t
test-inherit-mode.t
test-issue3084.t
test-largefiles-cache.t
test-largefiles-misc.t
test-largefiles-small-disk.t
test-largefiles-update.t
test-largefiles-wireproto.t
test-largefiles.t
test-lfconvert.t
test-merge-tools.t
test-nested-repo.t
test-permissions.t
test-push-warn.t
test-subrepo-deep-nested-change.t
test-subrepo-recursion.t
test-subrepo.t
test-tags.t
# The following tests remain enabled; they fail *too*, but only because they
# occasionally use blacklisted extensions and don't anticipate the warning
# generated.
#test-log.t
#test-hook.t
#test-rename.t
#test-histedit-fold.t
#test-fileset-generated.t
#test-init.t