Browse Source

Stop an apparent test-network hang when used with make -j2

If (GNU) Make 3.81 is running processes in parallel using -j2 (or more),
it waits until all descendent processes have exited before it returns to
the shell.

When a command like "make -j2 test-network" is run, this means that
test-network.sh apparently hangs until it either make is forcibly
terminated, or all the chutney-launched tor processes have exited.

A workaround is to use make without -j, or make -j1 if there is an
existing alias to "make -jn" in the shell.

We resolve this bug in tor by using "chutney stop" after "chutney verify"
in test-network.sh.
teor 9 years ago
parent
commit
9a2d4b6647
2 changed files with 6 additions and 0 deletions
  1. 3 0
      changes/bug13331-make-j2-test-network-hang
  2. 3 0
      src/test/test-network.sh

+ 3 - 0
changes/bug13331-make-j2-test-network-hang

@@ -0,0 +1,3 @@
+  o Minor bugfixes:
+    - Stop an apparent test-network hang when used with make -j2.
+      Fixes bug 13331.

+ 3 - 0
src/test/test-network.sh

@@ -45,3 +45,6 @@ n=$BOOTSTRAP_TIME; while [ $n -gt 0 ]; do
     sleep 1; n=$(expr $n - 1); echo -n .
 done; echo ""
 ./chutney verify $CHUTNEY_NETWORK
+# work around a bug/feature in make -j2 (or more)
+# where make hangs if any child processes are still alive
+./chutney stop $CHUTNEY_NETWORK