mirror of
https://github.com/ceph/ceph
synced 2025-02-23 02:57:21 +00:00
test/osd/osd-scrub-repair.sh: Adjust for FreeBSD
Fixes 2 problems: - Do not test Bluestore on FreeBSD, since that does not work (yet) And all erasure code overwrite tests are executed on BlueStore OSDs Erasure code overwrites are unsafe on Filestore, see: http://docs.ceph.com/docs/master/rados/operations/erasure-code/#erasure-coding-with-overwrites - the JQ expression errors out with: (version 1.5-1-g940132e-dirty) ==== jq: error (at :232): Cannot iterate over null (null) Traceback (most recent call last): File "", line 1, in File "/usr/lib64/python2.7/json/init.py", line 338, in loads return _default_decoder.decode(s) File "/usr/lib64/python2.7/json/decoder.py", line 365, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib64/python2.7/json/decoder.py", line 383, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded ==== Adding a ? to the jq expression allows to proceed on null blocks. Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
This commit is contained in:
parent
6ffb6eb0e8
commit
19892df1d8
@ -17,12 +17,21 @@
|
|||||||
source $(dirname $0)/../detect-build-env-vars.sh
|
source $(dirname $0)/../detect-build-env-vars.sh
|
||||||
source $CEPH_ROOT/qa/workunits/ceph-helpers.sh
|
source $CEPH_ROOT/qa/workunits/ceph-helpers.sh
|
||||||
|
|
||||||
|
if [ `uname` = FreeBSD ]; then
|
||||||
|
# erasure coding overwrites are only tested on Bluestore
|
||||||
|
# erasure coding on filestore is unsafe
|
||||||
|
# http://docs.ceph.com/docs/master/rados/operations/erasure-code/#erasure-coding-with-overwrites
|
||||||
|
use_ec_overwrite=false
|
||||||
|
else
|
||||||
|
use_ec_overwrite=true
|
||||||
|
fi
|
||||||
|
|
||||||
# Test development and debugging
|
# Test development and debugging
|
||||||
# Set to "yes" in order to ignore diff errors and save results to update test
|
# Set to "yes" in order to ignore diff errors and save results to update test
|
||||||
getjson="no"
|
getjson="no"
|
||||||
|
|
||||||
# Ignore the epoch and filter out the attr '_' value because it has date information and won't match
|
# Ignore the epoch and filter out the attr '_' value because it has date information and won't match
|
||||||
jqfilter='.inconsistents | (.[].shards[].attrs[] | select(.name == "_") | .value) |= "----Stripped-by-test----"'
|
jqfilter='.inconsistents | (.[].shards[].attrs[]? | select(.name == "_") | .value) |= "----Stripped-by-test----"'
|
||||||
sortkeys='import json; import sys ; JSON=sys.stdin.read() ; ud = json.loads(JSON) ; print json.dumps(ud, sort_keys=True, indent=2)'
|
sortkeys='import json; import sys ; JSON=sys.stdin.read() ; ud = json.loads(JSON) ; print json.dumps(ud, sort_keys=True, indent=2)'
|
||||||
|
|
||||||
# Remove items are not consistent across runs, the pg interval and client
|
# Remove items are not consistent across runs, the pg interval and client
|
||||||
@ -237,7 +246,9 @@ function TEST_auto_repair_erasure_coded_appends() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function TEST_auto_repair_erasure_coded_overwrites() {
|
function TEST_auto_repair_erasure_coded_overwrites() {
|
||||||
auto_repair_erasure_coded $1 true
|
if [ "$use_ec_overwrite" = "true" ]; then
|
||||||
|
auto_repair_erasure_coded $1 true
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function corrupt_and_repair_jerasure() {
|
function corrupt_and_repair_jerasure() {
|
||||||
@ -268,7 +279,9 @@ function TEST_corrupt_and_repair_jerasure_appends() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function TEST_corrupt_and_repair_jerasure_overwrites() {
|
function TEST_corrupt_and_repair_jerasure_overwrites() {
|
||||||
corrupt_and_repair_jerasure $1 true
|
if [ "$use_ec_overwrite" = "true" ]; then
|
||||||
|
corrupt_and_repair_jerasure $1 true
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function corrupt_and_repair_lrc() {
|
function corrupt_and_repair_lrc() {
|
||||||
@ -299,7 +312,9 @@ function TEST_corrupt_and_repair_lrc_appends() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function TEST_corrupt_and_repair_lrc_overwrites() {
|
function TEST_corrupt_and_repair_lrc_overwrites() {
|
||||||
corrupt_and_repair_jerasure $1 true
|
if [ "$use_ec_overwrite" = "true" ]; then
|
||||||
|
corrupt_and_repair_jerasure $1 true
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function unfound_erasure_coded() {
|
function unfound_erasure_coded() {
|
||||||
@ -365,7 +380,9 @@ function TEST_unfound_erasure_coded_appends() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function TEST_unfound_erasure_coded_overwrites() {
|
function TEST_unfound_erasure_coded_overwrites() {
|
||||||
unfound_erasure_coded $1 true
|
if [ "$use_ec_overwrite" = "true" ]; then
|
||||||
|
unfound_erasure_coded $1 true
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -443,7 +460,9 @@ function TEST_list_missing_erasure_coded_appends() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function TEST_list_missing_erasure_coded_overwrites() {
|
function TEST_list_missing_erasure_coded_overwrites() {
|
||||||
list_missing_erasure_coded $1 true
|
if [ "$use_ec_overwrite" = "true" ]; then
|
||||||
|
list_missing_erasure_coded $1 true
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -2498,7 +2517,9 @@ function TEST_corrupt_scrub_erasure_appends() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function TEST_corrupt_scrub_erasure_overwrites() {
|
function TEST_corrupt_scrub_erasure_overwrites() {
|
||||||
corrupt_scrub_erasure $1 true
|
if [ "$use_ec_overwrite" = "true" ]; then
|
||||||
|
corrupt_scrub_erasure $1 true
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user