Project

General

Profile

action #120918

[qe-core][opensuse] test fails in php_mysql: check_version('>=10.4') treats version 10.10 as 'lower'

Added by dimstar 2 months ago. Updated 17 days ago.

Status:
Resolved
Priority:
Urgent
Assignee:
Category:
Bugs in existing tests
Target version:
Start date:
2022-11-24
Due date:
% Done:

0%

Estimated time:
Difficulty:

Description

Observation

Mariadb was updated to version 10.10. openQA now reports authentication failures in the php_mysql tests.
The issue seems to be that this code returns the wrong outcome:

    my $mysql_version = script_output qq{mysql -sN -u root -e "SELECT VERSION();"};
    if (check_version('>=10.4', $mysql_version)) {
        # MariaDB changed the default authentication method since version 10.4
        # https://mariadb.org/authentication-in-mariadb-10-4/
        # https://bugzilla.suse.com/show_bug.cgi?id=1165151
        my $mysql_root_password = "ALTER USER root\@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD(\'\');";
        assert_script_run qq{mysql -u root -e "$mysql_root_password"};
    }
    record_info($mysql_version);

So, openQA knows that when a version >= 10.4 is in use, we need to set a root password; but check_version treats 10.10 as < 10.4

openQA test in scenario opensuse-Tumbleweed-DVD-x86_64-extra_tests_webserver@64bit fails in
php_mysql

Test suite description

Reproducible

Fails since (at least) Build 20221123

Expected result

Last good: 20221122 (or more recent)

Further details

Always latest result in this scenario: latest

Suggestions

  • Start by adding the test case in the unit tests for check_version
  • Consider depending more on version module to properly parse versions.

History

#1 Updated by szarate 2 months ago

  • Sprint set to QE-Core: November Sprint (Nov 09 - Dec 07)
  • Tags set to bugbusters
  • Subject changed from test fails in php_mysql: check_version('>=10.4') treats version 10.10 as 'lower' to [qe-core][opensuse] test fails in php_mysql: check_version('>=10.4') treats version 10.10 as 'lower'
  • Description updated (diff)
  • Status changed from New to Workable
  • Target version set to QE-Core: Ready

#2 Updated by szarate 2 months ago

  • Tags changed from bugbusters to bugbusters, refactoring
  • Priority changed from Normal to Urgent

#3 Updated by VANASTASIADIS 2 months ago

  • Status changed from Workable to In Progress
  • Assignee set to VANASTASIADIS

#4 Updated by VANASTASIADIS 2 months ago

The problem is not that we don't use the Version module, but instead that we use it. Also that the check_version function is bugged and hasn't failed so far by pure luck.

The version module can't parse the form of the provided version (10.10.2-mariadb) from string to version. Instead of aborting or doing something else after the failure to parse (see the if_lax check on the code), check_version proceeds to compare the version strings. And of course, in string comparison 10.10 is smaller than 10.4 (alphabetic precedence).

A solution is to use zypper vcmp, which provides the correct result, if the conversion of string to version fails. Or only use zypper vcmp in the first place.

#6 Updated by szarate 2 months ago

Created SR#1039112: osc sr devel:languages:perl:CPAN-S perl-SemVer devel:languages:perl
once that's accepted, SemVer needs to go to openSUSE:Factory, and to devel:openQA:Leap

if I got it correctly, the following commands are:

  • osc linkpac openSUSE:Factory perl-SemVer devel:openQA:Leap:15.4
  • osc sr openSUSE:Factory perl-SemVer openSUSE:Leap:15.4
  • osc sr openSUSE:Factory perl-SemVer openSUSE:Leap:15.5

https://suse.slack.com/archives/C02CSAZLAR4/p1669808139461379

#7 Updated by okurz 2 months ago

sounds good

#8 Updated by szarate 2 months ago

szarate wrote:

Created SR#1039112: osc sr devel:languages:perl:CPAN-S perl-SemVer devel:languages:perl

Round two (possibly, the right way) to get the package into obs://devel:languages:perl:

# Branch the package to the home project
osc branch devel:languages:perl:CPAN-S perl-SemVer

# check it out, and go to it:
osc co home:szarate:branches:devel:languages:perl:CPAN-S/perl-SemVer
cd home\:szarate\:branches\:devel\:languages\:perl\:CPAN-S/perl-SemVer/ # because tab is magic!

# Edit the package metadata to add, Title, Description and URL nodes to the xml:
osc meta pkg -e # If you make mistakes, obs will be kind enough to let you know it can't accept the file and let you continue editing

# Create a .changes file and add it to the package's repository
osc vc
osc add perl-SemVer.changes

# Submit the package to the desired project:
osc sr devel:languages:perl

#9 Updated by szarate 2 months ago

osc sr devel:languages:perl perl-SemVer openSUSE:Factory for https://build.opensuse.org/request/show/1039578

#10 Updated by szarate about 2 months ago

Packages are already in the corresponding places:

https://build.opensuse.org/package/show/devel:openQA:Leap:15.4/perl-SemVer

osc linkpac openSUSE:Factory perl-SemVer devel:openQA:Leap:15.4
osc sr openSUSE:Factory perl-SemVer openSUSE:Leap:15.5 # https://build.opensuse.org/request/show/1040208

#11 Updated by szarate about 2 months ago

  • Sprint changed from QE-Core: November Sprint (Nov 09 - Dec 07) to QE-Core: December Sprint (Dec 07 - Jan 04)

#12 Updated by slo-gin about 2 months ago

This ticket was set to Urgent priority but was not updated within the SLO period. Please consider picking up this ticket or just set the ticket to the next lower priority.

#13 Updated by slo-gin about 1 month ago

This ticket was set to Urgent priority but was not updated within the SLO period. Please consider picking up this ticket or just set the ticket to the next lower priority.

#14 Updated by slo-gin about 1 month ago

This ticket was set to Urgent priority but was not updated within the SLO period. Please consider picking up this ticket or just set the ticket to the next lower priority.

#15 Updated by slo-gin 30 days ago

This ticket was set to Urgent priority but was not updated within the SLO period. Please consider picking up this ticket or just set the ticket to the next lower priority.

#16 Updated by slo-gin 23 days ago

This ticket was set to Urgent priority but was not updated within the SLO period. Please consider picking up this ticket or just set the ticket to the next lower priority.

#17 Updated by szarate 22 days ago

  • Sprint changed from QE-Core: December Sprint (Dec 07 - Jan 11) to QE-Core: January Sprint (Jan 11 - Feb 08)

#18 Updated by VANASTASIADIS 21 days ago

  • Status changed from In Progress to Feedback

pr merged. Keeping it on feedback for a day, then resolving.
https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/16000

#19 Updated by VANASTASIADIS 17 days ago

  • Status changed from Feedback to Resolved

Also available in: Atom PDF