From 138e3a081ba51fdf8c4468e371919c8e459132ee Mon Sep 17 00:00:00 2001 From: Gennady Lipenkov Date: Tue, 24 Nov 2020 19:15:46 +0300 Subject: [PATCH 1/3] Add retries and wait after disk attach operation --- post-processor/yandex-export/script.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/post-processor/yandex-export/script.go b/post-processor/yandex-export/script.go index d12883e08..2a2cbfd43 100644 --- a/post-processor/yandex-export/script.go +++ b/post-processor/yandex-export/script.go @@ -110,8 +110,22 @@ if ! yc compute instance attach-disk ${INSTANCE_ID} --disk-name ${DISKNAME} --de Exit 1 fi +DISK_LINK="/dev/disk/by-id/virtio-doexport" +echo "Waiting for disk..." +for attempt in 1 2 3; do + if [ -L "${DISK_LINK}" ]; then + break + fi + echo "Attempt ${attempt}" + if [ ${attempt} -eq 3 ]; then + echo "Symlink ${DISK_LINK} not found" + Exit 1 + fi + sleep 3 +done + echo "Dumping disk..." -if ! qemu-img convert -O qcow2 -o cluster_size=2M /dev/disk/by-id/virtio-doexport disk.qcow2 ; then +if ! qemu-img convert -O qcow2 -o cluster_size=2M "${DISK_LINK}" disk.qcow2 ; then echo "Failed to dump disk to qcow2 image." Exit 1 fi From ef67fb1cc87359d3025c9394d5528f62c11bf976 Mon Sep 17 00:00:00 2001 From: Gennady Lipenkov Date: Wed, 25 Nov 2020 15:45:49 +0300 Subject: [PATCH 2/3] Some wait before check --- post-processor/yandex-export/script.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/post-processor/yandex-export/script.go b/post-processor/yandex-export/script.go index 2a2cbfd43..150324b42 100644 --- a/post-processor/yandex-export/script.go +++ b/post-processor/yandex-export/script.go @@ -113,6 +113,7 @@ fi DISK_LINK="/dev/disk/by-id/virtio-doexport" echo "Waiting for disk..." for attempt in 1 2 3; do + sleep 3 if [ -L "${DISK_LINK}" ]; then break fi @@ -121,7 +122,6 @@ for attempt in 1 2 3; do echo "Symlink ${DISK_LINK} not found" Exit 1 fi - sleep 3 done echo "Dumping disk..." From 4c3e310f57816d3db973cff83a96730d6831596b Mon Sep 17 00:00:00 2001 From: Gennady Lipenkov Date: Thu, 26 Nov 2020 17:29:33 +0300 Subject: [PATCH 3/3] manually trigger udev --- post-processor/yandex-export/script.go | 1 + 1 file changed, 1 insertion(+) diff --git a/post-processor/yandex-export/script.go b/post-processor/yandex-export/script.go index 150324b42..b3d6b010a 100644 --- a/post-processor/yandex-export/script.go +++ b/post-processor/yandex-export/script.go @@ -114,6 +114,7 @@ DISK_LINK="/dev/disk/by-id/virtio-doexport" echo "Waiting for disk..." for attempt in 1 2 3; do sleep 3 + /sbin/udevadm trigger if [ -L "${DISK_LINK}" ]; then break fi