action #40364
closed[functional][y] boot_from_pxe.pm broken host installation by autoyast method for virtualization test on ipmi backend.
0%
Description
The PR ([[https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/5537]]) caused hang to host installation by autoyast method on ipmi backend, the root cause is subroutine bootmenu_default_params and autoyast_boot_params both added autoyast= kernel parameters for host installation and second subroutine inputted incorrect url address for autoyast file.
Related code content for both subroutine:
=========bootmenu_default_params==============
377 if (!get_var("NICEVIDEO")) {
378 if (is_caasp) {
379 bootmenu_type_console_params $args{baud_rate};
380 }
381 elsif (!is_jeos) {
382 # make plymouth go graphical
383 type_string_very_slow "plymouth.ignore-serial-consoles " unless $args{pxe};
384 type_string_very_slow "linuxrc.log=/dev/$serialdev ";
385 bootmenu_type_console_params $args{baud_rate};
386 # Do not assert on pxe boot as it's unreliable due to multiline input
387 assert_screen "inst-consolesettingstyped", 30 unless $args{pxe};
388
389 # Enable linuxrc core dumps https://en.opensuse.org/SDB:Linuxrc#p_linuxrccore
390 type_string_very_slow "linuxrc.core=/dev/$serialdev ";
391 type_string_very_slow "linuxrc.debug=4,trace ";
392 }
393 bootmenu_type_extra_boot_params; # This api type autoyast= to boot prompt
394 }
395 }
=========autoyast_boot_params==============
491 sub autoyast_boot_params {
492 my $ay_var = get_var("AUTOYAST");
493 return '' unless $ay_var;
494
495 my $autoyast_args = 'autoyast=';
496 # In case of SUPPORT_SERVER, profiles are available on another VM
497 if (get_var('USE_SUPPORT_SERVER')) {
498 my $proto = get_var("PROTO") || 'http';
499 $autoyast_args .= "$proto://10.0.2.1/";
500 $autoyast_args .= 'data/' if $ay_var !~ /aytests\//;
501 $autoyast_args .= $ay_var;
502 } elsif ($ay_var !~ /slp$|:\/\//) {
503 $autoyast_args .= data_url($ay_var); # Getting profile from the worker as openQA asset
504 } else {
505 $autoyast_args .= $ay_var; # Getting profile by direct url or slp
506 }
507 return $autoyast_args . " ";
508 }
Failed cases url : https://openqa.suse.de/tests/2007109 ,https://openqa.suse.de/tests/2007108, https://openqa.suse.de/tests/2007152
PR of github : https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/5537
Updated by XGWang0 about 6 years ago
XGWang0 wrote:
The PR ([[https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/5537]]) caused hang to host installation by autoyast method on ipmi backend, the root cause is subroutine bootmenu_default_params and autoyast_boot_params both added autoyast= kernel parameters for host installation and second subroutine inputted incorrect url address for autoyast file.
Related code content for both subroutine:
=========bootmenu_default_params==============
377 if (!get_var("NICEVIDEO")) {
378 if (is_caasp) {
379 bootmenu_type_console_params $args{baud_rate};
380 }
381 elsif (!is_jeos) {
382 # make plymouth go graphical
383 type_string_very_slow "plymouth.ignore-serial-consoles " unless $args{pxe};
384 type_string_very_slow "linuxrc.log=/dev/$serialdev ";
385 bootmenu_type_console_params $args{baud_rate};
386 # Do not assert on pxe boot as it's unreliable due to multiline input
387 assert_screen "inst-consolesettingstyped", 30 unless $args{pxe};
388
389 # Enable linuxrc core dumps https://en.opensuse.org/SDB:Linuxrc#p_linuxrccore
390 type_string_very_slow "linuxrc.core=/dev/$serialdev ";
391 type_string_very_slow "linuxrc.debug=4,trace ";
392 }
393 bootmenu_type_extra_boot_params; # This api type autoyast= to boot prompt
394 }
395 }=========autoyast_boot_params==============
491 sub autoyast_boot_params {
492 my $ay_var = get_var("AUTOYAST");
493 return '' unless $ay_var;
494
495 my $autoyast_args = 'autoyast=';
496 # In case of SUPPORT_SERVER, profiles are available on another VM
497 if (get_var('USE_SUPPORT_SERVER')) {
498 my $proto = get_var("PROTO") || 'http';
499 $autoyast_args .= "$proto://10.0.2.1/";
500 $autoyast_args .= 'data/' if $ay_var !~ /aytests\//;
501 $autoyast_args .= $ay_var;
502 } elsif ($ay_var !~ /slp$|:\/\//) {
503 $autoyast_args .= data_url($ay_var); # Getting profile from the worker as openQA asset
504 } else {
505 $autoyast_args .= $ay_var; # Getting profile by direct url or slp
506 }
507 return $autoyast_args . " ";
508 }Failed cases url : https://openqa.suse.de/tests/2007109 ,https://openqa.suse.de/tests/2007108, https://openqa.suse.de/tests/2007152
PR of github : https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/5537
Above failed cases set AUTOYAST=1 and EXTRABOOTPARAMS=autoyast=http://xxxxxx.xml for host installation by autoyast method, these two parameters will cause boot_from_pxe.pm add autoyast related boot parameter twice and subroutine autoyast_boot_params did not concatenate correct autoyast boot parameter.
Updated by riafarov about 6 years ago
- Subject changed from boot_from_pxe.pm broken host installation by autoyast method for virtualization test on ipmi backend. to [functional][y] boot_from_pxe.pm broken host installation by autoyast method for virtualization test on ipmi backend.
- Due date set to 2018-09-11
- Assignee set to riafarov
Updated by riafarov about 6 years ago
Coping explanation from PR comment:
ok, actually the problem is that there is EXTRABOOTPARAMS set with autoyast, which is not the way it's designed to work. Profile with full url or under data folder can be provided in AUTOYAST variable. So we type EXTRABOOTPARAMS and the trying to get url for '1' as a profile name, which is wrong. Sorry, that I haven't expected such a use case. I will update test suite settings once I have verification run.
I've found 7 test suites which are affected by the same issue and require reconfiguration. I will clone them with proper set of parameters, so we get results for current build.
Please, use AUTOYAST setting to specify profiles and not EXTRABOOTPARAMS which is designed to be used for parameters which are specific for the particular hardware and not common boot parameters.
Updated by cachen about 6 years ago
The test seems still pending in autoyast->installation step https://openqa.nue.suse.com/tests/2009008#live
Is it because the boot_from_pxe.pm:
if (check_var('SCC_REGISTER', 'installation') && !(check_var('VIRT_AUTOTEST', 1) && check_var('INSTALL_TO_OTHERS', 1))) {
type_string(registration_bootloader_cmdline, $type_speed);
}
specific_bootmenu_params;
send_key 'ret';
save_screenshot;
Updated by riafarov about 6 years ago
@cachen, yep, found it out too, fix is merged: https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/5666
I've re-triggered the jobs, should be fine now.
Updated by riafarov about 6 years ago
- Status changed from Feedback to Resolved
Please, feel free to reopen in case something still doesn't work.