#!/bin/bash -ex OSD_SIZE=200 if [[ $SCHEME = replicated ]]; then OSD_COUNT=${OSD_COUNT:-2} fi GLOBAL_CONFIG=',"client_retry_enospc":false' . `dirname $0`/run_3osds.sh kill -9 $OSD1_PID truncate -s 0 ./testdata/bin/test_osd1.bin dd if=/dev/zero of=./testdata/bin/test_osd1.bin bs=1024 count=1 seek=$((300*1024-1)) $ETCDCTL del /vitastor/osd/state/1 start_osd 1 # Should fail with ENOSPC if $VITASTOR_FIO -bs=1M -direct=1 -iodepth=4 \ -rw=write -pool=1 -inode=1 -size=500M -cluster_log_level=10; then format_error "Should get ENOSPC, but didn't" fi # Should fail with ENOSPC too (the idea is to try to overwrite first objects to check their rollback) if $VITASTOR_FIO -bs=1M -direct=1 -iodepth=32 \ -rw=write -pool=1 -inode=1 -size=500M -cluster_log_level=10; then format_error "Should get ENOSPC, but didn't" fi # Should complete OK if ! $VITASTOR_FIO -bs=4k -direct=1 -iodepth=4 \ -rw=randwrite -pool=1 -inode=1 -size=100M -cluster_log_level=10 -number_ios=4096; then format_error "Should do random writes over ENOSPC correctly, but got an error" fi export -n LD_PRELOAD format_green OK