[
https://issues.apache.org/jira/browse/CLOUDSTACK-2086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13635218#comment-13635218
]
Marcus Sorensen commented on CLOUDSTACK-2086:
---------------------------------------------
do you know what the environment was? The scenario suggests an issue with the
hypervisor side. Does the bug require no router in the network in order to be
triggered (if you wait for the newly deployed network to get a router, does the
bug still show up)?
This scenario has been discussed a few times, and certainly the behavior being
seen is wrong, but I don't think we want to remove the configuration just
because it couldn't be applied to the live VM. There's "I want to add a nic to
a VM", which is satisfied since the VM's configuration is modified, and "I want
to add a VM to a network without rebooting" which is both changing the config
and applying it. Consider if the VM were powered off, and the apply failed when
they turned the VM on, not just for nic, but for anything that was changed
while the vm was off, should everything that failed to apply be destroyed? I'd
prefer to see something like "The nic was added, but failed to apply, please
reboot the VM for settings to take effect".
On second thought, after seeing the other bug, I wonder if this is just a
symptom of something else, as they both involve no router found in the shared
network.
I'm not going to assign it to myself yet since 4.2 isn't really on my radar at
the moment, but I've traced through the code a bit and I have an idea of what's
going on.
> UI shows added NIC even if Actual NIC addition has failed
> ----------------------------------------------------------
>
> Key: CLOUDSTACK-2086
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-2086
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Components: Network Controller, UI
> Affects Versions: 4.2.0
> Environment: build: CloudStack-non-OSS-MASTER-219-rhel6.3.tar.gz
> Reporter: shweta agarwal
> Priority: Critical
> Fix For: 4.2.0
>
>
> Repro steps:
> Create a VM
> Create a shared network
> Call Add Nic Api
> Notice Entries in Db is created even though actual addition of NIC has
> failed as a result the newly added nic is shown in UI
> MS log shows
> 2013-04-18 13:03:57,821 ERROR [cloud.async.AsyncJobManagerImpl]
> (Job-Executor-51:job-41) Unexpected exception while executing
> org.apache.cloudstack.api.command.user.vm.AddNicToVMCmd
> java.lang.NullPointerException
> at
> com.cloud.network.element.VirtualRouterElement.getRouters(VirtualRouterElement.java:879)
> at
> com.cloud.network.element.VirtualRouterElement.addDhcpEntry(VirtualRouterElement.java:826)
> at
> com.cloud.network.NetworkManagerImpl.prepareElement(NetworkManagerImpl.java:1591)
> at
> com.cloud.network.NetworkManagerImpl.prepareNic(NetworkManagerImpl.java:1702)
> at
> com.cloud.network.NetworkManagerImpl.createNicForVm(NetworkManagerImpl.java:3636)
> at
> com.cloud.vm.VirtualMachineManagerImpl.addVmToNetwork(VirtualMachineManagerImpl.java:2522)
> at
> com.cloud.vm.UserVmManagerImpl.addNicToVirtualMachine(UserVmManagerImpl.java:860)
> at
> org.apache.cloudstack.api.command.user.vm.AddNicToVMCmd.execute(AddNicToVMCmd.java:109)
> at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:164)
> at
> com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:437)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:679)
> 2013-04-18 13:03:57,823 DEBUG [cloud.async.AsyncJobManagerImpl]
> (Job-Executor-51:job-41) Complete async job-41, jobStatus: 2, resultCode:
> 530, result: Error Code: 530 Error text: null
> 2013-04-18 13:04:01,436 DEBUG [cloud.network.NetworkManagerImpl]
> (Network-Scavenger-1:null) We found network 204 to be free for the first
> time. Adding it to the list: 1334281876
> 2013-04-18 13:04:08,819 DEBUG [agent.manager.DirectAgentAttache]
> (DirectAgent-142:null) Ping from 1
> 2013-04-18 13:04:09,058 DEBUG [storage.secondary.SecondaryStorageManagerImpl]
> (secstorage-1:null) Zone 1 is ready to launch secondary storage VM
> 2013-04-18 13:04:09,373 DEBUG [cloud.consoleproxy.ConsoleProxyManagerImpl]
> (consoleproxy-1:nu
> UI snap shot attached :
> DB showing :
> "id" "uuid" "instance_id" "mac_address" "ip4_address" "netmask"
> "gateway" "ip_type" "broadcast_uri" "network_id" "mode"
> "state" "strategy" "reserver_name" "reservation_id" "device_id"
> "update_time" "isolation_uri" "ip6_address" "default_nic" "vm_type"
> "created" "removed" "ip6_gateway" "ip6_cidr"
> "secondary_ip"
> "41" "f12806c9-8792-4fc2-bfc7-4362d2f3015a" NULL NULL "10.147.51.121"
> NULL NULL NULL NULL "212" NULL "Reserved" "PlaceHolder"
> NULL NULL "0" "2013-04-18 13:02:17" NULL NULL "0"
> "DomainRouter" "2013-04-18 17:02:17" NULL NULL NULL "0"
> Even though instance id is null still UI showing this NIC in UI.
> I think entry in DB should only be made once the addnic comand passes
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira