Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Linux] Add known issue for PVRDMA hot-remove failure on Oracle Linux 8.8 #490

Merged
merged 2 commits into from
Aug 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
13 changes: 10 additions & 3 deletions common/vm_remove_network_adapter.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# Copyright 2021-2023 VMware, Inc.
# SPDX-License-Identifier: BSD-2-Clause
---
# Remove network adapter from VM
# Parameters:
# adapter_label: The network adapter label. For example, Network adapter 1.
# netadapter_mac_addr: The network adapter MAC address.
# vm_remove_adapter_ignore_errors: Ignore errors at removeing network adapter. Default is False.
#
- name: "Remove a network adapter from VM '{{ vm_name }}'"
community.vmware.vmware_guest_network:
hostname: "{{ vsphere_host_name }}"
Expand All @@ -14,8 +20,9 @@
label: "{{ adapter_label | default(omit) }}"
mac_address: "{{ netadapter_mac_addr | default(omit) }}"
state: absent
register: remove_result
register: remove_adapter
ignore_errors: "{{ vm_remove_adapter_ignore_errors | default(False) }}"
keirazhang marked this conversation as resolved.
Show resolved Hide resolved

- name: Display the result of removing network adapter
ansible.builtin.debug: var=remove_result
- name: "Display the result of removing network adapter"
ansible.builtin.debug: var=remove_adapter
when: enable_debug is defined and enable_debug
34 changes: 34 additions & 0 deletions linux/network_device_ops/hot_remove_network_adapter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,40 @@
include_tasks: ../../common/vm_remove_network_adapter.yml
vars:
netadapter_mac_addr: "{{ new_network_adapter_mac_addr }}"
vm_remove_adapter_ignore_errors: True

- name: "Network adapter hot-remove succeeded"
ansible.builtin.debug:
msg: "Successfully hot removed new {{ adapter_type }} network adapter {{ new_network_adapter }}"
when:
- remove_adapter.changed is defined
- remove_adapter.changed

- name: "Network adapter hot-remove failed"
when: >-
(remove_adapter.changed is undefined or
not remove_adapter.changed)
block:
- name: "Known issue - PVRDMA network adapter hot-remove caused kernel crash on Oracle Linux 8.8"
ansible.builtin.debug:
msg:
- "Hot removing PVRDMA network adapter could cause kernel crash on Oracle Linux 8.8."
- "Please refer to https://kb.vmware.com/s/article/93131 for details."
tags:
- known_issue
when:
- remove_adapter.module_stderr is defined
- (remove_adapter.module_stderr |
regex_findall("The guest operating system did not respond to a hot-remove request for device '.*' in a timely manner.") | length > 0)
- adapter_type == "pvrdma"
- esxi_version is version('7.0.0', '>=')
- esxi_version is version('8.0.0', '<')
- guest_os_ansible_distribution == "OracleLinux"
- guest_os_ansible_distribution_ver == '8.8'

- name: "Failed to hot remove new {{ adapter_type }} network adapter {{ new_network_adapter }}"
ansible.builtin.fail:
msg: "{{ remove_adapter }}"

- name: "Check VM connection is not broken after hot-remove"
include_tasks: ../../common/vm_wait_connection.yml
Expand Down
4 changes: 2 additions & 2 deletions windows/network_device_ops/network_adapter_deviceops.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@
- name: Check remove network adapter to VM succeed
ansible.builtin.assert:
that:
- "{{ 'changed' in remove_result }}"
- "{{ remove_result.changed }}"
- remove_adapter.changed is defined
- remove_adapter.changed
fail_msg: "Hot remove network adapter task result is not changed."
- name: Wait 10 seconds after network adapter hot remove
ansible.builtin.pause:
Expand Down