From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7010687509260664832 X-Received: by 2002:a05:651c:54e:: with SMTP id q14mr30316ljp.426.1632323070464; Wed, 22 Sep 2021 08:04:30 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:3f14:: with SMTP id y20ls715318lfa.1.gmail; Wed, 22 Sep 2021 08:04:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxcxTzlH2hZcF4ttkQUoOFQImXVbJw7Fc3579Wh8J3jAiUvqfCRUFzp3aFzochSFVC4OpfX X-Received: by 2002:ac2:5606:: with SMTP id v6mr93341lfd.520.1632323069352; Wed, 22 Sep 2021 08:04:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632323069; cv=none; d=google.com; s=arc-20160816; b=qq2sLxGZq3hx5gMnDXbqIx5lLC1ZGCsa7AGA2+jxtYy3jsilkH0NgnvOMamhBIEdlc GTvTr2q8s7HrtSZjejQ3Hi0CDC05YdUEr7035B8lWxS8fxA6TuGzru/eEG4m2TG3DCb3 jvfO9ZxMzjyIp+9JC5k8AiCF0W/HaSf3fKl5jcuW1XCYSQ3OAjyAk86TvAOta8lypEm1 1vzcQhMl68Eq9hvnaAnkc4N6VXrU1VOWuWLWsIJj7WaYmoPnnE9FRx8h7E/8zWHldzof r+BsistHcJfqRx+2qCAoBHc5QOGrHOGxp0LuQ0oF9ZVEtQs6dR5+SrJGYVZ9scYNkxCK gYCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date; bh=rBIqi1sOJ3PxNHBbjj1cfnfLgvC0DkL949L1gyxSJ1U=; b=WOcEnn2AuymJPZTC0bfe5AHqG8UgJeBCYF8XTN9Uy1up5sD0mVYIrC+dqUmsJ3biBP DLR1ImJzd/qiXfrhGchJTSA29tPFMr1vQTDku3mkW4pfs2I3CqnnHkDSMhgdpIpIjI7C ad4r2xKkvGsfQs4wRP1Z9GjZcwWgEQlVd+uIwprXcXPj8T4pMjncHqmDpa1KwrvROJDe xN/pk/IoMmaAtWJNcNjpulwhjTMTwkuawNIrZTiUSaxVH4pjCEyqCYEVRoA4Fstg5uRf 5GDTmeSnmnYx/gNfWGTpaveVHv355TaJqMbU16F0APBz7cRyUvj179lIdDkoJb7qyTUA FdMg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from gecko.sbs.de (gecko.sbs.de. [194.138.37.40]) by gmr-mx.google.com with ESMTPS id f20si122527ljn.4.2021.09.22.08.04.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 Sep 2021 08:04:29 -0700 (PDT) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.40 as permitted sender) client-ip=194.138.37.40; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by gecko.sbs.de (8.15.2/8.15.2) with ESMTPS id 18MF4Rfq023508 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 22 Sep 2021 17:04:27 +0200 Received: from md1za8fc.ad001.siemens.net ([167.87.35.234]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 18MF4RpD031579; Wed, 22 Sep 2021 17:04:27 +0200 Date: Wed, 22 Sep 2021 17:04:26 +0200 From: Henning Schild To: Felix Moessbauer Cc: , Subject: Re: [PATCH 2/4] execute do_wic_image under a lock to ensure mountpoints remain mounted Message-ID: <20210922170426.146de6e1@md1za8fc.ad001.siemens.net> In-Reply-To: <20210922092754.3649703-3-felix.moessbauer@siemens.com> References: <20210922092754.3649703-1-felix.moessbauer@siemens.com> <20210922092754.3649703-3-felix.moessbauer@siemens.com> X-Mailer: Claws Mail 3.18.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TUID: myY+hbNYfXO6 LGTM Henning Am Wed, 22 Sep 2021 11:27:52 +0200 schrieb Felix Moessbauer : > This patch adds the isar.lock to the do_wic_image task to ensure that > the mountpoints are not unmounted by a simultaneously running wic > task. Further, it makes mounting more robust by executing the > wic task in a try / finally handler so that the mount points are > unmounted even if the task itself fails. > > Signed-off-by: Felix Moessbauer > --- > meta/classes/wic-img.bbclass | 36 > ++++++++++++++++++++++-------------- 1 file changed, 22 > insertions(+), 14 deletions(-) > > diff --git a/meta/classes/wic-img.bbclass > b/meta/classes/wic-img.bbclass index d849ad9..e495c12 100644 > --- a/meta/classes/wic-img.bbclass > +++ b/meta/classes/wic-img.bbclass > @@ -138,23 +138,40 @@ python check_for_wic_warnings() { > > do_wic_image[file-checksums] += "${WKS_FILE_CHECKSUM}" > python do_wic_image() { > - bb.build.exec_func("generate_wic_image", d) > - bb.build.exec_func("check_for_wic_warnings", d) > + lock = bb.utils.lockfile(d.getVar("REPO_ISAR_DIR") + > "/isar.lock", shared=True) > + bb.build.exec_func("wic_do_mounts", d) > + try: > + bb.build.exec_func("generate_wic_image", d) > + bb.build.exec_func("check_for_wic_warnings", d) > + finally: > + bb.build.exec_func("wic_undo_mounts", d) > + bb.utils.unlockfile(lock) > } > addtask wic_image before do_image after do_image_tools > > -generate_wic_image() { > +wic_do_mounts() { > buildchroot_do_mounts > sudo -s <<'EOSUDO' > - ( flock 9 > for dir in ${BBLAYERS} ${STAGING_DIR} ${SCRIPTSDIR} > ${BITBAKEDIR}; 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 > - ) 9>${MOUNT_LOCKFILE} > EOSUDO > +} > + > +wic_undo_mounts() { > + sudo -s <<'EOSUDO' > + for dir in ${BBLAYERS} ${STAGING_DIR} ${SCRIPTSDIR} > ${BITBAKEDIR}; do > + if mountpoint -q ${BUILDCHROOT_DIR}/$dir; then > + umount ${BUILDCHROOT_DIR}/$dir > + fi > + done > +EOSUDO > +} > + > +generate_wic_image() { > export FAKEROOTCMD=${FAKEROOTCMD} > export BUILDDIR=${BUILDDIR} > export MTOOLS_SKIP_CHECK=1 > @@ -200,13 +217,4 @@ EOSUDO > done > rm -rf ${BUILDCHROOT_DIR}/${WICTMP} > rm -rf ${IMAGE_ROOTFS}/../pseudo > - sudo -s <<'EOSUDO' > - ( flock 9 > - for dir in ${BBLAYERS} ${STAGING_DIR} ${SCRIPTSDIR} > ${BITBAKEDIR}; do > - if mountpoint -q ${BUILDCHROOT_DIR}/$dir; then > - umount ${BUILDCHROOT_DIR}/$dir > - fi > - done > - ) 9>${MOUNT_LOCKFILE} > -EOSUDO > }