Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 2320138

Summary: [FFU] 16.2->17.1 upgrade fails if extra openvswitch packages are installed
Product: Red Hat OpenStack Reporter: Eric Nothen <enothen>
Component: documentationAssignee: kgilliga
Status: CLOSED MIGRATED QA Contact: Archana Singh <arcsingh>
Severity: medium Docs Contact:
Priority: medium    
Version: 17.1 (Wallaby)CC: astupnik, jbadiapa, jpretori, kgilliga, ramishra
Target Milestone: z5Keywords: Triaged
Target Release: 17.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-01-15 20:55:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Eric Nothen 2024-10-21 09:34:25 UTC
Description of problem:
tripleo-ansible task with name "Special treatment for OpenvSwitch" fails if some extra, non-core, openvswitch packages are installed.

Version-Release number of selected component (if applicable):
17.1.3

How reproducible:
Always reproducible

Steps to Reproduce:
1. Deploy RHOSP 16.2 overcloud
2. Install openvswitch2.15-devel or openvswitch2.15-test on at least one overcloud node
3. Run overcloud upgrade

Actual results:
Overcloud upgrade breaks during execution of task "Special treatment for OpenvSwitch", on the host with extra openvswitch2.15 packages:

~~~
^[[0;31m2024-10-21 05:09:34.845965 | 2cc26024-0e20-fa42-5414-00000000187d |      FATAL | Special treatment for OpenvSwitch | overcloud-novacompute-0 | error={"changed": false, "module_stderr": "Traceback (most recent call last):\n  File \"<stdin>\", line 102, in <module>\n  File \"<stdin>\", line 94, in _ansiballz_main\n  File \"<stdin>\", line 40, in invoke_module\n  File \"/usr/lib64/python3.6/runpy.py\", line 205, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib64/python3.6/runpy.py\", line 96, in _run_module_code\n    mod_name, mod_spec, pkg_name, script_name)\n  File \"/usr/lib64/python3.6/runpy.py\", line 85, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_tripleo_ovs_upgrade_payload_rphm6chp/ansible_tripleo_ovs_upgrade_payload.zip/ansible/modules/tripleo_ovs_upgrade.py\", line 337, in <module>\n  File \"/tmp/ansible_tripleo_ovs_upgrade_payload_rphm6chp/ansible_tripleo_ovs_upgrade_payload.zip/ansible/modules/tripleo_ovs_upgrade.py\", line 326, in main\n  File \"/tmp/ansible_tripleo_ovs_upgrade_payload_rphm6chp/ansible_tripleo_ovs_upgrade_payload.zip/ansible/modules/tripleo_ovs_upgrade.py\", line 202, in layer_product_upgrade\nIndexError: list index out of range\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}^[[0m
~~~


Expected results:
Overcloud upgrade tasks can correctly detect and upgrade all installed openvswitch2.15-* packages.

Additional info:

This issue has been already identified and documented [0], but I don't see the root cause investigated nor a BZ created yet, and therefore I'm creating one.

The root cause is likely in the regex inside this function [1], as the test or devel packages (and others) would not hit the regular expression [2]. Removing the packages as instructed on the KB is a good-enough workaround, but the problem should not happen in the first place.

[0] https://access.redhat.com/solutions/7057436
[1] https://opendev.org/openstack/tripleo-ansible/src/commit/31ed062a9c1cc2bbccc73ece1ed7307e58b390d1/tripleo_ansible/ansible_plugins/modules/tripleo_ovs_upgrade.py#L83-L96
[2] https://regexr.com/879bp