Re: libvirt and bhyve problems
On Sun, Jun 15, 2014 at 8:20 AM, Roman Bogorodskiy wrote: > > I have updated the port: > > http://people.freebsd.org/~novel/misc/libvirt_port2.tgz > > Changes are: > > * added RUN_DEPENDS on dnsmasq (required for networking) > * added installation on network definition files Hi, dnsmasq needs to be in BUILD_DEPENDS *and* RUN_DEPENDS for this port. I did a test on my system where I deleted the dnsmasq port, and then built the libvirt port. During the configure stage of this port, the #define DNSMASQ variable is expanded and written to a config.h. If the dnsmasq port is not around during the build stage of the libvirt port, then this variable is not expanded properly, and when the libvirt port is fully built, running libvirtd will not start dnsmasq, because the path to dnsmasq was not written properly to config.h. -- Craig ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: libvirt and bhyve problems
Craig Rodrigues wrote: > On Sun, Jun 15, 2014 at 8:20 AM, Roman Bogorodskiy wrote: > > > > I have updated the port: > > > > http://people.freebsd.org/~novel/misc/libvirt_port2.tgz > > > OK, I deinstall the old port, took your port, built it, and installed it. > > When I started libvirtd, I got this: > > 2014-06-15 18:47:07.236+: 34485605376: info : libvirt version: 1.2.5 > 2014-06-15 18:47:07.236+: 34485605376: info : > dnsmasqCapsSetFromBuffer:685 : dnsmasq version is 2.71, --bind-dynamic > is present, SO_BINDTODEVICE is in use > 2014-06-15 18:47:07.237+: 34485605376: info : > networkReloadFirewallRules:1750 : Reloading iptables rules > 2014-06-15 18:47:07.237+: 34485605376: info : > networkRefreshDaemons:1722 : Refreshing network daemons > 2014-06-15 18:47:07.395+: 34485605376: error : virCommandWait:2426 > : internal error: Child process (/usr/local/sbin/dnsmasq > --conf-file=/usr/local/var/lib/libvirt/dnsmasq/default.conf) > unexpected exit status 2: > dnsmasq: failed to create listening socket for 127.0.0.1: Address already in > use > > 2014-06-15 18:47:07.484+: 34485605376: error : virExec:417 : > Cannot find 'pm-is-supported' in path: No such file or directory > 2014-06-15 18:47:07.484+: 34485605376: warning : > virQEMUCapsInit:948 : Failed to get host power management capabilities > 2014-06-15 18:47:07.495+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/var/run/libvirt/qemu > 2014-06-15 18:47:07.495+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/etc/libvirt/qemu > 2014-06-15 18:47:07.583+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/etc/libvirt/bhyve > 2014-06-15 18:47:07.584+: 34485605376: info : > virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' > > > > Trying to start bhyve did not work. > > After some investigation, I did the following: > > service local_unbound stop > > > Then I started libvirtd again: > > 2014-06-15 18:47:07.236+: 34485605376: info : libvirt version: 1.2.5 > 2014-06-15 18:47:07.236+: 34485605376: info : > dnsmasqCapsSetFromBuffer:685 : dnsmasq version is 2.71, --bind-dynamic > is present, SO_BINDTODEVICE is in use > 2014-06-15 18:47:07.237+: 34485605376: info : > networkReloadFirewallRules:1750 : Reloading iptables rules > 2014-06-15 18:47:07.237+: 34485605376: info : > networkRefreshDaemons:1722 : Refreshing network daemons > 2014-06-15 18:47:07.395+: 34485605376: error : virCommandWait:2426 > : internal error: Child process (/usr/local/sbin/dnsmasq > --conf-file=/usr/local/var/lib/libvirt/dnsmasq/default.conf) > unexpected exit status 2: > dnsmasq: failed to create listening socket for 127.0.0.1: Address already in > use > > 2014-06-15 18:47:07.484+: 34485605376: error : virExec:417 : > Cannot find 'pm-is-supported' in path: No such file or directory > 2014-06-15 18:47:07.484+: 34485605376: warning : > virQEMUCapsInit:948 : Failed to get host power management capabilities > 2014-06-15 18:47:07.495+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/var/run/libvirt/qemu > 2014-06-15 18:47:07.495+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/etc/libvirt/qemu > 2014-06-15 18:47:07.583+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/etc/libvirt/bhyve > 2014-06-15 18:47:07.584+: 34485605376: info : > virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' > > > At this point, I could see the virbr0 device: > > virbr0: flags=8843 metric 0 mtu 1500 > ether 02:b8:18:5f:0f:00 > inet 192.168.122.1 netmask 0xff00 broadcast 192.168.122.255 > nd6 options=1 > id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 4 > maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200 > root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0 > > > I was then able to do: > > virsh -c 'bhyve:///system' > start bhyve > > and start a VM. > This is good progress! > > Once thing I observed is that if I killed the libvirtd process, > it did not clean up the dnsmasq process that it started: > > /usr/local/sbin/dnsmasq > --conf-file=/usr/local/var/lib/libvirt/dnsmasq/default.conf > > and a subsequent restart of libvirtd would fail. I think it's intentional not to kill dnsmasq. There are persistent and transient objects in libvirt (such as domains and networks), and persistent objects live forever, while transient objects live until manually destroyed or host is restarted. So libvirt doesn't kill persistent VMs and, I guess, it doesn't stop dnsmasq to keep persistent networks functional. It should not affect restart. I'll fail to start the network, but as it's here already, we're fine. BT
Re: libvirt and bhyve problems
On Sun, Jun 15, 2014 at 8:20 AM, Roman Bogorodskiy wrote: > > I have updated the port: > > http://people.freebsd.org/~novel/misc/libvirt_port2.tgz OK, I deinstall the old port, took your port, built it, and installed it. When I started libvirtd, I got this: 2014-06-15 18:47:07.236+: 34485605376: info : libvirt version: 1.2.5 2014-06-15 18:47:07.236+: 34485605376: info : dnsmasqCapsSetFromBuffer:685 : dnsmasq version is 2.71, --bind-dynamic is present, SO_BINDTODEVICE is in use 2014-06-15 18:47:07.237+: 34485605376: info : networkReloadFirewallRules:1750 : Reloading iptables rules 2014-06-15 18:47:07.237+: 34485605376: info : networkRefreshDaemons:1722 : Refreshing network daemons 2014-06-15 18:47:07.395+: 34485605376: error : virCommandWait:2426 : internal error: Child process (/usr/local/sbin/dnsmasq --conf-file=/usr/local/var/lib/libvirt/dnsmasq/default.conf) unexpected exit status 2: dnsmasq: failed to create listening socket for 127.0.0.1: Address already in use 2014-06-15 18:47:07.484+: 34485605376: error : virExec:417 : Cannot find 'pm-is-supported' in path: No such file or directory 2014-06-15 18:47:07.484+: 34485605376: warning : virQEMUCapsInit:948 : Failed to get host power management capabilities 2014-06-15 18:47:07.495+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/var/run/libvirt/qemu 2014-06-15 18:47:07.495+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/qemu 2014-06-15 18:47:07.583+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/bhyve 2014-06-15 18:47:07.584+: 34485605376: info : virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' Trying to start bhyve did not work. After some investigation, I did the following: service local_unbound stop Then I started libvirtd again: 2014-06-15 18:47:07.236+: 34485605376: info : libvirt version: 1.2.5 2014-06-15 18:47:07.236+: 34485605376: info : dnsmasqCapsSetFromBuffer:685 : dnsmasq version is 2.71, --bind-dynamic is present, SO_BINDTODEVICE is in use 2014-06-15 18:47:07.237+: 34485605376: info : networkReloadFirewallRules:1750 : Reloading iptables rules 2014-06-15 18:47:07.237+: 34485605376: info : networkRefreshDaemons:1722 : Refreshing network daemons 2014-06-15 18:47:07.395+: 34485605376: error : virCommandWait:2426 : internal error: Child process (/usr/local/sbin/dnsmasq --conf-file=/usr/local/var/lib/libvirt/dnsmasq/default.conf) unexpected exit status 2: dnsmasq: failed to create listening socket for 127.0.0.1: Address already in use 2014-06-15 18:47:07.484+: 34485605376: error : virExec:417 : Cannot find 'pm-is-supported' in path: No such file or directory 2014-06-15 18:47:07.484+: 34485605376: warning : virQEMUCapsInit:948 : Failed to get host power management capabilities 2014-06-15 18:47:07.495+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/var/run/libvirt/qemu 2014-06-15 18:47:07.495+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/qemu 2014-06-15 18:47:07.583+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/bhyve 2014-06-15 18:47:07.584+: 34485605376: info : virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' At this point, I could see the virbr0 device: virbr0: flags=8843 metric 0 mtu 1500 ether 02:b8:18:5f:0f:00 inet 192.168.122.1 netmask 0xff00 broadcast 192.168.122.255 nd6 options=1 id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 4 maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200 root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0 I was then able to do: virsh -c 'bhyve:///system' start bhyve and start a VM. This is good progress! Once thing I observed is that if I killed the libvirtd process, it did not clean up the dnsmasq process that it started: /usr/local/sbin/dnsmasq --conf-file=/usr/local/var/lib/libvirt/dnsmasq/default.conf and a subsequent restart of libvirtd would fail. The devel/libvirt port is looking a lot better with your changes. Can you push these changes into the port? I filed bugs 190767 and 190783, but did not get any response from the port maintainer, jgh@. -- Craig ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: libvirt and bhyve problems
Craig Rodrigues wrote: > On Thu, Jun 12, 2014 at 12:00 PM, Roman Bogorodskiy wrote: > > > > Ah. Actually, libvirt manages bridges and taps on its own. So, the > > preferred flow is that libvirt starts its networks on startup > > automatically. By default it has a network with the 'virbr0' device > > which it creates on its own. > > > > Later on it creates vnet devices (which are tap devices) automatically > > as well on VM startup and plugs them to the bridge. > > > > The configuration you have probably confuses it, could you consider > > trying without that? > > OK, I removed all autobridge and cloned_interfaces entries > from my rc.conf and rebooted. I am still using your version of the > libvirt port. > > I tried the steps again and got this: > > 2014-06-13 19:09:10.482+: 34485605376: info : libvirt version: 1.2.5 > 2014-06-13 19:09:10.482+: 34485605376: error : > dnsmasqCapsRefreshInternal:726 : Cannot check dnsmasq binary dnsmasq: > No such file or directory > 2014-06-13 19:09:10.482+: 34485605376: info : > networkReloadFirewallRules:1750 : Reloading iptables rules > 2014-06-13 19:09:10.482+: 34485605376: info : > networkRefreshDaemons:1722 : Refreshing network daemons > 2014-06-13 19:09:10.593+: 34485605376: error : virExec:417 : > Cannot find 'pm-is-supported' in path: No such file or directory > 2014-06-13 19:09:10.593+: 34485605376: warning : > virQEMUCapsInit:948 : Failed to get host power management capabilities > 2014-06-13 19:09:10.615+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/var/run/libvirt/qemu > 2014-06-13 19:09:10.615+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/etc/libvirt/qemu > 2014-06-13 19:09:10.716+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/etc/libvirt/bhyve > 2014-06-13 19:09:10.716+: 34485605376: info : > virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' > 2014-06-13 19:09:25.938+: 34485598208: error : > virNetDevTapCreate:385 : Unable to create tap device: Invalid argument > 2014-06-13 19:09:26.063+: 34485598208: error : virCommandWait:2426 > : internal error: Child process (/usr/sbin/bhyvectl --destroy > --vm=bhyve) unexpected exit status 255 > > > If I do ifconfig, I have no bridge or tap devices. > > > > > > Also, do you have working 'net-list' command in virsh with my version of > > port? > > I get this: > virsh # net-list > Name State Autostart Persistent > -- > I have updated the port: http://people.freebsd.org/~novel/misc/libvirt_port2.tgz Changes are: * added RUN_DEPENDS on dnsmasq (required for networking) * added installation on network definition files Hopefully this will allow to bring up network on start. When the daemon starts, virsh should show the following: virsh # net-list Name State Autostart Persistent -- default active yes yes virsh # If that's not the case, then something is still going wrong. And yes, qemu support should be enabled (networks defs seem to be installed with qemu support). Even if it doesn't work, and 'net-list --all' is empty, we could try to do it manually (but still, if it's the case, then it's something wrong with the port that needs to be fixed): in virsh # net-define /usr/local/etc/libvirt/qemu/networks/default.xml # net-start default Roman Bogorodskiy pgpZGtuqlk5zW.pgp Description: PGP signature
Re: libvirt and bhyve problems
On Thu, Jun 12, 2014 at 12:00 PM, Roman Bogorodskiy wrote: > > Ah. Actually, libvirt manages bridges and taps on its own. So, the > preferred flow is that libvirt starts its networks on startup > automatically. By default it has a network with the 'virbr0' device > which it creates on its own. > > Later on it creates vnet devices (which are tap devices) automatically > as well on VM startup and plugs them to the bridge. > > The configuration you have probably confuses it, could you consider > trying without that? OK, I removed all autobridge and cloned_interfaces entries from my rc.conf and rebooted. I am still using your version of the libvirt port. I tried the steps again and got this: 2014-06-13 19:09:10.482+: 34485605376: info : libvirt version: 1.2.5 2014-06-13 19:09:10.482+: 34485605376: error : dnsmasqCapsRefreshInternal:726 : Cannot check dnsmasq binary dnsmasq: No such file or directory 2014-06-13 19:09:10.482+: 34485605376: info : networkReloadFirewallRules:1750 : Reloading iptables rules 2014-06-13 19:09:10.482+: 34485605376: info : networkRefreshDaemons:1722 : Refreshing network daemons 2014-06-13 19:09:10.593+: 34485605376: error : virExec:417 : Cannot find 'pm-is-supported' in path: No such file or directory 2014-06-13 19:09:10.593+: 34485605376: warning : virQEMUCapsInit:948 : Failed to get host power management capabilities 2014-06-13 19:09:10.615+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/var/run/libvirt/qemu 2014-06-13 19:09:10.615+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/qemu 2014-06-13 19:09:10.716+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/bhyve 2014-06-13 19:09:10.716+: 34485605376: info : virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' 2014-06-13 19:09:25.938+: 34485598208: error : virNetDevTapCreate:385 : Unable to create tap device: Invalid argument 2014-06-13 19:09:26.063+: 34485598208: error : virCommandWait:2426 : internal error: Child process (/usr/sbin/bhyvectl --destroy --vm=bhyve) unexpected exit status 255 If I do ifconfig, I have no bridge or tap devices. > > Also, do you have working 'net-list' command in virsh with my version of > port? I get this: virsh # net-list Name State Autostart Persistent -- > > PS If you're available for some real-time conversation such as on IRC, I > think some kind of things would be faster to discuss there. You can private mail me some times when you are available. I am busy the next few days, but might have a few hours on Sunday. -- Craig ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: libvirt and bhyve problems
On 2014-06-12 20:33, Craig Rodrigues wrote: On Thu, Jun 12, 2014 at 11:28 AM, Craig Rodrigues wrote: On Thu, Jun 12, 2014 at 1:00 AM, Roman Bogorodskiy wrote: http://people.freebsd.org/~novel/misc/libvirt_port_updated.tgz With this setup, I'm able to get networking (e.g. virsh net-list works) and updated the fix for the previous problem. I was able to start a VM with that setup. I deleted the old port from my system and took your modified port, built it, and installed it. I followed my previous steps in: http://lists.freebsd.org/pipermail/freebsd-virtualization/2014-June/002588.html and got this: 2014-06-12 18:23:54.328+: 34485605376: info : libvirt version: 1.2.5 2014-06-12 18:23:54.328+: 34485605376: error : dnsmasqCapsRefreshInternal:726 : Cannot check dnsmasq binary dnsmasq: No such file or directory 2014-06-12 18:23:54.328+: 34485605376: info : networkReloadFirewallRules:1750 : Reloading iptables rules 2014-06-12 18:23:54.328+: 34485605376: info : networkRefreshDaemons:1722 : Refreshing network daemons 2014-06-12 18:23:54.438+: 34485605376: error : virExec:417 : Cannot find 'pm-is-supported' in path: No such file or directory 2014-06-12 18:23:54.439+: 34485605376: warning : virQEMUCapsInit:948 : Failed to get host power management capabilities 2014-06-12 18:23:54.460+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/var/run/libvirt/qemu 2014-06-12 18:23:54.461+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/qemu 2014-06-12 18:23:54.560+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/bhyve 2014-06-12 18:23:54.560+: 34485605376: info : virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' 2014-06-12 18:24:17.940+: 34485598208: error : virNetDevBridgeAddPort:399 : Unable to add bridge tap0 port vnet0: Invalid argument 2014-06-12 18:24:18.056+: 34485598208: error : virCommandWait:2426 : internal error: Child process (/usr/sbin/bhyvectl --destroy --vm=bhyve) unexpected exit status 255 -- Craig After the program fails, these are my tap and bridge devices, as shown by ifconfig: bridge0: flags=8843 metric 0 mtu 1500 ether 02:29:45:c7:8f:00 nd6 options=9 id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200 root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0 member: em0 flags=143 ifmaxaddr 0 port 1 priority 128 path cost 2 member: tap2 flags=143 ifmaxaddr 0 port 7 priority 128 path cost 200 member: tap1 flags=143 ifmaxaddr 0 port 6 priority 128 path cost 200 member: tap0 flags=143 ifmaxaddr 0 port 5 priority 128 path cost 200 tap0: flags=8902 metric 0 mtu 1500 options=8 ether 00:bd:53:27:00:00 nd6 options=29 media: Ethernet autoselect status: no carrier tap1: flags=8902 metric 0 mtu 1500 options=8 ether 00:bd:59:27:00:01 nd6 options=29 media: Ethernet autoselect status: no carrier tap2: flags=8943 metric 0 mtu 1500 options=8 ether 00:bd:5e:27:00:02 nd6 options=29 media: Ethernet autoselect status: active Opened by PID 1506 vnet0: flags=8802 metric 0 mtu 1500 options=8 ether fe:54:00:33:20:8c nd6 options=21 media: Ethernet autoselect status: no carrier This is in my /etc/rc.conf for creating bridge and tap devices on bootup: # # Create tap devices, one tap interface per BHyve VM. # Add the tap interfaces to bridge0 cloned_interfaces="bridge0 tap0 tap1 tap2" autobridge_interfaces="bridge0" autobridge_bridge0="tap* em0" I claim to know nothing about libvirt. But in my scripts I need to delay using the tap?? interfaces for 1-2 secs with a sleep. Because otherwise my bhyve VM fails. Could be the same here? --WjW ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: libvirt and bhyve problems
Craig Rodrigues wrote: > On Thu, Jun 12, 2014 at 11:28 AM, Craig Rodrigues wrote: > > On Thu, Jun 12, 2014 at 1:00 AM, Roman Bogorodskiy > > wrote: > >> > >> http://people.freebsd.org/~novel/misc/libvirt_port_updated.tgz > >> > >> With this setup, I'm able to get networking (e.g. virsh net-list works) > >> and updated the fix for the previous problem. I was able to start a VM > >> with that setup. > > > > > > I deleted the old port from my system and took your modified port, > > built it, and installed it. > > > > I followed my previous steps in: > > http://lists.freebsd.org/pipermail/freebsd-virtualization/2014-June/002588.html > > and got this: > > > > 2014-06-12 18:23:54.328+: 34485605376: info : libvirt version: 1.2.5 > > 2014-06-12 18:23:54.328+: 34485605376: error : > > dnsmasqCapsRefreshInternal:726 : Cannot check dnsmasq binary dnsmasq: > > No such file or directory > > 2014-06-12 18:23:54.328+: 34485605376: info : > > networkReloadFirewallRules:1750 : Reloading iptables rules > > 2014-06-12 18:23:54.328+: 34485605376: info : > > networkRefreshDaemons:1722 : Refreshing network daemons > > 2014-06-12 18:23:54.438+: 34485605376: error : virExec:417 : > > Cannot find 'pm-is-supported' in path: No such file or directory > > 2014-06-12 18:23:54.439+: 34485605376: warning : > > virQEMUCapsInit:948 : Failed to get host power management capabilities > > 2014-06-12 18:23:54.460+: 34485605376: info : > > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > > /usr/local/var/run/libvirt/qemu > > 2014-06-12 18:23:54.461+: 34485605376: info : > > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > > /usr/local/etc/libvirt/qemu > > 2014-06-12 18:23:54.560+: 34485605376: info : > > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > > /usr/local/etc/libvirt/bhyve > > 2014-06-12 18:23:54.560+: 34485605376: info : > > virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' > > 2014-06-12 18:24:17.940+: 34485598208: error : > > virNetDevBridgeAddPort:399 : Unable to add bridge tap0 port vnet0: > > Invalid argument > > 2014-06-12 18:24:18.056+: 34485598208: error : virCommandWait:2426 > > : internal error: Child process (/usr/sbin/bhyvectl --destroy > > --vm=bhyve) unexpected exit status 255 > > > > > > -- > > Craig > > > After the program fails, these are my tap and bridge devices, as shown > by ifconfig: > > bridge0: flags=8843 metric 0 mtu 1500 > ether 02:29:45:c7:8f:00 > nd6 options=9 > id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 > maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200 > root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0 > member: em0 flags=143 > ifmaxaddr 0 port 1 priority 128 path cost 2 > member: tap2 flags=143 > ifmaxaddr 0 port 7 priority 128 path cost 200 > member: tap1 flags=143 > ifmaxaddr 0 port 6 priority 128 path cost 200 > member: tap0 flags=143 > ifmaxaddr 0 port 5 priority 128 path cost 200 > tap0: flags=8902 metric 0 mtu 1500 > options=8 > ether 00:bd:53:27:00:00 > nd6 options=29 > media: Ethernet autoselect > status: no carrier > tap1: flags=8902 metric 0 mtu > 1500 > options=8 > ether 00:bd:59:27:00:01 > nd6 options=29 > media: Ethernet autoselect > status: no carrier > tap2: flags=8943 > metric 0 mtu 1500 > options=8 > ether 00:bd:5e:27:00:02 > nd6 options=29 > media: Ethernet autoselect > status: active > Opened by PID 1506 > vnet0: flags=8802 metric 0 mtu 1500 > options=8 > ether fe:54:00:33:20:8c > nd6 options=21 > media: Ethernet autoselect > status: no carrier > > > This is in my /etc/rc.conf for creating bridge and tap devices on bootup: > > # > # Create tap devices, one tap interface per BHyve VM. > # Add the tap interfaces to bridge0 > > cloned_interfaces="bridge0 tap0 tap1 tap2" > > autobridge_interfaces="bridge0" > autobridge_bridge0="tap* em0" Ah. Actually, libvirt manages bridges and taps on its own. So, the preferred flow is that libvirt starts its networks on startup automatically. By default it has a network with the 'virbr0' device which it creates on its own. Later on it creates vnet devices (which are tap devices) automatically as well on VM startup and plugs them to the bridge. The configuration you have probably confuses it, could you consider trying without that? Also, do you have working 'net-list' command in virsh with my version of port? PS If you're available for some real-time conversation such as on IRC, I think some kind of things would be faster to discuss there. Thanks, Roman
Re: libvirt and bhyve problems
On Thu, Jun 12, 2014 at 11:28 AM, Craig Rodrigues wrote: > On Thu, Jun 12, 2014 at 1:00 AM, Roman Bogorodskiy wrote: >> >> http://people.freebsd.org/~novel/misc/libvirt_port_updated.tgz >> >> With this setup, I'm able to get networking (e.g. virsh net-list works) >> and updated the fix for the previous problem. I was able to start a VM >> with that setup. > > > I deleted the old port from my system and took your modified port, > built it, and installed it. > > I followed my previous steps in: > http://lists.freebsd.org/pipermail/freebsd-virtualization/2014-June/002588.html > and got this: > > 2014-06-12 18:23:54.328+: 34485605376: info : libvirt version: 1.2.5 > 2014-06-12 18:23:54.328+: 34485605376: error : > dnsmasqCapsRefreshInternal:726 : Cannot check dnsmasq binary dnsmasq: > No such file or directory > 2014-06-12 18:23:54.328+: 34485605376: info : > networkReloadFirewallRules:1750 : Reloading iptables rules > 2014-06-12 18:23:54.328+: 34485605376: info : > networkRefreshDaemons:1722 : Refreshing network daemons > 2014-06-12 18:23:54.438+: 34485605376: error : virExec:417 : > Cannot find 'pm-is-supported' in path: No such file or directory > 2014-06-12 18:23:54.439+: 34485605376: warning : > virQEMUCapsInit:948 : Failed to get host power management capabilities > 2014-06-12 18:23:54.460+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/var/run/libvirt/qemu > 2014-06-12 18:23:54.461+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/etc/libvirt/qemu > 2014-06-12 18:23:54.560+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/etc/libvirt/bhyve > 2014-06-12 18:23:54.560+: 34485605376: info : > virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' > 2014-06-12 18:24:17.940+: 34485598208: error : > virNetDevBridgeAddPort:399 : Unable to add bridge tap0 port vnet0: > Invalid argument > 2014-06-12 18:24:18.056+: 34485598208: error : virCommandWait:2426 > : internal error: Child process (/usr/sbin/bhyvectl --destroy > --vm=bhyve) unexpected exit status 255 > > > -- > Craig After the program fails, these are my tap and bridge devices, as shown by ifconfig: bridge0: flags=8843 metric 0 mtu 1500 ether 02:29:45:c7:8f:00 nd6 options=9 id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200 root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0 member: em0 flags=143 ifmaxaddr 0 port 1 priority 128 path cost 2 member: tap2 flags=143 ifmaxaddr 0 port 7 priority 128 path cost 200 member: tap1 flags=143 ifmaxaddr 0 port 6 priority 128 path cost 200 member: tap0 flags=143 ifmaxaddr 0 port 5 priority 128 path cost 200 tap0: flags=8902 metric 0 mtu 1500 options=8 ether 00:bd:53:27:00:00 nd6 options=29 media: Ethernet autoselect status: no carrier tap1: flags=8902 metric 0 mtu 1500 options=8 ether 00:bd:59:27:00:01 nd6 options=29 media: Ethernet autoselect status: no carrier tap2: flags=8943 metric 0 mtu 1500 options=8 ether 00:bd:5e:27:00:02 nd6 options=29 media: Ethernet autoselect status: active Opened by PID 1506 vnet0: flags=8802 metric 0 mtu 1500 options=8 ether fe:54:00:33:20:8c nd6 options=21 media: Ethernet autoselect status: no carrier This is in my /etc/rc.conf for creating bridge and tap devices on bootup: # # Create tap devices, one tap interface per BHyve VM. # Add the tap interfaces to bridge0 cloned_interfaces="bridge0 tap0 tap1 tap2" autobridge_interfaces="bridge0" autobridge_bridge0="tap* em0" -- Craig ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: libvirt and bhyve problems
On Thu, Jun 12, 2014 at 1:00 AM, Roman Bogorodskiy wrote: > > http://people.freebsd.org/~novel/misc/libvirt_port_updated.tgz > > With this setup, I'm able to get networking (e.g. virsh net-list works) > and updated the fix for the previous problem. I was able to start a VM > with that setup. I deleted the old port from my system and took your modified port, built it, and installed it. I followed my previous steps in: http://lists.freebsd.org/pipermail/freebsd-virtualization/2014-June/002588.html and got this: 2014-06-12 18:23:54.328+: 34485605376: info : libvirt version: 1.2.5 2014-06-12 18:23:54.328+: 34485605376: error : dnsmasqCapsRefreshInternal:726 : Cannot check dnsmasq binary dnsmasq: No such file or directory 2014-06-12 18:23:54.328+: 34485605376: info : networkReloadFirewallRules:1750 : Reloading iptables rules 2014-06-12 18:23:54.328+: 34485605376: info : networkRefreshDaemons:1722 : Refreshing network daemons 2014-06-12 18:23:54.438+: 34485605376: error : virExec:417 : Cannot find 'pm-is-supported' in path: No such file or directory 2014-06-12 18:23:54.439+: 34485605376: warning : virQEMUCapsInit:948 : Failed to get host power management capabilities 2014-06-12 18:23:54.460+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/var/run/libvirt/qemu 2014-06-12 18:23:54.461+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/qemu 2014-06-12 18:23:54.560+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/bhyve 2014-06-12 18:23:54.560+: 34485605376: info : virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' 2014-06-12 18:24:17.940+: 34485598208: error : virNetDevBridgeAddPort:399 : Unable to add bridge tap0 port vnet0: Invalid argument 2014-06-12 18:24:18.056+: 34485598208: error : virCommandWait:2426 : internal error: Child process (/usr/sbin/bhyvectl --destroy --vm=bhyve) unexpected exit status 255 -- Craig ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: libvirt and bhyve problems
Craig Rodrigues wrote: > On Wed, Jun 11, 2014 at 12:25 PM, Roman Bogorodskiy wrote: > > I've attached a patch which should fix the segfault. Could you please > > let me know if it fixes the problem? > > I have incorporated your patch into the libvirt port, and provided a tarball > of the port here: > > http://people.freebsd.org/~rodrigc/libvirt_port.tgz > > I can confirm that your patch eliminates the coredump for me. > > So now I can do the following: > > (1) Start libvirtd: > /usr/local/sbin/libvirtd > > (2) Start virsh: > virsh -c "bhyve:///system" > > (3) Execute following inside virsh: >define bhyve.xml >start bhyve > >( using bhyve.xml file from > http://lists.freebsd.org/pipermail/freebsd-virtualization/2014-June/002588.html > ) > > In the libvirtd console, I see this: > > 2014-06-11 22:47:16.357+: 34485605376: info : libvirt version: 1.2.5 > 2014-06-11 22:47:16.357+: 34485605376: error : virExec:417 : > Cannot find 'pm-is-supported' in path: No such file or directory > 2014-06-11 22:47:16.357+: 34485605376: warning : > virQEMUCapsInit:948 : Failed to get host power management capabilities > 2014-06-11 22:47:21.050+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/var/run/libvirt/qemu > 2014-06-11 22:47:21.063+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/etc/libvirt/qemu > 2014-06-11 22:47:21.168+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/etc/libvirt/bhyve > 2014-06-11 22:47:21.168+: 34485605376: info : > virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' > 2014-06-11 22:47:43.469+: 34485598208: error : > virNetDevBridgeAddPort:399 : Unable to add bridge tap0 port vnet18: > Invalid argument > 2014-06-11 22:47:43.573+: 34485598208: error : virCommandWait:2426 > : internal error: Child process (/usr/sbin/bhyvectl --destroy > --vm=bhyve) unexpected exit status 255 > > > > For the last line, it looks like it is trying to do bhyvectl --destroy > --vm=bhyve > on a VM which doesn't exist, i.e. there is no entry in /dev/vmm/bhyve > > It should ignore the error at this point and try to spawn the VM, but it > fails. This actually happens because it fails to spawn a VM (because there's no bridge) and tries to make sure to unload previously loaded VM in order not to leave it in a stale state. I have adjusted the port: http://people.freebsd.org/~novel/misc/libvirt_port_updated.tgz With this setup, I'm able to get networking (e.g. virsh net-list works) and updated the fix for the previous problem. I was able to start a VM with that setup. Roman Bogorodskiy pgpfn5YmLJaTs.pgp Description: PGP signature
Re: libvirt and bhyve problems
On Wed, Jun 11, 2014 at 12:25 PM, Roman Bogorodskiy wrote: > I've attached a patch which should fix the segfault. Could you please > let me know if it fixes the problem? I have incorporated your patch into the libvirt port, and provided a tarball of the port here: http://people.freebsd.org/~rodrigc/libvirt_port.tgz I can confirm that your patch eliminates the coredump for me. So now I can do the following: (1) Start libvirtd: /usr/local/sbin/libvirtd (2) Start virsh: virsh -c "bhyve:///system" (3) Execute following inside virsh: define bhyve.xml start bhyve ( using bhyve.xml file from http://lists.freebsd.org/pipermail/freebsd-virtualization/2014-June/002588.html ) In the libvirtd console, I see this: 2014-06-11 22:47:16.357+: 34485605376: info : libvirt version: 1.2.5 2014-06-11 22:47:16.357+: 34485605376: error : virExec:417 : Cannot find 'pm-is-supported' in path: No such file or directory 2014-06-11 22:47:16.357+: 34485605376: warning : virQEMUCapsInit:948 : Failed to get host power management capabilities 2014-06-11 22:47:21.050+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/var/run/libvirt/qemu 2014-06-11 22:47:21.063+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/qemu 2014-06-11 22:47:21.168+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/bhyve 2014-06-11 22:47:21.168+: 34485605376: info : virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' 2014-06-11 22:47:43.469+: 34485598208: error : virNetDevBridgeAddPort:399 : Unable to add bridge tap0 port vnet18: Invalid argument 2014-06-11 22:47:43.573+: 34485598208: error : virCommandWait:2426 : internal error: Child process (/usr/sbin/bhyvectl --destroy --vm=bhyve) unexpected exit status 255 For the last line, it looks like it is trying to do bhyvectl --destroy --vm=bhyve on a VM which doesn't exist, i.e. there is no entry in /dev/vmm/bhyve It should ignore the error at this point and try to spawn the VM, but it fails. -- Craig ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: libvirt and bhyve problems
Roman Bogorodskiy wrote: > Craig Rodrigues wrote: > > > On Wed, Jun 11, 2014 at 11:21 AM, Roman Bogorodskiy > > wrote: > > > > > > Thanks for the analysis! I'll think what would be a proper fix for that > > > problem. > > > > > > Also, while thinking how to reproduce it, I did 'kldunload if_bridge' > > > and started to see the same problem. So, as a temporary fix, could you > > > check if you have bridge support available (in kernel or via module)? > > > > > > Bridges are needed to get networking anyway. > > > > > > Hi, > > > > My output of kldstat is: > > > > 1 29 0x8020 19d6218 kernel > > 21 0x81bd7000 2e44b0 zfs.ko > > 32 0x81ebc000 8208 opensolaris.ko > > 41 0x81ec5000 4d68 nmdm.ko > > 51 0x81eca000 1a2110 vmm.ko > > 61 0x82211000 53e7 fdescfs.ko > > 71 0x82217000 9aff if_bridge.ko > > 81 0x82221000 5851 bridgestp.ko > > 91 0x82227000 5673 if_tap.ko > > 101 0x8222d000 2a94 uhid.ko > > 111 0x8223 3592 ums.ko > > > > > > so I do have if_bridge.ko loaded. > > I've attached a patch which should fix the segfault. Could you please > let me know if it fixes the problem? > > However, we still need to figure out why networking is not being > enabled. The root cause of that is that libvirt should start the default > network when the daemon starts up. This network should create a bridge > device (virbr0). > > Later on, when one starts a guest, it should create tap device and add > it to the bridge. Obviously, it fails at this step as there's no bridge > device. > > Could you please send me config.log file and also a port directory with > your fixes so I could test it as well? > > As for your previous question on my setup, I'm using master branch of the > libvirt git repo and my configure args are: > > $ ./configure --with-bhyve --without-polkit --with-hal \ > CFLAGS="-g -O0 -I/usr/local/include" LDFLAGS=-L/usr/local/lib \ > --with-xml-catalog-file=/usr/local/share/xml/catalog > > I'm working on 10-STABLE. > > However, it's really bad if it works only this way. :-( I would love to > fix the port. > > > If you are doing development on CURRENT, make sure that you have > > WITH_LLDB=yes in /etc/src.conf when you rebuild the system. > > Looks like gdb in base cannot debug the cores. > > Thanks for the hint! Sorry, forgot the actual attachment. :-( Roman Bogorodskiy diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c index 91a8731..ba7a7ec 100644 --- a/src/bhyve/bhyve_command.c +++ b/src/bhyve/bhyve_command.c @@ -44,7 +44,7 @@ bhyveBuildNetArgStr(const virDomainDef *def, virCommandPtr cmd, bool dryRun) virDomainNetDefPtr net = NULL; char *brname = NULL; char *realifname = NULL; -int *tapfd = NULL; +int tapfd = -1; char macaddr[VIR_MAC_STRING_BUFLEN]; if (def->nnets != 1) { @@ -80,7 +80,7 @@ bhyveBuildNetArgStr(const virDomainDef *def, virCommandPtr cmd, bool dryRun) if (!dryRun) if (virNetDevTapCreateInBridgePort(brname, &net->ifname, &net->mac, - def->uuid, tapfd, 1, + def->uuid, &tapfd, 1, virDomainNetGetActualVirtPortProfile(net), virDomainNetGetActualVlan(net), VIR_NETDEV_TAP_CREATE_IFUP | VIR_NETDEV_TAP_CREATE_PERSIST) < 0) { diff --git a/src/bhyve/bhyve_process.c b/src/bhyve/bhyve_process.c index 9f02a49..5e7d603 100644 --- a/src/bhyve/bhyve_process.c +++ b/src/bhyve/bhyve_process.c @@ -77,10 +77,12 @@ bhyveNetCleanup(virDomainObjPtr vm) int actualType = virDomainNetGetActualType(net); if (actualType == VIR_DOMAIN_NET_TYPE_BRIDGE) { -ignore_value(virNetDevBridgeRemovePort( -virDomainNetGetActualBridgeName(net), -net->ifname)); -ignore_value(virNetDevTapDelete(net->ifname)); +if (net->ifname) { +ignore_value(virNetDevBridgeRemovePort( +virDomainNetGetActualBridgeName(net), +net->ifname)); +ignore_value(virNetDevTapDelete(net->ifname)); +} } } } pgpPU2Nos0uqM.pgp Description: PGP signature
Re: libvirt and bhyve problems
Craig Rodrigues wrote: > On Wed, Jun 11, 2014 at 11:21 AM, Roman Bogorodskiy wrote: > > > > Thanks for the analysis! I'll think what would be a proper fix for that > > problem. > > > > Also, while thinking how to reproduce it, I did 'kldunload if_bridge' > > and started to see the same problem. So, as a temporary fix, could you > > check if you have bridge support available (in kernel or via module)? > > > > Bridges are needed to get networking anyway. > > > Hi, > > My output of kldstat is: > > 1 29 0x8020 19d6218 kernel > 21 0x81bd7000 2e44b0 zfs.ko > 32 0x81ebc000 8208 opensolaris.ko > 41 0x81ec5000 4d68 nmdm.ko > 51 0x81eca000 1a2110 vmm.ko > 61 0x82211000 53e7 fdescfs.ko > 71 0x82217000 9aff if_bridge.ko > 81 0x82221000 5851 bridgestp.ko > 91 0x82227000 5673 if_tap.ko > 101 0x8222d000 2a94 uhid.ko > 111 0x8223 3592 ums.ko > > > so I do have if_bridge.ko loaded. I've attached a patch which should fix the segfault. Could you please let me know if it fixes the problem? However, we still need to figure out why networking is not being enabled. The root cause of that is that libvirt should start the default network when the daemon starts up. This network should create a bridge device (virbr0). Later on, when one starts a guest, it should create tap device and add it to the bridge. Obviously, it fails at this step as there's no bridge device. Could you please send me config.log file and also a port directory with your fixes so I could test it as well? As for your previous question on my setup, I'm using master branch of the libvirt git repo and my configure args are: $ ./configure --with-bhyve --without-polkit --with-hal \ CFLAGS="-g -O0 -I/usr/local/include" LDFLAGS=-L/usr/local/lib \ --with-xml-catalog-file=/usr/local/share/xml/catalog I'm working on 10-STABLE. However, it's really bad if it works only this way. :-( I would love to fix the port. > If you are doing development on CURRENT, make sure that you have > WITH_LLDB=yes in /etc/src.conf when you rebuild the system. > Looks like gdb in base cannot debug the cores. Thanks for the hint! Roman Bogorodskiy pgpqI5uoZ_yOU.pgp Description: PGP signature
Re: libvirt and bhyve problems
On Wed, Jun 11, 2014 at 11:21 AM, Roman Bogorodskiy wrote: > > Thanks for the analysis! I'll think what would be a proper fix for that > problem. > > Also, while thinking how to reproduce it, I did 'kldunload if_bridge' > and started to see the same problem. So, as a temporary fix, could you > check if you have bridge support available (in kernel or via module)? > > Bridges are needed to get networking anyway. Hi, My output of kldstat is: 1 29 0x8020 19d6218 kernel 21 0x81bd7000 2e44b0 zfs.ko 32 0x81ebc000 8208 opensolaris.ko 41 0x81ec5000 4d68 nmdm.ko 51 0x81eca000 1a2110 vmm.ko 61 0x82211000 53e7 fdescfs.ko 71 0x82217000 9aff if_bridge.ko 81 0x82221000 5851 bridgestp.ko 91 0x82227000 5673 if_tap.ko 101 0x8222d000 2a94 uhid.ko 111 0x8223 3592 ums.ko so I do have if_bridge.ko loaded. If you are doing development on CURRENT, make sure that you have WITH_LLDB=yes in /etc/src.conf when you rebuild the system. Looks like gdb in base cannot debug the cores. -- Craig ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: libvirt and bhyve problems
Craig Rodrigues wrote: > On Tue, Jun 10, 2014 at 1:54 PM, Craig Rodrigues wrote: > > On Tue, Jun 10, 2014 at 12:25 PM, Craig Rodrigues > > wrote: > > lldb /usr/local/sbin/libvirtd libvirtd.core > > > > (lldb) bt > > * thread #1: tid = 0, 0x000801aa8513 > > libvirt.so.1002`virNetDevTapCreateInBridgePort(brname=0x00080a4211c8, > > ifname=0x00080a88d1e0, macaddr=0x00080a88d144, > > vmuuid=0x00080a81b808, tapfd=0x, tapfdSize=1, > > virtPortProfile=0x, virtVlan=0x, > > flags=9) + 547 at virnetdevtap.c:583, name = 'libvirtd', stop reason = > > signal SIGSEGV > > * frame #0: 0x000801aa8513 > > libvirt.so.1002`virNetDevTapCreateInBridgePort(brname=0x00080a4211c8, > > ifname=0x00080a88d1e0, macaddr=0x00080a88d144, > > vmuuid=0x00080a81b808, tapfd=0x, tapfdSize=1, > > virtPortProfile=0x, virtVlan=0x, > > flags=9) + 547 at virnetdevtap.c:583 > > frame #1: 0x000809e20569 > > libvirt_driver_bhyve.so`bhyveBuildNetArgStr(def=0x00080a81b800, > > cmd=0x00080a4db200, dryRun=false) + 841 at bhyve_command.c:82 > > frame #2: 0x000809e20196 > > libvirt_driver_bhyve.so`virBhyveProcessBuildBhyveCmd(driver=0x00080a48a040, > > def=0x00080a81b800, dryRun=false) + 310 at bhyve_command.c:248 > > frame #3: 0x000809e24d6a > > libvirt_driver_bhyve.so`virBhyveProcessStart(conn=0x00080a4db100, > > driver=0x00080a48a040, vm=0x00080a48b0f0, > > reason=VIR_DOMAIN_RUNNING_BOOTED, flags=0) + 746 at > > bhyve_process.c:134 > > frame #4: 0x000809e2334a > > libvirt_driver_bhyve.so`bhyveDomainCreateWithFlags(dom=0x00080a48a280, > > flags=0) + 490 at bhyve_driver.c:847 > > frame #5: 0x000809e2315a > > libvirt_driver_bhyve.so`bhyveDomainCreate(dom=0x00080a48a280) + 26 > > at bhyve_driver.c:867 > > frame #6: 0x000801b96aad > > libvirt.so.1002`virDomainCreate(domain=0x00080a48a280) + 637 at > > libvirt.c:8968 > > frame #7: 0x01075427 > > libvirtd`remoteDispatchDomainCreate(server=0x00080781c400, > > client=0x0008078df480, msg=0x0008078791d0, > > rerr=0x7f9fcc30, args=0x000807934340) + 231 at > > remote_dispatch.h:3048 > > frame #8: 0x0103b84e > > libvirtd`remoteDispatchDomainCreateHelper(server=0x00080781c400, > > client=0x0008078df480, msg=0x0008078791d0, > > rerr=0x7f9fcc30, args=0x000807934340, > > ret=0x00080a421058) + 254 at remote_dispatch.h:3026 > > frame #9: 0x000801c26b20 > > libvirt.so.1002`virNetServerProgramDispatchCall(prog=0x00080790f400, > > server=0x00080781c400, client=0x0008078df480, > > msg=0x0008078791d0) + 784 at virnetserverprogram.c:437 > > frame #10: 0x000801c26641 > > libvirt.so.1002`virNetServerProgramDispatch(prog=0x00080790f400, > > server=0x00080781c400, client=0x0008078df480, > > msg=0x0008078791d0) + 705 at virnetserverprogram.c:307 > > frame #11: 0x0108f97c > > libvirtd`virNetServerProcessMsg(srv=0x00080781c400, > > client=0x0008078df480, prog=0x00080790f400, > > msg=0x0008078791d0) + 332 at virnetserver.c:172 > > frame #12: 0x0108cd9c > > libvirtd`virNetServerHandleJob(jobOpaque=0x000807934360, > > opaque=0x00080781c400) + 204 at virnetserver.c:193 > > frame #13: 0x000801ac84b8 > > libvirt.so.1002`virThreadPoolWorker(opaque=0x000807901d60) + 680 > > at virthreadpool.c:145 > > frame #14: 0x000801ac7b9b > > libvirt.so.1002`virThreadHelper(data=0x00080781b520) + 75 at > > virthread.c:197 > > frame #15: 0x000803c614f5 libthr.so.3`??? + 277 > > > > -- > > Craig > > > > OK, I think I found the problem. > > In this file: > http://libvirt.org/git/?p=libvirt.git;a=blob_plain;f=src/bhyve/bhyve_command.c;hb=HEAD > > We have: > > static int > bhyveBuildNetArgStr(const virDomainDef *def, virCommandPtr cmd, bool dryRun) > { > virDomainNetDefPtr net = NULL; > char *brname = NULL; > char *realifname = NULL; > int *tapfd = NULL; > > > tapfd is never initialized after this. > > > In the same function, we have this: > > if (!dryRun) > if (virNetDevTapCreateInBridgePort(brname, &net->ifname, > &net->mac, >def->uuid, tapfd, 1, > > virDomainNetGetActualVirtPortProfile(net), >virDomainNetGetActualVlan(net), > > VIR_NETDEV_TAP_CREATE_IFUP | VIR_NETDEV_TAP_CREATE_PERSIST) < 0) { > VIR_FREE(net->ifname); > VIR_FREE(brname); > return -1; > } > > > > virNetDevTapCreateinBridgePort() is being passed a NULL tapfd, but the > next parameter is 1 instead of 0. > > > > Then further along in this file: > http://libvirt.org/git/?p=libvirt.git;a=blob_plain;f=src/util/virnetdevtap.c;hb=HEAD > we have: > > error: >
Re: libvirt and bhyve problems
On Tue, Jun 10, 2014 at 1:54 PM, Craig Rodrigues wrote: > On Tue, Jun 10, 2014 at 12:25 PM, Craig Rodrigues wrote: > lldb /usr/local/sbin/libvirtd libvirtd.core > > (lldb) bt > * thread #1: tid = 0, 0x000801aa8513 > libvirt.so.1002`virNetDevTapCreateInBridgePort(brname=0x00080a4211c8, > ifname=0x00080a88d1e0, macaddr=0x00080a88d144, > vmuuid=0x00080a81b808, tapfd=0x, tapfdSize=1, > virtPortProfile=0x, virtVlan=0x, > flags=9) + 547 at virnetdevtap.c:583, name = 'libvirtd', stop reason = > signal SIGSEGV > * frame #0: 0x000801aa8513 > libvirt.so.1002`virNetDevTapCreateInBridgePort(brname=0x00080a4211c8, > ifname=0x00080a88d1e0, macaddr=0x00080a88d144, > vmuuid=0x00080a81b808, tapfd=0x, tapfdSize=1, > virtPortProfile=0x, virtVlan=0x, > flags=9) + 547 at virnetdevtap.c:583 > frame #1: 0x000809e20569 > libvirt_driver_bhyve.so`bhyveBuildNetArgStr(def=0x00080a81b800, > cmd=0x00080a4db200, dryRun=false) + 841 at bhyve_command.c:82 > frame #2: 0x000809e20196 > libvirt_driver_bhyve.so`virBhyveProcessBuildBhyveCmd(driver=0x00080a48a040, > def=0x00080a81b800, dryRun=false) + 310 at bhyve_command.c:248 > frame #3: 0x000809e24d6a > libvirt_driver_bhyve.so`virBhyveProcessStart(conn=0x00080a4db100, > driver=0x00080a48a040, vm=0x00080a48b0f0, > reason=VIR_DOMAIN_RUNNING_BOOTED, flags=0) + 746 at > bhyve_process.c:134 > frame #4: 0x000809e2334a > libvirt_driver_bhyve.so`bhyveDomainCreateWithFlags(dom=0x00080a48a280, > flags=0) + 490 at bhyve_driver.c:847 > frame #5: 0x000809e2315a > libvirt_driver_bhyve.so`bhyveDomainCreate(dom=0x00080a48a280) + 26 > at bhyve_driver.c:867 > frame #6: 0x000801b96aad > libvirt.so.1002`virDomainCreate(domain=0x00080a48a280) + 637 at > libvirt.c:8968 > frame #7: 0x01075427 > libvirtd`remoteDispatchDomainCreate(server=0x00080781c400, > client=0x0008078df480, msg=0x0008078791d0, > rerr=0x7f9fcc30, args=0x000807934340) + 231 at > remote_dispatch.h:3048 > frame #8: 0x0103b84e > libvirtd`remoteDispatchDomainCreateHelper(server=0x00080781c400, > client=0x0008078df480, msg=0x0008078791d0, > rerr=0x7f9fcc30, args=0x000807934340, > ret=0x00080a421058) + 254 at remote_dispatch.h:3026 > frame #9: 0x000801c26b20 > libvirt.so.1002`virNetServerProgramDispatchCall(prog=0x00080790f400, > server=0x00080781c400, client=0x0008078df480, > msg=0x0008078791d0) + 784 at virnetserverprogram.c:437 > frame #10: 0x000801c26641 > libvirt.so.1002`virNetServerProgramDispatch(prog=0x00080790f400, > server=0x00080781c400, client=0x0008078df480, > msg=0x0008078791d0) + 705 at virnetserverprogram.c:307 > frame #11: 0x0108f97c > libvirtd`virNetServerProcessMsg(srv=0x00080781c400, > client=0x0008078df480, prog=0x00080790f400, > msg=0x0008078791d0) + 332 at virnetserver.c:172 > frame #12: 0x0108cd9c > libvirtd`virNetServerHandleJob(jobOpaque=0x000807934360, > opaque=0x00080781c400) + 204 at virnetserver.c:193 > frame #13: 0x000801ac84b8 > libvirt.so.1002`virThreadPoolWorker(opaque=0x000807901d60) + 680 > at virthreadpool.c:145 > frame #14: 0x000801ac7b9b > libvirt.so.1002`virThreadHelper(data=0x00080781b520) + 75 at > virthread.c:197 > frame #15: 0x000803c614f5 libthr.so.3`??? + 277 > > -- > Craig OK, I think I found the problem. In this file: http://libvirt.org/git/?p=libvirt.git;a=blob_plain;f=src/bhyve/bhyve_command.c;hb=HEAD We have: static int bhyveBuildNetArgStr(const virDomainDef *def, virCommandPtr cmd, bool dryRun) { virDomainNetDefPtr net = NULL; char *brname = NULL; char *realifname = NULL; int *tapfd = NULL; tapfd is never initialized after this. In the same function, we have this: if (!dryRun) if (virNetDevTapCreateInBridgePort(brname, &net->ifname, &net->mac, def->uuid, tapfd, 1, virDomainNetGetActualVirtPortProfile(net), virDomainNetGetActualVlan(net), VIR_NETDEV_TAP_CREATE_IFUP | VIR_NETDEV_TAP_CREATE_PERSIST) < 0) { VIR_FREE(net->ifname); VIR_FREE(brname); return -1; } virNetDevTapCreateinBridgePort() is being passed a NULL tapfd, but the next parameter is 1 instead of 0. Then further along in this file: http://libvirt.org/git/?p=libvirt.git;a=blob_plain;f=src/util/virnetdevtap.c;hb=HEAD we have: error: for (i = 0; i < tapfdSize && tapfd[i] >= 0; i++) VIR_FORCE_CLOSE(tapfd[i]); tapfd is NULL, but tapfdSize is 1, so the coredump happens here. What is the best way to fix this? -- Craig ___ freebsd-virtualization@freebsd.org m
Re: libvirt and bhyve problems
On Tue, Jun 10, 2014 at 12:25 PM, Craig Rodrigues wrote: > > > # gdb /usr/local/sbin/libvirtd libvirtd.core > GNU gdb 6.1.1 [FreeBSD] > Copyright 2004 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you are > welcome to change it and/or distribute copies of it under certain conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "amd64-marcel-freebsd"... > Core was generated by `libvirtd'. > Program terminated with signal 11, Segmentation fault. > #0 0x000801aa8513 in ?? () > (gdb) where > #0 0x000801aa8513 in ?? () > #1 0x00180008 in ?? () > #2 0x7f3f9330 in ?? () > #3 0x000809e5510c in ?? () > #4 0x0007 in ?? () > #5 0x000809e5531b in ?? () > #6 0x in ?? () OK, so it looks like in CURRENT, at least for the devel/libvirt port, the gdb in base, and also gdb in ports cannot debug libvirtd.core. I enabled WITH_LLDB=yes in /etc/src.conf and recompiled to install lldb. I am not so familiar with lldb, but at least I can get a stacktrace with it. lldb /usr/local/sbin/libvirtd libvirtd.core (lldb) bt * thread #1: tid = 0, 0x000801aa8513 libvirt.so.1002`virNetDevTapCreateInBridgePort(brname=0x00080a4211c8, ifname=0x00080a88d1e0, macaddr=0x00080a88d144, vmuuid=0x00080a81b808, tapfd=0x, tapfdSize=1, virtPortProfile=0x, virtVlan=0x, flags=9) + 547 at virnetdevtap.c:583, name = 'libvirtd', stop reason = signal SIGSEGV * frame #0: 0x000801aa8513 libvirt.so.1002`virNetDevTapCreateInBridgePort(brname=0x00080a4211c8, ifname=0x00080a88d1e0, macaddr=0x00080a88d144, vmuuid=0x00080a81b808, tapfd=0x, tapfdSize=1, virtPortProfile=0x, virtVlan=0x, flags=9) + 547 at virnetdevtap.c:583 frame #1: 0x000809e20569 libvirt_driver_bhyve.so`bhyveBuildNetArgStr(def=0x00080a81b800, cmd=0x00080a4db200, dryRun=false) + 841 at bhyve_command.c:82 frame #2: 0x000809e20196 libvirt_driver_bhyve.so`virBhyveProcessBuildBhyveCmd(driver=0x00080a48a040, def=0x00080a81b800, dryRun=false) + 310 at bhyve_command.c:248 frame #3: 0x000809e24d6a libvirt_driver_bhyve.so`virBhyveProcessStart(conn=0x00080a4db100, driver=0x00080a48a040, vm=0x00080a48b0f0, reason=VIR_DOMAIN_RUNNING_BOOTED, flags=0) + 746 at bhyve_process.c:134 frame #4: 0x000809e2334a libvirt_driver_bhyve.so`bhyveDomainCreateWithFlags(dom=0x00080a48a280, flags=0) + 490 at bhyve_driver.c:847 frame #5: 0x000809e2315a libvirt_driver_bhyve.so`bhyveDomainCreate(dom=0x00080a48a280) + 26 at bhyve_driver.c:867 frame #6: 0x000801b96aad libvirt.so.1002`virDomainCreate(domain=0x00080a48a280) + 637 at libvirt.c:8968 frame #7: 0x01075427 libvirtd`remoteDispatchDomainCreate(server=0x00080781c400, client=0x0008078df480, msg=0x0008078791d0, rerr=0x7f9fcc30, args=0x000807934340) + 231 at remote_dispatch.h:3048 frame #8: 0x0103b84e libvirtd`remoteDispatchDomainCreateHelper(server=0x00080781c400, client=0x0008078df480, msg=0x0008078791d0, rerr=0x7f9fcc30, args=0x000807934340, ret=0x00080a421058) + 254 at remote_dispatch.h:3026 frame #9: 0x000801c26b20 libvirt.so.1002`virNetServerProgramDispatchCall(prog=0x00080790f400, server=0x00080781c400, client=0x0008078df480, msg=0x0008078791d0) + 784 at virnetserverprogram.c:437 frame #10: 0x000801c26641 libvirt.so.1002`virNetServerProgramDispatch(prog=0x00080790f400, server=0x00080781c400, client=0x0008078df480, msg=0x0008078791d0) + 705 at virnetserverprogram.c:307 frame #11: 0x0108f97c libvirtd`virNetServerProcessMsg(srv=0x00080781c400, client=0x0008078df480, prog=0x00080790f400, msg=0x0008078791d0) + 332 at virnetserver.c:172 frame #12: 0x0108cd9c libvirtd`virNetServerHandleJob(jobOpaque=0x000807934360, opaque=0x00080781c400) + 204 at virnetserver.c:193 frame #13: 0x000801ac84b8 libvirt.so.1002`virThreadPoolWorker(opaque=0x000807901d60) + 680 at virthreadpool.c:145 frame #14: 0x000801ac7b9b libvirt.so.1002`virThreadHelper(data=0x00080781b520) + 75 at virthread.c:197 frame #15: 0x000803c614f5 libthr.so.3`??? + 277 -- Craig ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: libvirt and bhyve problems
On Tue, Jun 10, 2014 at 12:15 PM, Roman Bogorodskiy wrote: > > This last line also sounds strange. > > I'm wondering if you execute 'net-list --all' will you see the 'default' > network? And if it's there, will 'net-show default' should that > Autostart is enabled for it? If I do: # virsh -c 'bhyve:///system' Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # net-list --all error: Failed to get the number of active networks error: this function is not supported by the connection driver: virConnectNumOfNetworks The past few times, I have been compiling the port using WITH_DEBUG=yes. However, I am not getting useful stacktraces: /usr/ports/devel/libvirt/work/libvirt-1.2.5]# file /usr/local/sbin/libvirtd /usr/local/sbin/libvirtd: ELF 64-bit LSB shared object, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 11.0 (1100022), not stripped # gdb /usr/local/sbin/libvirtd libvirtd.core GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... Core was generated by `libvirtd'. Program terminated with signal 11, Segmentation fault. #0 0x000801aa8513 in ?? () (gdb) where #0 0x000801aa8513 in ?? () #1 0x00180008 in ?? () #2 0x7f3f9330 in ?? () #3 0x000809e5510c in ?? () #4 0x0007 in ?? () #5 0x000809e5531b in ?? () #6 0x in ?? () BTW, can you give me: (1) exact git command to checkout libvirt (2) configure command you typed (3) make command you typed I want to get a working setup like you have. It looks like the port needs some fixing before it can be used fully. -- Craig ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: libvirt and bhyve problems
Craig Rodrigues wrote: > On Tue, Jun 10, 2014 at 10:54 AM, Roman Bogorodskiy wrote: > > This warning is not critical. Actually, UML should not be built on > > FreeBSD and I would need to disable it by default. For now I think the > > proper fix is to configure with '--without-uml' flag. > > > > As for the segfault, I think I have a guess. > > > > Could you please drop '--without-network' from CONFIGURE_ARGS in the > > port's Makefile and try to rebuild? > > > > Roman Bogorodskiy > > OK, I dropped --without-network from CONFIGURE_ARGS and rebuilt the port. > I am still getting the coredump, but am getting different errors: > > 2014-06-10 18:59:22.713+: 34485593088: info : libvirt version: 1.2.5 > 2014-06-10 18:59:22.713+: 34485593088: warning : > virDriverLoadModule:63 : Module > /usr/local/lib/libvirt/connection-driver/libvirt_driver_network.so not > accessible Hmmm, this sounds weird. I think I need to try the port version myself to see if I could reproduce it this way (I'm usually using git version of libvirt instead of port). In the meantime, I'd really appreciate if you could build the port with WITH_DEBUG flag and try to get a stacktrace. > 2014-06-10 18:59:22.715+: 34485593088: error : > virDriverLoadModule:71 : failed to load module > /usr/local/lib/libvirt/connection-driver/libvirt_driver_qemu.so > /usr/local/lib/libvirt/connection-driver/libvirt_driver_qemu.so: > Undefined symbol "networkAllocateActualDevice" > 2014-06-10 18:59:22.716+: 34485593088: error : > virDriverLoadModule:71 : failed to load module > /usr/local/lib/libvirt/connection-driver/libvirt_driver_uml.so > /usr/local/lib/libvirt/connection-driver/libvirt_driver_uml.so: > Undefined symbol "inotify_add_watch" > 2014-06-10 18:59:22.845+: 34485605376: info : > virDomainObjListLoadAllConfigs:18249 : Scanning for configs in > /usr/local/etc/libvirt/bhyve > 2014-06-10 18:59:22.845+: 34485605376: info : > virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' > 2014-06-10 18:59:22.847+: 34485605376: error : do_open:1166 : no > connection driver available for qemu:///system > 2014-06-10 18:59:42.273+: 34485598208: error : > virNetDevBridgeAddPort:399 : Unable to add bridge tap0 port vnet7: > Invalid argument This last line also sounds strange. I'm wondering if you execute 'net-list --all' will you see the 'default' network? And if it's there, will 'net-show default' should that Autostart is enabled for it? > Segmentation fault (core dumped) Thanks, Roman Bogorodskiy pgp0SZ86gpFPj.pgp Description: PGP signature
Re: libvirt and bhyve problems
On Tue, Jun 10, 2014 at 10:54 AM, Roman Bogorodskiy wrote: > This warning is not critical. Actually, UML should not be built on > FreeBSD and I would need to disable it by default. For now I think the > proper fix is to configure with '--without-uml' flag. > > As for the segfault, I think I have a guess. > > Could you please drop '--without-network' from CONFIGURE_ARGS in the > port's Makefile and try to rebuild? > > Roman Bogorodskiy OK, I dropped --without-network from CONFIGURE_ARGS and rebuilt the port. I am still getting the coredump, but am getting different errors: 2014-06-10 18:59:22.713+: 34485593088: info : libvirt version: 1.2.5 2014-06-10 18:59:22.713+: 34485593088: warning : virDriverLoadModule:63 : Module /usr/local/lib/libvirt/connection-driver/libvirt_driver_network.so not accessible 2014-06-10 18:59:22.715+: 34485593088: error : virDriverLoadModule:71 : failed to load module /usr/local/lib/libvirt/connection-driver/libvirt_driver_qemu.so /usr/local/lib/libvirt/connection-driver/libvirt_driver_qemu.so: Undefined symbol "networkAllocateActualDevice" 2014-06-10 18:59:22.716+: 34485593088: error : virDriverLoadModule:71 : failed to load module /usr/local/lib/libvirt/connection-driver/libvirt_driver_uml.so /usr/local/lib/libvirt/connection-driver/libvirt_driver_uml.so: Undefined symbol "inotify_add_watch" 2014-06-10 18:59:22.845+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/bhyve 2014-06-10 18:59:22.845+: 34485605376: info : virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' 2014-06-10 18:59:22.847+: 34485605376: error : do_open:1166 : no connection driver available for qemu:///system 2014-06-10 18:59:42.273+: 34485598208: error : virNetDevBridgeAddPort:399 : Unable to add bridge tap0 port vnet7: Invalid argument Segmentation fault (core dumped) ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: libvirt and bhyve problems
Craig Rodrigues wrote: > On Tue, Jun 10, 2014 at 8:58 AM, Craig Rodrigues wrote: > > On Tue, Jun 10, 2014 at 4:43 AM, Roman Bogorodskiy > > wrote: > >> Hi Craig, > >> > >> It's a little unfortunate that there's no stacktrace, though we can try > >> to see what's going on without it. > >> > >> Could you please edit libvirtd.conf (should be something like > >> /usr/local/etc/libvirtd.conf if installed from port) to add: > >> > >> log_level = 2 > >> > >> then run libvirtd by hand in foreground: > > > > OK, I added log_level = 2 to /usr/local/etc/libvirt/libvirtd.conf > > and ran libvirtd in the foreground: > > > > 2014-06-10 15:53:26.846+: 34485593088: info : libvirt version: 1.2.5 > > 2014-06-10 15:53:26.846+: 34485593088: warning : > > virDriverLoadModule:63 : Module > > /usr/local/lib/libvirt/connection-driver/libvirt_driver_uml.so not > > accessible > > I saw the above warning, so I tried patching the port with this: > > --- pkg-plist.orig 2014-06-10 10:36:22.084757789 -0700 > +++ pkg-plist 2014-06-10 09:27:25.280043239 -0700 > @@ -274,6 +274,8 @@ > lib/libvirt/connection-driver/libvirt_driver_secret.la > lib/libvirt/connection-driver/libvirt_driver_storage.so > lib/libvirt/connection-driver/libvirt_driver_storage.la > +lib/libvirt/connection-driver/libvirt_driver_uml.so > +lib/libvirt/connection-driver/libvirt_driver_uml.la > lib/libvirt/connection-driver/libvirt_driver_vbox.so > lib/libvirt/connection-driver/libvirt_driver_vbox.la This warning is not critical. Actually, UML should not be built on FreeBSD and I would need to disable it by default. For now I think the proper fix is to configure with '--without-uml' flag. As for the segfault, I think I have a guess. Could you please drop '--without-network' from CONFIGURE_ARGS in the port's Makefile and try to rebuild? Roman Bogorodskiy pgpzBHVhXENdD.pgp Description: PGP signature
Re: libvirt and bhyve problems
On Tue, Jun 10, 2014 at 8:58 AM, Craig Rodrigues wrote: > On Tue, Jun 10, 2014 at 4:43 AM, Roman Bogorodskiy wrote: >> Hi Craig, >> >> It's a little unfortunate that there's no stacktrace, though we can try >> to see what's going on without it. >> >> Could you please edit libvirtd.conf (should be something like >> /usr/local/etc/libvirtd.conf if installed from port) to add: >> >> log_level = 2 >> >> then run libvirtd by hand in foreground: > > OK, I added log_level = 2 to /usr/local/etc/libvirt/libvirtd.conf > and ran libvirtd in the foreground: > > 2014-06-10 15:53:26.846+: 34485593088: info : libvirt version: 1.2.5 > 2014-06-10 15:53:26.846+: 34485593088: warning : > virDriverLoadModule:63 : Module > /usr/local/lib/libvirt/connection-driver/libvirt_driver_uml.so not > accessible I saw the above warning, so I tried patching the port with this: --- pkg-plist.orig 2014-06-10 10:36:22.084757789 -0700 +++ pkg-plist 2014-06-10 09:27:25.280043239 -0700 @@ -274,6 +274,8 @@ lib/libvirt/connection-driver/libvirt_driver_secret.la lib/libvirt/connection-driver/libvirt_driver_storage.so lib/libvirt/connection-driver/libvirt_driver_storage.la +lib/libvirt/connection-driver/libvirt_driver_uml.so +lib/libvirt/connection-driver/libvirt_driver_uml.la lib/libvirt/connection-driver/libvirt_driver_vbox.so lib/libvirt/connection-driver/libvirt_driver_vbox.la However, when I restarted libvirtd, I got different errors: 2014-06-10 17:38:50.269+: 34485593088: info : libvirt version: 1.2.5 2014-06-10 17:38:50.269+: 34485593088: error : virDriverLoadModule:71 : failed to load module /usr/local/lib/libvirt/connection-driver/libvirt_driver_uml.so /usr/local/lib/libvirt/connection-driver/libvirt_driver_uml.so: Undefined symbol "inotify_add_watch" 2014-06-10 17:38:50.563+: 34485605376: error : virExec:417 : Cannot find 'pm-is-supported' in path: No such file or directory 2014-06-10 17:38:50.563+: 34485605376: warning : virQEMUCapsInit:948 : Failed to get host power management capabilities 2014-06-10 17:38:50.575+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/var/run/libvirt/qemu 2014-06-10 17:38:50.575+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/qemu 2014-06-10 17:38:50.663+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/bhyve 2014-06-10 17:38:50.663+: 34485605376: info : virDomainObjListLoadAllConfigs:18273 : Loading config file 'bhyve.xml' -- Craig ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: libvirt and bhyve problems
On Tue, Jun 10, 2014 at 4:43 AM, Roman Bogorodskiy wrote: > Hi Craig, > > It's a little unfortunate that there's no stacktrace, though we can try > to see what's going on without it. > > Could you please edit libvirtd.conf (should be something like > /usr/local/etc/libvirtd.conf if installed from port) to add: > > log_level = 2 > > then run libvirtd by hand in foreground: OK, I added log_level = 2 to /usr/local/etc/libvirt/libvirtd.conf and ran libvirtd in the foreground: 2014-06-10 15:53:26.846+: 34485593088: info : libvirt version: 1.2.5 2014-06-10 15:53:26.846+: 34485593088: warning : virDriverLoadModule:63 : Module /usr/local/lib/libvirt/connection-driver/libvirt_driver_uml.so not accessible 2014-06-10 15:53:27.023+: 34485605376: error : virExec:417 : Cannot find 'pm-is-supported' in path: No such file or directory 2014-06-10 15:53:27.023+: 34485605376: warning : virQEMUCapsInit:948 : Failed to get host power management capabilities 2014-06-10 15:53:27.034+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/var/run/libvirt/qemu 2014-06-10 15:53:27.034+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/qemu 2014-06-10 15:53:27.130+: 34485605376: info : virDomainObjListLoadAllConfigs:18249 : Scanning for configs in /usr/local/etc/libvirt/bhyve 2014-06-10 15:53:53.668+: 34485598208: error : virNetDevGetMTU:404 : Cannot get interface MTU on 'virbr0': Device not configured Segmentation fault (core dumped) I got that coredump after doing: virsh -c 'bhyve:///system' virsh # define /tmp/bhyve.xml virsh # start bhyve ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: libvirt and bhyve problems
Craig Rodrigues wrote: > Roman, > > I have been reading your blog posts on using libvirt + bhyve > here: > > http://empt1e.blogspot.com/ > > and the libvirt bhyve documentation here: > http://libvirt.org/drvbhyve.html > > but am having problems reproducing the steps. > > I have a machine running: > FreeBSD 11.0-CURRENT FreeBSD 11.0-CURRENT #6 r266934M: Sat May 31 > 20:24:37 PDT 2014 > r...@crodrigues.org:/usr/obj/opt2/branches/head/sys/GENERIC amd64 > > > I applied the following patches to the devel/libvirt port to fix > compilation problems for bhyve support: > > http://lists.freebsd.org/pipermail/freebsd-virtualization/2014-June/002586.html > > I then did the following: > > BUILD AND CONFIGURE > === > cd /usr/ports/devel/libport > make config > (I made sure bhyve and QEMU support were enabled > make > make install > > > LIBVIRT CONFIG > == > > I created the following /tmp/bhyve.xml file: > > > > bhyve > df3be7e7-a104-11e3-aeb0-50e5492bd3dc > 219136 > 219136 > 1 > >hvm > > > > > > > > > > > > > > > > > > > > > RUNNING > > > I did the following as root: > > service libvirtd restart > virsh -c 'bhyve:///system' > > Then I ran these commands from the virsh prompt: > > virsh # define /tmp/bhyve.xml > Domain bhyve defined from /tmp/bhyve.xml > > virsh # start bhyve > error: Failed to start domain bhyve > error: End of file while reading data: Input/output error > error: Failed to reconnect to the hypervisor > > > At this point libvirtd process crashed with a /libvirtd.core process , > but for some reason I could not get a valid stacktrace. > > Can you provide assistance to get this working? > > Ultimately, I want to get the Jenkins libvirt plugin ( > https://wiki.jenkins-ci.org/display/JENKINS/Libvirt+Slaves+Plugin ) > to work. > > Thanks. Hi Craig, It's a little unfortunate that there's no stacktrace, though we can try to see what's going on without it. Could you please edit libvirtd.conf (should be something like /usr/local/etc/libvirtd.conf if installed from port) to add: log_level = 2 then run libvirtd by hand in foreground: # libvirtd and then try to start the domain again and post a couple of lines it prints before crashing? Thanks, Roman Bogorodskiy ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
libvirt and bhyve problems
Roman, I have been reading your blog posts on using libvirt + bhyve here: http://empt1e.blogspot.com/ and the libvirt bhyve documentation here: http://libvirt.org/drvbhyve.html but am having problems reproducing the steps. I have a machine running: FreeBSD 11.0-CURRENT FreeBSD 11.0-CURRENT #6 r266934M: Sat May 31 20:24:37 PDT 2014 r...@crodrigues.org:/usr/obj/opt2/branches/head/sys/GENERIC amd64 I applied the following patches to the devel/libvirt port to fix compilation problems for bhyve support: http://lists.freebsd.org/pipermail/freebsd-virtualization/2014-June/002586.html I then did the following: BUILD AND CONFIGURE === cd /usr/ports/devel/libport make config (I made sure bhyve and QEMU support were enabled make make install LIBVIRT CONFIG == I created the following /tmp/bhyve.xml file: bhyve df3be7e7-a104-11e3-aeb0-50e5492bd3dc 219136 219136 1 hvm RUNNING I did the following as root: service libvirtd restart virsh -c 'bhyve:///system' Then I ran these commands from the virsh prompt: virsh # define /tmp/bhyve.xml Domain bhyve defined from /tmp/bhyve.xml virsh # start bhyve error: Failed to start domain bhyve error: End of file while reading data: Input/output error error: Failed to reconnect to the hypervisor At this point libvirtd process crashed with a /libvirtd.core process , but for some reason I could not get a valid stacktrace. Can you provide assistance to get this working? Ultimately, I want to get the Jenkins libvirt plugin ( https://wiki.jenkins-ci.org/display/JENKINS/Libvirt+Slaves+Plugin ) to work. Thanks. -- Craig ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"