yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #82300
[Bug 1864347] Re: libvirt: start an instance failed lead to xml undefined
When you say "the failed action lead to the instance is undefined which is unacceptable (we accept fail to start, but not the VM undefine)" do you mean that your problem is that nova undefined the domain in libvirt?
If yes, then how does this effects you as a nova user? You also mentioned that the VM is defined again later so I guess nova handles the situation properly.
This is what I tried.
* I booted a cirros instance in my devstack with nova
* I stopped the instance with nova stop
* I created memory pressure in the devstack
* I tried to start the instance with nova start. It failed with a similar qemu error than in your case
2020-04-15T12:04:31.672553Z qemu-system-x86_64: cannot set up guest
memory 'pc.ram': Cannot allocate memory
* I did observe that nova undefined the domain in libvirt
* I removed the memory pressure from the devstack
* I started the instance again. It is started up properly.
Based on this I don't see any user facing issue with the current nova
behavior. So I'm setting the bug state to Opinion. Feel free to respond
here and set the bug state back to New
Also it seems that your link https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L3059 points to some seemingly unrelated code path. Could you please use permalinks from github (click on a code line, then click on the ... appearing next the line number and select copy permalink)
** Changed in: nova
Status: New => Opinion
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1864347
Title:
libvirt: start an instance failed lead to xml undefined
Status in OpenStack Compute (nova):
Opinion
Bug description:
we have an instance running on host (32G mem) and the VM itself is 24G mem
when the host is filled with other VM consumption and we start the VM with 24G mem, it failed with memory not enough, however, the failed action lead to the instance is undefined which is unacceptable (we accept fail to start, but not the VM undefine)
checked the code
https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L3059
will undefine the VM, then
https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L3101
will define the VM again, so when the VM creation at 3101 has some problem (just like the call stack below, it will lead to VM undefined...)
note the following logic is from Stein but the logic seems same?
2020-02-20 13:14:29.534 8686 ERROR nova.virt.libvirt.driver [req-0f8347ed-0191-4477-9cec-c5b37050e3e7 bfb0bf8fc2fe44908e638ab012266f0c 0dfede6c1a4b4bef8ce8c1936c5a418c - default default] [instance: e087ba59-10e2-4930-978b-5c951b6cc996] Failed to start libvirt guest: libvirtError: internal error: qemu unexpectedly closed the monitor: 2020-02-20T05:14:29.061291Z qemu-kvm: cannot set up guest memory 's390.ram': Cannot allocate memory
2020-02-20 13:14:29.911 8686 INFO os_vif [req-0f8347ed-0191-4477-9cec-c5b37050e3e7 bfb0bf8fc2fe44908e638ab012266f0c 0dfede6c1a4b4bef8ce8c1936c5a418c - default default] Successfully unplugged vif VIFBridge(active=False,address=fa:16:3e:de:8a:3f,bridge_name='qbr219907f5-f9',has_traffic_filtering=True,id=219907f5-f9e5-4bbf-bf2d-e8b3de4af072,network=Network(14e7db65-1297-4c8f-8928-a1764272c276),plugin='ovs',port_profile=VIFPortProfileOpenVSwitch,preserve_on_delete=False,vif_name='tap219907f5-f9')
2020-02-20 13:14:30.044 8686 INFO nova.compute.manager [req-0f8347ed-0191-4477-9cec-c5b37050e3e7 bfb0bf8fc2fe44908e638ab012266f0c 0dfede6c1a4b4bef8ce8c1936c5a418c - default default] [instance: e087ba59-10e2-4930-978b-5c951b6cc996] Successfully reverted task state from powering-on on failure for instance.
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server [req-0f8347ed-0191-4477-9cec-c5b37050e3e7 bfb0bf8fc2fe44908e638ab012266f0c 0dfede6c1a4b4bef8ce8c1936c5a418c - default default] Exception during message handling: libvirtError: internal error: qemu unexpectedly closed the monitor: 2020-02-20T05:14:29.061291Z qemu-kvm: cannot set up guest memory 's390.ram': Cannot allocate memory
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server Traceback (most recent call last):
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line 166, in _process_incoming
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server res = self.dispatcher.dispatch(message)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 265, in dispatch
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server return self._do_dispatch(endpoint, method, ctxt, args)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 194, in _do_dispatch
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server result = func(ctxt, **new_args)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/exception_wrapper.py", line 79, in wrapped
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server function_name, call_dict, binary, tb)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server self.force_reraise()
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/exception_wrapper.py", line 69, in wrapped
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server return f(self, context, *args, **kw)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 187, in decorated_function
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server "Error: %s", e, instance=instance)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server self.force_reraise()
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 157, in decorated_function
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server return function(self, context, *args, **kwargs)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/compute/utils.py", line 1418, in decorated_function
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server return function(self, context, *args, **kwargs)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 215, in decorated_function
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server kwargs['instance'], e, sys.exc_info())
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server self.force_reraise()
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 203, in decorated_function
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server return function(self, context, *args, **kwargs)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2939, in start_instance
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server self._power_on(context, instance)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2909, in _power_on
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server block_device_info)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 2975, in power_on
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server self._hard_reboot(context, instance, network_info, block_device_info)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 2865, in _hard_reboot
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server vifs_already_plugged=True)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5717, in _create_domain_and_network
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server destroy_disks_on_failure)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server self.force_reraise()
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5686, in _create_domain_and_network
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server post_xml_callback=post_xml_callback)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5621, in _create_domain
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server guest.launch(pause=pause)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/guest.py", line 144, in launch
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server self._encoded_xml, errors='ignore')
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server self.force_reraise()
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/guest.py", line 139, in launch
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server return self._domain.createWithFlags(flags)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 186, in doit
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server result = proxy_call(self._autowrap, f, *args, **kwargs)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 144, in proxy_call
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server rv = execute(f, *args, **kwargs)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 125, in execute
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server six.reraise(c, e, tb)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 83, in tworker
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server rv = meth(*args, **kwargs)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server File "/usr/lib64/python2.7/site-packages/libvirt.py", line 1110, in createWithFlags
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server if ret == -1: raise libvirtError ('virDomainCreateWithFlags() failed', dom=self)
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server libvirtError: internal error: qemu unexpectedly closed the monitor: 2020-02-20T05:14:29.061291Z qemu-kvm: cannot set up guest memory 's390.ram': Cannot allocate memory
2020-02-20 13:14:30.049 8686 ERROR oslo_messaging.rpc.server
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1864347/+subscriptions
References