set -e
-# bug number: LU-2012 10124 LU-8333
-ALWAYS_EXCEPT="14b 15c 21b $REPLAY_DUAL_EXCEPT"
+# bug number: 10124 LU-8333
+ALWAYS_EXCEPT="15c 21b $REPLAY_DUAL_EXCEPT"
SAVE_PWD=$PWD
PTLDEBUG=${PTLDEBUG:--1}
wait_mds_ost_sync
wait_delete_completed
- local BEFOREUSED=$(df -P $DIR | tail -1 | awk '{ print $3 }')
+ local beforeused=$(df -P $DIR | tail -1 | awk '{ print $3 }')
mkdir -p $MOUNT1/$tdir
$SETSTRIPE -i 0 $MOUNT1/$tdir
wait_mds_ost_sync || error "wait_mds_ost_sync failed"
wait_delete_completed || error "wait_delete_complete failed"
- local AFTERUSED=$(df -P $DIR | tail -1 | awk '{ print $3 }')
- log "before $BEFOREUSED, after $AFTERUSED"
+ local afterused=$(df -P $DIR | tail -1 | awk '{ print $3 }')
+ log "before $beforeused, after $afterused"
# leave some margin for some files/dirs to be modified (OI, llog, etc)
- [ $AFTERUSED -gt $((BEFOREUSED + 128)) ] &&
- error "after $AFTERUSED > before $BEFOREUSED" || true
+ [ $afterused -le $((beforeused + $(fs_log_size))) ] ||
+ error "after $afterused > before $beforeused"
}
run_test 14b "delete ost orphans if gap occured in objids due to VBR"
test_20b() { # bug 10480
local wait_timeout=$((TIMEOUT * 4))
- local beforeused
- local afterused
+ local extra=$(fs_log_size)
+ local n_attempts=1
+
+ sync_all_data
+ $LFS setstripe -i 0 -c 1 $DIR
+
+ local beforeused=$(df -P $DIR | tail -1 | awk '{ print $3 }')
- beforeused=$(df -P $DIR | tail -1 | awk '{ print $3 }')
dd if=/dev/zero of=$DIR/$tfile bs=4k count=10000 &
while [ ! -e $DIR/$tfile ] ; do
usleep 60 # give dd a chance to start
fail $SINGLEMDS # start orphan recovery
wait_recovery_complete $SINGLEMDS || error "MDS recovery not done"
wait_delete_completed $wait_timeout || error "delete did not finish"
+ sync_all_data
- afterused=$(df -P $DIR | tail -1 | awk '{ print $3 }')
- (( $afterused > $beforeused + $(fs_log_size) )) &&
- error "after $afterused > before $beforeused" ||
+ while true; do
+ local afterused=$(df -P $DIR | tail -1 | awk '{ print $3 }')
log "before $beforeused, after $afterused"
+
+ (( $beforeused + $extra >= $afterused )) && break
+ n_attempts=$((n_attempts + 1))
+ [ $n_attempts -gt 3 ] &&
+ error "after $afterused > before $beforeused"
+
+ wait_zfs_commit $SINGLEMDS 5
+ sync_all_data
+ done
}
+
run_test 20b "write, unlink, eviction, replay (test mds_cleanup_orphans)"
test_20c() { # bug 10480
fs_log_size() {
local facet=${1:-$SINGLEMDS}
- local fstype=$(facet_fstype $facet)
local size=0
- case $fstype in
+
+ case $(facet_fstype $facet) in
ldiskfs) size=50;; # largest seen is 44, leave some headroom
- zfs) size=512;; # largest seen is 512
+ zfs) size=$(lctl get_param osc.$FSNAME-OST*.import |
+ awk '/grant_block_size:/ { print $2 * 2; exit; }');;
esac
echo -n $size