torture: Make kvm-remote print diagnostics on initial ssh failure
authorPaul E. McKenney <paulmck@kernel.org>
Fri, 16 Jun 2023 03:11:21 +0000 (20:11 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Fri, 14 Jul 2023 22:10:57 +0000 (15:10 -0700)
Currently, if the initial ssh fails, kvm-remote.sh gives up, printing a
message saying so.  But it would be nice to get a better idea as to why
ssh failed.  This commit therefore dumps out ssh's exit code, stdout,
and stderr upon ssh failure for diagnostic purposes.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
tools/testing/selftests/rcutorture/bin/kvm-remote.sh

index a2328163eba1dbbb9d09db51c661d29679cd2903..134cdef5a6e087f4b0d55529e946357d0b3fb8c2 100755 (executable)
@@ -137,14 +137,20 @@ chmod +x $T/bin/kvm-remote-*.sh
 # Check first to avoid the need for cleanup for system-name typos
 for i in $systems
 do
-       ncpus="`ssh -o BatchMode=yes $i getconf _NPROCESSORS_ONLN 2> /dev/null`"
+       ssh -o BatchMode=yes $i getconf _NPROCESSORS_ONLN > $T/ssh.stdout 2> $T/ssh.stderr
        ret=$?
        if test "$ret" -ne 0
        then
-               echo System $i unreachable, giving up. | tee -a "$oldrun/remote-log"
+               echo "System $i unreachable ($ret), giving up." | tee -a "$oldrun/remote-log"
+               echo ' --- ssh stdout: vvv' | tee -a "$oldrun/remote-log"
+               cat $T/ssh.stdout | tee -a "$oldrun/remote-log"
+               echo ' --- ssh stdout: ^^^' | tee -a "$oldrun/remote-log"
+               echo ' --- ssh stderr: vvv' | tee -a "$oldrun/remote-log"
+               cat $T/ssh.stderr | tee -a "$oldrun/remote-log"
+               echo ' --- ssh stderr: ^^^' | tee -a "$oldrun/remote-log"
                exit 4
        fi
-       echo $i: $ncpus CPUs " " `date` | tee -a "$oldrun/remote-log"
+       echo $i: `cat $T/ssh.stdout` CPUs " " `date` | tee -a "$oldrun/remote-log"
 done
 
 # Download and expand the tarball on all systems.