glusterfs

Форк
0
/
bug-1801624-entry-heal.t 
59 строк · 2.5 Кб
1
#!/bin/bash
2

3
. $(dirname $0)/../../include.rc
4
. $(dirname $0)/../../volume.rc
5
cleanup;
6

7
TEST glusterd
8
TEST pidof glusterd
9
TEST $CLI volume create $V0 replica 3 $H0:$B0/brick{0,1,2}
10
TEST $CLI volume set $V0 heal-timeout 5
11
TEST $CLI volume start $V0
12
EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 0
13
EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 1
14
EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 2
15
TEST $CLI volume heal $V0 granular-entry-heal enable
16

17
TEST glusterfs --volfile-id=/$V0 --volfile-server=$H0 $M0 --attribute-timeout=0 --entry-timeout=0
18
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" afr_child_up_status $V0 0
19
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" afr_child_up_status $V0 1
20
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" afr_child_up_status $V0 2
21
echo "Data">$M0/FILE
22
ret=$?
23
TEST [ $ret -eq 0 ]
24

25
# Re-create the file when a brick is down.
26
TEST kill_brick $V0 $H0 $B0/brick1
27
EXPECT_WITHIN $PROCESS_DOWN_TIMEOUT 2 online_brick_count
28
TEST rm $M0/FILE
29
echo "New Data">$M0/FILE
30
ret=$?
31
TEST [ $ret -eq 0 ]
32
EXPECT_WITHIN $HEAL_TIMEOUT "4" get_pending_heal_count $V0
33

34
# Launching index heal must not reset parent dir afr xattrs or remove granular entry indices.
35
$CLI volume heal $V0 # CLI will fail but heal is launched anyway.
36
TEST sleep 5 # give index heal a chance to do one run.
37
brick0_pending=$(get_hex_xattr trusted.afr.$V0-client-1 $B0/brick0/)
38
brick2_pending=$(get_hex_xattr trusted.afr.$V0-client-1 $B0/brick2/)
39
TEST [ $brick0_pending -eq "000000000000000000000002" ]
40
TEST [ $brick2_pending -eq "000000000000000000000002" ]
41
EXPECT "FILE" ls $B0/brick0/.glusterfs/indices/entry-changes/00000000-0000-0000-0000-000000000001/
42
EXPECT "FILE" ls $B0/brick2/.glusterfs/indices/entry-changes/00000000-0000-0000-0000-000000000001/
43

44
TEST $CLI volume start $V0 force
45
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" brick_up_status $V0 $H0 $B0/brick1
46
EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 1
47
$CLI volume heal $V0
48
EXPECT_WITHIN $HEAL_TIMEOUT "0" get_pending_heal_count $V0
49

50
# No gfid-split-brain (i.e. EIO) must be seen. Try on fresh mount to avoid cached values.
51
EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
52
TEST glusterfs --volfile-id=/$V0 --volfile-server=$H0 $M0 --attribute-timeout=0 --entry-timeout=0
53
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" afr_child_up_status $V0 0
54
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" afr_child_up_status $V0 1
55
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" afr_child_up_status $V0 2
56
TEST cat $M0/FILE
57

58
EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
59
cleanup;
60

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.