Xin He created CLOUDSTACK-8839:
----------------------------------
Summary: concurrent ip disassociate commands for virtual router
maybe out of order, and this cause some public ips remnant in VR
Key: CLOUDSTACK-8839
URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8839
Project: CloudStack
Issue Type: Bug
Security Level: Public (Anyone can view this level - this is the default.)
Components: Management Server, Virtual Router
Affects Versions: 4.5.2
Environment: three management server and handreds of vmware compute
nodes
Reporter: Xin He
Priority: Critical
Fix For: 4.5.2
*[appearance]*
when many cocurrent disable static nat command happend in one network, some
public ips may remnant in VR, and this will cause a big problem for the hole
cloud netowrk
*[reason]*
when executing the disable static nat command, CS will execute disassociate ip
command at the same time, and this command will put all the public ip, include
the associate and disassociate ips, to VR, however, if cocurrent disable static
nat commands is out of order, some ip which should be disassociated may be
associated again by the command should be executed first (because this command
reach VR last, maybe for reason of some network latency).
*[bug fix suggestion]*
use some kind of lock mechanism like "optimistic lock", this "optimistic lock"
will give a version id for network and vpc, anytime the network or vpc is doing
some about public ip or network rules (network rules also have this problem),
the version id will have an increment, when the resouce part (like
VmwareResource) find the command which it got is before the last version they
got before, this command will be discarded. This method guarantee that every
command sent by resource part and rechieved by VR will be the last version of
network or vpc at that time.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)