[lvm-devel] master - tests: utils better handle ouf of disk space

Zdenek Kabelac zkabelac at sourceware.org
Fri Sep 18 15:31:11 UTC 2020


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=048e04e4176e62e5c9196c662497d18dc19483a9
Commit:        048e04e4176e62e5c9196c662497d18dc19483a9
Parent:        b77595ac8b69fc699c35577e6dbe1322f8c915a0
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Fri Sep 18 14:29:15 2020 +0200
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Fri Sep 18 17:29:26 2020 +0200

tests: utils better handle ouf of disk space

When the test exhausts all the available free space on storage device,
then during the fail we cannot write anything as well - yet
the teardown needs to finish it's work - otherwise we leave
basicaly overfilled filesystem for all remaining tests.
---
 test/lib/utils.sh | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/test/lib/utils.sh b/test/lib/utils.sh
index 2cd00dd30..3bf73bb4c 100644
--- a/test/lib/utils.sh
+++ b/test/lib/utils.sh
@@ -135,18 +135,23 @@ STACKTRACE() {
 
 	# Get backtraces from coredumps
 	if which gdb &>/dev/null; then
-		{
-			echo bt full
-			echo l
-			echo quit
-		} > gdb_commands.txt
-
 		# Check for all cores newer then TESTNAME file
 		# Assume users keep prefix 'core'
 		# TODO: possibly better integrate with coredumpctl & systemd
 		while IFS= read -r i; do
 			bin=$(gdb -batch -c "$i" 2>&1 | grep "generated by" | \
 			sed -e "s,.*generated by \`\([^ ']*\).*,\1,") || continue
+			{
+				echo bt full
+				echo l
+				echo quit
+			} > gdb_commands.txt || rm -f gdb_commands.txt
+
+			if test ! -s gdb_commands.txt ; then
+				echo "Out of disk space, can't check coredump $i generated by $bin."
+				continue
+			fi
+
 			echo "## Checking coredump: $i generated by $bin."
 			gdb -batch -c "$i" -x gdb_commands.txt "$(which "$bin")" 2>/dev/null | \
 			sed -e "s,^,## GDB:	," || continue
@@ -171,10 +176,9 @@ STACKTRACE() {
 			echo "<======== Strace debug log ========>"
 			sed -e "s,^,## STRACE: ," strace.log
 		fi
-		dmsetup info -c | grep1_ "$PREFIX" > out
-		if test "$(wc -l < out)" -gt 1 ; then
+		if dmsetup info -c | grep -q "$PREFIX" ; then
 			echo "<======== Info ========>"
-			sed -e "s,^,## DMINFO:   ," out
+			dmsetup info -c | grep1_ "$PREFIX"| sed -e "s,^,## DMINFO:   ,"
 			echo "<======== Active table ========>"
 			dmsetup table | grep "$PREFIX" | sed -e "s,^,## DMTABLE:  ,"
 			echo "<======== Inactive table ========>"




More information about the lvm-devel mailing list