Mercurial > hg
view tests/test-issue4074.t @ 49214:eca367970253 stable
run-tests: send the test result after freeing the channel
Sending the message about the test being "done" signals to the main thread that
a new test can be started. Before this changeset, we sent this signal before
freeing the channel, there is room for a race condition where a new test would
search for a channel before the old test freed the one it used.
This is an example of the failure it would produce:
https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/552404
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 24 May 2022 09:57:53 +0200 |
parents | 60bc043d7df7 |
children |
line wrap: on
line source
#require no-pure A script to generate nasty diff worst-case scenarios: $ cat > s.py <<EOF > import random > for x in range(100000): > print > if random.randint(0, 100) >= 50: > x += 1 > print(hex(x)) > EOF $ hg init a $ cd a Check in a big file: $ "$PYTHON" ../s.py > a $ hg ci -qAm0 Modify it: $ "$PYTHON" ../s.py > a Time a check-in, should never take more than 10 seconds user time: $ hg ci --time -m1 --config worker.enabled=no time: real .* secs .user [0-9][.].* sys .* (re)