action #124497
[openQA-in-openQA] test fails in openqa_webui - "perl-Mojolicious-Plugin-Assetpack = 2.13" needed size:M
0%
Description
Observation¶
openQA test in scenario openqa-Tumbleweed-dev-x86_64-openqa_install+publish@64bit-2G fails in
openqa_webui
Test suite description¶
Maintainer: okurz@suse.de Test for installation of openQA itself. To be used with "openqa" distri. Publishes an qcow2 image including the openQA installation ready to run as an appliance.
Reproducible¶
Fails since (at least) Build :TW.18074
Expected result¶
Last good: :TW.18073 (or more recent)
Acceptance criteria¶
- AC1: No more version conflicts between perl-Mojolicious-Plugin-AssetPack 2.13 and 2.14
Suggestions¶
- Identify and fix the version pinning if applicable
- Download Tumbleweed qcow file, run locally with qemu-system…, e.g.
qemu-system-x86_64 -m 4096m -hda my_file.qcow2
or use virt-manager, take a look into the details ofzypper lr --uri
and check for allowVendorChange in zypper config, then try to reproduce manually, inspect RPM files for dependencies and how they came in - okurz: hm, maybe because we boot an HDD image of the "next-to-be-tested Tumbleweed" which has repos pointing to the openQA Tumbleweed snapshot of today including AssetPack 14 but https://build.opensuse.org/project/repository_state/devel:openQA/openSUSE_Tumbleweed is built against the last release snapshot? Or the other way around?
Further details¶
Always latest result in this scenario: latest
Related issues
History
#3
Updated by cdywan 3 months ago
- Subject changed from [openQA-in-openQA] test fails in openqa_webui - "perl-Mojolicious-Plugin-Assetpack = 2.13" needed to [openQA-in-openQA] test fails in openqa_webui - "perl-Mojolicious-Plugin-Assetpack = 2.13" needed size:M
- Description updated (diff)
- Status changed from New to Workable
#5
Updated by tinita 3 months ago
So I found out that the openQA rpm itself is the culprit, it has nothing to do with the qcow2 image.
rpm -q --requires openQA-4.6.1676429157.8bedfc2-5575.1.noarch.rpm | grep Asset perl(Mojolicious::Plugin::AssetPack) >= 1.36 perl-Mojolicious-Plugin-AssetPack = 2.13
Marius and I looked into the rpm package and the spec file, and that is the line where that second require comes from:
# we need to have the same sha1 as expected %requires_eq perl-Mojolicious-Plugin-AssetPack
That doesn't yet explain why we get 2.13 here, because in the build log
https://build.opensuse.org/build/devel:openQA/openSUSE_Tumbleweed/x86_64/openQA/_log from "Wed Feb 15 02:46:34 UTC 2023" we see:
[ 16s] [498/864] cumulate perl-Mojolicious-Plugin-AssetPack-2.14-1.1 [ 57s] perl-Mojolicious-Plugin-AssetPack-2.14########################################
so at that point we have the right version.
We found out how that macro works, at least on Leap it is defined like that (in /usr/lib/rpm/macros
):
%requires_eq()â–¸ %(echo '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: %%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
So something like this happens during the build:
% rpm -q --qf 'Requires: %{name} = %{epoch}:%{version}\n' perl-Mojolicious-Plugin-AssetPack-2.13-lp154.2.8.noarch| sed -e 's/ (none):/ /' -e 's/ 0:/ /' Requires: perl-Mojolicious-Plugin-AssetPack = 2.13
We couldn't find out where the macro is defined in Tumbleweed, but we don't think that there was such a big bug introduced that it would suddenly report an older version.
#6
Updated by tinita 3 months ago
- Status changed from In Progress to Feedback
Ok, coolo finally explained the mystery why the rpm has the 2.13 requirement.
Name : openQA Version : 4.6.1676429157.8bedfc2 Release : 5575.1 Architecture: noarch Install Date: (not installed) Group : Development/Tools/Other Size : 14182303 License : GPL-2.0-or-later Signature : RSA/SHA256, Wed 15 Feb 2023 03:47:13 AM CET, Key ID 5b121667cbdf5e8f Source RPM : openQA-4.6.1676429157.8bedfc2-5575.1.src.rpm Build Date : Wed 15 Feb 2023 03:46:51 AM CET Build Host : obs-arm-11 # <------------------------- Vendor : obs://build.opensuse.org/devel:openQA URL : http://os-autoinst.github.io/openQA/ Summary : The openQA web-frontend, scheduler and tools
So because we have BuildArch: noarch
OBS just took some successful build from the project (not clear how it decides which it takes), and it was aarch64 in this case.
It happens that aarch64 still has perl-Mojolicious-Plugin-AssetPack 2.13. So when we install the package built on aarch64 which says perl-Mojolicious-Plugin-AssetPack = 2.13
and we are on Tumblweed x86_84 where we only have version 2.14 this fails.
I think this will usually be not result in a problem, because normal repositories also keep older package versions for some time. But we have our devel:openQA repo where we pin versions from Factory, and in this repo we only ever have one version of a package.
I created https://github.com/os-autoinst/openQA/pull/5003 - Remove noarch from openQA.spec
But I wonder if it would be possible to leave older packages in devel:openQA as well. We are already regularly annoyed by our CI because we require exact versions there, and as soon as one package is updated, CI will fail.
#7
Updated by tinita 3 months ago
- Status changed from Feedback to Resolved
https://openqa.opensuse.org/group_overview/24 is green again
#8
Updated by tinita 3 months ago
- Related to action #124670: obs: openQA does not build on ppcle64 anymore since we removed noarch size:M added
#9
Updated by jbaier_cz 3 months ago
- Related to action #124316: [tools][openQA-in-openQA] test fails in openqa_worker auto_review:"zypper -n --gpg-auto-import-keys ref && zypper --no-cd -n in openQA-worker.*failed" size:M added