We've seen cases where a ptest (strace) has a 43GB sparse file in the test directory. busybox tar doesn't work well with this. The resulting 1.4GB archive takes hours to extract too.
Ensure tar is added to our full images and use the sparse option to collect files for debugging. This stops crazy build hangs. Since tar is GPLv3, we have to exclude it from that test code. We don't boot any of those images so the debug collection code is safe there, at least for now. Signed-off-by: Richard Purdie <richard.pur...@linuxfoundation.org> --- meta/conf/distro/include/no-gplv3.inc | 2 ++ meta/conf/machine/include/qemu.inc | 3 +++ meta/lib/oeqa/selftest/cases/incompatible_lic.py | 1 + meta/lib/oeqa/utils/postactions.py | 3 ++- 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/meta/conf/distro/include/no-gplv3.inc b/meta/conf/distro/include/no-gplv3.inc index b3eb936d94f..705e05319af 100644 --- a/meta/conf/distro/include/no-gplv3.inc +++ b/meta/conf/distro/include/no-gplv3.inc @@ -28,3 +28,5 @@ CORE_IMAGE_BASE_INSTALL:remove:pn-core-image-weston = "matchbox-terminal" # Some python-tests use bash outside of ptest RDEPENDS:${PN}-tests:remove:class-target:pn-python3 = "${MLPREFIX}bash" INSANE_SKIP:${PN}-tests:pn-python3 = "file-rdeps" + +MACHINE_ESSENTIAL_EXTRA_RDEPENDS:remove = "tar" diff --git a/meta/conf/machine/include/qemu.inc b/meta/conf/machine/include/qemu.inc index bb7aec76750..d7392d47623 100644 --- a/meta/conf/machine/include/qemu.inc +++ b/meta/conf/machine/include/qemu.inc @@ -28,3 +28,6 @@ KERNEL_FEATURES:append:pn-linux-yocto = " features/nfsd/nfsd-enable.scc" KERNEL_FEATURES:append:pn-linux-yocto-rt = " features/nfsd/nfsd-enable.scc" IMAGE_CLASSES += "qemuboot" + +# Use gnu tar so we can handle sparse files in testimage debug archives +MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "tar" diff --git a/meta/lib/oeqa/selftest/cases/incompatible_lic.py b/meta/lib/oeqa/selftest/cases/incompatible_lic.py index be5484bca49..e6b871ebc82 100644 --- a/meta/lib/oeqa/selftest/cases/incompatible_lic.py +++ b/meta/lib/oeqa/selftest/cases/incompatible_lic.py @@ -102,6 +102,7 @@ class IncompatibleLicensePerImageTests(OESelftestTestCase): return """ IMAGE_INSTALL:append = " bash" INCOMPATIBLE_LICENSE:pn-core-image-minimal = "GPL-3.0* LGPL-3.0*" +MACHINE_ESSENTIAL_EXTRA_RDEPENDS:remove = "tar" """ def test_bash_default(self): diff --git a/meta/lib/oeqa/utils/postactions.py b/meta/lib/oeqa/utils/postactions.py index 8f787838b9d..c69481db6cb 100644 --- a/meta/lib/oeqa/utils/postactions.py +++ b/meta/lib/oeqa/utils/postactions.py @@ -64,7 +64,8 @@ def list_and_fetch_failed_tests_artifacts(d, tc, artifacts_list, outputdir): bb.warn("Could not load artifacts list, skip artifacts retrieval") return try: - cmd = "tar zcf - " + " ".join(artifacts_list) + # We need gnu tar for sparse files, not busybox + cmd = "tar --sparse -zcf - " + " ".join(artifacts_list) (status, output) = tc.target.run(cmd, raw = True) if status != 0 or not output: raise Exception("Error while fetching compressed artifacts")
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#207484): https://lists.openembedded.org/g/openembedded-core/message/207484 Mute This Topic: https://lists.openembedded.org/mt/109692964/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-