Alena Prokharchyk created CLOUDSTACK-6198:
---------------------------------------------

             Summary: VPC: secondary public ip address (from diff Vlan range) 
doesn't get reprogrammed on the VR upon VPC/Network/VR resetart
                 Key: CLOUDSTACK-6198
                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-6198
             Project: CloudStack
          Issue Type: Bug
      Security Level: Public (Anyone can view this level - this is the default.)
    Affects Versions: 4.3.0
            Reporter: Alena Prokharchyk
            Priority: Blocker
             Fix For: 4.4.0


Regression bug.

Steps to reproduce:
1. Create vpc and launch a vm in one tear.
2. vpc source ip address is from one subnet (ex: 10.147.52.1)
3. Acquire another public ip address from new public subnet.
4. create static nat on it to plug the nic on VR.
5. Now the VR has link local nic, guest nic, source nat ip nic and second 
public range nic.
6. Restart the vpc.
7. After restart there is no source nat nic.
8. If we restart vpc again observed that more nics are missed.


I do observe the HUGE problem in 4.3 in VpcVirtualNetworkApplianceManager.java 
createVpcRouterNetworks() method. In 4.2 we used to store vm's nics in the 
ArrayList datastructure:
List<Pair<NetworkVO, NicProfile>> networks = new ArrayList<Pair<NetworkVO, 
NicProfile>>(4);
ArrayList does allow duplicates.
Then in 4.3 the datastructure was changed to LinkedHashMap that doesn't allow 
duplicates:
LinkedHashMap<Network, NicProfile> networks = new LinkedHashMap<Network, 
NicProfile>(4);
To fix the problem, the datastructure has to be changed to 
LinkedHashMap<Network, List<NicProfile>>. It has to be changed all the way up 
to VirtualMachienManagerImpl where the nics are being passed to.




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to