Skip to content

Commit

Permalink
Fix a bug with executing ssl-client2 in ssl-opt.sh in a subshell
Browse files Browse the repository at this point in the history
When executing eval in the background, the next "$!" gives the
eval PID, not the ssl-client2 pid. This causes problems when
a client times out and the script tries to kill it. Instead, it
kills the parent eval call.
This caused problems with subsequent proxy tests receiving
old packets from a client from a previous test.
Moving the "&" to inside the eval call fixes the problem.
Signed-off-by: Andrzej Kurek <[email protected]>
  • Loading branch information
Andrzej Kurek authored and AndrzejKurek committed Jun 6, 2022
1 parent a8827d1 commit d27cdcc
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion tests/ssl-opt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1002,7 +1002,11 @@ do_run_test_once() {
wait_server_start "$SRV_PORT" "$SRV_PID"

printf '# %s\n%s\n' "$NAME" "$CLI_CMD" > $CLI_OUT
eval "$CLI_CMD" >> $CLI_OUT 2>&1 &
# The client must be a subprocess of the script in order for killing it to
# work properly, that's why the ampersand is placed inside the eval command,
# not at the end of the line: the latter approach will spawn eval as a
# subprocess, and the $CLI_CMD as a grandchild.
eval "$CLI_CMD &" >> $CLI_OUT 2>&1
wait_client_done

sleep 0.05
Expand Down

0 comments on commit d27cdcc

Please sign in to comment.