Project

General

Profile

Actions

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 about 1 year ago. Updated 10 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Start date:
2023-05-08
Due date:
% Done:

0%

Estimated time:

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


Related issues 3 (0 open3 closed)

Related to openQA Project (public) - action #129619: high response times on osd - simple limit of jobs running concurrently in openQA size:MResolvedtinita2023-05-20

Actions
Related to openQA Infrastructure (public) - action #135380: A significant number of scheduled jobs with one or two running triggers an alertResolvedokurz2023-09-07

Actions
Related to openQA Project (public) - action #137105: Handle Perl deprecation warning messages gracefully (Mojo::File::spurt is deprecated in favor of Mojo::File::spew) size:MResolvedtinita2023-09-272023-12-15

Actions
Actions #1

Updated by livdywan about 1 year ago

  • Description updated (diff)
Actions #2

Updated by okurz about 1 year ago

  • 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

Actions #3

Updated by okurz about 1 year ago

  • 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
Actions #4

Updated by livdywan about 1 year ago

I guess this is quite recent. Mojo::File docs don't even know about it yet. It's mentioned in the release notes from 9.34 2023-09-11, though.

Actions #5

Updated by livdywan about 1 year ago

  • 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
Actions #6

Updated by okurz about 1 year ago

  • Status changed from Workable to In Progress
  • Assignee set to okurz
Actions #7

Updated by tinita about 1 year ago

  • Description updated (diff)
Actions #8

Updated by okurz about 1 year ago

  • 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

Actions #10

Updated by okurz about 1 year ago

  • Status changed from Feedback to In Progress

https://github.com/openSUSE/Mojo-IOLoop-ReadWriteProcess/pull/51 for dependency, failing right now in perltidy

Actions #11

Updated by tinita about 1 year ago

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
Actions #12

Updated by okurz about 1 year ago

So I might have managed to create a CPAN release as visible on https://metacpan.org/release/OKURZ/Mojo-IOLoop-ReadWriteProcess-0.34 although https://metacpan.org/dist/Mojo-IOLoop-ReadWriteProcess/permissions does not list me as an authorized maintainer. tinita will try to see if the OBS related auto-update scripts can pick up that release or we apply a downstream patch in the package for now.

Actions #13

Updated by tinita about 1 year ago

https://build.opensuse.org/request/show/1111528 Submit package home:tinita:branches:d:l:p / perl-Mojo-IOLoop-ReadWriteProcess to package devel:languages:perl / perl-Mojo...eProcess
->
https://build.opensuse.org/request/show/1111533 Submit package devel:languages:perl / perl-Mojo-IOLoop-ReadWriteProcess to package openSUSE:Factory / perl-Mojo-I...iteProcess

Actions #14

Updated by okurz about 1 year ago

  • 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.

Actions #15

Updated by okurz about 1 year ago

  • Description updated (diff)
Actions #17

Updated by okurz about 1 year ago

  • Related to action #129619: high response times on osd - simple limit of jobs running concurrently in openQA size:M added
Actions #18

Updated by okurz about 1 year ago

  • Related to action #135380: A significant number of scheduled jobs with one or two running triggers an alert added
Actions #19

Updated by okurz about 1 year ago

https://build.opensuse.org/request/show/1112340 was accepted. I did osc linkpac openSUSE:Factory perl-Mojolicious-Plugin-AssetPack devel:openQA which should help us to fix tests

Actions #20

Updated by okurz about 1 year ago

  • Description updated (diff)
Actions #21

Updated by okurz about 1 year ago ยท Edited

  • Description updated (diff)
  • Due date deleted (2023-09-27)
  • Status changed from In Progress to Blocked
Actions #22

Updated by okurz about 1 year ago

  • Priority changed from Urgent to Normal
Actions #23

Updated by okurz about 1 year ago

  • Target version changed from Ready to Tools - Next
Actions #24

Updated by okurz about 1 year ago

  • Related to action #137105: Handle Perl deprecation warning messages gracefully (Mojo::File::spurt is deprecated in favor of Mojo::File::spew) size:M added
Actions #25

Updated by okurz 10 months ago

  • Status changed from Blocked to In Progress
  • Target version changed from Tools - Next to Ready

All SRs and MRs accepted. Removed perl-Mojo-IOLoop-ReadWriteProcess and perl-Mojolicious-Plugin-AssetPack from https://build.opensuse.org/project/show/devel:openQA:Leap:15.5

Actions #26

Updated by okurz 10 months ago

  • 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.

Actions #27

Updated by okurz 10 months ago

  • Due date deleted (2024-02-22)
  • Status changed from Feedback to Resolved

no further problems observed. All ACs and rollback actions covered.

Actions

Also available in: Atom PDF