Hi, Anonymous fellow ;)
Let’s see if I can help you a little bit. I am checking the ACS 4.9 source
code.

The error is thrown at line 896 of class
“com.cloud.hypervisor.kvm.resource.LibvirtComputingResource”.
The condition that causes the error is “_pifs.get("private") == null”.
“_pifs” if a map. The key “private” is added to the map at line 1124, if
condition “_guestBridgeName != null && bridge.equals(_guestBridgeName)” is
met.
The variable “_guestBridgeName” is a String that can receive the value of
“guest.network.device” parameter or “_privBridgeName” variable. This
process happens at lines 752-755. The process of assigning a value to
“_privBridgeName” happens at lines 747-750. The default value for
“_privBridgeName” is “cloudbr1”. The default can be overridden by
“private.network.device” parameter.

Having detailed the parameter. Let's see how ACS gets the “bridge” value.
It gets that value from code at line 1113 “cmdout.split("%")”. The variable
“cmdout” contains the output of the following OS command: “ovs-vsctl
list-br | sed '{:q;N;s/\\n/%/g;t q}'”.

Can you run the command and check its output?


On Thu, Oct 20, 2016 at 8:49 AM, Cloud List <cloud-l...@sg.or.id> wrote:

> Hi,
>
> We are using ACS version 4.2 / 4.9 on our test environment. We are using
> Ubuntu 12.04 as the operating system and KVM as the hypervisor.
>
> We are trying to simulate an upgrade from ACS 4.2 to 4.9 and roll-back from
> 4.9 to 4.2 on our test environment. The upgrade went smooth, and the
> roll-back went well as well except when we need to start the agent after
> downgrading the agent.
>
> After uninstalling cloudstack-agent version 4.9 and installing back
> cloudstack-agent version 4.2, I am not able to start the agent with below
> error messages:
>
> ====
> 2016-10-20 17:32:28,187 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/
> cloud0/bridge
> 2016-10-20 17:32:28,187 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) Found bridge cloud0
> 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/lo/bridge
> 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file
> /sys/devices/virtual/net/cloudbr1/bridge
> 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) Found bridge cloudbr1
> 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet4/bridge
> 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet5/bridge
> 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet6/bridge
> 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet7/bridge
> 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet8/bridge
> 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet9/bridge
> 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet0/bridge
> 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet1/bridge
> 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet2/bridge
> 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet3/bridge
> 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/
> virbr0/bridge
> 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) Found bridge virbr0
> 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet11/bridge
> 2016-10-20 17:32:28,190 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet12/bridge
> 2016-10-20 17:32:28,190 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet13/bridge
> 2016-10-20 17:32:28,190 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet14/bridge
> 2016-10-20 17:32:28,190 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet10/bridge
> 2016-10-20 17:32:28,190 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking for pif for bridge cloud0
> 2016-10-20 17:32:28,190 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) matchPifFileInDirectory: file name 'vnet1'
> 2016-10-20 17:32:28,191 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) matchPifFileInDirectory: file name 'vnet2'
> 2016-10-20 17:32:28,191 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) matchPifFileInDirectory: file name 'vnet5'
> 2016-10-20 17:32:28,191 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) failing to get physical interface from bridge cloud0,
> did not find an eth*, bond*, vlan*, em*, or p*p* in
> /sys/devices/virtual/net/cloud0/brif
> 2016-10-20 17:32:28,191 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking for pif for bridge cloudbr1
> 2016-10-20 17:32:28,191 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) matchPifFileInDirectory: file name 'eth1'
> 2016-10-20 17:32:28,192 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking for pif for bridge virbr0
> 2016-10-20 17:32:28,192 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) failing to get physical interface from bridge virbr0,
> did not find an eth*, bond*, vlan*, em*, or p*p* in
> /sys/devices/virtual/net/virbr0/brif
> 2016-10-20 17:32:28,192 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) done looking for pifs, no more bridges
> 2016-10-20 17:32:28,192 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) Failed to get private nic name
> 2016-10-20 17:32:28,192 ERROR [cloud.agent.AgentShell] (main:null) (logid:)
> Unable to start agent: Failed to get private nic name
> ====
>
> Below is the result of brctl show and the content of
> /etc/network/interfaces:
>
> ====
> root@test-kvm-03:/var/log/cloudstack/agent# brctl show
> bridge name     bridge id               STP enabled     interfaces
> cloud0          8000.fe00a9fe00f8       no              vnet1
>                                                         vnet2
>                                                         vnet5
> cloudbr1                8000.d067e5ec82c0       no              eth1
>                                                         vnet0
>                                                         vnet10
>                                                         vnet11
>                                                         vnet12
>                                                         vnet13
>                                                         vnet14
>                                                         vnet3
>                                                         vnet4
>                                                         vnet6
>                                                         vnet7
>                                                         vnet8
>                                                         vnet9
> virbr0          8000.000000000000       yes
> ====
>
> /etc/network/interfaces:
>
> ====
> # The loopback network interface
> auto lo
> iface lo inet loopback
>
> auto eth1
> #iface eth1 inet static
> iface eth1 inet manual
>
> auto cloudbr1
> iface cloudbr1 inet static
> bridge_ports eth1
>         address 192.168.0.201
>         netmask 255.255.255.0
>         network 192.168.0.0
>         broadcast 192.168.0.255
>         gateway 192.168.0.1
>         dns-nameservers 8.8.8.8 8.8.4.4
>         dns-search xxxxx.com
>
> auto cloudbr1:0
> iface cloudbr1:0 inet static
>         address 192.168.3.201
>         netmask 255.255.255.0
>         network 192.168.3.0
>         broadcast 192.168.3.255
> ====
>
> It seems that the error messages are complaining about no physical
> interface being added into cloud0 and virbr0 bridges. I tried to add eth1,
> cloudbr1 into the bridges but it didn't work. Deleting the cloud0 and
> virbr0 bridges doesn't help either, agent is still complaining about cannot
> find "pifs":
>
> ====
> 2016-10-20 18:00:48,331 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/lo/bridge
> 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file
> /sys/devices/virtual/net/cloudbr1/bridge
> 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) Found bridge cloudbr1
> 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet4/bridge
> 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet5/bridge
> 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet6/bridge
> 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet7/bridge
> 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet8/bridge
> 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet9/bridge
> 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet0/bridge
> 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet1/bridge
> 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet2/bridge
> 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/vnet3/bridge
> 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet11/bridge
> 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet12/bridge
> 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet13/bridge
> 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet14/bridge
> 2016-10-20 18:00:48,334 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet10/bridge
> 2016-10-20 18:00:48,334 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) looking for pif for bridge cloudbr1
> 2016-10-20 18:00:48,334 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) matchPifFileInDirectory: file name 'eth1'
> 2016-10-20 18:00:48,334 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) done looking for pifs, no more bridges
> 2016-10-20 18:00:48,334 DEBUG [kvm.resource.LibvirtComputingResource]
> (main:null) (logid:) Failed to get private nic name
> 2016-10-20 18:00:48,334 ERROR [cloud.agent.AgentShell] (main:null) (logid:)
> Unable to start agent: Failed to get private nic name
> ====
>
> I understand that the required bridge information is supposed to be added
> by CloudStack during the time when the host is added. Is there a way how I
> can add the bridge information again manually without having to delete and
> re-add the host into CloudStack? The reason is because we want to keep the
> VMs running during the downgrade, deleting and re-adding the host into
> CloudStack will shutdown the VMs.
>
> Any advice is greatly appreciated.
>
> Thank you.
>
> -ip-
>



-- 
Rafael Weingärtner

Reply via email to