Sat, 25 Feb 2017 12:48:50 +0900 worker: flush messages written by child processes before exit stable
Yuya Nishihara <yuya@tcha.org> [Sat, 25 Feb 2017 12:48:50 +0900] rev 30882
worker: flush messages written by child processes before exit I found some child outputs were lost while testing the previous patch. Since os._exit() does nothing special, we need to do that explicitly.
Sat, 25 Feb 2017 12:33:37 +0900 worker: add basic test to ensure child processes are managed well stable
Yuya Nishihara <yuya@tcha.org> [Sat, 25 Feb 2017 12:33:37 +0900] rev 30881
worker: add basic test to ensure child processes are managed well This should catch the bug fixed by "worker: ignore meaningless exit status indication returned by os.waitpid()." Before, worker.py was untested since test repositories are relatively small.
Thu, 23 Feb 2017 11:23:17 -0800 record: update help to describe ui.interface stable
eloimorlaas <eloimorlaas@fb.com> [Thu, 23 Feb 2017 11:23:17 -0800] rev 30880
record: update help to describe ui.interface hg help record was not accurate if using another interface than the text one
Sat, 25 Feb 2017 16:57:21 +0530 ui: replace obsolete default-push with default:pushurl (issue5485) stable
Rishabh Madan <rishabhmadan96@gmail.com> [Sat, 25 Feb 2017 16:57:21 +0530] rev 30879
ui: replace obsolete default-push with default:pushurl (issue5485) Default-push has been deprecated in favour of default:pushurl. But "hg clone" still inserts this in every hgrc file it creates. This patch updates the message by replacing default-push with default:pushurl and also makes the necessary changes to test files.
Sat, 25 Feb 2017 01:07:52 +0900 worker: ignore meaningless exit status indication returned by os.waitpid() stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 25 Feb 2017 01:07:52 +0900] rev 30878
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
Mon, 13 Feb 2017 11:43:12 -0800 bundle2: fix assertion that 'compression' hasn't been set stable
Siddharth Agarwal <sid0@fb.com> [Mon, 13 Feb 2017 11:43:12 -0800] rev 30877
bundle2: fix assertion that 'compression' hasn't been set `n.lower()` will return `compression`, not `Compression`.
Fri, 10 Feb 2017 18:20:58 +0100 wireproto: properly report server Abort during 'getbundle' stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 10 Feb 2017 18:20:58 +0100] rev 30876
wireproto: properly report server Abort during 'getbundle' Previously Abort raised during 'getbundle' call poorly reported (HTTP-500 for http, some scary messages for ssh). Abort error have been properly reported for "push" for a long time, there is not reason to be different for 'getbundle'. We properly catch such error and report them back the best way available. For bundle, we issue a valid bundle2 reply (as expected by the client) with an 'error:abort' part. With bundle1 we do as best as we can depending of http or ssh.
Fri, 10 Feb 2017 18:17:20 +0100 getbundle: cleanly handle remote abort during getbundle stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 10 Feb 2017 18:17:20 +0100] rev 30875
getbundle: cleanly handle remote abort during getbundle bundle2 allow the server to report error explicitly. This was initially implemented for push but there is not reason to not use it for pull too. This changeset add logic similar to the one in 'unbundle' to the client side of 'getbundle'. That logic make sure the error is properly reported as "remote". This will allow the server side of getbundle to send clean "Abort" message in the next changeset.
Fri, 10 Feb 2017 18:06:08 +0100 bundle1: fix bundle1-denied reporting for pull over ssh stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 10 Feb 2017 18:06:08 +0100] rev 30874
bundle1: fix bundle1-denied reporting for pull over ssh Changeset b288fb2724bf introduced a config option to have the server deny pull using bundle1. The original protocol has not really been design to allow that kind of error reporting so some hack was used. It turned the hack only works on HTTP and that ssh server hangs forever when this is used. After further digging, there is no way to report the error in a unified way. Using `ooberror` freeze ssh and raising 'Abort' makes HTTP return a HTTP-500 without further details. So with sadness we implement a version that dispatch according to the protocol used. Now the error is properly reported, but we still have ungraceful abort after that. The protocol do not allow anything better to happen using bundle1.
Fri, 10 Feb 2017 18:06:12 +0100 bundle-tests: operate from outside a repository stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 10 Feb 2017 18:06:12 +0100] rev 30873
bundle-tests: operate from outside a repository We are about to add a test for ssh pull/cloning being denied because of bundle1 usage. For this, it is cleaner to not operate from the clone using http. So we update the test beforehand for clarity. This is more churns that what I'm happy to see on stable, but the rests of the series is worth it in my opinion.
(0) -30000 -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 +10000 tip