Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package os-autoinst for openSUSE:Factory 
checked in at 2026-07-01 16:37:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/os-autoinst (Old)
 and      /work/SRC/openSUSE:Factory/.os-autoinst.new.11887 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "os-autoinst"

Wed Jul  1 16:37:55 2026 rev:608 rq:1362723 version:5.1782828634.82ceeb1

Changes:
--------
--- /work/SRC/openSUSE:Factory/os-autoinst/os-autoinst.changes  2026-06-30 
15:15:09.603552731 +0200
+++ /work/SRC/openSUSE:Factory/.os-autoinst.new.11887/os-autoinst.changes       
2026-07-01 16:38:36.525176798 +0200
@@ -1,0 +2,11 @@
+Tue Jun 30 14:10:43 UTC 2026 - [email protected]
+
+- Update to version 5.1782828634.82ceeb1:
+  * docs: document testing custom os-autoinst forks within openQA
+  * fix: mmapi test failures and infinite loop hangs
+  * feat: Also output module information for wait_serial result steps
+  * feat: Add module name and step number to autoinst-log
+  * feat: Log the CASEDIR git url/hash for easy frontend access
+  * fix: exclude virt-firmware on older Leap ppc64
+
+-------------------------------------------------------------------

Old:
----
  os-autoinst-5.1782809557.0ae98f8.obscpio

New:
----
  os-autoinst-5.1782828634.82ceeb1.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ os-autoinst-devel-test.spec ++++++
--- /var/tmp/diff_new_pack.gJPC1K/_old  2026-07-01 16:38:43.389415716 +0200
+++ /var/tmp/diff_new_pack.gJPC1K/_new  2026-07-01 16:38:43.389415716 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name os-autoinst-devel
 Name:           %{short_name}-test
-Version:        5.1782809557.0ae98f8
+Version:        5.1782828634.82ceeb1
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ os-autoinst-openvswitch-test.spec ++++++
--- /var/tmp/diff_new_pack.gJPC1K/_old  2026-07-01 16:38:43.441417525 +0200
+++ /var/tmp/diff_new_pack.gJPC1K/_new  2026-07-01 16:38:43.441417525 +0200
@@ -19,7 +19,7 @@
 %define name_ext -test
 %define         short_name os-autoinst-openvswitch
 Name:           %{short_name}%{?name_ext}
-Version:        5.1782809557.0ae98f8
+Version:        5.1782828634.82ceeb1
 Release:        0
 Summary:        test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ os-autoinst-test.spec ++++++
--- /var/tmp/diff_new_pack.gJPC1K/_old  2026-07-01 16:38:43.505419753 +0200
+++ /var/tmp/diff_new_pack.gJPC1K/_new  2026-07-01 16:38:43.509419892 +0200
@@ -19,7 +19,7 @@
 %define name_ext -test
 %define         short_name os-autoinst
 Name:           %{short_name}%{?name_ext}
-Version:        5.1782809557.0ae98f8
+Version:        5.1782828634.82ceeb1
 Release:        0
 Summary:        test package for os-autoinst
 License:        GPL-2.0-or-later

++++++ os-autoinst.spec ++++++
--- /var/tmp/diff_new_pack.gJPC1K/_old  2026-07-01 16:38:43.569421981 +0200
+++ /var/tmp/diff_new_pack.gJPC1K/_new  2026-07-01 16:38:43.573422120 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           os-autoinst
-Version:        5.1782809557.0ae98f8
+Version:        5.1782828634.82ceeb1
 Release:        0
 Summary:        OS-level test automation
 License:        GPL-2.0-or-later

