#!/bin/bash
-
set -e
# bug number: 10124
# LU-482 Avert LVM and VM inability to flush caches in pre .33 kernels
if [ $LINUX_VERSION_CODE -lt $(version_code 2.6.33) ]; then
- sync
- do_facet $SINGLEMDS sync
+ sync
+ do_facet $SINGLEMDS "sync; sleep 10; sync; sleep 10; sync"
fi
+LU482_FAILED=$(mktemp -u $TMP/$TESTSUITE.lu482.XXXXXX)
test_0a() {
- touch $MOUNT2/$tfile-A # force sync FLD/SEQ update before barrier
- replay_barrier $SINGLEMDS
+ echo "Check file is LU482_FAILED=$LU482_FAILED"
+ touch $MOUNT2/$tfile-A # force sync FLD/SEQ update before barrier
+ replay_barrier $SINGLEMDS
#define OBD_FAIL_PTLRPC_FINISH_REPLAY | OBD_FAIL_ONCE
- touch $MOUNT2/$tfile
- createmany -o $MOUNT1/$tfile- 50
- $LCTL set_param fail_loc=0x80000514
- facet_failover $SINGLEMDS
- client_up || return 1
- umount -f $MOUNT2
- client_up || return 1
- zconf_mount `hostname` $MOUNT2 || error "mount2 fais"
- unlinkmany $MOUNT1/$tfile- 50 || return 2
- rm $MOUNT2/$tfile || return 3
- rm $MOUNT2/$tfile-A || return 4
+ touch $MOUNT2/$tfile
+ createmany -o $MOUNT1/$tfile- 50
+ $LCTL set_param fail_loc=0x80000514
+ facet_failover $SINGLEMDS
+ [ -f "$LU482_FAILED" ] && skip "LU-482 failure" && return 0
+ client_up || return 1
+ umount -f $MOUNT2
+ client_up || return 1
+ zconf_mount `hostname` $MOUNT2 || error "mount2 fais"
+ unlinkmany $MOUNT1/$tfile- 50 || return 2
+ rm $MOUNT2/$tfile || return 3
+ rm $MOUNT2/$tfile-A || return 4
}
run_test 0a "expired recovery with lost client"
+if [ -f "$LU482_FAILED" ]; then
+ log "Found check file $LU482_FAILED, aborting test script"
+ rm -vf "$LU482_FAILED"
+ complete $(basename $0) $SECONDS
+ [ "$MOUNTED2" = yes ] && zconf_umount $HOSTNAME $MOUNT2 || true
+ check_and_cleanup_lustre
+ exit_status
+fi
+
test_0b() {
replay_barrier $SINGLEMDS
touch $MOUNT2/$tfile