From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6997052726746021888 X-Received: by 2002:a05:600c:350c:: with SMTP id h12mr15038353wmq.88.1629714259809; Mon, 23 Aug 2021 03:24:19 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a7b:c4c3:: with SMTP id g3ls6974002wmk.0.gmail; Mon, 23 Aug 2021 03:24:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxFBWBcemE307w1VTpRp+XrP/zSUSVsdLx1QohW0aFz/DwcUWf6J6lU7NRSQnZ7uPCVIfmP X-Received: by 2002:a7b:c350:: with SMTP id l16mr15649138wmj.151.1629714258907; Mon, 23 Aug 2021 03:24:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629714258; cv=none; d=google.com; s=arc-20160816; b=g4A6is8RtrXv3beAwAnqjJ2yPgT2xA47oR/Gcm+gB68fcE5NvBVuz+4+gRl92H4Ah2 bb74VtZZOR+ZrlLbc/J8Y/dK3YWyNb/iv7QIjYwR6WuKvslo0w8PA5Cgze96RfLfBRj2 tvcmKq1Y3IevcP6oL8eEdGAsDdXVtNFai95hzZ+vYYIT/ZQl/e06jJB0xipcXYB7KzLH IhzsOpUenNcEZNMRZd+dFjKe0Z7tIv6Un/LRblbj6wdo7bz7hwKwaYuIwArTBYEFMB1X 50lUBPeoqeCaiDE0+dRka4gg2gsZ59YUh2vPm+JekVCDM5P3zae3+58+xT7CQgBnMwRk E8LQ== 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:date:subject:cc:to:from; bh=HyZaFdXMgxyeU8vd2Esw4WWwauf1Cp/fSwoxIYEOwAc=; b=Q3f7GZAUHhb9g0HSjz9JhGqPCcmVgtpIUrINA2PRqwHpPjl5F/nldeLdErAME8LXWB rqhrgCn/GqnwbXnefX941Jbhf0cEOhdUhwovOLKpfJUqsgiShHpjeNk1mpCwUT4oY/R9 zcojK/xScU0KiDT74QthQHibvFpNr9sIT125VIcD7Il4N+/+oLbHdQrXOjU8X0R1gdxr rzXnUFCvZk8C/81KIDUvYbocT9VCtPeHLRfYKv477kZ9kdOc2D5jS0EQH0zylW3lT7/R WrrNuYhIJfsgs/fXquCiePCkHliGxoGy4nLgkHpF6/ewWNzl74+HXkm15tBkYGhOwoQg 2RiQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id 132si238387wmb.2.2021.08.23.03.24.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 23 Aug 2021 03:24:18 -0700 (PDT) Received-SPF: pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Received: from localhost.localdomain (mm-31-27-214-37.mgts.dynamic.pppoe.byfly.by [37.214.27.31] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 17NANo5i001835 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 23 Aug 2021 12:24:18 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH v6 5/6] Revert "rootfs: Unmount rootfs mounts if not needed" Date: Mon, 23 Aug 2021 13:23:41 +0300 Message-Id: <20210823102342.3674387-6-amikan@ilbers.de> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210823102342.3674387-1-amikan@ilbers.de> References: <20210823102342.3674387-1-amikan@ilbers.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: mOfX8v33K4Wn Reference counter protected per-task resource unmounting can't yet be used because some /dev and /sys mounts can stay still locked even after task finish in CI environment on high jobs load. This leads to the following error: Execution of 'buildchroot-host/1.0-r0/temp/run.rootfs_undo_mounts.65491' failed with exit code 32: umount: buildchroot-host/1.0-r0/rootfs/sys/fs/cgroup: target is busy. We should revert commit e438c8f62b9aacb2c9d5120e93f81637f091a83c until the reason of this issue will be found and fixed. Signed-off-by: Anton Mikanovich --- meta/classes/image.bbclass | 15 ++++++++ meta/classes/initramfs.bbclass | 2 -- meta/classes/rootfs.bbclass | 63 ++++------------------------------ 3 files changed, 22 insertions(+), 58 deletions(-) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 12d1616..9f9b3f8 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -199,6 +199,21 @@ do_rootfs_finalize() { find "${ROOTFSDIR}/usr/bin" \ -maxdepth 1 -name 'qemu-*-static' -type f -delete + mountpoint -q '${ROOTFSDIR}/isar-apt' && \ + umount -l ${ROOTFSDIR}/isar-apt + rmdir --ignore-fail-on-non-empty ${ROOTFSDIR}/isar-apt + + mountpoint -q '${ROOTFSDIR}/base-apt' && \ + umount -l ${ROOTFSDIR}/base-apt + rmdir --ignore-fail-on-non-empty ${ROOTFSDIR}/base-apt + + mountpoint -q '${ROOTFSDIR}/dev' && \ + umount -l ${ROOTFSDIR}/dev + mountpoint -q '${ROOTFSDIR}/sys' && \ + umount -l ${ROOTFSDIR}/proc + mountpoint -q '${ROOTFSDIR}/sys' && \ + umount -l ${ROOTFSDIR}/sys + rm -f "${ROOTFSDIR}/etc/apt/apt.conf.d/55isar-fallback.conf" rm -f "${ROOTFSDIR}/etc/apt/sources.list.d/isar-apt.list" diff --git a/meta/classes/initramfs.bbclass b/meta/classes/initramfs.bbclass index e895afa..10a642b 100644 --- a/meta/classes/initramfs.bbclass +++ b/meta/classes/initramfs.bbclass @@ -38,7 +38,5 @@ do_generate_initramfs() { rm -rf "${INITRAMFS_IMAGE_FILE}" cp "${INITRAMFS_ROOTFS}/initrd.img" "${INITRAMFS_IMAGE_FILE}" - - rootfs_undo_mounts } addtask generate_initramfs after do_rootfs before do_build diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass index 6ce2cf9..f9151c5 100644 --- a/meta/classes/rootfs.bbclass +++ b/meta/classes/rootfs.bbclass @@ -26,23 +26,9 @@ export LANG = "C" export LANGUAGE = "C" export LC_ALL = "C" -IMAGE_MOUNT_LOCKFILE = "${ROOTFSDIR}.lock" - rootfs_do_mounts[weight] = "3" rootfs_do_mounts() { sudo -s <<'EOSUDO' - ( flock 9 - set -e - - count="1" - if [ -f '${ROOTFSDIR}.mount' ]; then - count=$(($(cat '${ROOTFSDIR}.mount') + 1)) - fi - echo $count > '${ROOTFSDIR}.mount' - if [ $count -gt 1 ]; then - exit 0 - fi - mountpoint -q '${ROOTFSDIR}/dev' || \ mount --rbind /dev '${ROOTFSDIR}/dev' mount --make-rslave '${ROOTFSDIR}/dev' @@ -70,40 +56,6 @@ rootfs_do_mounts() { mount --bind '${REPO_BASE_DIR}' '${ROOTFSDIR}/base-apt' fi - ) 9>'${IMAGE_MOUNT_LOCKFILE}' -EOSUDO -} - -rootfs_undo_mounts() { - sudo -s <<'EOSUDO' - ( flock 9 - set -e - - if [ -f '${ROOTFSDIR}.mount' ]; then - count=$(($(cat '${ROOTFSDIR}.mount') - 1)) - echo $count > '${ROOTFSDIR}.mount' - else - echo "Could not find mount counter" - exit 1 - fi - if [ $count -gt 0 ]; then - exit 0 - fi - rm ${ROOTFSDIR}.mount - - mountpoint -q '${ROOTFSDIR}/base-apt' && \ - umount ${ROOTFSDIR}/base-apt && \ - rmdir --ignore-fail-on-non-empty ${ROOTFSDIR}/base-apt - mountpoint -q '${ROOTFSDIR}/isar-apt' && \ - umount ${ROOTFSDIR}/isar-apt && \ - rmdir --ignore-fail-on-non-empty ${ROOTFSDIR}/isar-apt - mountpoint -q '${ROOTFSDIR}/sys' && \ - umount -R ${ROOTFSDIR}/sys - mountpoint -q '${ROOTFSDIR}/proc' && \ - umount -R ${ROOTFSDIR}/proc - mountpoint -q '${ROOTFSDIR}/dev' && \ - umount -R ${ROOTFSDIR}/dev - ) 9>'${IMAGE_MOUNT_LOCKFILE}' EOSUDO } @@ -207,7 +159,7 @@ python do_rootfs_install() { # Mount after configure commands, so that they have time to copy # 'isar-apt' (sdkchroot): - cmds = ['rootfs_prepare'] + configure_cmds + ['rootfs_do_mounts'] + install_cmds + ['rootfs_undo_mounts'] + cmds = ['rootfs_prepare'] + configure_cmds + ['rootfs_do_mounts'] + install_cmds # NOTE: The weights specify how long each task takes in seconds and are used # by the MultiStageProgressReporter to render a progress bar for this task. @@ -289,13 +241,12 @@ python do_rootfs_postprocess() { progress_reporter.update(0) cmds = d.getVar("ROOTFS_POSTPROCESS_COMMAND") - if cmds is not None and cmds.strip(): - cmds = cmds.split() - for i, cmd in enumerate(cmds): - bb.build.exec_func(cmd, d) - progress_reporter.update(int(i / len(cmds) * 100)) - - bb.build.exec_func('rootfs_undo_mounts', d) + if cmds is None or not cmds.strip(): + return + cmds = cmds.split() + for i, cmd in enumerate(cmds): + bb.build.exec_func(cmd, d) + progress_reporter.update(int(i / len(cmds) * 100)) } addtask rootfs_postprocess before do_rootfs -- 2.25.1