test case for reseting the resume state if it's invalid

This commit is contained in:
Christoph Klaffl 2019-05-20 18:19:03 +02:00
parent 6eb1be3ef7
commit 0537de5bb6
No known key found for this signature in database
GPG Key ID: FC1C525C2A47CC28
1 changed files with 55 additions and 0 deletions

View File

@ -0,0 +1,55 @@
#!/bin/bash
# test resumable replication where the original snapshot doesn't exist anymore
set -x
set -e
. ../../common/lib.sh
POOL_IMAGE="/tmp/syncoid-test-6.zpool"
MOUNT_TARGET="/tmp/syncoid-test-6.mount"
POOL_SIZE="1000M"
POOL_NAME="syncoid-test-6"
truncate -s "${POOL_SIZE}" "${POOL_IMAGE}"
zpool create -m none -f "${POOL_NAME}" "${POOL_IMAGE}"
function cleanUp {
zpool export "${POOL_NAME}"
}
# export pool in any case
trap cleanUp EXIT
zfs create "${POOL_NAME}"/src -o mountpoint="${MOUNT_TARGET}"
../../../syncoid --debug --compress=none "${POOL_NAME}"/src "${POOL_NAME}"/dst
dd if=/dev/urandom of="${MOUNT_TARGET}"/big_file bs=1M count=200
zfs snapshot "${POOL_NAME}"/src@big
../../../syncoid --debug --no-sync-snap --compress=none --source-bwlimit=2m "${POOL_NAME}"/src "${POOL_NAME}"/dst &
syncoid_pid=$!
sleep 5
list_descendants ()
{
local children=$(ps -o pid= --ppid "$1")
for pid in $children
do
list_descendants "$pid"
done
echo "$children"
}
kill $(list_descendants $$) || true
wait
sleep 1
zfs destroy "${POOL_NAME}"/src@big
../../../syncoid --debug --compress=none "${POOL_NAME}"/src "${POOL_NAME}"/dst # | grep "reset partial receive state of syncoid"
../../../syncoid --debug --compress=none "${POOL_NAME}"/src "${POOL_NAME}"/dst
exit $?