[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-8839?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xin He updated CLOUDSTACK-8839:
-------------------------------
    Summary: close concurrent ip disable static nat commands for virtual router 
will cause some public ips remnant in VR  (was: concurrent ip disassociate 
commands for virtual router maybe out of order, and this cause some public ips 
remnant in VR)

> close concurrent ip disable static nat commands for virtual router will 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 happening, like disable public ips A and B, 
> first disable ip A, then disable ip B, this two commands will be like first 
> A- B+, second A- B- (this place, we use - as disassociate ip, + as associate 
> ip), but this two commands like above is working in a normal way, if the 
> cocurrent time is very close, the answer of VR for disassociate ip A is not 
> returned to CS, the public ip A will be remain in associated status in CS 
> database, then the second command would not be A- B-, but A+ B-, then the ip 
> A will be reassociated by the second command without our expectation, and 
> this will make public ip A remnant in VR, so as the reason above, some ips 
> which should be disassociated may be reassociated by the cocurrent other 
> commands, this issue will happened easily as the close cocurrent disable 
> static nat commands.
> *[bug fix suggestion]*
> use some kind of lock mechanism like "optimistic lock", this "optimistic 
> lock" will give a version id for network and vpc in CS database, 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 or 
> equal 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. so the example like 
> above will not happen again.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to