Whamcloud - gitweb
LU-13232 tests: add stack_trap to clean up sanity 160j 50/37550/4
authorJames Nunez <jnunez@whamcloud.com>
Wed, 12 Feb 2020 19:00:56 +0000 (12:00 -0700)
committerOleg Drokin <green@whamcloud.com>
Thu, 20 Feb 2020 07:15:19 +0000 (07:15 +0000)
When sanity test 160j fails at any point in the test before
clean up, a client can be left with no file system mounted
or the second file system mount could be left mounted.  We
need to call stack_trap after each of these commands to
clean up the mount points in case of the test failing.

Test-Parameters: trivial
Signed-off-by: James Nunez <jnunez@whamcloud.com>
Change-Id: I631cc2bb2d664a0cdcfe5942d16cd1d011a822ef
Reviewed-on: https://review.whamcloud.com/37550
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Wei Liu <sarah@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/tests/sanity.sh

index e24e301..af8fcdc 100755 (executable)
@@ -14323,8 +14323,10 @@ test_160j() {
                skip "Need MDS version at least 2.12.56"
 
        mount_client $MOUNT2 || error "mount_client on $MOUNT2 failed"
+       stack_trap "umount $MOUNT2" EXIT
 
        changelog_register || error "first changelog_register failed"
+       stack_trap "changelog_deregister" EXIT
 
        # generate some changelog
        test_mkdir -c $MDSCOUNT $DIR/$tdir || error "mkdir $tdir failed"
@@ -14333,10 +14335,13 @@ test_160j() {
 
        # open the changelog device
        exec 3>/dev/changelog-$FSNAME-MDT0000
+       stack_trap "exec 3>&-" EXIT
        exec 4</dev/changelog-$FSNAME-MDT0000
+       stack_trap "exec 4<&-" EXIT
 
        # umount the first lustre mount
        umount $MOUNT
+       stack_trap "mount_client $MOUNT" EXIT
 
        # read changelog
        cat <&4 >/dev/null || error "read changelog failed"
@@ -14348,15 +14353,6 @@ test_160j() {
 
        printf 'clear:'$cl_user':0' >&3
 
-       # close
-       exec 3>&-
-       exec 4<&-
-
-       # cleanup
-       changelog_deregister || error "changelog_deregister failed"
-
-       umount $MOUNT2
-       mount_client $MOUNT || error "mount_client on $MOUNT failed"
 }
 run_test 160j "client can be umounted  while its chanangelog is being used"