#!/usr/bin/env bash
# group: rw auto quick
#
# I/O errors when working with internal qcow2 snapshots, and repairing
# the result
#
# Copyright (C) 2018 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

seq=$(basename $0)
echo "QA output created by $seq"

status=1	# failure is the default!

_cleanup()
{
    _cleanup_test_img
    rm -f "$TEST_DIR/blkdebug.conf"
}
trap "_cleanup; exit \$status" 0 1 2 3 15

# get standard environment, filters and checks
. ./common.rc
. ./common.filter

# This test is specific to qcow2
_supported_fmt qcow2
_supported_proto file fuse

# This test needs clusters with at least a refcount of 2 so that
# OFLAG_COPIED is not set.  refcount_bits=1 is therefore unsupported.
# (As are external data files.)
_unsupported_imgopts 'refcount_bits=1[^0-9]' data_file

echo
echo '=== Simulating an I/O error during snapshot deletion ==='
echo

_make_test_img 64M
$QEMU_IO -c 'write 0 64k' "$TEST_IMG" | _filter_qemu_io

# Create the snapshot
$QEMU_IMG snapshot -c foo "$TEST_IMG"

# Verify the snapshot is there
echo
_img_info | grep 'Snapshot list'
echo '(Snapshot filtered)'
echo

# Try to delete the snapshot (with an error happening when freeing the
# then leaked clusters)
cat > "$TEST_DIR/blkdebug.conf" <<EOF
[inject-error]
event = "cluster_free"
errno = "5"
EOF
$QEMU_IMG snapshot -d foo "blkdebug:$TEST_DIR/blkdebug.conf:$TEST_IMG"

# Verify the snapshot is gone
echo
_img_info | grep 'Snapshot list'

# Should only show leaks
echo '--- Checking test image ---'
_check_test_img

echo

# As there are only leaks, this should be able to fully repair the
# image
echo '--- Repairing test image ---'
_check_test_img -r leaks


# success, all done
echo '*** done'
rm -f $seq.full
status=0
