]> git.proxmox.com Git - ceph.git/blame - ceph/qa/standalone/osd/ec-error-rollforward.sh
import ceph 14.2.5
[ceph.git] / ceph / qa / standalone / osd / ec-error-rollforward.sh
CommitLineData
28e407b8
AA
1#!/usr/bin/env bash
2
3source $CEPH_ROOT/qa/standalone/ceph-helpers.sh
4
5function run() {
6 local dir=$1
7 shift
8
9 # Fix port????
10 export CEPH_MON="127.0.0.1:7132" # git grep '\<7132\>' : there must be only one
11 export CEPH_ARGS
12 CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none "
eafe8130 13 CEPH_ARGS+="--mon-host=$CEPH_MON "
28e407b8
AA
14 export margin=10
15 export objects=200
16 export poolname=test
17
18 local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')}
19 for func in $funcs ; do
20 setup $dir || return 1
21 $func $dir || return 1
22 teardown $dir || return 1
23 done
24}
25
26function TEST_ec_error_rollforward() {
27 local dir=$1
28 run_mon $dir a || return 1
29 run_mgr $dir x || return 1
30 run_osd $dir 0 || return 1
31 run_osd $dir 1 || return 1
32 run_osd $dir 2 || return 1
33 run_osd $dir 3 || return 1
34
35 ceph osd erasure-code-profile set ec-profile m=2 k=2 crush-failure-domain=osd
36 ceph osd pool create ec 1 1 erasure ec-profile
37
38 rados -p ec put foo /etc/passwd
39
40 kill -STOP `cat $dir/osd.2.pid`
41
42 rados -p ec rm foo &
91327a77 43 pids="$!"
28e407b8
AA
44 sleep 1
45 rados -p ec rm a &
91327a77 46 pids+=" $!"
28e407b8 47 rados -p ec rm b &
91327a77 48 pids+=" $!"
28e407b8 49 rados -p ec rm c &
91327a77 50 pids+=" $!"
28e407b8
AA
51 sleep 1
52 kill -9 `cat $dir/osd.?.pid`
91327a77
AA
53 kill $pids
54 wait
28e407b8
AA
55
56 run_osd $dir 0 || return 1
57 run_osd $dir 1 || return 1
58 run_osd $dir 2 || return 1
59 run_osd $dir 3 || return 1
60
61 wait_for_clean || return 1
62}
63
64main ec-error-rollforward "$@"