Skip to content
Snippets Groups Projects
replay-single.sh 27.9 KiB
Newer Older
    return 0
}
run_test 46 "Don't leak file handle after open resend (3325)"

Nathan Rutman's avatar
Nathan Rutman committed
test_47() { # bug 2824
    # create some files to make sure precreate has been done on all 
    # OSTs. (just in case this test is run independently)
    createmany -o $DIR/$tfile 20  || return 1

    # OBD_FAIL_OST_CREATE_NET 0x204
Nathan Rutman's avatar
Nathan Rutman committed
    fail ost1
    do_facet ost1 "sysctl -w lustre.fail_loc=0x80000204"
    df $MOUNT || return 2

    # let the MDS discover the OST failure, attempt to recover, fail
    # and recover again.  
    sleep $((3 * TIMEOUT))

    # Without 2824, this createmany would hang 
    createmany -o $DIR/$tfile 20 || return 3
    unlinkmany $DIR/$tfile 20 || return 4

Nathan Rutman's avatar
Nathan Rutman committed
    do_facet ost1 "sysctl -w lustre.fail_loc=0"
    return 0
}
run_test 47 "MDS->OSC failure during precreate cleanup (2824)"

Robert Read's avatar
Robert Read committed
test_48() {
Nathan Rutman's avatar
Nathan Rutman committed
    replay_barrier mds
    createmany -o $DIR/$tfile 20  || return 1
    # OBD_FAIL_OST_EROFS 0x216
    fail mds
    do_facet ost1 "sysctl -w lustre.fail_loc=0x80000216"
Wang Di's avatar
Wang Di committed
    df $MOUNT || return 2
Robert Read's avatar
Robert Read committed

Nathan Rutman's avatar
Nathan Rutman committed
    createmany -o $DIR/$tfile 20 20 || return 2
    unlinkmany $DIR/$tfile 40 || return 3
Robert Read's avatar
Robert Read committed

Nathan Rutman's avatar
Nathan Rutman committed
    do_facet ost1 "sysctl -w lustre.fail_loc=0"
    return 0
alex's avatar
alex committed
}
Nathan Rutman's avatar
Nathan Rutman committed
run_test 48 "MDS->OSC failure during precreate cleanup (2824)"
alex's avatar
alex committed

Nathan Rutman's avatar
Nathan Rutman committed
    local oscdev=`grep ${ost1_svc}-osc- $LPROC/devices | awk '{print $1}'`
    [ "$oscdev" ] || return 1
    $LCTL --device $oscdev recover &&  $LCTL --device $oscdev recover
    # give the mds_lov_sync threads a chance to run
    sleep 5
}
run_test 50 "Double OSC recovery, don't LASSERT (3812)"

# b3764 timed out lock replay
test_52() {
    touch $DIR/$tfile
Nathan Rutman's avatar
Nathan Rutman committed
    cancel_lru_locks mdc
Nathan Rutman's avatar
Nathan Rutman committed
    multiop $DIR/$tfile s || return 1
    replay_barrier mds
#define OBD_FAIL_LDLM_REPLY              0x30c
    do_facet mds "sysctl -w lustre.fail_loc=0x8000030c"
    fail mds || return 2
    do_facet mds "sysctl -w lustre.fail_loc=0x0"

    $CHECKSTAT -t file $DIR/$tfile-* && return 3 || true
}
run_test 52 "time out lock replay (3764)"

