Earlier  
Posted Nick Remark
#openstack-nova - 2022-05-05
14:44:37 sean-k-mooney so you live migrate and then the source host segfaults?
14:44:56 sean-k-mooney are there any OOM errors
14:45:03 sean-k-mooney or other detail
14:45:09 ralonsoh let me check
14:45:22 ralonsoh nope, I have still 13GB free
14:45:32 sean-k-mooney like the segfault appears to by in python but im wondering if an allcoation failed because you ran out of memory
14:45:34 sean-k-mooney ok
14:52:14 opendevreview Balazs Gibizer proposed openstack/nova master: Adapt tools/test-setup to Fedora 35 https://review.opendev.org/c/openstack/nova/+/840684
14:52:51 gibi frickler: I try to unblock openstack-tox-py310 job
14:52:57 gibi with ^^
14:56:11 kashyap gibi: Thank you!
14:58:22 opendevreview Rico Lin proposed openstack/nova-specs master: Add vIOMMU device support for libvirt driver https://review.opendev.org/c/openstack/nova-specs/+/840310
15:59:15 opendevreview Takashi Natsume proposed openstack/python-novaclient master: Replace old URLs with new ones https://review.opendev.org/c/openstack/python-novaclient/+/840693
16:10:22 gibi frickler, kashyap: my google foo failed me to figure out why the mysql password change fails on fedora 35 in openstack-tox-py310 So if you have ideas please shoot https://review.opendev.org/c/openstack/nova/+/840684/1#message-ffd5ac00ca235cfaebd12988b65dbc210c2b9ec8
16:15:41 clarkb gibi: seems like your mysqladmin tool isn't compatible with mariadb
16:15:47 clarkb since it is generating the sql that fails
16:20:37 mnaser hrm
16:20:52 gibi hm, mariadb is on version 10.5 but mysqlclient and mysqladmin is on 8.0.28 but I'm not sure how to map these verison
16:21:16 mnaser i've got a really weird situation where a hypervisor stops getting vms scheduled to it
16:21:34 mnaser i checked `openstack resource provider inventory list 9fe525d9-df51-41c2-8ca7-8344ed0eee39` and that shows the resources available, and `openstack allocation candidate list --resource VCPU=4 --resource DISK_GB=64 --resource MEMORY_MB=2048 | grep 9fe525d9-df51-41c2-8ca7-8344ed0eee39` even returns that
16:21:51 mnaser so its not placement
16:21:56 clarkb gibi: mysqlclient and mysqladmin are probably the mysql tools and not the mariadb tools? Possible that mariadb has alternatives
16:22:47 gibi clarkb: yeah that make sense... try to figure out where are those alternatives
16:22:58 mnaser the filters in use are: "ComputeFilter, AggregateTypeAffinityFilter, ComputeCapabilitiesFilter, PciPassthroughFilter, ImagePropertiesFilter, ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter" -- i dont think the rest are relevant in this scenario
16:24:38 mnaser hrm, a bunch of exceptions with relation to libvirt before it fully stopped to deploy new systems
16:24:48 mnaser https://www.irccloud.com/pastebin/n7Ezs7aB/
16:25:49 mnaser and if i try to provision an instance on them manually (by using `--host` .. it goes up fine)
16:26:22 mnaser and now that i've actually provisioned an instance, the vms have started to flow in the hyperivsor agian
16:26:24 clarkb gibi: side note: https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/840545
16:27:14 gibi clarkb: yeah that can be a way out :)
16:28:44 opendevreview melanie witt proposed openstack/placement stable/wallaby: placement-status: check only consumers in allocation table https://review.opendev.org/c/openstack/placement/+/840701
16:29:51 opendevreview melanie witt proposed openstack/placement stable/victoria: placement-status: check only consumers in allocation table https://review.opendev.org/c/openstack/placement/+/840702
16:30:18 opendevreview melanie witt proposed openstack/placement stable/ussuri: placement-status: check only consumers in allocation table https://review.opendev.org/c/openstack/placement/+/840703
16:30:45 opendevreview melanie witt proposed openstack/placement stable/train: placement-status: check only consumers in allocation table https://review.opendev.org/c/openstack/placement/+/840704
16:40:56 opendevreview Balazs Gibizer proposed openstack/nova master: Adapt tools/test-setup to Fedora 35 https://review.opendev.org/c/openstack/nova/+/840684
16:45:16 sean-k-mooney oh we have 22.04 in nodepool now
16:45:19 sean-k-mooney cool
16:45:46 sean-k-mooney i think the mysql/mariadb changes were also in devstack
16:45:55 sean-k-mooney we use mariadb on most distos i think now
16:48:45 clarkb sean-k-mooney: it is a bit of a slwo rollout while we work through various things, but ya the images are up and mostly work. The last thing we ran into was phased package updates not making sense for us
16:49:31 sean-k-mooney phased package updates?
16:49:39 sean-k-mooney as in replication to mirrors or something else
16:50:36 clarkb something else. Its new functionality in apt that hashes something about your host and then modulo's that against the percentage of users they want to install the package
16:51:00 clarkb which means they can say things like 10% of users get this package update. Then next week change it to 50% and so on until it is 100%
16:51:30 clarkb but reprepro doesn't understand it and it is disabled by default in chroots (which dib uses to make the images) which means you get the latest available packges as if phases didn't exist at all
16:57:36 Uggla sean-k-mooney, can you have a look at my comment on https://review.opendev.org/c/openstack/nova-specs/+/831506/2/specs/zed/approved/unshelve-to-host.rst#42 ? Please let me know what you think about it.
16:59:04 sean-k-mooney clarkb: oh ok
16:59:18 sean-k-mooney clarkb: ya i think we would want to turn that off
16:59:45 mnaser ok, this is most def a thread leak
17:00:15 sean-k-mooney Uggla i saw that breifly
17:00:34 mnaser kill -USR2 <nova-pid>
17:00:35 sean-k-mooney Uggla: so for unshelve ot az it ends up updating the request spec to the requested az
17:00:40 mnaser grep -i 'Green Thread' /tmp/gar | wc -l => 6094
17:01:04 sean-k-mooney mnaser: those are the userland trhead not real os thread
17:01:21 mnaser a lot of them are this:
17:01:25 mnaser https://www.irccloud.com/pastebin/YBiYPlrp/
17:01:31 mnaser and i think the root cause is from https://www.irccloud.com/pastebin/n7Ezs7aB/
17:02:22 sean-k-mooney Uggla: so for unshelve ot host i think it shoudl also update it to the AZ of the host if and only if the request spec is not none
17:02:26 mnaser so with every failure of this, we'd get an extra greenthread that sits and does nothing
17:02:39 sean-k-mooney Uggla: i need to think about that and make sure that is right
17:03:00 sean-k-mooney Uggla: bug basically if the vm orgringaly requested an AZ we want to update it to match the az of the host
17:03:11 sean-k-mooney Uggla: if it did not then we do not want to update it
17:03:16 sean-k-mooney Uggla: i think
17:04:12 sean-k-mooney mnaser: well that implies that nothing is catching the vif creation failure?
17:04:48 sean-k-mooney or its never been resumed
17:05:09 mnaser sean-k-mooney: maybe.. i've seen similar behaviour here https://github.com/eventlet/eventlet/issues/432 and https://github.com/eventlet/eventlet/issues/662
17:05:11 sean-k-mooney im not really sure why you would end up with multiple dangeling thread like that
17:06:37 mnaser its supposed to log a warning if it hits that exception
17:06:45 mnaser let me see https://github.com/openstack/nova/blob/stable/wallaby/nova/virt/libvirt/driver.py#L7236-L7245 is logged
17:07:18 sean-k-mooney yes which would do io and cause the thread to yeild
17:07:32 sean-k-mooney *greenthread
17:07:50 sean-k-mooney or at least potentially while the python logger processes the logging event
17:09:58 sean-k-mooney mnaser: that looks promising and also depressing
17:10:13 sean-k-mooney i.e. that python logging is broken and has been for ever
17:10:16 mnaser sean-k-mooney: sadly it looks like the logs got rotated out :(
17:10:29 mnaser with the kill -USR2 it wiped a bunch of the old logs
17:10:58 sean-k-mooney are you using oslo.log's logrotation feature
17:11:09 sean-k-mooney or using logrotate externally
17:11:22 mnaser no, this is bc we run stuff inside k8s, so the max-log-size feature or whatever its called i believe hit here
17:11:27 sean-k-mooney kill -USR2 usually requires a process restart to recover form
17:11:59 mnaser to me it sounds like there should not be a traceback for this thing to start with
17:11:59 sean-k-mooney ack so dumping the GMR proably caused the pod to be restarted
17:13:43 mnaser this is wallaby blergh
17:14:12 Uggla sean-k-mooney, ok by the way we (with Artom) added some tests to ensure a cold migration after shelve/unshelve to host is moving back the host to the origin host.
17:15:24 Uggla sean-k-mooney, but we can discuss that tomorrow, it will let you think about it.
17:15:31 mnaser ok it looks like timeout was raised, then since `vif_plugging_is_fatal`, that raises another exception again, which bubbles back up to the `except Exception`
17:15:43 mnaser https://github.com/openstack/nova/blob/stable/wallaby/nova/virt/libvirt/driver.py#L7235-L7266
17:16:32 mnaser then we LOG.error() the whole stack, which seems to add up
17:17:24 sean-k-mooney so its being rasised form here https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L7499=
17:17:24 sean-k-mooney so we plug the start a timer to with for the viff plugged event then we plug the vifs then we creat the guest
17:17:24 sean-k-mooney we start waiting in this context manager https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L7491-L7494=
17:17:24 sean-k-mooney that is timeing out after 300 seconds
17:17:24 sean-k-mooney causign this expct block to be taken
17:19:38 mnaser https://eventlet.net/doc/modules/timeout.html
17:19:42 mnaser "If the code block catches and doesn’t re-raise BaseException (for example, with except:), then it will catch the Timeout exception, and might not abort as intended."
17:19:42 mnaser "If the code block catches and doesn’t re-raise BaseException (for example, with except:), then it will catch the Timeout exception, and might not abort as intended."
17:19:46 sean-k-mooney if you have logs for this in the future you could proably check fo rthis log https://github.com/openstack/nova/blob/7520711a0e3b20354c0a9d46cb1dd62c8f56db24/nova/compute/manager.py#L559-L569=
17:20:49 sean-k-mooney mnaser: i dont think we are incorectly cathching this
17:24:08 sean-k-mooney hum https://github.com/openstack/nova/blob/7520711a0e3b20354c0a9d46cb1dd62c8f56db24/nova/compute/manager.py#L2202-L2242=
17:25:44 sean-k-mooney we are not using a threadpool here so this should be fine

Earlier   Later