Fix OLD=1 ./test_resize

This commit is contained in:
Vitaliy Filippov
2025-12-02 01:52:42 +03:00
parent 2633978fec
commit 2fb7022c78
3 changed files with 34 additions and 23 deletions
+31 -17
View File
@@ -24,35 +24,49 @@ for i in $(seq 1 $OSD_COUNT); do
done
for i in $(seq 1 $OSD_COUNT); do
offsets=$(build/src/disk_tool/vitastor-disk simple-offsets --format json ./testdata/bin/test_osd$i.bin)
opts=$(build/src/disk_tool/vitastor-disk simple-offsets --format options ./testdata/bin/test_osd$i.bin)
offsets=$(build/src/disk_tool/vitastor-disk simple-offsets --format json ./testdata/bin/test_osd$i.bin $OFFSET_ARGS)
opts=$(build/src/disk_tool/vitastor-disk simple-offsets --format options ./testdata/bin/test_osd$i.bin $OFFSET_ARGS)
meta_format=$(echo $offsets | jq -r .meta_format)
meta_offset=$(echo $offsets | jq -r .meta_offset)
data_offset=$(echo $offsets | jq -r .data_offset)
#build/src/disk_tool/vitastor-disk dump-journal --io cached --json ./testdata/bin/test_osd$i.bin 4096 0 $meta_offset >./testdata/journal_before_resize.json
#build/src/disk_tool/vitastor-disk dump-meta --io cached ./testdata/bin/test_osd$i.bin 4096 $meta_offset $((data_offset-meta_offset)) >./testdata/meta_before_resize.json
build/src/disk_tool/vitastor-disk dump-meta --io cached $opts >./testdata/meta_before_resize.json
new_data_offset=$((128*1024*1024+data_offset%131072))
if [[ "$meta_format" = "3" ]]; then
build/src/disk_tool/vitastor-disk dump-meta --io cached $opts >./testdata/meta_before_resize.json
new_data_offset=$((128*1024*1024+data_offset%131072))
else
build/src/disk_tool/vitastor-disk dump-journal --io cached --json ./testdata/bin/test_osd$i.bin 4096 0 $meta_offset >./testdata/journal_before_resize.json
build/src/disk_tool/vitastor-disk dump-meta --io cached ./testdata/bin/test_osd$i.bin 4096 $meta_offset $((data_offset-meta_offset)) >./testdata/meta_before_resize.json
new_data_offset=$((128*1024*1024+32768))
fi
build/src/disk_tool/vitastor-disk raw-resize --io cached \
$opts \
--new_meta_offset 0 \
--new_meta_len $((1024*1024)) \
--new_journal_offset $((1024*1024)) \
--new_data_offset $new_data_offset
#build/src/disk_tool/vitastor-disk dump-journal --io cached --json ./testdata/bin/test_osd$i.bin 4096 $((1024*1024)) $((127*1024*1024)) >./testdata/journal_after_resize.json
build/src/disk_tool/vitastor-disk dump-meta --io cached $opts \
--meta_offset 0 \
--meta_len $((1024*1024)) \
--journal_offset $((1024*1024)) \
--data_offset $new_data_offset >./testdata/meta_after_resize.json
if [[ "$meta_format" = "3" ]]; then
build/src/disk_tool/vitastor-disk dump-meta --io cached $opts \
--meta_offset 0 \
--meta_len $((1024*1024)) \
--journal_offset $((1024*1024)) \
--data_offset $new_data_offset >./testdata/meta_after_resize.json
else
build/src/disk_tool/vitastor-disk dump-journal --io cached --json ./testdata/bin/test_osd$i.bin 4096 $((1024*1024)) $((127*1024*1024)) >./testdata/journal_after_resize.json
build/src/disk_tool/vitastor-disk dump-meta --io cached ./testdata/bin/test_osd$i.bin 4096 0 $((1024*1024)) >./testdata/meta_after_resize.json
fi
RMBLOCK=".block"
if [[ "$meta_format" = "3" ]]; then
RMBLOCK=".writes[].location"
fi
if ! (cat ./testdata/meta_before_resize.json ./testdata/meta_after_resize.json | \
jq -e -s 'map([ .entries[] | del(.block, .writes[].location) ] | sort_by(.pool, .inode, .stripe)) | .[0] == .[1] and (.[0] | length) > 1000'); then
jq -e -s 'map([ .entries[] | del('"$RMBLOCK"') ] | sort_by(.pool, .inode, .stripe)) | .[0] == .[1] and (.[0] | length) > 1000'); then
format_error "OSD $i metadata corrupted after resizing"
fi
#if ! (cat ./testdata/journal_before_resize.json ./testdata/journal_after_resize.json | \
# jq -e -s 'map([ .[] | del(.crc32, .crc32_prev, .valid, .loc, .start) ]) | .[0] == .[1] and (.[0] | length) > 1'); then
# format_error "OSD $i journal corrupted after resizing"
#fi
if [[ "$meta_format" != "3" ]]; then
if ! (cat ./testdata/journal_before_resize.json ./testdata/journal_after_resize.json | \
jq -e -s 'map([ .[] | del(.crc32, .crc32_prev, .valid, .loc, .start) ]) | .[0] == .[1] and (.[0] | length) > 1'); then
format_error "OSD $i journal corrupted after resizing"
fi
fi
done
$ETCDCTL del --prefix /vitastor/osd/state/