Jun Wu <quark@fb.com> [Mon, 02 Oct 2017 20:23:25 -0700] rev 34447
zeroconf: do not crash if socket being read is closed by another thread
In zeroconf/__init__.py, there is:
server = Zeroconf.Zeroconf(ip)
l = listener()
Zeroconf.ServiceBrowser(server, "_hg._tcp.local.", l)
time.sleep(1)
server.close()
`server.close()` closes the underlying socket while the `ServiceBrowser` may
still have a background thread reading the socket. There could be a race
condition where the reading thread reads the closed socket, resulting in
EBADF crash. This patch catches the exception.
This makes test-paths.t pass with chg.
Differential Revision: https://phab.mercurial-scm.org/D919
Jun Wu <quark@fb.com> [Mon, 02 Oct 2017 19:31:33 -0700] rev 34446
test-revlog-mmapindex: make it compatible with chg
The test misses an explicit flush().
Differential Revision: https://phab.mercurial-scm.org/D918
Jun Wu <quark@fb.com> [Mon, 02 Oct 2017 19:10:32 -0700] rev 34445
test-profile: gate chg-incompatible part with '#if chg'
chg has a different extension loading logic, which affects the profiler
extension test case. Gate the block with '#if chg' so the test passes with
chg.
Differential Revision: https://phab.mercurial-scm.org/D916