From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7010687509260664832 X-Received: by 2002:ac2:5e2b:: with SMTP id o11mr13874944lfg.512.1632555273495; Sat, 25 Sep 2021 00:34:33 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:3a83:: with SMTP id q3ls1443516lfu.2.gmail; Sat, 25 Sep 2021 00:34:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwCP1yyRkddv/DkHO+j6afXzlD3NCmWm5zOdWYWUuOI2HCsWZUmgAbhBxHDYb0QVfbmr1Jn X-Received: by 2002:a19:500e:: with SMTP id e14mr13364358lfb.673.1632555272484; Sat, 25 Sep 2021 00:34:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632555272; cv=none; d=google.com; s=arc-20160816; b=FdjS6mFM/L0b6mcSPtD3AFhKuMlj3LFyZF2yzjUSAKQ6GUQkvGzkHU+/xnEUOlYPxC dnQXByCmyyqxlTxoHOHaXsyjMyYT3rU9lSxmNs1V/Bul1GZ2KhgXyHhX5hBL2u8UkBkl Yk2tsN0TACvb/+j/oDDBpWUF9z6G9v+8qclAN3n/kufcGlEURzCzyLKuJ+WLaaHv/J9F 97O0AHJJ+6+RtHc+8AyEU9zsWMX3jN7lW2ocSk7Xp3JR5h9ODbuOcbcDnAAjbKaL6Epj aIhP9qwXZgUgAMixr6zq5hjeYD955hc8szU5/C2sfSTOhQYNbVwK4TvyGYAEI5+2tI18 J8kQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:from:references:cc:to:subject :dkim-signature; bh=50PLJMVdhjog4qbeGBjMtLfcOPkIbb25gP9MC9LLzZg=; b=GobJr2yGbpMHbJENAWUIXKz2aWaBni7Th7/Te2C6hcnnhZheJmNm1z00Wx6HWMcxh/ Cfip0FCVdK2Xu/NCt/Nwc/sj5ToTIulsbPHRFgzk/NEaUsUrXwy8uW8KAHygXiaLRhzM RcldJHmfVwFXLOSK//11mN9k6ViBMTIRXR/kmpa84vKUElwTXytDiHWiJ3j5DiF5MqO7 SftfLfsGxFpeVofcywSzfAuu1+tasgRtMWcR35FuF6yi0izxNJVCDf0BnAH56DdNSK0V gZJleDNV17/a9KAOVOJ7juQ5o76QpAe5HTiZKS/2nMwuQdxx7B0wTouDSfHX02RJIsJf r6Eg== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@web.de header.s=dbaedf251592 header.b=ZQ2zimOA; spf=pass (google.com: domain of jan.kiszka@web.de designates 212.227.17.12 as permitted sender) smtp.mailfrom=jan.kiszka@web.de; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=web.de Return-Path: Received: from mout.web.de (mout.web.de. [212.227.17.12]) by gmr-mx.google.com with ESMTPS id g11si662841lfr.3.2021.09.25.00.34.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 25 Sep 2021 00:34:32 -0700 (PDT) Received-SPF: pass (google.com: domain of jan.kiszka@web.de designates 212.227.17.12 as permitted sender) client-ip=212.227.17.12; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@web.de header.s=dbaedf251592 header.b=ZQ2zimOA; spf=pass (google.com: domain of jan.kiszka@web.de designates 212.227.17.12 as permitted sender) smtp.mailfrom=jan.kiszka@web.de; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=web.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1632555271; bh=JogLpzbuz/Y2nRLBAC1UaUVU+ygbwqlzpotfb652RdM=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=ZQ2zimOARUc6ViyYXW2ObLq2fB1iZKymnI0Z7bRi66eGoQTlO2WzGVmF3R2amJsUx u2GsEbq8Bd4Ybui6LCXyUCKdL57/QVpLIcrURDGrTon+dbdTWDEOmv+WHJNFf0iZb9 yNewzlofxgTM+yCLmOZuR1LA2G9sG0TyQ5b43wSc= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from [192.168.10.10] ([88.215.84.132]) by smtp.web.de (mrweb103 [213.165.67.124]) with ESMTPSA (Nemesis) id 0MddJY-1mDSlH2rN6-00PNNt; Sat, 25 Sep 2021 09:34:31 +0200 Subject: Re: [PATCH v2 2/2] execute do_wic_image under a lock to ensure mountpoints remain mounted To: Felix Moessbauer , isar-users@googlegroups.com Cc: henning.schild@siemens.com References: <20210923131205.121363-1-felix.moessbauer@siemens.com> <20210923131205.121363-3-felix.moessbauer@siemens.com> From: Jan Kiszka Message-ID: <11ac45b6-fa31-1a3e-196e-9b823d4a83c2@web.de> Date: Sat, 25 Sep 2021 09:34:31 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <20210923131205.121363-3-felix.moessbauer@siemens.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:XMLrywsijLhaej57cht0fiATa38qyrctfKR+fV6FvIjJQjZMriO k7oiSVnG7r3KfKG10McNnMTbRchTP7PZcKlu/Asmzkdvi4askj6tH++c184V6eoLWy540QW 5PVwFgwEa1h8KjKbQKYOdiEf0v3xm8MgDvZhMtRoWtA4Ib5OFz0u6ER+LdY1mpoC66uNLFg Nc67MtxleQ7Bfu4ciD0dg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:nsnByymP6Fc=:JKKrRW+S+waq4lYcQBp96a EfKwxumryDlHCe7P8RQtdDcjJoNvijoOMY4s1oOMsLLfjtLSra/c6+g3N3NcruKC0WqDiWkZi O8ibWUEtBN5Edi5woQgXCr/HXgPn24zcv8vZoHpS9w74hIY3R1yX4e4vzo3MaIXzGQLFn8WfZ 7sQHLv5QSC6jwQV7tJJVxPLcdlQ5dtzcg9O9ZMqUgvgmtbAaDtd8F6AxpIKnq1nCC7GlTbtCv 7N4hEz+rED9rIDmmDO5GBW0HDMHiNjDA11d7AeEj037snvXbIQXtmmFSHbG0qLGkAY4noU/NN yHCu9fXzAa57GkT7sDIFvH9tevrdj8YKtroB8S5q2BBkBLFECerTXci2XhCXHAaEUQ/3viq40 hf3vmUZ2s7Yam5hO2GSohroKDvRkV5WzYHZaMGYKDVlgThvazPYoeLhRxPS67PLDo+7mvfVRC ouQ6SxzUCPe+i3K+AL/AAJcjoPWx3jU9nnoSBtsJ02Y3CjL8psTF2/MmJOBZp7tdEjDNsH6E4 c469eW+uBz9khNZfJ7dgjT+6cz6Jn85J52DwjOuEAPUyZwn6JiyD6jAnFQi5oG2TAxBOdvgGg sx7M+6h59ePn5DFDhwpA0smDnPtwySl/4swsPJaA0FhRw0ljdlalRmKdR8Xgiw3ETzgX+SSLD GX5aYbMUp0qf3cUrZupQNqtN7lWJTHoMLALZHfubxAgXZl1fiw/XNlItBw/AFIbcvLmynJdZT Y85iXCdTMz6obO5dr+nBSoQoJzp7tp7KfAlzSXmwSVpZc2s2BMQnzEFOg8AmzoKa2YnudR5lp ExrcDGqHnmvPZ7s873ZtyPLB2LY6hwAJh6mmind0W/PAj0JNGJk+lXqKcRExARHWvC3FtxGwi +UgzCSs9zIg7wEXOFeH8/k8+cbw4gqnuMd7rrID8DjFX/ijelGctpQujrjakz/d7XDLzCR6cf MC1QR/r1hiJGBHDAnO92681hsLX6+8joSOSiYxZSVb8gaUhCSu/+j5PlWpmeneZLdLKJuxB4W SuliZZWv9haBZkee7vIXvgN3cn7YjQlFEfDS5mBz5pcH3yq8H1fQ3zNRtoGJt+SOWTYSNKnGv Pb4Kke6F984NxY= X-TUID: fe27t55DbGkF On 23.09.21 15:12, Felix Moessbauer wrote: > 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. As long as we are not bookkeeping mount and umounts, it's better to avoid locking of the whole task, only synchronize mounting against competing runs, and leave umount to the cleanup handler. Also, the lock is way too broad when it is repo-anchored. Only users of the same buildchroot compete here. Jan > 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 | 34 +++++++++++++++++++++------------- > 1 file changed, 21 insertions(+), 13 deletions(-) > > diff --git a/meta/classes/wic-img.bbclass b/meta/classes/wic-img.bbclass > index d849ad9..cd97fa9 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] +=3D "${WKS_FILE_CHECKSUM}" > python do_wic_image() { > - bb.build.exec_func("generate_wic_image", d) > + lock =3D bb.utils.lockfile(d.getVar("REPO_ISAR_DIR") + "/isar.lock"= , shared=3DFalse) > + bb.build.exec_func("wic_do_mounts", d) > + try: > + bb.build.exec_func("generate_wic_image", d) > + finally: > + bb.build.exec_func("wic_undo_mounts", d) > + bb.utils.unlockfile(lock) > bb.build.exec_func("check_for_wic_warnings", d) > } > 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} ${BITBAKEDI= R}; do > mkdir -p ${BUILDCHROOT_DIR}/$dir > if ! mountpoint ${BUILDCHROOT_DIR}/$dir >/dev/null 2>&1; th= en > mount --bind --make-private $dir ${BUILDCHROOT_DIR}/$di= r > fi > done > - ) 9>${MOUNT_LOCKFILE} > EOSUDO > +} > + > +wic_undo_mounts() { > + sudo -s <<'EOSUDO' > + for dir in ${BBLAYERS} ${STAGING_DIR} ${SCRIPTSDIR} ${BITBAKEDI= R}; do > + if mountpoint -q ${BUILDCHROOT_DIR}/$dir; then > + umount ${BUILDCHROOT_DIR}/$dir > + fi > + done > +EOSUDO > +} > + > +generate_wic_image() { > export FAKEROOTCMD=3D${FAKEROOTCMD} > export BUILDDIR=3D${BUILDDIR} > export MTOOLS_SKIP_CHECK=3D1 > @@ -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} ${BITBAKEDI= R}; do > - if mountpoint -q ${BUILDCHROOT_DIR}/$dir; then > - umount ${BUILDCHROOT_DIR}/$dir > - fi > - done > - ) 9>${MOUNT_LOCKFILE} > -EOSUDO > } >