mbox series

[v3,0/8] Hanging mount fixes

Message ID 20241011100050.322686-1-amikan@ilbers.de
Headers show
Series Hanging mount fixes | expand

Message

Anton Mikanovich Oct. 11, 2024, 10 a.m. UTC
Consolidate the patches to address the hanging mount issues.

Addresses the following issues:

 1. Cleanup handler is called multiple times, unmounting any hanging
    mounts.

 2. Hanging mount warnings are discarded in the current setup.

 3. Incorrect asymmetric mount-umount logic inherited from buildchroot
    times.

In this series, cleanup is done in reverse /proc/mounts order to
unmount e.g. /dev/shm before /dev. This happens to work for us today
but we could perform stricter semantic ordering if necessary.

ISAR_FAIL_ON_CLEANUP=1 can be set in the environment to fail builds if
mounts are left behind. We will use this for Isar CI. The default is 0.

p1 comes from 'Additional CI improvements' series.
Patches p4-p6 come from v2 of 'Start to address umount problems' series
by Jan.
p7 comes from 'Fix leftover mounts in rootfs.bbclass' by Florian.
p2, p3 and p8 are new one.

Anton Mikanovich (4):
  CI: Do not lose output on bitbake / qemu exit
  isar-events: Unhide mounts left behind
  CI: Pass ISAR_FAIL_ON_CLEANUP from environment to bitbake
  image: Do not call rootfs_do_umounts twice

Florian Bezdeka (1):
  rootfs: Add missing umounts in rootfs_postprocess() and
    rootfs_install()

Jan Kiszka (3):
  image: Avoid breaking the build when mounts are no longer present on
    umount
  rootfs: Provide rootfs_do_umounts
  initramfs: Add missing umounts after generation

 RECIPE-API-CHANGELOG.md          | 15 ++++++++
 meta/classes/image.bbclass       | 19 ----------
 meta/classes/initramfs.bbclass   |  2 +
 meta/classes/isar-events.bbclass | 40 ++++++++++++++++----
 meta/classes/rootfs.bbclass      | 63 ++++++++++++++++++++++++++------
 testsuite/cibuilder.py           | 13 +++++--
 6 files changed, 110 insertions(+), 42 deletions(-)

Comments

Baurzhan Ismagulov Oct. 15, 2024, 9:23 a.m. UTC | #1
On 2024-10-11 13:00, Anton Mikanovich wrote:
> Consolidate the patches to address the hanging mount issues.
> 
> Addresses the following issues:
> 
>  1. Cleanup handler is called multiple times, unmounting any hanging
>     mounts.
> 
>  2. Hanging mount warnings are discarded in the current setup.
> 
>  3. Incorrect asymmetric mount-umount logic inherited from buildchroot
>     times.

The cases being fixed are covered with this patchset in Isar CI as well. There
are open cases of failed tasks and aborted builds which we'll be covering in
the patchsets to follow. If there are no objections, we'd like to apply this
tomorrow.

With kind regards,
Baurzhan
Uladzimir Bely Oct. 16, 2024, 4:06 p.m. UTC | #2
On Fri, 2024-10-11 at 13:00 +0300, Anton Mikanovich wrote:
> Consolidate the patches to address the hanging mount issues.
> 
> Addresses the following issues:
> 
>  1. Cleanup handler is called multiple times, unmounting any hanging
>     mounts.
> 
>  2. Hanging mount warnings are discarded in the current setup.
> 
>  3. Incorrect asymmetric mount-umount logic inherited from
> buildchroot
>     times.
> 
> In this series, cleanup is done in reverse /proc/mounts order to
> unmount e.g. /dev/shm before /dev. This happens to work for us today
> but we could perform stricter semantic ordering if necessary.
> 
> ISAR_FAIL_ON_CLEANUP=1 can be set in the environment to fail builds
> if
> mounts are left behind. We will use this for Isar CI. The default is
> 0.
> 
> p1 comes from 'Additional CI improvements' series.
> Patches p4-p6 come from v2 of 'Start to address umount problems'
> series
> by Jan.
> p7 comes from 'Fix leftover mounts in rootfs.bbclass' by Florian.
> p2, p3 and p8 are new one.
> 
> Anton Mikanovich (4):
>   CI: Do not lose output on bitbake / qemu exit
>   isar-events: Unhide mounts left behind
>   CI: Pass ISAR_FAIL_ON_CLEANUP from environment to bitbake
>   image: Do not call rootfs_do_umounts twice
> 
> Florian Bezdeka (1):
>   rootfs: Add missing umounts in rootfs_postprocess() and
>     rootfs_install()
> 
> Jan Kiszka (3):
>   image: Avoid breaking the build when mounts are no longer present
> on
>     umount
>   rootfs: Provide rootfs_do_umounts
>   initramfs: Add missing umounts after generation
> 
>  RECIPE-API-CHANGELOG.md          | 15 ++++++++
>  meta/classes/image.bbclass       | 19 ----------
>  meta/classes/initramfs.bbclass   |  2 +
>  meta/classes/isar-events.bbclass | 40 ++++++++++++++++----
>  meta/classes/rootfs.bbclass      | 63 ++++++++++++++++++++++++++----
> --
>  testsuite/cibuilder.py           | 13 +++++--
>  6 files changed, 110 insertions(+), 42 deletions(-)
> 
> -- 
> 2.34.1
> 

Applied to next, thanks all.