diff mbox series

[meta-filesystems] xfstests: fix make install race condition

Message ID 20240208234026.3515183-1-martin.jansa@gmail.com
State Accepted
Headers show
Series [meta-filesystems] xfstests: fix make install race condition | expand

Commit Message

Martin Jansa Feb. 8, 2024, 11:40 p.m. UTC
* sometimes make install was failing with:
  cp: cannot stat 'group.list': No such file or directory
  and bunch of non-fatal messages:
  mv: failed to preserve ownership for 'group.list': Invalid argument

* this was when tools/mkgroupfile did
  mv -f "$new_groups" "$groupfile"
  overwritting the group.list file while install-sh was already
  copying it to output

* in the end easily reproducible by
  1) removing tests/*/group.list before each make install
  2) adding some sleep in mkgroupfile before the mv call

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
---
 ...ake-sure-group.list-DIRT-exists-befo.patch | 239 ++++++++++++++++++
 .../xfstests/xfstests_2024.01.14.bb           |  10 +-
 2 files changed, 242 insertions(+), 7 deletions(-)
 create mode 100644 meta-filesystems/recipes-utils/xfstests/xfstests/0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch

Comments

Khem Raj Feb. 9, 2024, 12:32 a.m. UTC | #1
Thanks for fixing this. It has been hitting my CI often enough but still
intermittently, these kind of issues are hard to deal with so extra kudos !

On Thu, Feb 8, 2024 at 3:40 PM Martin Jansa <martin.jansa@gmail.com> wrote:

> * sometimes make install was failing with:
>   cp: cannot stat 'group.list': No such file or directory
>   and bunch of non-fatal messages:
>   mv: failed to preserve ownership for 'group.list': Invalid argument
>
> * this was when tools/mkgroupfile did
>   mv -f "$new_groups" "$groupfile"
>   overwritting the group.list file while install-sh was already
>   copying it to output
>
> * in the end easily reproducible by
>   1) removing tests/*/group.list before each make install
>   2) adding some sleep in mkgroupfile before the mv call
>
> Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
> ---
>  ...ake-sure-group.list-DIRT-exists-befo.patch | 239 ++++++++++++++++++
>  .../xfstests/xfstests_2024.01.14.bb           |  10 +-
>  2 files changed, 242 insertions(+), 7 deletions(-)
>  create mode 100644
> meta-filesystems/recipes-utils/xfstests/xfstests/0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch
>
> diff --git
> a/meta-filesystems/recipes-utils/xfstests/xfstests/0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch
> b/meta-filesystems/recipes-utils/xfstests/xfstests/0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch
> new file mode 100644
> index 0000000000..5e8bf0c606
> --- /dev/null
> +++
> b/meta-filesystems/recipes-utils/xfstests/xfstests/0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch
> @@ -0,0 +1,239 @@
> +From b30d5690d7245aa8bd5ca2896e629e62ec97afda Mon Sep 17 00:00:00 2001
> +From: Martin Jansa <martin.jansa@gmail.com>
> +Date: Thu, 8 Feb 2024 23:01:36 +0100
> +Subject: [PATCH] tests/*/Makefile: make sure group.list DIRT exists before
> + install
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +* sometimes make install was failing with:
> +  cp: cannot stat 'group.list': No such file or directory
> +  and bunch of non-fatal messages:
> +  mv: failed to preserve ownership for 'group.list': Invalid argument
> +
> +* this was when tools/mkgroupfile did
> +  mv -f "$new_groups" "$groupfile"
> +  overwritting the group.list file while install-sh was already
> +  copying it to output
> +
> +* in the end easily reproducible by
> +  1) removing tests/*/group.list before each make install
> +  2) adding some sleep in mkgroupfile before the mv call
> +
> +Upstream-Status: Submitted [
> https://lore.kernel.org/fstests/20240208225241.644701-1-martin.jansa@gmail.com/
> ]
> +
> +Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
> +---
> + tests/btrfs/Makefile    | 2 +-
> + tests/ceph/Makefile     | 2 +-
> + tests/cifs/Makefile     | 2 +-
> + tests/ext4/Makefile     | 2 +-
> + tests/f2fs/Makefile     | 2 +-
> + tests/generic/Makefile  | 2 +-
> + tests/nfs/Makefile      | 2 +-
> + tests/ocfs2/Makefile    | 2 +-
> + tests/overlay/Makefile  | 2 +-
> + tests/perf/Makefile     | 2 +-
> + tests/selftest/Makefile | 2 +-
> + tests/shared/Makefile   | 2 +-
> + tests/tmpfs/Makefile    | 2 +-
> + tests/udf/Makefile      | 2 +-
> + tests/xfs/Makefile      | 2 +-
> + 15 files changed, 15 insertions(+), 15 deletions(-)
> +
> +diff --git a/tests/btrfs/Makefile b/tests/btrfs/Makefile
> +index 1b72a1a1..6d9995b4 100644
> +--- a/tests/btrfs/Makefile
> ++++ b/tests/btrfs/Makefile
> +@@ -14,7 +14,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> +diff --git a/tests/ceph/Makefile b/tests/ceph/Makefile
> +index 2761e1e9..5f24d518 100644
> +--- a/tests/ceph/Makefile
> ++++ b/tests/ceph/Makefile
> +@@ -12,7 +12,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> +diff --git a/tests/cifs/Makefile b/tests/cifs/Makefile
> +index 62c48935..0b89a01d 100644
> +--- a/tests/cifs/Makefile
> ++++ b/tests/cifs/Makefile
> +@@ -14,7 +14,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> +diff --git a/tests/ext4/Makefile b/tests/ext4/Makefile
> +index a2a0d561..296e3850 100644
> +--- a/tests/ext4/Makefile
> ++++ b/tests/ext4/Makefile
> +@@ -14,7 +14,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> +diff --git a/tests/f2fs/Makefile b/tests/f2fs/Makefile
> +index 9d1ed3c6..0a90b465 100644
> +--- a/tests/f2fs/Makefile
> ++++ b/tests/f2fs/Makefile
> +@@ -15,7 +15,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> +diff --git a/tests/generic/Makefile b/tests/generic/Makefile
> +index b464b22b..d6ed3e55 100644
> +--- a/tests/generic/Makefile
> ++++ b/tests/generic/Makefile
> +@@ -14,7 +14,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> +diff --git a/tests/nfs/Makefile b/tests/nfs/Makefile
> +index 128d2a3a..51590b5c 100644
> +--- a/tests/nfs/Makefile
> ++++ b/tests/nfs/Makefile
> +@@ -14,7 +14,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> +diff --git a/tests/ocfs2/Makefile b/tests/ocfs2/Makefile
> +index 260ad31b..17e01bf3 100644
> +--- a/tests/ocfs2/Makefile
> ++++ b/tests/ocfs2/Makefile
> +@@ -14,7 +14,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> +diff --git a/tests/overlay/Makefile b/tests/overlay/Makefile
> +index 2785b94d..c71e78d6 100644
> +--- a/tests/overlay/Makefile
> ++++ b/tests/overlay/Makefile
> +@@ -14,7 +14,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> +diff --git a/tests/perf/Makefile b/tests/perf/Makefile
> +index 0c74ba39..d72c04d9 100644
> +--- a/tests/perf/Makefile
> ++++ b/tests/perf/Makefile
> +@@ -14,7 +14,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> +diff --git a/tests/selftest/Makefile b/tests/selftest/Makefile
> +index 3ddfca37..cabc35a9 100644
> +--- a/tests/selftest/Makefile
> ++++ b/tests/selftest/Makefile
> +@@ -14,7 +14,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> +diff --git a/tests/shared/Makefile b/tests/shared/Makefile
> +index f3128714..2e6aa718 100644
> +--- a/tests/shared/Makefile
> ++++ b/tests/shared/Makefile
> +@@ -14,7 +14,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> +diff --git a/tests/tmpfs/Makefile b/tests/tmpfs/Makefile
> +index 46544313..46b62dad 100644
> +--- a/tests/tmpfs/Makefile
> ++++ b/tests/tmpfs/Makefile
> +@@ -14,7 +14,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> +diff --git a/tests/udf/Makefile b/tests/udf/Makefile
> +index ed4434f0..feda69a6 100644
> +--- a/tests/udf/Makefile
> ++++ b/tests/udf/Makefile
> +@@ -14,7 +14,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> +diff --git a/tests/xfs/Makefile b/tests/xfs/Makefile
> +index 5f413e67..6bfafdb1 100644
> +--- a/tests/xfs/Makefile
> ++++ b/tests/xfs/Makefile
> +@@ -14,7 +14,7 @@ default: $(DIRT)
> +
> + include $(BUILDRULES)
> +
> +-install:
> ++install: default
> +       $(INSTALL) -m 755 -d $(TARGET_DIR)
> +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
> +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
> diff --git a/meta-filesystems/recipes-utils/xfstests/
> xfstests_2024.01.14.bb b/meta-filesystems/recipes-utils/xfstests/
> xfstests_2024.01.14.bb
> index 711637a70d..5ff1914569 100644
> --- a/meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb
> +++ b/meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb
> @@ -7,8 +7,9 @@ SRCREV_FORMAT = "xfstests_unionmount"
>
>  SRC_URI = "git://
> git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git;branch=master;name=xfstests
> \
>             git://
> github.com/amir73il/unionmount-testsuite.git;branch=master;protocol=https;name=unionmount;destsuffix=unionmount-testsuite
> \
> -
>  file://0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch \
>
> file://0001-add-missing-FTW_-macros-when-not-available-in-libc.patch \
> +
>  file://0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch \
> +
>  file://0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch \
>             "
>
>  SRCREV_xfstests = "c46ca4d1f6c0c45f9a3ea18bc31ba5ae89e02c70"
> @@ -51,12 +52,7 @@ do_configure:prepend() {
>      cp -a ${S}/include/install-sh .
>  }
>
> -# Not sure if this is needed, but with old install-sh it was sometimes
> failing with:
> -# cp: cannot stat 'group.list': No such file or directory
> -# http://errors.yoctoproject.org/Errors/Details/752404/
> -# PARALLEL_MAKEINST = "-j1"
> -
> -do_install:prepend() {
> +do_install() {
>      # otherwise install-sh duplicates DESTDIR prefix
>      export DIST_ROOT="/" DIST_MANIFEST="" DESTDIR="${D}"
>      oe_runmake install
> --
> 2.43.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#108674):
> https://lists.openembedded.org/g/openembedded-devel/message/108674
> Mute This Topic: https://lists.openembedded.org/mt/104250063/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Vyacheslav Yurkov Feb. 9, 2024, 1:29 p.m. UTC | #2
More thanks from my side too!

Slava

On 09.02.2024 01:32, Khem Raj wrote:
> Thanks for fixing this. It has been hitting my CI often enough but 
> still intermittently, these kind of issues are hard to deal with so 
> extra kudos !
>
> On Thu, Feb 8, 2024 at 3:40 PM Martin Jansa <martin.jansa@gmail.com> 
> wrote:
>
>     * sometimes make install was failing with:
>       cp: cannot stat 'group.list': No such file or directory
>       and bunch of non-fatal messages:
>       mv: failed to preserve ownership for 'group.list': Invalid argument
>
>     * this was when tools/mkgroupfile did
>       mv -f "$new_groups" "$groupfile"
>       overwritting the group.list file while install-sh was already
>       copying it to output
>
>     * in the end easily reproducible by
>       1) removing tests/*/group.list before each make install
>       2) adding some sleep in mkgroupfile before the mv call
>
>     Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
>     ---
>      ...ake-sure-group.list-DIRT-exists-befo.patch | 239
>     ++++++++++++++++++
>      .../xfstests/xfstests_2024.01.14.bb
>     <http://xfstests_2024.01.14.bb>          |  10 +-
>      2 files changed, 242 insertions(+), 7 deletions(-)
>      create mode 100644
>     meta-filesystems/recipes-utils/xfstests/xfstests/0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch
>
>     diff --git
>     a/meta-filesystems/recipes-utils/xfstests/xfstests/0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch
>     b/meta-filesystems/recipes-utils/xfstests/xfstests/0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch
>     new file mode 100644
>     index 0000000000..5e8bf0c606
>     --- /dev/null
>     +++
>     b/meta-filesystems/recipes-utils/xfstests/xfstests/0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch
>     @@ -0,0 +1,239 @@
>     +From b30d5690d7245aa8bd5ca2896e629e62ec97afda Mon Sep 17 00:00:00
>     2001
>     +From: Martin Jansa <martin.jansa@gmail.com>
>     +Date: Thu, 8 Feb 2024 23:01:36 +0100
>     +Subject: [PATCH] tests/*/Makefile: make sure group.list DIRT
>     exists before
>     + install
>     +MIME-Version: 1.0
>     +Content-Type: text/plain; charset=UTF-8
>     +Content-Transfer-Encoding: 8bit
>     +
>     +* sometimes make install was failing with:
>     +  cp: cannot stat 'group.list': No such file or directory
>     +  and bunch of non-fatal messages:
>     +  mv: failed to preserve ownership for 'group.list': Invalid argument
>     +
>     +* this was when tools/mkgroupfile did
>     +  mv -f "$new_groups" "$groupfile"
>     +  overwritting the group.list file while install-sh was already
>     +  copying it to output
>     +
>     +* in the end easily reproducible by
>     +  1) removing tests/*/group.list before each make install
>     +  2) adding some sleep in mkgroupfile before the mv call
>     +
>     +Upstream-Status: Submitted
>     [https://lore.kernel.org/fstests/20240208225241.644701-1-martin.jansa@gmail.com/]
>     +
>     +Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
>     +---
>     + tests/btrfs/Makefile    | 2 +-
>     + tests/ceph/Makefile     | 2 +-
>     + tests/cifs/Makefile     | 2 +-
>     + tests/ext4/Makefile     | 2 +-
>     + tests/f2fs/Makefile     | 2 +-
>     + tests/generic/Makefile  | 2 +-
>     + tests/nfs/Makefile      | 2 +-
>     + tests/ocfs2/Makefile    | 2 +-
>     + tests/overlay/Makefile  | 2 +-
>     + tests/perf/Makefile     | 2 +-
>     + tests/selftest/Makefile | 2 +-
>     + tests/shared/Makefile   | 2 +-
>     + tests/tmpfs/Makefile    | 2 +-
>     + tests/udf/Makefile      | 2 +-
>     + tests/xfs/Makefile      | 2 +-
>     + 15 files changed, 15 insertions(+), 15 deletions(-)
>     +
>     +diff --git a/tests/btrfs/Makefile b/tests/btrfs/Makefile
>     +index 1b72a1a1..6d9995b4 100644
>     +--- a/tests/btrfs/Makefile
>     ++++ b/tests/btrfs/Makefile
>     +@@ -14,7 +14,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     +diff --git a/tests/ceph/Makefile b/tests/ceph/Makefile
>     +index 2761e1e9..5f24d518 100644
>     +--- a/tests/ceph/Makefile
>     ++++ b/tests/ceph/Makefile
>     +@@ -12,7 +12,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     +diff --git a/tests/cifs/Makefile b/tests/cifs/Makefile
>     +index 62c48935..0b89a01d 100644
>     +--- a/tests/cifs/Makefile
>     ++++ b/tests/cifs/Makefile
>     +@@ -14,7 +14,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     +diff --git a/tests/ext4/Makefile b/tests/ext4/Makefile
>     +index a2a0d561..296e3850 100644
>     +--- a/tests/ext4/Makefile
>     ++++ b/tests/ext4/Makefile
>     +@@ -14,7 +14,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     +diff --git a/tests/f2fs/Makefile b/tests/f2fs/Makefile
>     +index 9d1ed3c6..0a90b465 100644
>     +--- a/tests/f2fs/Makefile
>     ++++ b/tests/f2fs/Makefile
>     +@@ -15,7 +15,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     +diff --git a/tests/generic/Makefile b/tests/generic/Makefile
>     +index b464b22b..d6ed3e55 100644
>     +--- a/tests/generic/Makefile
>     ++++ b/tests/generic/Makefile
>     +@@ -14,7 +14,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     +diff --git a/tests/nfs/Makefile b/tests/nfs/Makefile
>     +index 128d2a3a..51590b5c 100644
>     +--- a/tests/nfs/Makefile
>     ++++ b/tests/nfs/Makefile
>     +@@ -14,7 +14,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     +diff --git a/tests/ocfs2/Makefile b/tests/ocfs2/Makefile
>     +index 260ad31b..17e01bf3 100644
>     +--- a/tests/ocfs2/Makefile
>     ++++ b/tests/ocfs2/Makefile
>     +@@ -14,7 +14,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     +diff --git a/tests/overlay/Makefile b/tests/overlay/Makefile
>     +index 2785b94d..c71e78d6 100644
>     +--- a/tests/overlay/Makefile
>     ++++ b/tests/overlay/Makefile
>     +@@ -14,7 +14,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     +diff --git a/tests/perf/Makefile b/tests/perf/Makefile
>     +index 0c74ba39..d72c04d9 100644
>     +--- a/tests/perf/Makefile
>     ++++ b/tests/perf/Makefile
>     +@@ -14,7 +14,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     +diff --git a/tests/selftest/Makefile b/tests/selftest/Makefile
>     +index 3ddfca37..cabc35a9 100644
>     +--- a/tests/selftest/Makefile
>     ++++ b/tests/selftest/Makefile
>     +@@ -14,7 +14,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     +diff --git a/tests/shared/Makefile b/tests/shared/Makefile
>     +index f3128714..2e6aa718 100644
>     +--- a/tests/shared/Makefile
>     ++++ b/tests/shared/Makefile
>     +@@ -14,7 +14,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     +diff --git a/tests/tmpfs/Makefile b/tests/tmpfs/Makefile
>     +index 46544313..46b62dad 100644
>     +--- a/tests/tmpfs/Makefile
>     ++++ b/tests/tmpfs/Makefile
>     +@@ -14,7 +14,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     +diff --git a/tests/udf/Makefile b/tests/udf/Makefile
>     +index ed4434f0..feda69a6 100644
>     +--- a/tests/udf/Makefile
>     ++++ b/tests/udf/Makefile
>     +@@ -14,7 +14,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     +diff --git a/tests/xfs/Makefile b/tests/xfs/Makefile
>     +index 5f413e67..6bfafdb1 100644
>     +--- a/tests/xfs/Makefile
>     ++++ b/tests/xfs/Makefile
>     +@@ -14,7 +14,7 @@ default: $(DIRT)
>     +
>     + include $(BUILDRULES)
>     +
>     +-install:
>     ++install: default
>     +       $(INSTALL) -m 755 -d $(TARGET_DIR)
>     +       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
>     +       $(INSTALL) -m 644 group.list $(TARGET_DIR)
>     diff --git
>     a/meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb
>     <http://xfstests_2024.01.14.bb>
>     b/meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb
>     <http://xfstests_2024.01.14.bb>
>     index 711637a70d..5ff1914569 100644
>     ---
>     a/meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb
>     <http://xfstests_2024.01.14.bb>
>     +++
>     b/meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb
>     <http://xfstests_2024.01.14.bb>
>     @@ -7,8 +7,9 @@ SRCREV_FORMAT = "xfstests_unionmount"
>
>      SRC_URI =
>     "git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git;branch=master;name=xfstests
>     <http://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git;branch=master;name=xfstests>
>     \
>     git://github.com/amir73il/unionmount-testsuite.git;branch=master;protocol=https;name=unionmount;destsuffix=unionmount-testsuite
>     <http://github.com/amir73il/unionmount-testsuite.git;branch=master;protocol=https;name=unionmount;destsuffix=unionmount-testsuite>
>     \
>     -
>     file://0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch
>     \
>     file://0001-add-missing-FTW_-macros-when-not-available-in-libc.patch \
>     +
>     file://0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch
>     \
>     +
>     file://0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch
>     \
>                 "
>
>      SRCREV_xfstests = "c46ca4d1f6c0c45f9a3ea18bc31ba5ae89e02c70"
>     @@ -51,12 +52,7 @@ do_configure:prepend() {
>          cp -a ${S}/include/install-sh .
>      }
>
>     -# Not sure if this is needed, but with old install-sh it was
>     sometimes failing with:
>     -# cp: cannot stat 'group.list': No such file or directory
>     -# http://errors.yoctoproject.org/Errors/Details/752404/
>     -# PARALLEL_MAKEINST = "-j1"
>     -
>     -do_install:prepend() {
>     +do_install() {
>          # otherwise install-sh duplicates DESTDIR prefix
>          export DIST_ROOT="/" DIST_MANIFEST="" DESTDIR="${D}"
>          oe_runmake install
>     -- 
>     2.43.0
>
>
>     -=-=-=-=-=-=-=-=-=-=-=-
>     Links: You receive all messages sent to this group.
>     View/Reply Online (#108674):
>     https://lists.openembedded.org/g/openembedded-devel/message/108674
>     Mute This Topic: https://lists.openembedded.org/mt/104250063/1997914
>     Group Owner: openembedded-devel+owner@lists.openembedded.org
>     <mailto:openembedded-devel%2Bowner@lists.openembedded.org>
>     Unsubscribe:
>     https://lists.openembedded.org/g/openembedded-devel/unsub
>     [raj.khem@gmail.com]
>     -=-=-=-=-=-=-=-=-=-=-=-
>
diff mbox series

Patch

diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests/0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch b/meta-filesystems/recipes-utils/xfstests/xfstests/0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch
new file mode 100644
index 0000000000..5e8bf0c606
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfstests/xfstests/0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch
@@ -0,0 +1,239 @@ 
+From b30d5690d7245aa8bd5ca2896e629e62ec97afda Mon Sep 17 00:00:00 2001
+From: Martin Jansa <martin.jansa@gmail.com>
+Date: Thu, 8 Feb 2024 23:01:36 +0100
+Subject: [PATCH] tests/*/Makefile: make sure group.list DIRT exists before
+ install
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* sometimes make install was failing with:
+  cp: cannot stat 'group.list': No such file or directory
+  and bunch of non-fatal messages:
+  mv: failed to preserve ownership for 'group.list': Invalid argument
+
+* this was when tools/mkgroupfile did
+  mv -f "$new_groups" "$groupfile"
+  overwritting the group.list file while install-sh was already
+  copying it to output
+
+* in the end easily reproducible by
+  1) removing tests/*/group.list before each make install
+  2) adding some sleep in mkgroupfile before the mv call
+
+Upstream-Status: Submitted [https://lore.kernel.org/fstests/20240208225241.644701-1-martin.jansa@gmail.com/]
+
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+---
+ tests/btrfs/Makefile    | 2 +-
+ tests/ceph/Makefile     | 2 +-
+ tests/cifs/Makefile     | 2 +-
+ tests/ext4/Makefile     | 2 +-
+ tests/f2fs/Makefile     | 2 +-
+ tests/generic/Makefile  | 2 +-
+ tests/nfs/Makefile      | 2 +-
+ tests/ocfs2/Makefile    | 2 +-
+ tests/overlay/Makefile  | 2 +-
+ tests/perf/Makefile     | 2 +-
+ tests/selftest/Makefile | 2 +-
+ tests/shared/Makefile   | 2 +-
+ tests/tmpfs/Makefile    | 2 +-
+ tests/udf/Makefile      | 2 +-
+ tests/xfs/Makefile      | 2 +-
+ 15 files changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/tests/btrfs/Makefile b/tests/btrfs/Makefile
+index 1b72a1a1..6d9995b4 100644
+--- a/tests/btrfs/Makefile
++++ b/tests/btrfs/Makefile
+@@ -14,7 +14,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
+diff --git a/tests/ceph/Makefile b/tests/ceph/Makefile
+index 2761e1e9..5f24d518 100644
+--- a/tests/ceph/Makefile
++++ b/tests/ceph/Makefile
+@@ -12,7 +12,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
+diff --git a/tests/cifs/Makefile b/tests/cifs/Makefile
+index 62c48935..0b89a01d 100644
+--- a/tests/cifs/Makefile
++++ b/tests/cifs/Makefile
+@@ -14,7 +14,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
+diff --git a/tests/ext4/Makefile b/tests/ext4/Makefile
+index a2a0d561..296e3850 100644
+--- a/tests/ext4/Makefile
++++ b/tests/ext4/Makefile
+@@ -14,7 +14,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
+diff --git a/tests/f2fs/Makefile b/tests/f2fs/Makefile
+index 9d1ed3c6..0a90b465 100644
+--- a/tests/f2fs/Makefile
++++ b/tests/f2fs/Makefile
+@@ -15,7 +15,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
+diff --git a/tests/generic/Makefile b/tests/generic/Makefile
+index b464b22b..d6ed3e55 100644
+--- a/tests/generic/Makefile
++++ b/tests/generic/Makefile
+@@ -14,7 +14,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
+diff --git a/tests/nfs/Makefile b/tests/nfs/Makefile
+index 128d2a3a..51590b5c 100644
+--- a/tests/nfs/Makefile
++++ b/tests/nfs/Makefile
+@@ -14,7 +14,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
+diff --git a/tests/ocfs2/Makefile b/tests/ocfs2/Makefile
+index 260ad31b..17e01bf3 100644
+--- a/tests/ocfs2/Makefile
++++ b/tests/ocfs2/Makefile
+@@ -14,7 +14,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
+diff --git a/tests/overlay/Makefile b/tests/overlay/Makefile
+index 2785b94d..c71e78d6 100644
+--- a/tests/overlay/Makefile
++++ b/tests/overlay/Makefile
+@@ -14,7 +14,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
+diff --git a/tests/perf/Makefile b/tests/perf/Makefile
+index 0c74ba39..d72c04d9 100644
+--- a/tests/perf/Makefile
++++ b/tests/perf/Makefile
+@@ -14,7 +14,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
+diff --git a/tests/selftest/Makefile b/tests/selftest/Makefile
+index 3ddfca37..cabc35a9 100644
+--- a/tests/selftest/Makefile
++++ b/tests/selftest/Makefile
+@@ -14,7 +14,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
+diff --git a/tests/shared/Makefile b/tests/shared/Makefile
+index f3128714..2e6aa718 100644
+--- a/tests/shared/Makefile
++++ b/tests/shared/Makefile
+@@ -14,7 +14,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
+diff --git a/tests/tmpfs/Makefile b/tests/tmpfs/Makefile
+index 46544313..46b62dad 100644
+--- a/tests/tmpfs/Makefile
++++ b/tests/tmpfs/Makefile
+@@ -14,7 +14,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
+diff --git a/tests/udf/Makefile b/tests/udf/Makefile
+index ed4434f0..feda69a6 100644
+--- a/tests/udf/Makefile
++++ b/tests/udf/Makefile
+@@ -14,7 +14,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
+diff --git a/tests/xfs/Makefile b/tests/xfs/Makefile
+index 5f413e67..6bfafdb1 100644
+--- a/tests/xfs/Makefile
++++ b/tests/xfs/Makefile
+@@ -14,7 +14,7 @@ default: $(DIRT)
+ 
+ include $(BUILDRULES)
+ 
+-install:
++install: default
+ 	$(INSTALL) -m 755 -d $(TARGET_DIR)
+ 	$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
+ 	$(INSTALL) -m 644 group.list $(TARGET_DIR)
diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb b/meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb
index 711637a70d..5ff1914569 100644
--- a/meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb
+++ b/meta-filesystems/recipes-utils/xfstests/xfstests_2024.01.14.bb
@@ -7,8 +7,9 @@  SRCREV_FORMAT = "xfstests_unionmount"
 
 SRC_URI = "git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git;branch=master;name=xfstests \
            git://github.com/amir73il/unionmount-testsuite.git;branch=master;protocol=https;name=unionmount;destsuffix=unionmount-testsuite \
-           file://0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch \
            file://0001-add-missing-FTW_-macros-when-not-available-in-libc.patch \
+           file://0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch \
+           file://0003-tests-Makefile-make-sure-group.list-DIRT-exists-befo.patch \
            "
 
 SRCREV_xfstests = "c46ca4d1f6c0c45f9a3ea18bc31ba5ae89e02c70"
@@ -51,12 +52,7 @@  do_configure:prepend() {
     cp -a ${S}/include/install-sh .
 }
 
-# Not sure if this is needed, but with old install-sh it was sometimes failing with:
-# cp: cannot stat 'group.list': No such file or directory
-# http://errors.yoctoproject.org/Errors/Details/752404/
-# PARALLEL_MAKEINST = "-j1"
-
-do_install:prepend() {
+do_install() {
     # otherwise install-sh duplicates DESTDIR prefix
     export DIST_ROOT="/" DIST_MANIFEST="" DESTDIR="${D}"
     oe_runmake install