I added libvirt-users@redhat.com back to the Cc for this response. Please don't remove the list address when responding to postings on a mailing list. A message to the list is *much* more likely to reach someone who knows the answer than is a private message to a single person.

On 3/26/19 10:03 AM, Harsh Gondaliya wrote:
Mar 26 19:25:01 dpdk-OptiPlex-5040 libvirtd.service: 20423: error : virCommandWait:2553 : internal error: Child process (ovs-vsctl --timeout=5 -- --if-exists del-port vnet0 -- add-port br0 vnet0 -- set Interface vnet0 'external-ids:attached-mac="52:54:00:90:c6:c3"' -- set Interface vnet0 'external-ids:iface-id="a9700eff-03a7-4c47-a112-429fc20677a2"' -- set Interface vnet0 'external-ids:vm-id="41b4eef0-b820-41da-9034-9de22e1379e0"' -- set Interface vnet0 external-ids:iface-status=active) unexpected exit status 126:
*
*
*libvirt:  error : cannot execute binary ovs-vsctl: Permission denied*

Mar 26 19:25:01 dpdk-OptiPlex-5040 kernel: [ 1932.243181] audit: type=1400 audit(1553608501.701:59): apparmor="DENIED" operation="exec" profile="/usr/sbin/libvirtd" name="/usr/local/bin/ovs-vsctl" pid=20679 comm="libvirtd" requested_mask="x" denied_mask="x" fsuid=0 ouid=0

AppArmor is prohibiting it for some reason. I don't run debian or ubuntu, so I don't have any idea how AppArmor works. Possibly someone else on the list knows (or maybe you could search for help on AppArmor somewhere).



Mar 26 19:25:01 dpdk-OptiPlex-5040 libvirtd.service: 20423: debug : virCommandRun:2280 : Result status 0, stdout: '' stderr: 'libvirt: error : cannot execute binary ovs-vsctl: Permission denied#012' Mar 26 19:25:01 dpdk-OptiPlex-5040 libvirtd.service: 20423: error : virNetDevOpenvswitchAddPort:155 : internal error: Unable to add port vnet0 to OVS bridge br0 Mar 26 19:25:01 dpdk-OptiPlex-5040 NetworkManager[1096]: <info> [1553608501.7126] devices removed (path: /sys/devices/virtual/net/vnet0, iface: vnet0)


libvrt does not have permissions to execute ovs-vsctl. How can I get this issue sorted out?

On Wed, Mar 20, 2019 at 12:10 AM Laine Stump <la...@redhat.com <mailto:la...@redhat.com>> wrote:

    On 3/15/19 3:21 AM, Harsh Gondaliya wrote:
     > I have installed OVS from sources using the installation steps
    mentioned
     > on this link:
    http://docs.openvswitch.org/en/latest/intro/install/general/
     >
     > I had installed libvrt, KVM, QEMU and all the necessary packages
    using
     > apt-get. My KVM-QEMU hypervisor has been running well.
     >
     > To add a VM with the port attached to OVS bridge I changed the XML
     > domain file as per the instructions on this page:
     > http://docs.openvswitch.org/en/latest/howto/libvirt/
     >
     > But the when I start the VM using the Virtual Machine Manager I get
     > the following error:
     > *Error starting domain: internal error: Unable to add port vnet0
    to OVS
     > bridge br0*

    libvirt is creating a tap device, then running ovs-vsctl to attempt to
    attach it to the configured switch. To see what command is run, and
    what
    error is output, add this to your /etc/libvirt/libvirt.d:

        log_filters="1:util.command 1:util.netdevopenvswitch"
        log_outputs="1:syslog:libvirtd.service"

    and restart the libvirt service, then attempt to start your guest while
    watching the system logs. You will see an ovs-vsctl command run by
    virCommandRunAsync. That command and its output should give you a clue
    to what is missing from the locally-built openvswitch vs the official
    package installed with apt-get.


     > Traceback (most recent call last):
     >    File "/usr/share/virt-manager/virtManager/asyncjob.py", line
    90, in
     > cb_wrapper
     >      callback(asyncjob, *args, **kwargs)
     >    File "/usr/share/virt-manager/virtManager/asyncjob.py", line
    126, 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/domain.py", line
    1402, in
     > startup
     >      self._backend.create()
     >    File "/usr/lib/python2.7/dist-packages/libvirt.py", line 1035,
    in create
     >      if ret == -1: raise libvirtError ('virDomainCreate()
    failed', dom=self)
     > libvirtError: internal error: Unable to add port vnet0 to OVS
    bridge br0
     >
     > My output for ovs-vsctl show:
     > 3c28f516-dd5c-43cf-bea1-7c068668d1f6
     >      Bridge "br0"
     >          Port "enp0s31f6"
     >              Interface "enp0s31f6"
     >          Port "br0"
     >              Interface "br0"
     >                  type: internal
     >      ovs_version: "2.11.90"
     >
     > *However, when OVS is installed using apt-get rather than installing
     > from source or tarball, all these steps work very well.*
     > *
     > *
     > Please guide me why this error is occurring. I am using Ubuntu
    16.04 LTS
     > as my host machine. Many users are facing this issue and they have
     > reported it on OVS and other mailing lists. But, none is able to
    give a
     > satisfactory solution.
     >
     > Regards,
     > Harsh
     >
     >
     > _______________________________________________
     > libvirt-users mailing list
     > libvirt-users@redhat.com <mailto:libvirt-users@redhat.com>
     > https://www.redhat.com/mailman/listinfo/libvirt-users
     >


_______________________________________________
libvirt-users mailing list
libvirt-users@redhat.com
https://www.redhat.com/mailman/listinfo/libvirt-users

Reply via email to