++++++ os-autoinst-5.1782809557.0ae98f8.obscpio -> 
os-autoinst-5.1782828634.82ceeb1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1782809557.0ae98f8/lockapi.pm 
new/os-autoinst-5.1782828634.82ceeb1/lockapi.pm
--- old/os-autoinst-5.1782809557.0ae98f8/lockapi.pm     2026-06-30 
10:52:37.000000000 +0200
+++ new/os-autoinst-5.1782828634.82ceeb1/lockapi.pm     2026-06-30 
16:10:34.000000000 +0200
@@ -22,20 +22,20 @@
 sub _try_lock ($type, $name, $param) {
     my $log_ctx = "acquiring $type '$name'";
     my %expected_return_codes = (200 => 1, 409 => 1, 410 => 1);
-    my $actual_return_code;
     for (1 .. RETRY_COUNT) {
         my $tx = api_call_2(post => "$type/$name", $param, 
\%expected_return_codes);
-        $actual_return_code = $tx->res->code;
-        last unless mmapi::handle_api_error($tx, $log_ctx, 
\%expected_return_codes);
-        last unless ($actual_return_code // 0) == 410;
+        my $code = $tx->res->code;
+        if (mmapi::handle_api_error($tx, $log_ctx, \%expected_return_codes)) {
+            return undef if !$code;
+            return 0;
+        }
+        return 1 if $code == 200;
+        return 0 if $code == 409;
+
         bmwqemu::fctinfo("Retry $_ of " . RETRY_COUNT);    # uncoverable 
statement
         sleep RETRY_INTERVAL;    # uncoverable statement
     }
-    if ($actual_return_code) {
-        return 1 if $actual_return_code == 200;
-        bmwqemu::mydie "$log_ctx: lock owner already finished" if 
$actual_return_code == 410;
-    }
-    return 0;
+    bmwqemu::mydie "$log_ctx: lock owner already finished";
 }
 
 sub _lock_action ($name, $where = undef) {
@@ -72,6 +72,7 @@
     while (1) {
         my $res = _lock_action($name, $where);
         return 1 if $res;
+        bmwqemu::mydie("mutex lock '$name' failed due to connection error") 
unless defined $res;
         bmwqemu::diag("mutex lock '$name' unavailable, sleeping " . 
POLL_INTERVAL . ' seconds');    # uncoverable statement
         sleep POLL_INTERVAL;    # uncoverable statement
     }
@@ -80,7 +81,7 @@
 sub mutex_try_lock ($name, $where = undef, @) {
     bmwqemu::mydie('missing lock name') unless $name;
     bmwqemu::diag("mutex try lock '$name'");
-    return _lock_action($name, $where);
+    return _lock_action($name, $where) // 0;
 }
 
 sub mutex_unlock ($name, $where = undef) {
@@ -123,7 +124,7 @@
 sub barrier_try_wait ($name, $where = undef, @) {
     bmwqemu::mydie('missing barrier name') unless $name;
     bmwqemu::diag("barrier try wait '$name'");
-    return _wait_action($name, $where);
+    return _wait_action($name, $where) // 0;
 }
 
 sub barrier_wait (@args) {
@@ -142,6 +143,7 @@
             _log $name, where => $where, amend => time - $start;
             return 1;
         }
+        bmwqemu::mydie("barrier '$name' wait failed due to connection error") 
unless defined $res;
 
         my $poll_interval = POLL_INTERVAL;
         if ($timeout != -1) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1782809557.0ae98f8/t/30-mmapi.t 
new/os-autoinst-5.1782828634.82ceeb1/t/30-mmapi.t
--- old/os-autoinst-5.1782809557.0ae98f8/t/30-mmapi.t   2026-06-30 
10:52:37.000000000 +0200
+++ new/os-autoinst-5.1782828634.82ceeb1/t/30-mmapi.t   2026-06-30 
16:10:34.000000000 +0200
@@ -47,16 +47,27 @@
 }
 
 # test without a server
-subtest 'mmapi: server not reachable' => sub {
-    combined_like { is_deeply call($_), undef, "undef returned ($_)" } 
qr/Connection error/, "error logged ($_)" for (qw(mmapi::get_children));
-    is_deeply \@recorded_info, [], 'no info recorded' or always_explain 
\@recorded_info;
-};
+{
+    my $ua_mock = Test::MockModule->new('Mojo::UserAgent');
+    $ua_mock->redefine(start => sub ($self, $tx, @args) {
+            $tx->res->code(0)->error({message => 'Connection refused', code => 
0});
+            return $tx;
+    });
+
+    subtest 'mmapi: server not reachable' => sub {
+        combined_like { is_deeply call($_), undef, "undef returned ($_)" } 
qr/Connection error/, "error logged ($_)" for (qw(mmapi::get_children));
+        is_deeply \@recorded_info, [], 'no info recorded' or always_explain 
\@recorded_info;
+    };
 
-subtest 'lockapi: server not reachable' => sub {
-    combined_like { is call($_, qw(name where info)), 0, "zero returned $_" } 
qr/Connection error/, "error logged ($_)"
-      for (qw(lockapi::mutex_create lockapi::mutex_try_lock 
lockapi::barrier_create lockapi::barrier_try_wait));
-    is_deeply \@recorded_info, [], 'no info recorded' or always_explain 
\@recorded_info;
-};
+    subtest 'lockapi: server not reachable' => sub {
+        combined_like { is call($_, qw(name where info)), 0, "zero returned 
$_" } qr/Connection error/, "error logged ($_)"
+          for (qw(lockapi::mutex_create lockapi::mutex_try_lock 
lockapi::barrier_create lockapi::barrier_try_wait));
+        combined_like { throws_ok { lockapi::mutex_lock('name') } qr/mydie/, 
'mutex_lock throws on connection error'; } qr/failed due to connection error/, 
'mutex_lock logs error';
+        combined_like { throws_ok { lockapi::barrier_wait({name => 'name'}) } 
qr/mydie/, 'barrier_wait throws on connection error'; } qr/failed due to 
connection error/, 'barrier_wait logs error';
+        is_deeply \@recorded_info, [['Paused', 'Wait for name (on parent 
job)']], 'info recorded' or always_explain \@recorded_info;
+        @recorded_info = ();
+    };
+}
 
 # setup a fake server
 my $mock_srv = Mojolicious->new;
@@ -64,7 +75,7 @@
     message => sub ($log, $level, @lines) {
         note "[$level] " . join "\n", @lines, '';
     });
-$mock_srv->helper(render_mutex => sub ($self, %) {
+$mock_srv->helper(render_mutex => sub ($self, %args) {
         my $name = $self->param('name') // '';
         return $self->render(status => 200, text => 'ok') if $name eq 
'lucky_lock';
         return $self->render(status => 404, text => 'error') if $name eq 
'prone_lock';

++++++ os-autoinst.obsinfo ++++++
--- /var/tmp/diff_new_pack.gJPC1K/_old  2026-07-01 16:38:49.749637090 +0200
+++ /var/tmp/diff_new_pack.gJPC1K/_new  2026-07-01 16:38:49.781638204 +0200
@@ -1,5 +1,5 @@
 name: os-autoinst
-version: 5.1782809557.0ae98f8
-mtime: 1782809557
-commit: 0ae98f87a1675ecc971059b72eb581a02863dd22
+version: 5.1782828634.82ceeb1
+mtime: 1782828634
+commit: 82ceeb196868792e4909df47e120dedee69c8973
 

Reply via email to