action #124497
closed[openQA-in-openQA] test fails in openqa_webui - "perl-Mojolicious-Plugin-Assetpack = 2.13" needed size:M
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
Updated by tinita over 1 year ago
- Project changed from openQA Tests to openQA Project
- Category changed from Bugs in existing tests to Regressions/Crashes
- Priority changed from Normal to High
- Target version set to Ready
Updated by tinita over 1 year ago
- Subject changed from [openQA-in-openQA] test fails in openqa_webui to [openQA-in-openQA] test fails in openqa_webui - "perl-Mojolicious-Plugin-Assetpack = 2.13" needed
Updated by livdywan over 1 year 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
Updated by tinita over 1 year ago
- Status changed from Workable to In Progress
- Assignee set to tinita
Updated by tinita over 1 year 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.
Updated by tinita over 1 year 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.
Updated by tinita over 1 year ago
- Status changed from Feedback to Resolved
https://openqa.opensuse.org/group_overview/24 is green again
Updated by tinita over 1 year ago
- Related to action #124670: obs: openQA does not build on ppcle64 anymore since we removed noarch size:M added
Updated by jbaier_cz over 1 year 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