Sun, 26 Apr 2020 14:29:47 -0400 url: fix a bytes vs str crash in processing proxy headers (issue6249) stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 26 Apr 2020 14:29:47 -0400] rev 44783
url: fix a bytes vs str crash in processing proxy headers (issue6249) I have no idea how to make a test for this, so if somebody knows, feel free to add one or follow up on this. The bug reporter reported that it worked for them, so there may not be other hidden issues here. Differential Revision: https://phab.mercurial-scm.org/D8485
Fri, 24 Apr 2020 20:00:25 +0200 pullbundles: use unfiltered repo for head/base matching stable
Joerg Sonnenberger <joerg@bec.de> [Fri, 24 Apr 2020 20:00:25 +0200] rev 44782
pullbundles: use unfiltered repo for head/base matching The unfiltered view works even when changeset transistion from draft to hidden phase. The normal visibility is already ensured by discovery as invisible heads would have been filtered out before. Skipping the filtering has a positive impact on performance, too. Differential Revision: https://phab.mercurial-scm.org/D8481
Thu, 07 May 2020 03:14:52 -0700 procutil: always waiting on child processes to prevent zombies with 'hg serve' stable
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Thu, 07 May 2020 03:14:52 -0700] rev 44781
procutil: always waiting on child processes to prevent zombies with 'hg serve' When runbgcommand is invoked by an extension with ensurestart=False, we never called waitpid - which is fine in most cases, except if that's happening on a command server (e.g. chg), in which case the child defunct process will just sit there for as long as the server is running. The actual semantics of SIGCHLD signal handling is a lot more complex than it seems, and the POSIX standard *seems* to read that it's ignored by default and everything would just work without the waitpid if we're not listening for it, but the truth is that it's only ignored if we *explicitly* set it to SIG_IGN. We further cannot set it to SIG_IGN or to a catch-all handler across all of 'hg serve', because Python's suprocess.Popen relies on that signal, and a few specific parts of hg also set custom handlers, so instead we wait for specific PIDs in dedicated threads. I did a poor-man's benchmark of the thread creation and it seems to take about 1ms, which is way better than the 20+ms from ensurestart=True. Differential Revision: https://phab.mercurial-scm.org/D8497
Thu, 07 May 2020 15:00:33 +0200 tests: use regular POSIX shell stable
Joerg Sonnenberger <joerg@bec.de> [Thu, 07 May 2020 15:00:33 +0200] rev 44780
tests: use regular POSIX shell wait-on-file requires one POSIX extension (sleep with non-integral argument), but it doesn't require any bash extensions, so just require a normal POSIX shell. While here, use consistent formatting without redundant ; Differential Revision: https://phab.mercurial-scm.org/D8500
Thu, 07 May 2020 10:15:19 +0200 rust-regex: increase the DFA size limit for the `regex` crate stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 07 May 2020 10:15:19 +0200] rev 44779
rust-regex: increase the DFA size limit for the `regex` crate `re2`'s DFA limit is already increased in `rust/hg-core/src/re2/rust_re2.cpp`, the same has to be done for the `regex` crate. Big repositories with big `.hgignore`s will sometimes hit this limit and face extreme performance regressions (I've seen one take *minutes* for `hg status`). Differential Revision: https://phab.mercurial-scm.org/D8499
Mon, 04 May 2020 10:06:53 -0400 merge with stable
Augie Fackler <augie@google.com> [Mon, 04 May 2020 10:06:53 -0400] rev 44778
merge with stable
(0) -30000 -10000 -3000 -1000 -300 -100 -30 -10 -6 +6 +10 +30 +100 +300 +1000 +3000 tip