Bug 1393906

Summary: virt-manager traceback setting up bridge
Product: [Community] Virtualization Tools Reporter: Steve Grubb <sgrubb>
Component: netcfAssignee: Laine Stump <laine>
Status: NEW --- QA Contact: Laine Stump <laine>
Severity: high Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: berrange, crobinso, hmatsumo, sgrubb, virt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Steve Grubb 2016-11-10 15:14:33 UTC
Description of problem:
When setting up a bridge for vm's to use, it fails when clicking Finish and gives a python traceback:

Error creating interface: 'Could not define interface: internal error: could not get interface XML description: unspecified error - errors in loading some config files'

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 88, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/createinterface.py", line 1150, in do_install
    self.interface.install(meter, create=activate)
  File "/usr/share/virt-manager/virtinst/interface.py", line 258, in install
    raise RuntimeError(_("Could not define interface: %s") % str(e))
RuntimeError: Could not define interface: internal error: could not get interface XML description: unspecified error - errors in loading some config files

Version-Release number of selected component (if applicable):
virt-manager-1.4.0-3.fc24.noarch

How reproducible:
everytime

Steps to reproduce
1. click on edit| Connection Details
2. Select Network Interfaces tab
3. Click on add interface
4. Bridge should be selected click forward
5. Give it a name, select on boot, setup static ip address, activate now
6. Click on Finish

Comment 1 Cole Robinson 2016-12-21 21:45:15 UTC
That error is coming from netcf, unfortunately it's not very useful, would be nice if it at least pinpointed what file failed to parse.

Comment 2 Laine Stump 2017-01-03 18:53:08 UTC
The root of the "vague error" problem lies in the design that uses augeas to parse a long list of files. It is sometimes possible to see more detailed error messages by running something like "ncftool -d dumpxml $ifname". Can you try running that using the ethernet device as $ifname? (assuming that the error is also there when just attempting to dump the current interface config)

Comment 3 Steve Grubb 2017-01-03 19:07:03 UTC
It chooses br1 as the default device. Running the command said that it did not exist.

After installing the netcf package it seems to work now. I can create a bridge by the gui. Is netcf a required component for virt-manager? If so, maybe there is a missing dependency.

But when I tried to stop the bridge to delete it, I get a traceback like this:

Error stopping interface 'br1': Requested operation is not valid: interface is not running

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 88, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 124, in tmpcb
    callback(*args, **kwargs)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 83, in newfn
    ret = fn(self, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/interface.py", line 72, in stop
    self._backend.destroy(0)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3161, in destroy
    if ret == -1: raise libvirtError ('virInterfaceDestroy() failed', net=self)
libvirtError: Requested operation is not valid: interface is not running

I'd expect a normal dialog box informing me its not running rather than a traceback. The program seems confused. I checked the activate now box when creating it. It says active. Closing the program and restarting it now shows br1 as inactive and I can delete it.

Comment 4 Laine Stump 2017-01-03 20:20:40 UTC
The netcf package isn't required for virt-manager/libvirt to create bridges, only the netcf-libs package (and the original error message you encountered "errors in some config files" verifies you already had that package installed).

The only thing in the netcf package is the ncftool commandline utility (and its manpage, I think). It's rather odd that installing that package would change the behavior of virt-manager at all; perhaps it was a coincidence / caused by something else you did in the meantime?

As for the command I asked you to test, I meant for you to use the name of the physical ethernet you were trying to attach to the bridge, not the name of the bridge you were going to create.

The problem of virt-manager not recognizing that the bridge was up until you restarted the program does seem like virt-manager getting confused about the state of the bridge.