action #135632
closed
"Mojo::File::spurt is deprecated in favor of Mojo::File::spew" breaking os-autoinst OBS build and osd-deployment size:M
Added by livdywan over 1 year ago.
Updated 10 months ago.
Description
Observation¶
See https://gitlab.suse.de/openqa/osd-deployment/-/jobs/1825493:
++ echo 'Build status for https://build.opensuse.org/project/show/devel:openQA (openSUSE_Leap_15.4) arch x86_64) is not successful'
++ echo '<resultlist state="9c65a2d1b41fa9bf4c35ffd463cddc69">
<result project="devel:openQA" repository="openSUSE_Leap_15.4" arch="x86_64" code="published" state="published">
[...]
<status package="os-autoinst" code="failed"/>
And accordingly https://build.opensuse.org/package/live_build_log/devel:openQA/os-autoinst/openSUSE_Leap_15.4/x86_64 - note that there's no persistent logs so I attached the log of the failure:
[19:51:05] ./xt/01-style.t ......................................... fatal: not a git repository (or any of the parent directories): .git
[...]
# Failed test 'no (unexpected) warnings (via done_testing)'
at ./t/03-testapi.t line 1105.
# Got the following unexpected warnings:
# 1: Mojo::File::spurt is deprecated in favor of Mojo::File::spew at /home/abuild/rpmbuild/BUILD/os-autoinst-4.6.1694444383.e6a5294/basetest.pm line 433.
Acceptance criteria¶
- AC1: os-autoinst builds fine in CI
- AC2: No "fatal" but ignored warning in the output
Added by okurz after estimation¶
Suggestions¶
- Note that this is not specific to OBS/Leap15.4
- Confirm the source of the
fatal: not a git repository (or any of the parent directories): .git
errors
- This is probably not failing anything and not new
- Address or switch off the
Mojo::File::spurt is deprecated in favor of Mojo::File::spew
errors which seem to upset our checks for no warnings, e.g. just replace all uses of spurt with spew because that's how rolling distributions work. As fallback try to use a dynamic lookup of the method presence and use it if available, fallback to "spurt" otherwise
- Also see https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/17748 and https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/17746
Rollback actions¶
- Remove perl-Mojo-IOLoop-ReadWriteProcess and perl-Mojolicious-Plugin-AssetPack from devel:openQA as soon as we have the new version in Tumbleweed and current Leap
- Same but in devel:openQA:Leap:15.5
Files
- Description updated (diff)
- Tags changed from infra, osd-deployment, changelog, update to osd-deployment, changelog, update
- Priority changed from High to Urgent
Not infra as it's related to the use of features and upstream package dependencies but urgent
- Subject changed from osd-deployment fails in monitor-pre-deploy because os-autoinst doesn't build on OBS to "Mojo::File::spurt is deprecated in favor of Mojo::File::spew" breaking os-autoinst OBS build and osd-deployment
- Subject changed from "Mojo::File::spurt is deprecated in favor of Mojo::File::spew" breaking os-autoinst OBS build and osd-deployment to "Mojo::File::spurt is deprecated in favor of Mojo::File::spew" breaking os-autoinst OBS build and osd-deployment size:M
- Description updated (diff)
- Status changed from New to Workable
- Status changed from Workable to In Progress
- Assignee set to okurz
- Description updated (diff)
- Due date set to 2023-09-27
- Status changed from In Progress to Feedback
OBS CI check
[openSUSE_Tumbleweed](https://build.opensuse.org/projects/devel:openQA:GitHub:os-autoinst:os-autoinst:PR-2360/packages/os-autoinst/repositories/openSUSE_Tumbleweed/binaries)
x86_64
unresolvable
The build can not begin, because required packages are either missing or not explicitly defined.
Build jobs have been processed, new repository is not yet created
unresolvable: nothing provides perl(Mojolicious) >= 9.34, (got version 9.33 provided by perl-Mojolicious)
so we need to wait for the package to reach published Tumbleweed first
- Status changed from Feedback to In Progress
https://github.com/karenetheridge/Test-Warnings/issues/12 Feature request: turn off the check for warnings via an environment variable
Karen (ether) replied also on IRC:
20:37 < ether> another possible way to handle the method deprecations -- issue the warning using the 'deprecated' category,
and then do no warnings 'deprecated';
20:38 < ether> use warnings::register; if (warnings::enabled("deprecated)) { warnings::warn("deprecated", ".. this method
is deprecated..") }
21:19 < kraih> patch welcome https://github.com/mojolicious/mojo/blob/main/lib/Mojo/Util.pm#L126
- Description updated (diff)
To shorten the waiting time until we have perl-Mojo-IOLoop-ReadWriteProcess
I did osc linkpac devel:languages:perl perl-Mojo-IOLoop-ReadWriteProcess devel:openQA
. As soon as we have an updated version available again for OS versions where we need it we can remove that again. Added according rollback step.
- Description updated (diff)
- Related to action #129619: high response times on osd - simple limit of jobs running concurrently in openQA size:M added
- Related to action #135380: A significant number of scheduled jobs with one or two running triggers an alert added
- Description updated (diff)
- Description updated (diff)
- Due date deleted (
2023-09-27)
- Status changed from In Progress to Blocked
- Priority changed from Urgent to Normal
- Target version changed from Ready to Tools - Next
- Related to action #137105: Handle Perl deprecation warning messages gracefully (Mojo::File::spurt is deprecated in favor of Mojo::File::spew) size:M added
- Status changed from Blocked to In Progress
- Target version changed from Tools - Next to Ready
- Due date set to 2024-02-22
- Status changed from In Progress to Feedback
I upgraded locally and saw how the mentioned packages shifted back to openSUSE. AC1,2,3,4,5 are covered so far but I would like to await 1-2 days in case problems arise either by the dependency PR updates on github or o3 or osd or user reports.
- Due date deleted (
2024-02-22)
- Status changed from Feedback to Resolved
no further problems observed. All ACs and rollback actions covered.
Also available in: Atom
PDF