in Nutanix

Unable To Remove a Bridge From an AHV Host

Incorrect bridge configuration on an AHV host can break a lot of functionalities, even if your cluster show nothing abnormal and all data replication is OK.

If you go through the Prism interface and you verify:

  • The network configuration
  • CVM and hosts availability
  • Cluster status and data redundancy

Everything’s will look fine and this can be a tricky situation. One of the symptoms was the inability to schedule virtual machines on the affected host. In my case it was a misconfigured bridge on one of the hosts, it was created by using an unicode character!!

The bridge in question was named br1-test”, if you try to remove it using the command bellow:

allssh manage_ovs --bridge_name "br1-test”" delete_single_bridge

You will end with this error:

2020-07-20 10:47:42 ERROR manage_ovs:602 OVS error (192.168.5.1 delete_single_bridge): 'ascii' codec can't decode byte 0xe2 in position 34: ordinal not in range(128)

Input:
{
    "args": [
        "br1-test\u201d"
    ],
    "cmd": "delete_single_bridge",
    "kwargs": {}
}

Traceback:
Traceback (most recent call last):
  File "/root/acropolis_modules/ovs.py", line 104, in _execute_command
    return _enforce_atomic(_ovs_execute)(config, input_obj)
  File "/root/acropolis_modules/ovs.py", line 59, in actual_func
    return fn(*args, **kwargs)
  File "/root/acropolis_modules/ovs.py", line 84, in _ovs_execute
    ret = getattr(br_manager, cmd)(*args, **kwargs)
  File "/root/acropolis_modules/br_manager.py", line 1078, in delete_single_bridge
    br, ignored_ports, bridge_chaining_enabled)
  File "/root/acropolis_modules/br_manager.py", line 256, in _list_interfaces
    KvmOvsBrLocal(self._ovs_util, br).get_bridge_name()))
  File "/root/acropolis_modules/utils.py", line 101, in list_ports
    return self._execute_fn("ovs-vsctl list-ifaces %s" % br).splitlines()
  File "/root/acropolis_modules/br_manager.py", line 65, in _execute_fn
    log.ERROR("%s: %d\n%s\n%s" % (errmsg, p.returncode, out, err))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 34: ordinal not in range(128)

The workaround is to connect to the affected host (not the CVM) and then use the following command to delete that bridge:

# ovs-vsctl del-br br1-test”

Hope that can help!

Write a Comment

Comment