From 2ade2c4e1481c4bacf49e871cbd299cfc2ccc3b3 Mon Sep 17 00:00:00 2001 From: Andreas Dilger Date: Wed, 28 May 2014 17:15:25 -0600 Subject: [PATCH] LU-1538 tests: keep /sbin/mount.lustre until cleanup Don't unmount /sbin/mount.lustre in the middle of running tests on a local test system if it is not doing final cleanup. Otherwise, later mounts may fail. The current /sbin/mount.lustre mountpoint is an empty stub that returns success (0) if executed, but doesn't mount the filesystem. Instead, create a mountpoint that prints an message if executed and returns an error to the caller, so it is easier to debug problems. Signed-off-by: Andreas Dilger Change-Id: Ied7b69f536bad87333cf5c543384723415500c1e Reviewed-on: http://review.whamcloud.com/10481 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Jinshan Xiong Reviewed-by: Dmitry Eremin Reviewed-by: Oleg Drokin --- lustre/tests/sanity.sh | 8 ++++--- lustre/tests/test-framework.sh | 47 ++++++++++++++++++++++++------------------ 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/lustre/tests/sanity.sh b/lustre/tests/sanity.sh index 95452ee..a4667c74 100644 --- a/lustre/tests/sanity.sh +++ b/lustre/tests/sanity.sh @@ -620,7 +620,7 @@ test_17m() { stop mds${mds_index} do_facet mds${mds_index} $cmd || rc=$? - start mds${mds_index} $devname $MDS_MOUNT_OPTS + start mds${mds_index} $devname $MDS_MOUNT_OPTS || error "start failed" df $MOUNT > /dev/null 2>&1 [ $rc -ne 0 ] && error "e2fsck should not report error upon "\ "short/long symlink MDT: rc=$rc" @@ -645,7 +645,8 @@ check_fs_consistency_17n() { stop mds${mdt_index} do_facet mds${mdt_index} $cmd || rc=$? - start mds${mdt_index} $devname $MDS_MOUNT_OPTS + start mds${mdt_index} $devname $MDS_MOUNT_OPTS || + error "mount mds${mdt_index} failed" df $MOUNT > /dev/null 2>&1 [ $rc -ne 0 ] && break done @@ -722,7 +723,8 @@ test_17o() { touch $WDIR/$tfile stop mds${mdt_index} - start mds${mdt_index} $mdtdevname $MDS_MOUNT_OPTS + start mds${mdt_index} $mdtdevname $MDS_MOUNT_OPTS || + error "mount mds${mdt_index} failed" #define OBD_FAIL_OSD_LMA_INCOMPAT 0x194 do_facet mds${mdt_index} lctl set_param fail_loc=0x194 diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index d26cb56..87981a4 100755 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -539,15 +539,25 @@ load_modules_local() { $LCTL modules > $OGDB/ogdb-$HOSTNAME # 'mount' doesn't look in $PATH, just sbin - local MOUNT_LUSTRE=$LUSTRE/utils/mount.lustre - if [ -f $MOUNT_LUSTRE ]; then - if grep -qe "/sbin/mount\.lustre " /proc/mounts; then - cmp $MOUNT_LUSTRE /sbin/mount.lustre || - umount /sbin/mount.lustre + local mount_lustre=$LUSTRE/utils/mount.lustre + if [ -f $mount_lustre ]; then + local sbin_mount=/sbin/mount.lustre + if grep -qe "$sbin_mount " /proc/mounts; then + cmp $mount_lustre $sbin_mount || umount $sbin_mount fi - if ! grep -qe "/sbin/mount\.lustre " /proc/mounts; then - [ ! -f /sbin/mount.lustre ] && touch /sbin/mount.lustre - mount --bind $MOUNT_LUSTRE /sbin/mount.lustre + if ! grep -qe "$sbin_mount " /proc/mounts; then + if [ ! -s "$sbin_mount" ]; then + cat <<- EOF > "$sbin_mount" + #!/bin/sh + #STUB MARK + echo "This $sbin_mount just a mountpoint." 1>&2 + echo "It is never supposed to be run." 1>&2 + logger -p emerg -- "using stub $sbin_mount $@" + exit 1 + EOF + chmod a+x $sbin_mount + fi + mount --bind $mount_lustre $sbin_mount fi fi } @@ -593,16 +603,17 @@ unload_modules() { fi fi - if grep -qe "/sbin/mount\.lustre" /proc/mounts; then - umount /sbin/mount.lustre || true - [ -w /sbin/mount.lustre -a ! -s /sbin/mount.lustre ] && \ - rm -f /sbin/mount.lustre || true - fi + local sbin_mount=/sbin/mount.lustre + if grep -qe "$sbin_mount " /proc/mounts; then + umount $sbin_mount || true + [ -s $sbin_mount ] && ! grep -q "STUB MARK" $sbin_mount || + rm -f $sbin_mount + fi - check_mem_leak || return 254 + check_mem_leak || return 254 - echo "modules unloaded." - return 0 + echo "modules unloaded." + return 0 } fs_log_size() { @@ -4109,10 +4120,6 @@ check_and_cleanup_lustre() { cleanupall -f || error "cleanup failed" unset I_MOUNTED fi - - if grep -qe "/sbin/mount\.lustre " /proc/mounts; then - umount /sbin/mount.lustre - fi } ####### -- 1.8.3.1