format(fpath=FSPATH, jpath=JPATH))
pid = os.getpid()
expfile = os.path.join(testdir, "exp.{pid}.out".format(pid=pid))
- cmd = ((prefix + "--op export --pgid 1.0 --file {file}").
+ cmd = ((prefix + "--op export --pgid 2.0 --file {file}").
format(id=divergent, file=expfile))
proc = exp_remote.run(args=cmd, wait=True,
check_status=False, stdout=StringIO())
assert proc.exitstatus == 0
- cmd = ((prefix + "--op remove --pgid 1.0").
+ cmd = ((prefix + "--op remove --pgid 2.0").
format(id=divergent, file=expfile))
proc = exp_remote.run(args=cmd, wait=True,
check_status=False, stdout=StringIO())
manager.raw_cluster_cmd('osd', 'pool', 'set', 'foo', 'pg_num', '2')
time.sleep(5)
+ manager.raw_cluster_cmd('pg','dump')
+
# Export a pg
(exp_remote,) = ctx.\
cluster.only('osd.{o}'.format(o=divergent)).remotes.iterkeys()
format(fpath=FSPATH, jpath=JPATH))
pid = os.getpid()
expfile = os.path.join(testdir, "exp.{pid}.out".format(pid=pid))
- cmd = ((prefix + "--op export --pgid 1.0 --file {file}").
+ cmd = ((prefix + "--op export --pgid 2.0 --file {file}").
format(id=divergent, file=expfile))
proc = exp_remote.run(args=cmd, wait=True,
check_status=False, stdout=StringIO())
assert proc.exitstatus == 0
# Remove the same pg that was exported
- cmd = ((prefix + "--op remove --pgid 1.0").
+ cmd = ((prefix + "--op remove --pgid 2.0").
format(id=divergent, file=expfile))
proc = exp_remote.run(args=cmd, wait=True,
check_status=False, stdout=StringIO())
assert proc.exitstatus == 0
# Kill one of non-divergent OSDs
- log.info('killing osd.%d' % non_divergent[1])
- manager.kill_osd(non_divergent[1])
- manager.mark_down_osd(non_divergent[1])
- # manager.mark_out_osd(non_divergent[1])
+ log.info('killing osd.%d' % non_divergent[0])
+ manager.kill_osd(non_divergent[0])
+ manager.mark_down_osd(non_divergent[0])
+ # manager.mark_out_osd(non_divergent[0])
cmd = ((prefix + "--op import --file {file}").
- format(id=non_divergent[1], file=expfile))
+ format(id=non_divergent[0], file=expfile))
proc = exp_remote.run(args=cmd, wait=True,
check_status=False, stdout=StringIO())
assert proc.exitstatus == 0
log.info("revive divergent %d", divergent)
manager.revive_osd(divergent)
manager.mark_in_osd(divergent)
- log.info("revive %d", non_divergent[1])
- manager.revive_osd(non_divergent[1])
+ log.info("revive %d", non_divergent[0])
+ manager.revive_osd(non_divergent[0])
while len(manager.get_osd_status()['up']) < 3:
time.sleep(10)
--mon-allow-pool-delete \
"$@" || return 1
+ ceph osd pool create rbd 8
+
cat > $dir/ceph.conf <<EOF
[global]
fsid = $(get_config mon $id fsid)
run_mon $dir a --mon-initial-members=a || return 1
# rbd has not been deleted / created, hence it has pool id 0
- ceph osd dump | grep "pool 0 'rbd'" || return 1
+ ceph osd dump | grep "pool 1 'rbd'" || return 1
kill_daemons $dir || return 1
run_mon $dir a || return 1
# rbd has been deleted / created, hence it does not have pool id 0
- ! ceph osd dump | grep "pool 0 'rbd'" || return 1
+ ! ceph osd dump | grep "pool 1 'rbd'" || return 1
local size=$(CEPH_ARGS='' ceph --format=json daemon $dir/ceph-mon.a.asok \
config get osd_pool_default_size)
test "$size" = '{"osd_pool_default_size":"3"}' || return 1
run_mgr $dir x || return 1
run_osd $dir 0 || return 1
wait_for_clean || return 1
- stamp=$(get_last_scrub_stamp 1.0)
+ stamp=$(get_last_scrub_stamp 2.0)
test -n "$stamp" || return 1
teardown $dir || return 1
}
run_mgr $dir x || return 1
run_osd $dir 0 || return 1
wait_for_clean || return 1
- repair 1.0 || return 1
+ repair 2.0 || return 1
kill_daemons $dir KILL osd || return 1
- ! TIMEOUT=1 repair 1.0 || return 1
+ ! TIMEOUT=1 repair 2.0 || return 1
teardown $dir || return 1
}
#######################################################################
run_mgr $dir x || return 1
run_osd $dir 0 || return 1
wait_for_clean || return 1
- pg_scrub 1.0 || return 1
+ pg_scrub 2.0 || return 1
kill_daemons $dir KILL osd || return 1
- ! TIMEOUT=1 pg_scrub 1.0 || return 1
+ ! TIMEOUT=1 pg_scrub 2.0 || return 1
teardown $dir || return 1
}
run_mgr $dir x || return 1
run_osd $dir 0 || return 1
wait_for_clean || return 1
- local pgid=1.0
+ local pgid=2.0
ceph pg repair $pgid
local last_scrub=$(get_last_scrub_stamp $pgid)
wait_for_scrub $pgid "$last_scrub" || return 1
ceph pg debug unfound_objects_exist
ceph pg debug degraded_pgs_exist
- ceph pg deep-scrub 0.0
+ ceph pg deep-scrub 1.0
ceph pg dump
ceph pg dump pgs_brief --format=json
ceph pg dump pgs --format=json
ceph pg dump_stuck undersized
ceph pg dump_stuck degraded
ceph pg ls
- ceph pg ls 0
+ ceph pg ls 1
ceph pg ls stale
expect_false ceph pg ls scrubq
ceph pg ls active stale repair recovering
- ceph pg ls 0 active
- ceph pg ls 0 active stale
+ ceph pg ls 1 active
+ ceph pg ls 1 active stale
ceph pg ls-by-primary osd.0
- ceph pg ls-by-primary osd.0 0
+ ceph pg ls-by-primary osd.0 1
ceph pg ls-by-primary osd.0 active
ceph pg ls-by-primary osd.0 active stale
- ceph pg ls-by-primary osd.0 0 active stale
+ ceph pg ls-by-primary osd.0 1 active stale
ceph pg ls-by-osd osd.0
- ceph pg ls-by-osd osd.0 0
+ ceph pg ls-by-osd osd.0 1
ceph pg ls-by-osd osd.0 active
ceph pg ls-by-osd osd.0 active stale
- ceph pg ls-by-osd osd.0 0 active stale
+ ceph pg ls-by-osd osd.0 1 active stale
ceph pg ls-by-pool rbd
ceph pg ls-by-pool rbd active stale
# can't test this...
# ceph pg force_create_pg
ceph pg getmap -o $TEMP_DIR/map.$$
[ -s $TEMP_DIR/map.$$ ]
- ceph pg map 0.0 | grep acting
- ceph pg repair 0.0
- ceph pg scrub 0.0
+ ceph pg map 1.0 | grep acting
+ ceph pg repair 1.0
+ ceph pg scrub 1.0
ceph osd set-full-ratio .962
ceph osd dump | grep '^full_ratio 0.962'
wait_for_health_ok
ceph pg stat | grep 'pgs:'
- ceph pg 0.0 query
- ceph tell 0.0 query
+ ceph pg 1.0 query
+ ceph tell 1.0 query
ceph quorum enter
ceph quorum_status
ceph report | grep osd_stats
expect_false ceph osd primary-affinity osd.9999 .5
ceph osd primary-affinity osd.0 1
- ceph osd pg-temp 0.0 0 1 2
- ceph osd pg-temp 0.0 osd.1 osd.0 osd.2
+ ceph osd pg-temp 1.0 0 1 2
+ ceph osd pg-temp 1.0 osd.1 osd.0 osd.2
expect_false ceph osd pg-temp asdf qwer
- expect_false ceph osd pg-temp 0.0 asdf
- expect_false ceph osd pg-temp 0.0
+ expect_false ceph osd pg-temp 1.0 asdf
+ expect_false ceph osd pg-temp 1.0
# don't test ceph osd primary-temp for now
}
expect('pg/debug?debugop=unfound_objects_exist', 'GET', 200, '')
expect('pg/debug?debugop=degraded_pgs_exist', 'GET', 200, '')
- expect('pg/deep-scrub?pgid=0.0', 'PUT', 200, '')
+ expect('pg/deep-scrub?pgid=1.0', 'PUT', 200, '')
r = expect('pg/dump', 'GET', 200, 'json', JSONHDR)
assert('pg_stats_sum' in r.myjson['output'])
r = expect('pg/dump', 'GET', 200, 'xml', XMLHDR)
r = expect('pg/getmap', 'GET', 200, '')
assert(len(r.text) != 0)
- r = expect('pg/map?pgid=0.0', 'GET', 200, 'json', JSONHDR)
+ r = expect('pg/map?pgid=1.0', 'GET', 200, 'json', JSONHDR)
assert('acting' in r.myjson['output'])
- assert(r.myjson['output']['pgid'] == '0.0')
- r = expect('pg/map?pgid=0.0', 'GET', 200, 'xml', XMLHDR)
+ assert(r.myjson['output']['pgid'] == '1.0')
+ r = expect('pg/map?pgid=1.0', 'GET', 200, 'xml', XMLHDR)
assert(r.tree.find('output/pg_map/acting') is not None)
- assert(r.tree.find('output/pg_map/pgid').text == '0.0')
+ assert(r.tree.find('output/pg_map/pgid').text == '1.0')
- expect('pg/repair?pgid=0.0', 'PUT', 200, '')
- expect('pg/scrub?pgid=0.0', 'PUT', 200, '')
+ expect('pg/repair?pgid=1.0', 'PUT', 200, '')
+ expect('pg/scrub?pgid=1.0', 'PUT', 200, '')
expect('osd/set-full-ratio?ratio=0.90', 'PUT', 200, '')
r = expect('osd/dump', 'GET', 200, 'json', JSONHDR)
r = expect('pg/stat', 'GET', 200, 'xml', XMLHDR)
assert(r.tree.find('output/pg_summary/num_pgs') is not None)
- expect('tell/0.0/query', 'GET', 200, 'json', JSONHDR)
+ expect('tell/1.0/query', 'GET', 200, 'json', JSONHDR)
expect('quorum?quorumcmd=enter', 'PUT', 200, 'json', JSONHDR)
expect('quorum?quorumcmd=enter', 'PUT', 200, 'xml', XMLHDR)
expect('quorum_status', 'GET', 200, 'json', JSONHDR)
('get', '/osd', {}),
('get', '/osd/0', {}),
('get', '/osd/0/command', {}),
- ('get', '/pool/0', {}),
+ ('get', '/pool/1', {}),
('get', '/server', {}),
('get', '/server/' + aserver, {}),
('post', '/osd/0/command', {'command': 'scrub'}),
setup $dir || return 1
run_mon $dir a || return 1
+ ceph osd pool create $TEST_POOL 8
local flag
for flag in nodelete nopgchange nosizechange write_fadvise_dontneed noscrub nodeep-scrub; do
run_mon $dir b --public-addr $MONB || return 1
run_mon $dir c --public-addr $MONC || return 1
+ ceph osd pool create rbd 8
+
local empty_map=$dir/empty_map
:> $empty_map.txt
crushtool -c $empty_map.txt -o $empty_map.map || return 1
pg_scrub $pg
rados list-inconsistent-pg $poolname > $dir/json || return 1
+ cat $dir/json
# Check pg count
test $(jq '. | length' $dir/json) = "1" || return 1
# Check pgid
test $(jq -r '.[0]' $dir/json) = $pg || return 1
rados list-inconsistent-obj $pg > $dir/json || return 1
+ cat $dir/json
# Get epoch for repair-get requests
epoch=$(jq .epoch $dir/json)
"osd": 1
}
],
- "selected_object_info": "2:ce3f1d6a:::ROBJ1:head(47'54 osd.0.0:53 dirty|omap|data_digest|omap_digest s 7 uv 3 dd 2ddbf8f5 od f5fba2c6 alloc_hint [0 0 0])",
+ "selected_object_info": "3:ce3f1d6a:::ROBJ1:head(47'54 osd.0.0:53 dirty|omap|data_digest|omap_digest s 7 uv 3 dd 2ddbf8f5 od f5fba2c6 alloc_hint [0 0 0])",
"union_shard_errors": [
"size_mismatch_oi"
],
"osd": 1
}
],
- "selected_object_info": "2:bc819597:::ROBJ12:head(47'52 osd.0.0:51 dirty|omap|data_digest|omap_digest s 7 uv 36 dd 2ddbf8f5 od 67f306a alloc_hint [0 0 0])",
+ "selected_object_info": "3:bc819597:::ROBJ12:head(47'52 osd.0.0:51 dirty|omap|data_digest|omap_digest s 7 uv 36 dd 2ddbf8f5 od 67f306a alloc_hint [0 0 0])",
"union_shard_errors": [
"stat_error"
],
"osd": 1
}
],
- "selected_object_info": "2:d60617f9:::ROBJ13:head(47'55 osd.0.0:54 dirty|omap|data_digest|omap_digest s 7 uv 39 dd 2ddbf8f5 od 6441854d alloc_hint [0 0 0])",
+ "selected_object_info": "3:d60617f9:::ROBJ13:head(47'55 osd.0.0:54 dirty|omap|data_digest|omap_digest s 7 uv 39 dd 2ddbf8f5 od 6441854d alloc_hint [0 0 0])",
"union_shard_errors": [
"stat_error"
],
"osd": 1
}
],
- "selected_object_info": "2:30259878:::ROBJ15:head(47'46 osd.0.0:45 dirty|omap|data_digest|omap_digest s 7 uv 45 dd 2ddbf8f5 od 2d2a4d6e alloc_hint [0 0 0])",
+ "selected_object_info": "3:30259878:::ROBJ15:head(47'46 osd.0.0:45 dirty|omap|data_digest|omap_digest s 7 uv 45 dd 2ddbf8f5 od 2d2a4d6e alloc_hint [0 0 0])",
"union_shard_errors": [
"oi_attr_missing"
],
"osd": 1
}
],
- "selected_object_info": "2:f2a5b2a4:::ROBJ3:head(47'57 osd.0.0:56 dirty|omap|data_digest|omap_digest s 7 uv 9 dd 2ddbf8f5 od b35dfd alloc_hint [0 0 0])",
+ "selected_object_info": "3:f2a5b2a4:::ROBJ3:head(47'57 osd.0.0:56 dirty|omap|data_digest|omap_digest s 7 uv 9 dd 2ddbf8f5 od b35dfd alloc_hint [0 0 0])",
"union_shard_errors": [
"missing"
],
"osd": 1
}
],
- "selected_object_info": "2:86586531:::ROBJ8:head(82'62 client.4351.0:1 dirty|omap|data_digest|omap_digest s 7 uv 62 dd 2ddbf8f5 od d6be81dc alloc_hint [0 0 0])",
+ "selected_object_info": "3:86586531:::ROBJ8:head(82'62 client.4351.0:1 dirty|omap|data_digest|omap_digest s 7 uv 62 dd 2ddbf8f5 od d6be81dc alloc_hint [0 0 0])",
"union_shard_errors": [],
"errors": [
"attr_value_mismatch",
"name": "snapset"
}
],
- "object_info": "2:ffdb2004:::ROBJ9:head(102'63 client.4433.0:1 dirty|omap|data_digest|omap_digest s 1 uv 63 dd 2b63260d od 2eecc539 alloc_hint [0 0 0])",
+ "object_info": "3:ffdb2004:::ROBJ9:head(102'63 client.4433.0:1 dirty|omap|data_digest|omap_digest s 1 uv 63 dd 2b63260d od 2eecc539 alloc_hint [0 0 0])",
"size": 1,
"errors": [],
"osd": 0
"name": "snapset"
}
],
- "object_info": "2:ffdb2004:::ROBJ9:head(47'60 osd.0.0:59 dirty|omap|data_digest|omap_digest s 7 uv 27 dd 2ddbf8f5 od 2eecc539 alloc_hint [0 0 0])",
+ "object_info": "3:ffdb2004:::ROBJ9:head(47'60 osd.0.0:59 dirty|omap|data_digest|omap_digest s 7 uv 27 dd 2ddbf8f5 od 2eecc539 alloc_hint [0 0 0])",
"size": 1,
"errors": [],
"osd": 1
}
],
- "selected_object_info": "2:ffdb2004:::ROBJ9:head(102'63 client.4433.0:1 dirty|omap|data_digest|omap_digest s 1 uv 63 dd 2b63260d od 2eecc539 alloc_hint [0 0 0])",
+ "selected_object_info": "3:ffdb2004:::ROBJ9:head(102'63 client.4433.0:1 dirty|omap|data_digest|omap_digest s 1 uv 63 dd 2b63260d od 2eecc539 alloc_hint [0 0 0])",
"union_shard_errors": [],
"errors": [
"object_info_inconsistency",
pg_deep_scrub $pg
rados list-inconsistent-pg $poolname > $dir/json || return 1
+ cat $dir/json
# Check pg count
test $(jq '. | length' $dir/json) = "1" || return 1
# Check pgid
test $(jq -r '.[0]' $dir/json) = $pg || return 1
rados list-inconsistent-obj $pg > $dir/json || return 1
+ cat $dir/json
# Get epoch for repair-get requests
epoch=$(jq .epoch $dir/json)
"osd": 1
}
],
- "selected_object_info": "2:ce3f1d6a:::ROBJ1:head(47'54 osd.0.0:53 dirty|omap|data_digest|omap_digest s 7 uv 3 dd 2ddbf8f5 od f5fba2c6 alloc_hint [0 0 0])",
+ "selected_object_info": "3:ce3f1d6a:::ROBJ1:head(47'54 osd.0.0:53 dirty|omap|data_digest|omap_digest s 7 uv 3 dd 2ddbf8f5 od f5fba2c6 alloc_hint [0 0 0])",
"union_shard_errors": [
"data_digest_mismatch_oi",
"size_mismatch_oi"
"osd": 1
}
],
- "selected_object_info": "2:b1f19cbd:::ROBJ10:head(47'51 osd.0.0:50 dirty|omap|data_digest|omap_digest s 7 uv 30 dd 2ddbf8f5 od c2025a24 alloc_hint [0 0 0])",
+ "selected_object_info": "3:b1f19cbd:::ROBJ10:head(47'51 osd.0.0:50 dirty|omap|data_digest|omap_digest s 7 uv 30 dd 2ddbf8f5 od c2025a24 alloc_hint [0 0 0])",
"union_shard_errors": [
"omap_digest_mismatch_oi"
],
"osd": 1
}
],
- "selected_object_info": "2:87abbf36:::ROBJ11:head(47'48 osd.0.0:47 dirty|omap|data_digest|omap_digest s 7 uv 33 dd 2ddbf8f5 od a03cef03 alloc_hint [0 0 0])",
+ "selected_object_info": "3:87abbf36:::ROBJ11:head(47'48 osd.0.0:47 dirty|omap|data_digest|omap_digest s 7 uv 33 dd 2ddbf8f5 od a03cef03 alloc_hint [0 0 0])",
"union_shard_errors": [
"read_error"
],
"osd": 1
}
],
- "selected_object_info": "2:bc819597:::ROBJ12:head(47'52 osd.0.0:51 dirty|omap|data_digest|omap_digest s 7 uv 36 dd 2ddbf8f5 od 67f306a alloc_hint [0 0 0])",
+ "selected_object_info": "3:bc819597:::ROBJ12:head(47'52 osd.0.0:51 dirty|omap|data_digest|omap_digest s 7 uv 36 dd 2ddbf8f5 od 67f306a alloc_hint [0 0 0])",
"union_shard_errors": [
"stat_error"
],
"osd": 1
}
],
- "selected_object_info": "2:30259878:::ROBJ15:head(47'46 osd.0.0:45 dirty|omap|data_digest|omap_digest s 7 uv 45 dd 2ddbf8f5 od 2d2a4d6e alloc_hint [0 0 0])",
+ "selected_object_info": "3:30259878:::ROBJ15:head(47'46 osd.0.0:45 dirty|omap|data_digest|omap_digest s 7 uv 45 dd 2ddbf8f5 od 2d2a4d6e alloc_hint [0 0 0])",
"union_shard_errors": [
"oi_attr_missing"
],
"osd": 1
}
],
- "selected_object_info": "2:e97ce31e:::ROBJ2:head(47'56 osd.0.0:55 dirty|omap|data_digest|omap_digest s 7 uv 6 dd 2ddbf8f5 od f8e11918 alloc_hint [0 0 0])",
+ "selected_object_info": "3:e97ce31e:::ROBJ2:head(47'56 osd.0.0:55 dirty|omap|data_digest|omap_digest s 7 uv 6 dd 2ddbf8f5 od f8e11918 alloc_hint [0 0 0])",
"union_shard_errors": [
"data_digest_mismatch_oi"
],
"osd": 1
}
],
- "selected_object_info": "2:f2a5b2a4:::ROBJ3:head(47'57 osd.0.0:56 dirty|omap|data_digest|omap_digest s 7 uv 9 dd 2ddbf8f5 od b35dfd alloc_hint [0 0 0])",
+ "selected_object_info": "3:f2a5b2a4:::ROBJ3:head(47'57 osd.0.0:56 dirty|omap|data_digest|omap_digest s 7 uv 9 dd 2ddbf8f5 od b35dfd alloc_hint [0 0 0])",
"union_shard_errors": [
"missing"
],
"osd": 1
}
],
- "selected_object_info": "2:f4981d31:::ROBJ4:head(47'58 osd.0.0:57 dirty|omap|data_digest|omap_digest s 7 uv 12 dd 2ddbf8f5 od e2d46ea4 alloc_hint [0 0 0])",
+ "selected_object_info": "3:f4981d31:::ROBJ4:head(47'58 osd.0.0:57 dirty|omap|data_digest|omap_digest s 7 uv 12 dd 2ddbf8f5 od e2d46ea4 alloc_hint [0 0 0])",
"union_shard_errors": [
"omap_digest_mismatch_oi"
],
"osd": 1
}
],
- "selected_object_info": "2:f4bfd4d1:::ROBJ5:head(47'59 osd.0.0:58 dirty|omap|data_digest|omap_digest s 7 uv 15 dd 2ddbf8f5 od 1a862a41 alloc_hint [0 0 0])",
+ "selected_object_info": "3:f4bfd4d1:::ROBJ5:head(47'59 osd.0.0:58 dirty|omap|data_digest|omap_digest s 7 uv 15 dd 2ddbf8f5 od 1a862a41 alloc_hint [0 0 0])",
"union_shard_errors": [
"omap_digest_mismatch_oi"
],
"osd": 1
}
],
- "selected_object_info": "2:a53c12e8:::ROBJ6:head(47'50 osd.0.0:49 dirty|omap|data_digest|omap_digest s 7 uv 18 dd 2ddbf8f5 od 179c919f alloc_hint [0 0 0])",
+ "selected_object_info": "3:a53c12e8:::ROBJ6:head(47'50 osd.0.0:49 dirty|omap|data_digest|omap_digest s 7 uv 18 dd 2ddbf8f5 od 179c919f alloc_hint [0 0 0])",
"union_shard_errors": [
"omap_digest_mismatch_oi"
],
"osd": 1
}
],
- "selected_object_info": "2:8b55fa4b:::ROBJ7:head(47'49 osd.0.0:48 dirty|omap|data_digest|omap_digest s 7 uv 21 dd 2ddbf8f5 od efced57a alloc_hint [0 0 0])",
+ "selected_object_info": "3:8b55fa4b:::ROBJ7:head(47'49 osd.0.0:48 dirty|omap|data_digest|omap_digest s 7 uv 21 dd 2ddbf8f5 od efced57a alloc_hint [0 0 0])",
"union_shard_errors": [
"omap_digest_mismatch_oi"
],
"osd": 1
}
],
- "selected_object_info": "2:86586531:::ROBJ8:head(82'62 client.4351.0:1 dirty|omap|data_digest|omap_digest s 7 uv 62 dd 2ddbf8f5 od d6be81dc alloc_hint [0 0 0])",
+ "selected_object_info": "3:86586531:::ROBJ8:head(82'62 client.4351.0:1 dirty|omap|data_digest|omap_digest s 7 uv 62 dd 2ddbf8f5 od d6be81dc alloc_hint [0 0 0])",
"union_shard_errors": [],
"errors": [
"attr_value_mismatch",
"name": "snapset"
}
],
- "object_info": "2:ffdb2004:::ROBJ9:head(47'60 osd.0.0:59 dirty|omap|data_digest|omap_digest s 7 uv 27 dd 2ddbf8f5 od 2eecc539 alloc_hint [0 0 0])",
+ "object_info": "3:ffdb2004:::ROBJ9:head(47'60 osd.0.0:59 dirty|omap|data_digest|omap_digest s 7 uv 27 dd 2ddbf8f5 od 2eecc539 alloc_hint [0 0 0])",
"data_digest": "0x1f26fb26",
"omap_digest": "0x2eecc539",
"size": 3,
"name": "snapset"
}
],
- "object_info": "2:ffdb2004:::ROBJ9:head(122'64 client.4532.0:1 dirty|omap|data_digest|omap_digest s 3 uv 64 dd 1f26fb26 od 2eecc539 alloc_hint [0 0 0])",
+ "object_info": "3:ffdb2004:::ROBJ9:head(122'64 client.4532.0:1 dirty|omap|data_digest|omap_digest s 3 uv 64 dd 1f26fb26 od 2eecc539 alloc_hint [0 0 0])",
"data_digest": "0x1f26fb26",
"omap_digest": "0x2eecc539",
"size": 3,
"osd": 1
}
],
- "selected_object_info": "2:ffdb2004:::ROBJ9:head(122'64 client.4532.0:1 dirty|omap|data_digest|omap_digest s 3 uv 64 dd 1f26fb26 od 2eecc539 alloc_hint [0 0 0])",
+ "selected_object_info": "3:ffdb2004:::ROBJ9:head(122'64 client.4532.0:1 dirty|omap|data_digest|omap_digest s 3 uv 64 dd 1f26fb26 od 2eecc539 alloc_hint [0 0 0])",
"union_shard_errors": [],
"errors": [
"object_info_inconsistency",
pg_scrub $pg
rados list-inconsistent-pg $poolname > $dir/json || return 1
+ cat $dir/json
# Check pg count
test $(jq '. | length' $dir/json) = "1" || return 1
# Check pgid
test $(jq -r '.[0]' $dir/json) = $pg || return 1
rados list-inconsistent-obj $pg > $dir/json || return 1
+ cat $dir/json
# Get epoch for repair-get requests
epoch=$(jq .epoch $dir/json)
"osd": 2
}
],
- "selected_object_info": "2:9175b684:::EOBJ1:head(21'1 client.4179.0:1 dirty|data_digest|omap_digest s 7 uv 1 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
+ "selected_object_info": "3:9175b684:::EOBJ1:head(21'1 client.4179.0:1 dirty|data_digest|omap_digest s 7 uv 1 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
"union_shard_errors": [
"size_mismatch_oi"
],
"osd": 2
}
],
- "selected_object_info": "2:b197b25d:::EOBJ3:head(37'3 client.4251.0:1 dirty|data_digest|omap_digest s 7 uv 3 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
+ "selected_object_info": "3:b197b25d:::EOBJ3:head(37'3 client.4251.0:1 dirty|data_digest|omap_digest s 7 uv 3 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
"union_shard_errors": [
"missing"
],
"osd": 2
}
],
- "selected_object_info": "2:5e723e06:::EOBJ4:head(45'6 client.4289.0:1 dirty|data_digest|omap_digest s 7 uv 6 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
+ "selected_object_info": "3:5e723e06:::EOBJ4:head(45'6 client.4289.0:1 dirty|data_digest|omap_digest s 7 uv 6 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
"union_shard_errors": [],
"errors": [
"attr_value_mismatch",
"osd": 2
}
],
- "selected_object_info": "2:8549dfb5:::EOBJ5:head(65'7 client.4441.0:1 dirty|data_digest|omap_digest s 7 uv 7 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
+ "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4441.0:1 dirty|data_digest|omap_digest s 7 uv 7 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
"union_shard_errors": [
"size_mismatch_oi"
],
pg_deep_scrub $pg
rados list-inconsistent-pg $poolname > $dir/json || return 1
+ cat $dir/json
# Check pg count
test $(jq '. | length' $dir/json) = "1" || return 1
# Check pgid
test $(jq -r '.[0]' $dir/json) = $pg || return 1
rados list-inconsistent-obj $pg > $dir/json || return 1
+ cat $dir/json
# Get epoch for repair-get requests
epoch=$(jq .epoch $dir/json)
"osd": 2
}
],
- "selected_object_info": "2:9175b684:::EOBJ1:head(27'1 client.4155.0:1 dirty|data_digest|omap_digest s 7 uv 1 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
+ "selected_object_info": "3:9175b684:::EOBJ1:head(27'1 client.4155.0:1 dirty|data_digest|omap_digest s 7 uv 1 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
"union_shard_errors": [
"read_error",
"size_mismatch_oi"
"osd": 2
}
],
- "selected_object_info": "2:b197b25d:::EOBJ3:head(41'3 client.4199.0:1 dirty|data_digest|omap_digest s 7 uv 3 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
+ "selected_object_info": "3:b197b25d:::EOBJ3:head(41'3 client.4199.0:1 dirty|data_digest|omap_digest s 7 uv 3 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
"union_shard_errors": [
"missing"
],
"osd": 2
}
],
- "selected_object_info": "2:5e723e06:::EOBJ4:head(48'6 client.4223.0:1 dirty|data_digest|omap_digest s 7 uv 6 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
+ "selected_object_info": "3:5e723e06:::EOBJ4:head(48'6 client.4223.0:1 dirty|data_digest|omap_digest s 7 uv 6 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
"union_shard_errors": [],
"errors": [
"attr_value_mismatch",
"osd": 2
}
],
- "selected_object_info": "2:8549dfb5:::EOBJ5:head(65'7 client.4288.0:1 dirty|data_digest|omap_digest s 7 uv 7 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
+ "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4288.0:1 dirty|data_digest|omap_digest s 7 uv 7 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
"union_shard_errors": [
"size_mismatch_oi"
],
"osd": 2
}
],
- "selected_object_info": "2:9175b684:::EOBJ1:head(21'1 client.4179.0:1 dirty|data_digest|omap_digest s 7 uv 1 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
+ "selected_object_info": "3:9175b684:::EOBJ1:head(21'1 client.4179.0:1 dirty|data_digest|omap_digest s 7 uv 1 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
"union_shard_errors": [
"read_error",
"size_mismatch_oi"
"osd": 2
}
],
- "selected_object_info": "2:9babd184:::EOBJ2:head(29'2 client.4217.0:1 dirty|data_digest|omap_digest s 7 uv 2 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
+ "selected_object_info": "3:9babd184:::EOBJ2:head(29'2 client.4217.0:1 dirty|data_digest|omap_digest s 7 uv 2 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
"union_shard_errors": [
"ec_hash_error"
],
"osd": 2
}
],
- "selected_object_info": "2:b197b25d:::EOBJ3:head(37'3 client.4251.0:1 dirty|data_digest|omap_digest s 7 uv 3 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
+ "selected_object_info": "3:b197b25d:::EOBJ3:head(37'3 client.4251.0:1 dirty|data_digest|omap_digest s 7 uv 3 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
"union_shard_errors": [
"missing"
],
"osd": 2
}
],
- "selected_object_info": "2:5e723e06:::EOBJ4:head(45'6 client.4289.0:1 dirty|data_digest|omap_digest s 7 uv 6 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
+ "selected_object_info": "3:5e723e06:::EOBJ4:head(45'6 client.4289.0:1 dirty|data_digest|omap_digest s 7 uv 6 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
"union_shard_errors": [],
"errors": [
"attr_value_mismatch",
"osd": 2
}
],
- "selected_object_info": "2:8549dfb5:::EOBJ5:head(65'7 client.4441.0:1 dirty|data_digest|omap_digest s 7 uv 7 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
+ "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4441.0:1 dirty|data_digest|omap_digest s 7 uv 7 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])",
"union_shard_errors": [
"size_mismatch_oi",
"ec_size_error"