commit 4334644994f32395a2858773b638430d50ff402e Author: teor teor2345@gmail.com Date: Mon Apr 10 13:15:12 2017 +1000
Make tor clean up connections before stopping a chutney network
This increases integration test coverage, and improves the reliability of any statistics being gathered on chutney networks.
Implements feature #21901. --- lib/chutney/TorNet.py | 10 ++++++++++ tools/test-network.sh | 2 ++ torrc_templates/common.i | 3 ++- 3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/lib/chutney/TorNet.py b/lib/chutney/TorNet.py index 6e3b77a..e61e425 100644 --- a/lib/chutney/TorNet.py +++ b/lib/chutney/TorNet.py @@ -982,17 +982,27 @@ class Network(object): if c.isRunning(): c.stop(sig=sig) print("Waiting for nodes to finish.") + wrote_dot = False for n in range(15): time.sleep(1) if all(not c.isRunning() for c in controllers): + # make the output clearer by adding a newline + if wrote_dot: + sys.stdout.write("\n") + sys.stdout.flush() # check for stale lock file when Tor crashes for c in controllers: c.cleanup_lockfile() return sys.stdout.write(".") + wrote_dot = True sys.stdout.flush() for c in controllers: c.check(listNonRunning=False) + # make the output clearer by adding a newline + if wrote_dot: + sys.stdout.write("\n") + sys.stdout.flush()
def ConfigureNodes(nodelist): diff --git a/tools/test-network.sh b/tools/test-network.sh index 9da20b1..79cce9c 100755 --- a/tools/test-network.sh +++ b/tools/test-network.sh @@ -292,6 +292,8 @@ if [ "$CHUTNEY_STOP_TIME" -ge 0 ]; then # work around a bug/feature in make -j2 (or more) # where make hangs if any child processes are still alive "$CHUTNEY" stop "$CHUTNEY_NETWORK" + # Give tor time to exit gracefully + sleep 3 "$WARNINGS" exit "$VERIFY_EXIT_STATUS" else diff --git a/torrc_templates/common.i b/torrc_templates/common.i index bca0407..39c76f8 100644 --- a/torrc_templates/common.i +++ b/torrc_templates/common.i @@ -36,7 +36,8 @@ DataDirectory $dir RunAsDaemon 1 ConnLimit $connlimit Nickname $nick -ShutdownWaitLength 0 +# Let tor close connections gracefully before exiting +ShutdownWaitLength 2 DisableDebuggerAttachment 0
ControlPort $controlport