glusterfs
1#!/bin/bash
2
3. $(dirname $0)/../../include.rc
4. $(dirname $0)/../../volume.rc
5. $(dirname $0)/../../fileio.rc
6cleanup;
7
8#test that fops are not wound on anon-fd when fd is not open on that brick
9TEST glusterd;
10TEST pidof glusterd
11
12TEST $CLI volume create $V0 replica 3 $H0:$B0/${V0}{1,2,3};
13TEST $CLI volume set $V0 performance.open-behind off
14TEST $CLI volume set $V0 diagnostics.client-log-level DEBUG
15TEST $CLI volume heal $V0 disable
16TEST $CLI volume start $V0
17TEST $CLI volume profile $V0 start
18TEST $GFS -s $H0 --volfile-id=$V0 --direct-io-mode=enable $M0;
19
20TEST touch $M0/1
21TEST kill_brick $V0 $H0 $B0/${V0}1
22TEST fd_open 200 'w' "$M0/1"
23TEST $CLI volume start $V0 force
24EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" afr_child_up_status $V0 0
25
26#lk should only happen on 2 bricks, if there is a bug, it will plant a lock
27#with anon-fd on first-brick which will never be released because flush won't
28#be wound below server xlator for anon-fd
29TEST flock -x -n 200
30TEST fd_close 200
31
32TEST fd_open 200 'w' "$M0/1"
33#this lock will fail if there is a stale lock
34TEST flock -x -n 200
35TEST fd_close 200
36cleanup;
37