[openssh-commits] [openssh] 01/01: Invoke EXIT handler early when using Valgrind.
git+noreply at mindrot.org
git+noreply at mindrot.org
Wed Jan 19 15:44:16 AEDT 2022
This is an automated email from the git hooks/post-receive script.
dtucker pushed a commit to branch master
in repository openssh.
commit 20da6ed136dd76e6a0b229ca3036ef9c7c7ef798
Author: Darren Tucker <dtucker at dtucker.net>
Date: Wed Jan 19 15:37:39 2022 +1100
Invoke EXIT handler early when using Valgrind.
When using Valgrind, we need to wait for all invoked programs to
complete before checking their valgrind logs. Some tests, notably
agent-restrict, set an EXIT trap handler to clean up things like
ssh-agent, but those do not get invoked until test-exec.sh exits.
This causes the Valgrind wait to deadlock, so if present invoke
the EXIT handler before checking the Valgrind logs.
---
regress/test-exec.sh | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/regress/test-exec.sh b/regress/test-exec.sh
index 361a0653..7aeead5c 100644
--- a/regress/test-exec.sh
+++ b/regress/test-exec.sh
@@ -718,6 +718,19 @@ start_sshd ()
cleanup
if [ "x$USE_VALGRIND" != "x" ]; then
+ # If there is an EXIT trap handler, invoke it now.
+ # Some tests set these to clean up processes such as ssh-agent. We
+ # need to wait for all valgrind processes to complete so we can check
+ # their logs, but since the EXIT traps are not invoked until
+ # test-exec.sh exits, waiting here will deadlock.
+ # This is not very portable but then neither is valgrind itself.
+ exithandler=$(trap -p | awk -F "'" '/EXIT$/{print $2}')
+ if [ "x${exithandler}" != "x" ]; then
+ verbose invoking EXIT trap handler early: ${exithandler}
+ ${exithandler}
+ trap '' EXIT
+ fi
+
# wait for any running process to complete
wait; sleep 1
VG_RESULTS=$(find $OBJ/valgrind-out -type f -print)
--
To stop receiving notification emails like this one, please contact
djm at mindrot.org.
More information about the openssh-commits
mailing list