Nathan Rutman's avatar
Nathan Rutman committed
#b_cray 53 "|X| open request and close reply while two MDC requests in flight"
#b_cray 54 "|X| open request and close reply while two MDC requests in flight"
Nathan Rutman's avatar
Nathan Rutman committed
#b3761 ASSERTION(hash != 0) failed
test_55() {
# OBD_FAIL_MDS_OPEN_CREATE | OBD_FAIL_ONCE
    do_facet mds "sysctl -w lustre.fail_loc=0x8000012b"
    touch $DIR/$tfile &
    # give touch a chance to run
    sleep 5
    do_facet mds "sysctl -w lustre.fail_loc=0x0"
    rm $DIR/$tfile
    return 0
Nathan Rutman's avatar
Nathan Rutman committed
run_test 55 "let MDS_CHECK_RESENT return the original return code instead of 0"
Yury Umanets's avatar
Yury Umanets committed

#b3440 ASSERTION(rec->ur_fid2->id) failed
Nathan Rutman's avatar
Nathan Rutman committed
test_56() {
Yury Umanets's avatar
Yury Umanets committed
    ln -s foo $DIR/$tfile
Nathan Rutman's avatar
Nathan Rutman committed
    replay_barrier mds
Yury Umanets's avatar
Yury Umanets committed
    #drop_reply "cat $DIR/$tfile"
Nathan Rutman's avatar
Nathan Rutman committed
    fail mds
Yury Umanets's avatar
Yury Umanets committed
    sleep 10
}
Nathan Rutman's avatar
Nathan Rutman committed
run_test 56 "don't replay a symlink open request (3440)"
Nathan Rutman's avatar
Nathan Rutman committed
#recovery one mds-ost setattr from llog
test_57() {
#define OBD_FAIL_MDS_OST_SETATTR       0x12c
    do_facet mds "sysctl -w lustre.fail_loc=0x8000012c"
Yury Umanets's avatar
Yury Umanets committed
    touch $DIR/$tfile
Nathan Rutman's avatar
Nathan Rutman committed
    replay_barrier mds
    fail mds
    sleep 1
    $CHECKSTAT -t file $DIR/$tfile || return 1
    do_facet mds "sysctl -w lustre.fail_loc=0x0"
Yury Umanets's avatar
Yury Umanets committed
    rm $DIR/$tfile
}
Nathan Rutman's avatar
Nathan Rutman committed
run_test 57 "test recovery from llog for setattr op"
alex's avatar
alex committed

Nathan Rutman's avatar
Nathan Rutman committed
#recovery many mds-ost setattr from llog
test_58() {
Nathan Rutman's avatar
Nathan Rutman committed
#define OBD_FAIL_MDS_OST_SETATTR       0x12c
    do_facet mds "sysctl -w lustre.fail_loc=0x8000012c"
    mkdir $DIR/$tdir
    createmany -o $DIR/$tdir/$tfile-%d 2500
    replay_barrier mds
    fail mds
    sleep 2
    $CHECKSTAT -t file $DIR/$tdir/$tfile-* || return 1
    do_facet mds "sysctl -w lustre.fail_loc=0x0"
    unlinkmany $DIR/$tdir/$tfile-%d 2500
    rmdir $DIR/$tdir
}
run_test 58 "test recovery from llog for setattr op (test llog_gen_rec)"
Robert Read's avatar
Robert Read committed

Oleg Drokin's avatar
Oleg Drokin committed
# log_commit_thread vs filter_destroy race used to lead to import use after free
# bug 11658
test_59() {
    mkdir $DIR/$tdir
    createmany -o $DIR/$tdir/$tfile-%d 200
    sync
    unlinkmany $DIR/$tdir/$tfile-%d 200
#define OBD_FAIL_PTLRPC_DELAY_RECOV       0x507
Nathan Rutman's avatar
Nathan Rutman committed
    do_facet ost1 "sysctl -w lustre.fail_loc=0x507"
    fail ost1
Oleg Drokin's avatar
Oleg Drokin committed
    fail mds
Nathan Rutman's avatar
Nathan Rutman committed
    do_facet ost1 "sysctl -w lustre.fail_loc=0x0"
Oleg Drokin's avatar
Oleg Drokin committed
    sleep 20
    rmdir $DIR/$tdir
}
run_test 59 "test log_commit_thread vs filter_destroy race"


Nathan Rutman's avatar
Nathan Rutman committed
equals_msg `basename $0`: test complete, cleaning up
$CLEANUP