https://progress.opensuse.org/https://progress.opensuse.org/themes/openSUSE/favicon/favicon.ico?15829177842021-10-21T21:08:32ZopenSUSE Project Management ToolopenQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4574942021-10-21T21:08:32Zjlausuchjalausuch@suse.com
<ul><li><strong>Project</strong> changed from <i>190</i> to <i>openQA Tests</i></li></ul><p>Moving this out of containers group.</p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4578692021-10-22T08:34:04Zokurzokurz@suse.com
<ul><li><strong>Project</strong> changed from <i>openQA Tests</i> to <i>190</i></li><li><strong>Subject</strong> changed from <i>Unknown ARRAY variables on job ssettings</i> to <i>Unknown ARRAY variables on job settings</i></li></ul><p><a class="user active user-mention" href="https://progress.opensuse.org/users/25856">@jlausuch</a> backlog triaging is also in your responsibility, see <a href="https://progress.opensuse.org/projects/openqatests/wiki#ticket-backlog-triaging" class="external">https://progress.opensuse.org/projects/openqatests/wiki#ticket-backlog-triaging</a> . Can you please find an according squad to work on this and not just move it out of the containers backlog?</p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4580822021-10-22T14:34:11Zjlausuchjalausuch@suse.com
<ul></ul><p>okurz wrote:</p>
<blockquote>
<p><a class="user active user-mention" href="https://progress.opensuse.org/users/25856">@jlausuch</a> backlog triaging is also in your responsibility, <br>
I know, and I do that as you know. You don't need to remind me that...</p>
<p>Can you please find an according squad to work on this and not just move it out of the containers backlog?</p>
</blockquote>
<p>This was created by <a class="user active user-mention" href="https://progress.opensuse.org/users/32492">@ybonatakis</a> and I'm not sure where this belongs, but for sure it's not a containers topic.<br>
Maybe <a class="user active user-mention" href="https://progress.opensuse.org/users/32492">@ybonatakis</a> can give us more insights.</p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4584512021-10-25T11:37:54Zybonatakisioannis.bonatakis@suse.com
<ul></ul><p>Sure. <br>
First first comment clarifies that this is not only in the containers job group.<br>
For instance, it is visible also in <a href="https://openqa.suse.de/tests/7485529/file/vars.json" class="external">Yast</a>.</p>
<p>After checked <code>os-autoinst-distri-opensuse</code> i couldnt find anything suspicious. <code>obs_sync</code> also doesnt show this variable. So it might be something in <code>os-autoinst</code> which uploads the results at the end. if so, isnt it on qa-tools??</p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4764902021-12-28T10:24:49Zlivdywanliv.dywan@suse.com
<ul><li><strong>Subject</strong> changed from <i>Unknown ARRAY variables on job settings</i> to <i>Unknown ARRAY( variables matching HDD_1 or ISO in job settings</i></li><li><strong>Description</strong> updated (<a title="View differences" href="/journals/476490/diff?detail_id=450885">diff</a>)</li><li><strong>Status</strong> changed from <i>New</i> to <i>Workable</i></li><li><strong>Target version</strong> set to <i>Ready</i></li></ul><p><code>https://openqa.opensuse.org/tests/2094025/file/vars.json</code> is another example with <code>"ARRAY(0x555ea2fdf0a8)" : "opensuse-Tumbleweed-x86_64-20211218-Tumbleweed@64bit.qcow2"</code> matching <code>HDD_1</code></p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4770002022-01-03T10:40:34Zlivdywanliv.dywan@suse.com
<ul><li><strong>Project</strong> changed from <i>190</i> to <i>openQA Project</i></li></ul> openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4770692022-01-03T13:32:13Ztinitatina.mueller+trick-redmine@suse.com
<ul><li><strong>Category</strong> set to <i>Regressions/Crashes</i></li><li><strong>Assignee</strong> set to <i>tinita</i></li></ul> openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4770762022-01-03T14:03:28Ztinitatina.mueller+trick-redmine@suse.com
<ul><li><strong>Status</strong> changed from <i>Workable</i> to <i>In Progress</i></li></ul> openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4770932022-01-03T16:13:33Zlivdywanliv.dywan@suse.com
<ul><li><strong>Description</strong> updated (<a title="View differences" href="/journals/477093/diff?detail_id=451431">diff</a>)</li></ul> openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4771022022-01-03T17:02:49Ztinitatina.mueller+trick-redmine@suse.com
<ul></ul><p>I tried to reproduce it locally, by cloning <a href="https://openqa.opensuse.org/tests/2113762" class="external">https://openqa.opensuse.org/tests/2113762</a> , but <code>vars.json</code> looks ok.<br>
I used the latest openQA and os-autoinst code.</p>
<p>Regarding <code>%bmwqemu::vars</code> - the joys of global variables and giving everybody access to a variable from anywhere in the code :(<br>
Just because it's possible in perl, in doesn't mean it should be done.<br>
The problem now is backwards compatibility.</p>
<p>My suggestion:</p>
<ol>
<li>Make that variable a tied hash, so every access goes through a method call</li>
<li>As a first step, if the key it was trying to set contains invalid characters, print out a stacktrace to STDERR. This way we will hopefully find out which code set the wrong variable by looking into the log.</li>
<li>Offer an interface through an object instead of the hash directly, e.g. <code>$vars->set(HDD_1 => $x)</code></li>
<li>Long-term: a) deprecate write access to hash; b) later deprecate any direct hash access</li>
</ol>
<p>I have done 1. and 2. already, os-autoinst tests are passing, and a openQA verification run was made.</p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4771202022-01-03T19:39:41Ztinitatina.mueller+trick-redmine@suse.com
<ul></ul><p><a href="https://github.com/os-autoinst/os-autoinst/pull/1900" class="external">https://github.com/os-autoinst/os-autoinst/pull/1900</a> Control access to %bmwqemu::vars and warn about invalid keys</p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4771232022-01-03T19:40:00Ztinitatina.mueller+trick-redmine@suse.com
<ul><li><strong>Status</strong> changed from <i>In Progress</i> to <i>Feedback</i></li></ul> openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4771262022-01-03T20:37:22Ztinitatina.mueller+trick-redmine@suse.com
<ul></ul><p><a href="https://github.com/os-autoinst/os-autoinst/pull/1900" class="external">https://github.com/os-autoinst/os-autoinst/pull/1900</a> merged, waiting until it is deployed</p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4773782022-01-04T15:39:27Ztinitatina.mueller+trick-redmine@suse.com
<ul></ul><p><a href="https://openqa.opensuse.org/tests/2121661/logfile?filename=autoinst-log.txt" class="external">https://openqa.opensuse.org/tests/2121661/logfile?filename=autoinst-log.txt</a></p>
<pre><code>Settings key 'ARRAY(0x5642678b5cd0)' is invalid at /usr/lib/os-autoinst/bmwqemu.pm line 88.
bmwqemu::load_vars() called at /usr/lib/os-autoinst/bmwqemu.pm line 119
bmwqemu::init() called at /usr/bin/isotovideo line 128
</code></pre>
<p>So it is already in the file when <code>isotovideo</code> starts. Must be coming from openQA.</p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4774112022-01-04T15:58:44Ztinitatina.mueller+trick-redmine@suse.com
<ul><li><strong>Status</strong> changed from <i>Feedback</i> to <i>In Progress</i></li></ul> openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4774172022-01-04T16:37:11Ztinitatina.mueller+trick-redmine@suse.com
<ul></ul><p>Problem likely located:<br>
<a href="https://github.com/os-autoinst/openQA/blob/master/lib/OpenQA/Worker/Engines/isotovideo.pm#L99" class="external">https://github.com/os-autoinst/openQA/blob/master/lib/OpenQA/Worker/Engines/isotovideo.pm#L99</a></p>
<pre><code>sub cache_assets ($cache_client, $job, $vars, $assets_to_cache, $assetkeys, $webui_host, $pooldir, $callback) {
^ arrayref
return $callback->(undef) unless my $this_asset = shift @$assets_to_cache;
...
$error
= _handle_asset_processed($cache_client, $assets_to_cache, $asset_uri, $status, $vars, $webui_host,
^ arrayref
$pooldir)
unless $error;
...
}
sub _handle_asset_processed ($cache_client, $this_asset, $asset_uri, $status, $vars, $webui_host, $pooldir) {
^ arrayref
...
$vars->{$this_asset} = ...;
^ arrayref
</code></pre>
<p>Easy to fix.<br>
Trying out if I can test that.<br>
Currently <code>_handle_asset_processed</code> is called directly from the test, with correct parameters.</p>
<p>Things like this staying unnoticed for several months could be prevented if we were using a vars object that is tied to the new <code>bmwqemu::tiedvars</code> class instead of a plain hash.</p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4776752022-01-05T18:17:46Ztinitatina.mueller+trick-redmine@suse.com
<ul></ul><p>PR: <a href="https://github.com/os-autoinst/openQA/pull/4431" class="external">https://github.com/os-autoinst/openQA/pull/4431</a> Pass the correct asset variable to _handle_asset_processed</p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4784192022-01-07T17:51:30Ztinitatina.mueller+trick-redmine@suse.com
<ul><li><strong>Status</strong> changed from <i>In Progress</i> to <i>Feedback</i></li></ul><p>Asked Santiago to comment on the <code>UEFI_PFLASH_VARS</code> thing, and also waiting for Marius to comment when he's back, so I put the PR on hold.</p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4790882022-01-10T15:10:09Ztinitatina.mueller+trick-redmine@suse.com
<ul></ul><p>PR <a href="https://github.com/os-autoinst/openQA/pull/4431" class="external">https://github.com/os-autoinst/openQA/pull/4431</a> was merged.</p>
<p>From the discussion:</p>
<blockquote>
<p>@foursixnine:<br>
I'd add an extra test case to check that defined pflash with undefined uefi, also works, for today and for the future's sake, as there are no tests verifying that path at all.<br>
<a class="user active user-mention" href="https://progress.opensuse.org/users/33482">@tinita</a>:<br>
I think I don't understand how such a test would look like.<br>
Can you elaborate?</p>
</blockquote>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4791122022-01-10T15:30:18Zszarate
<ul></ul><p>tinita wrote:</p>
<blockquote>
<p>PR <a href="https://github.com/os-autoinst/openQA/pull/4431" class="external">https://github.com/os-autoinst/openQA/pull/4431</a> was merged.</p>
<p>From the discussion:</p>
<blockquote>
<p>@foursixnine:<br>
I'd add an extra test case to check that defined pflash with undefined uefi, also works, for today and for the future's sake, as there are no tests verifying that path at all.<br>
<a class="user active user-mention" href="https://progress.opensuse.org/users/33482">@tinita</a>:<br>
I think I don't understand how such a test would look like.<br>
Can you elaborate?</p>
</blockquote>
</blockquote>
<p>Right now we're only testing the cases for either correct settings (this issue) or that asset caching actually works as expected... But there's no test for the case where the job does have <code>UEFI=1</code> with or without PFLASH defined. </p>
<p>As it is a very seldom use case, I fear that some other weird regression might show up years in the future (Like this one for instance), might not be harmful, but annoying to find, I might be mistaken of course :) but is not really a big need atm... as 3 and 4 from <a href="https://progress.opensuse.org/issues/98577#note-10" class="external">you comment</a> above would be</p>
<p><a href="https://github.com/os-autoinst/openQA/pull/4431/files#diff-831bb8b106b0ca2b8cfaa3dd2dfd6627b1aa8e86349cd67aa279afd922091d0eR219" class="external">https://github.com/os-autoinst/openQA/pull/4431/files#diff-831bb8b106b0ca2b8cfaa3dd2dfd6627b1aa8e86349cd67aa279afd922091d0eR219</a></p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4802052022-01-14T11:16:52Ztinitatina.mueller+trick-redmine@suse.com
<ul></ul><p>4 days ago we still had the array reference: <a href="https://openqa.opensuse.org/tests/2130637/file/vars.json" class="external">https://openqa.opensuse.org/tests/2130637/file/vars.json</a><br>
3 days ago when the fix was deployed it is gone: <a href="https://openqa.opensuse.org/tests/2132212/file/vars.json" class="external">https://openqa.opensuse.org/tests/2132212/file/vars.json</a></p>
<p>Regarding the test <a class="user active user-mention" href="https://progress.opensuse.org/users/23010">@szarate</a> suggests - I wouldn't know how to create a test with or without PFLASH defined. I searched the database for jobs with a <code>PFLASH</code> setting but didn't find any.</p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4802082022-01-14T11:21:20Ztinitatina.mueller+trick-redmine@suse.com
<ul></ul><p>tinita wrote:</p>
<blockquote>
<p>My suggestion:</p>
<ol>
<li>Make that variable a tied hash, so every access goes through a method call</li>
<li>As a first step, if the key it was trying to set contains invalid characters, print out a stacktrace to STDERR. This way we will hopefully find out which code set the wrong variable by looking into the log.</li>
<li>Offer an interface through an object instead of the hash directly, e.g. <code>$vars->set(HDD_1 => $x)</code></li>
<li>Long-term: a) deprecate write access to hash; b) later deprecate any direct hash access</li>
</ol>
<p>I have done 1. and 2. already, os-autoinst tests are passing, and a openQA verification run was made.</p>
</blockquote>
<p>Since the actual bug was not in bwmqemu::vars directly, but in openQA, and with the tied hash we have an easy mechanism to add checks or forbid certain keys, 3 and 4 would be a nice-to-have only.<br>
But it would also make sense to have the same tied hash in openQA when passing around the <code>%vars</code> hash and filling it.</p>
openQA Project - action #98577: Unknown ARRAY( variables matching HDD_1 or ISO in job settingshttps://progress.opensuse.org/issues/98577?journal_id=4815282022-01-19T12:35:28Ztinitatina.mueller+trick-redmine@suse.com
<ul><li><strong>Status</strong> changed from <i>Feedback</i> to <i>Resolved</i></li></ul><p>As discussed in today's meeting, the actual issue is resolved, and we currently think we don't need a test as suggested above (or it needs to be specified more clearly how the test should look like).</p>