From f75be1c606dbfcdf1970480c8be4ad1c4150a6ad Mon Sep 17 00:00:00 2001 From: Steve Langasek Date: Fri, 28 Apr 2017 20:44:09 -0700 Subject: [PATCH] Resurrect Balint's fix from lp:~rbalint/livecd-rootfs/livecd-rootfs-autopkgtest-fix to wrap kpartx and trap spurious errors, since the problem is still being seen intermittently on i386 despite us calling sync before kpartx. --- debian/changelog | 9 +++++++++ live-build/functions | 13 ++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index a5697547..172dff72 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +livecd-rootfs (2.445) UNRELEASED; urgency=medium + + * Resurrect Balint's fix from + lp:~rbalint/livecd-rootfs/livecd-rootfs-autopkgtest-fix to wrap kpartx + and trap spurious errors, since the problem is still being seen + intermittently on i386 despite us calling sync before kpartx. + + -- Steve Langasek Fri, 28 Apr 2017 20:43:10 -0700 + livecd-rootfs (2.444) artful; urgency=medium * For now, make sure all automated image builds are on the edge channel. diff --git a/live-build/functions b/live-build/functions index 313a559b..c72c59a2 100644 --- a/live-build/functions +++ b/live-build/functions @@ -11,11 +11,22 @@ backing_img= apt-get -qqy install dosfstools gdisk clean_loops() { + local kpartx_ret + local kpartx_stdout if [ -n "${backing_img}" ]; then # sync before removing loop to avoid "Device or resource busy" errors sync - kpartx -v -d "${backing_img}" + kpartx_ret="" + kpartx_stdout=$(kpartx -v -d "${backing_img}") || kpartx_ret=$? + echo "$kpartx_stdout" + if [ -n "$kpartx_ret" ]; then + if echo "$kpartx_stdout" | grep -q "loop deleted: "; then + echo "Suppressing kpartx returning error (#860894)" + else + exit $kpartx_ret + fi + fi unset backing_img fi