From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6631790376260730880 X-Received: by 2002:a17:906:698c:: with SMTP id i12-v6mr4485950ejr.10.1544084021788; Thu, 06 Dec 2018 00:13:41 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a50:89cf:: with SMTP id h15ls6583932edh.7.gmail; Thu, 06 Dec 2018 00:13:41 -0800 (PST) X-Google-Smtp-Source: AFSGD/VM5zRfoGbCROe8aZxAJofulW+AwpEMjFPsgdws1ouPeRLRSCr4MdFbtFb9UuQ42OXERObj X-Received: by 2002:a05:6402:286:: with SMTP id l6mr5370194edv.11.1544084021299; Thu, 06 Dec 2018 00:13:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544084021; cv=none; d=google.com; s=arc-20160816; b=hgnOLgdt6hV7SXCFOjMdtV1A1x9JLdW/u6wozBod6XVEz7c5yj5CMmMllHgWnudGAX TbgsGTda6iJm2EqeAl4TEbll5dIXMMkAGm+Gix9jWkC3RyG1bau/OrMydua/dYq7Sj63 cPHm6Kk0XR44HWxMuKjFwo0szQtWR6vtJYSBvqxO3co9ixBtbFdehrUZw9hEV3ufkyKv PCjibnsv2++zMEth2CT4kQgekc83bbuDhu9fw/2ZZHrPHrnBKUwKRpiArFickBjxR+e4 PpW+O6w+HTJ2Dk6Na4sXTDZP7j7umAz7JwTDH+rhJFzlJE5z7XRJSUzPdYyeU6JG+sLT Zelg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:mime-version:user-agent :date:message-id:subject:from:cc:to; bh=pT2V3EB2Ip3rV0BpeGwqxNjVHsxKxAtVoKOr4WkkM5k=; b=f3LryTonTKCRm2dt3MBOOgFsd4pLVI9SfQHTx9rxbPfRRdeoUIyBZw3scDd8zjmJgu ULAhs5pyV/tWMf4X2TBbwnL5BcgvUKr/J7Ejg07yqw8VzBV4aEIUtcnUQy0kLwNBFRv+ 7AC3XTRk037IEdGNJL7L9MRwqLQTNVsKbLYPba9tifV980b4ZNXkgfuRXToDFZL5mwDu 9P8BufMiv0UcAjsdXRCeydEPYpn8qScLwSqICV51BvAQr96BrxdCqFVD9fEsP6ycxQhg MNCkv2AKbnmPnS+F0GPgGBC0K/ZwYBt9sWgfMrlwoQEqea3tjEh22gFHTAUqcbSBx7R8 keIA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Return-Path: Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id h28si152edh.4.2018.12.06.00.13.41 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 06 Dec 2018 00:13:41 -0800 (PST) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) client-ip=192.35.17.14; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Received: from mail1.sbs.de (mail1.sbs.de [192.129.41.35]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id wB68Decv011176 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 6 Dec 2018 09:13:40 +0100 Received: from [139.22.40.220] ([139.22.40.220]) by mail1.sbs.de (8.15.2/8.15.2) with ESMTP id wB68DdYq008716; Thu, 6 Dec 2018 09:13:40 +0100 To: isar-users , Maksim Osipov Cc: Henning Schild , Cedric Hombourger From: Jan Kiszka Subject: [PATCH] wic-img: Fix bind mounting Message-ID: Date: Thu, 6 Dec 2018 09:13:39 +0100 User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: n6tObS5LzUdf This addresses two issues of the current code: - we must make the bind mount of STAGING_DIR private because it will otherwise pick up bind mounts done underneath it in the various rootfs used by parallel targets - locking was missing to make check and mount atomic, just like we do inside buildchroot_do_mounts Signed-off-by: Jan Kiszka --- My theory on what went wrong /wrt rbind-mounted /sys and /dev: As the bind-mounting of STAGING_DIR of a wic target (qemu-amd64) eventually started to contain shared(!) bind-mounts of parallel targets (qemu- armhf, qemu-arm64), and all those stick to the end, isar_handler started to umount their now also shared /dev and /sys mounts. And that destroyed the host mounts. Lesson to be recalled: never paper over issues that were not yet fully understood. They may point to sleeping problems that will only bite you again later. meta/classes/wic-img.bbclass | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/meta/classes/wic-img.bbclass b/meta/classes/wic-img.bbclass index 225463e..76602d8 100644 --- a/meta/classes/wic-img.bbclass +++ b/meta/classes/wic-img.bbclass @@ -87,11 +87,14 @@ do_build[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" do_wic_image() { buildchroot_do_mounts - for dir in ${BBLAYERS} ${STAGING_DIR} ${ISARROOT}/scripts; do - sudo mkdir -p ${BUILDCHROOT_DIR}/$dir - mountpoint ${BUILDCHROOT_DIR}/$dir >/dev/null 2>&1 \ - || sudo mount --bind $dir ${BUILDCHROOT_DIR}/$dir - done + sudo flock ${MOUNT_LOCKFILE} -c ' \ + for dir in ${BBLAYERS} ${STAGING_DIR} ${ISARROOT}/scripts; do + mkdir -p ${BUILDCHROOT_DIR}/$dir + if ! mountpoint ${BUILDCHROOT_DIR}/$dir >/dev/null 2>&1; then + mount --bind --make-private $dir ${BUILDCHROOT_DIR}/$dir + fi + done + ' export FAKEROOTCMD=${FAKEROOTCMD} export BUILDDIR=${BUILDDIR} export MTOOLS_SKIP_CHECK=1 -- 2.16.4