Project

General

Profile

Actions

action #124497

closed

[openQA-in-openQA] test fails in openqa_webui - "perl-Mojolicious-Plugin-Assetpack = 2.13" needed size:M

Added by tinita almost 2 years ago. Updated almost 2 years ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
Regressions/Crashes
Target version:
Start date:
2023-02-14
Due date:
% Done:

0%

Estimated time:

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 of zypper 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 2 (0 open2 closed)

Related to openQA Project (public) - action #124670: obs: openQA does not build on ppcle64 anymore since we removed noarch size:MResolvedmkittler2023-02-162023-03-05

Actions
Related to openQA Project (public) - 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:MResolvedjbaier_cz2023-02-112023-02-28

Actions
Actions #1

Updated by tinita almost 2 years ago

  • Project changed from openQA Tests (public) to openQA Project (public)
  • Category changed from Bugs in existing tests to Regressions/Crashes
  • Priority changed from Normal to High
  • Target version set to Ready
Actions #2

Updated by tinita almost 2 years 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
Actions #3

Updated by livdywan almost 2 years 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
Actions #4

Updated by tinita almost 2 years ago

  • Status changed from Workable to In Progress
  • Assignee set to tinita
Actions #5

Updated by tinita almost 2 years 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.

Actions #6

Updated by tinita almost 2 years 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.

Actions #7

Updated by tinita almost 2 years ago

  • Status changed from Feedback to Resolved
Actions #8

Updated by tinita almost 2 years ago

  • Related to action #124670: obs: openQA does not build on ppcle64 anymore since we removed noarch size:M added
Actions #9

Updated by jbaier_cz almost 2 years 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
Actions

Also available in: Atom PDF