Wednesday, 2023-11-15

bauzashappy implementation review day everyone 08:26
bauzasas a reminder, please look at https://etherpad.opendev.org/p/nova-caracal-status08:26
gibio/08:26
bauzasgibi: ah was just adding your line :p08:28
gibi:)08:28
dvo-plv0/08:40
gboutry1Hi nova, I'm trying to setup live migration and the migration is failing at the step compareHypervisorCPU with CPU doesn't have compatibility.09:46
gboutry1I'm running an openstack cloud on two identical VMs, each running an hypervisor. here's the capabilities: https://pastebin.ubuntu.com/p/cvvngtk4PG/09:46
gboutry1I've tried virsh cpu-compare cpu.xml, which returns CPU described in cpu.xml is identical to host CPU09:46
gboutry1When using virsh hypervisor-cpu-compare cpu.xml, I get: CPU described in cpu.xml is incompatible with the CPU provided by hypervisor on the host09:46
gboutry1Is there anyway to get what's the reason hypervisor-cpu-compare is failing ? 09:46
*** ykarel|away is now known as ykarel10:06
gboutry1Adding the --error flag, I get the following error: error: the CPU is incompatible with host CPU: Host CPU does not provide required features: ht, osxsave, ospke, waitpkg10:22
gboutry1But I can clearly see them in virsh capabilities10:23
gibigboutry1: you might hit by https://bugs.launchpad.net/nova/+bug/203980312:32
gboutry1thanks gibi, it looks close enough, do you know what's the workaround sean-k-mooney is talking about ? Maybe setting the cpu_mode to custom with a cpu model instead of configuring with host-model ?12:38
sean-k-mooneyloading context12:44
sean-k-mooneybut i belvie there are two workarounds12:45
sean-k-mooneyhttps://docs.openstack.org/nova/latest/configuration/config.html#workarounds.skip_cpu_compare_on_dest12:45
sean-k-mooneyor ya using a custom model might also work12:45
gibibauzas: how do you feel about https://review.opendev.org/c/openstack/nova/+/831193/34#message-95b03db3501a7b105700779fb484b5cf740087ea is this style difference worth a respin?13:00
gibi(it is not formatting style difference)13:00
sean-k-mooney it proably should use the ovo approch13:14
sean-k-mooneythis is not really an area i look at much in the code base so im generally less opinonated about hwo this is done13:15
gibiyeah I don't know all the possible consequences of our common style so I cannot fully judge what this departure means. At a first glance what Uggla_ wrote works 13:25
sean-k-mooneyi think it might be more error prone if we are adding filed perhaps but maybe not13:26
sean-k-mooneyin general a new object filed results in a new db field too so there is some benifit to delegating to the object implemention13:27
sean-k-mooneypresumably if we only set the filed that changed13:27
sean-k-mooneythere is a minutly smaller db update13:27
gibibottom line I won't block on this just wanted to highlight as others might have a reason to block on this :)13:29
sean-k-mooneymelaine or dan may have input. jay certenly would have had an opion on it but i cant guess what that would have been13:31
gibi:)13:33
gibiI miss Jay13:33
sean-k-mooneyso do i, but he has moved on to better things. he is still aroudn the k8s ecosystem i belive13:34
sean-k-mooneyas in he sometimes attends kubecon13:34
gibiyeah when I started the k8s operator work I found his work in github doing k8s operators for aws services13:48
bauzasgibi: sean-k-mooney: sorry guys was disconnecting a bit after a huge load14:54
bauzasgibi: context, about calling the DB directly from the object ?14:55
gibibauzas: it is the way the db update is implemented by passing individual fields instead of passing an updates dict 14:55
gibiwe tend to use obj_get_changes and get the dict and pass it to SQLA update() call 14:56
gibis/and/to/14:56
bauzasI don't disagree with you, see the other comment from PS1714:57
bauzashttps://review.opendev.org/c/openstack/nova/+/831193/comment/6cfa2a63_4b585a14/14:58
bauzastl;dr: yeah we no longer need to create a specific interface for API DB14:58
bauzasthat said, given the number of changes we have, maybe we should just ask for a new follow-up change14:59
*** d34dh0r5- is now known as d34dh0r5315:00
dvo-plvhello, All15:02
dvo-plvI have a question regarding this comment15:02
dvo-plvhttps://review.opendev.org/c/openstack/nova/+/876075/27/nova/api/validation/extra_specs/hw.py#54015:02
sean-k-mooneybauzas: sure this coudl be defered to a follow up patch 15:02
sean-k-mooneyfunctionlaly it woudl eb equivalent15:02
dvo-plvDo those docs are located in the doc folder in nova project, or I should find them anywhere else ?15:02
bauzasdansmith: so you'll provide a new revision for https://review.opendev.org/c/openstack/nova/+/892800/ ?15:06
dansmithbauzas: in minutes15:06
dansmiththat function isn't even used yet, I just added it for symmetry, but I'm changing it anyway15:06
bauzashonestly, I'm fine with using 'assert', we already have a few calls for it in Nova IIRC15:06
opendevreviewDan Smith proposed openstack/nova master: Support setting alias on libvirt disks  https://review.opendev.org/c/openstack/nova/+/89280015:07
opendevreviewDan Smith proposed openstack/nova master: Set libvirt device alias for volumes  https://review.opendev.org/c/openstack/nova/+/89280115:07
opendevreviewDan Smith proposed openstack/nova master: Detach disks using alias when possible  https://review.opendev.org/c/openstack/nova/+/89306815:07
dansmithme too15:07
dansmithit's more that it might be used to parse any alias, and thus be surprising, but the intent was (of course) to only use it to extract the identifier out of the user-specified format15:08
dansmithbut when I start using that we can see what makes the most sense15:08
dansmithsean-k-mooney: on the volume id thing, I think that what I was seeing was actually our retries after we detach a volume, we go back and look it up to make sure it's gone,15:13
bauzasanyway, /me just looks at your new revision15:13
dansmithand we'll always fall back to the "old way" because we don't find it via alias (because it's gone)15:13
sean-k-mooneydansmith: ack gone form the trainistae domain right15:14
dansmithso I changed how we do that log to only log if we found it via the old way but not the new way, so we'll see how that looks15:14
dansmithsean-k-mooney: well, both15:14
sean-k-mooneyor or just gone because it was detached in between15:14
dansmithgone because we do get_disk(); detach(); get_disk()15:14
sean-k-mooneyah ya ok15:14
dansmiththe latter will always fail to find via alias (because it's gone) and try the fallback15:14
sean-k-mooneyyep that makes sense15:15
sean-k-mooneydansmith: on the assert thing do we want to put that back in the gate and revisit when you use it later or were you going to respin that anyway15:17
bauzasyeah, in the spec we said we would try to use the alias but we could still support the the previous behaviour15:18
bauzasso, everything looks good to me here15:19
bauzasbut I could be wrong15:19
sean-k-mooneyi think dansmith just wanted to understand why they were seeing the log message when they were not expecting too and now with the new version wants to minimise the false positives15:20
dansmiththe assert is in code that isn't even used, so it's really irrelevant15:26
dansmithI'd rather just merge it as-is and if we start using it on one way or the other we can add the assert back or not15:26
dansmithunrelated to the log message15:26
dansmithsean-k-mooney: and I already respun to do that15:27
sean-k-mooneyack15:27
bauzassean-k-mooney: good call on the libvirt api not supporting to query per alias15:32
bauzasthat's sad at least15:32
bauzasbut I wonder, maybe we have a get device per alias15:32
sean-k-mooneywe as in nova15:33
sean-k-mooneyi dont think so 15:33
sean-k-mooneybut we can always ask the virt folks if this exists elsewhere in the python lib15:33
bauzasbut I don't see anything in https://libvirt.org/html/libvirt-libvirt-nodedev.html15:33
bauzaswe have a cap flag but not an alias one15:34
bauzashttps://libvirt.org/html/libvirt-libvirt-nodedev.html#virConnectListAllNodeDevices doesn't know a single bit about aliases15:35
bauzasactually, I'm wrong, nodedev is only for host devices, here we're talking of guest devices hence the domain API15:41
opendevreviewMerged openstack/nova stable/2023.2: add a regression test for all compute RPCAPI 6.x pinnings for rebuild  https://review.opendev.org/c/openstack/nova/+/90030915:52
bauzasone down, two to go15:53
opendevreviewJay Faulkner proposed openstack/nova master: WIP: [ironic] Partition & use cache for list_instance*  https://review.opendev.org/c/openstack/nova/+/90083117:27
bauzasstephenfin: or other lords of mypy: could someone tell me how to tell f..k to mypy here https://review.opendev.org/c/openstack/nova/+/899625/4/nova/virt/libvirt/driver.py#7975 ?17:36
bauzasmypy isn't able to infer that the variable will never be None in that case17:36
JayFDoes it need to be a Tuple[str, Optional[Any]]?17:38
melwittbauzas: I think it's just that you need to use a %  there instead of a comma?17:39
JayFAny implies none per https://mypy.readthedocs.io/en/stable/kinds_of_types.html#the-any-type17:39
bauzasmelwitt: not in LOG()17:39
melwittbut you're assembling the message separately before calling LOG.blah(..., ..., ...)17:39
bauzasJayF: I guess I'll need to annotate the first call17:40
JayFI think melwitt is right17:40
melwittyou could do LOG.warning("mdev type default already set to %s", self.pgpu_type_default)17:40
dansmithsean-k-mooney: yep, that was the problem with the falling-back log message, so that top patch should be good :)17:40
bauzasI can try17:40
melwittbut if you're making the string beforehand the comma won't work. LOG is the thing that handles the comma17:40
stephenfinyeah, what melwitt said. That would have introduced a bug17:41
bauzasok17:42
bauzasrespinning pep8 locally to see whether that fixes my problem17:42
bauzasuh, actually that's a separate tox target17:43
stephenfiniirc we run all linters as part of the pep8 env. mordred had an idea of renaming pep8 to linters across projects years ago but backed off the idea17:46
stephenfintoo much work, too little ROI17:46
JayFAh, so that's why it's inconsistent everywhere now :-|17:46
stephenfinafraid so17:47
stephenfinbauzas: btw, https://review.opendev.org/c/openstack/nova/+/899979 is waiting for your doc eyes when you get a chance. There are references to AZs in there that melwitt thought you might have opinions on 17:47
bauzasstephenfin: ack, a bit overloaded as of now, but I'll look at it tomorrow morning17:49
stephenfinnw, thanks (y)17:49
admin1> i accidentally mapped an IP to a wrong node .. i deleted it from inventory and compute service .. and gave the correct node to the IP .. but when i provision it, it still comes up wiht the old hostname .. which nova/placement table holds this record so that i can map the uuid to the correct hostname 18:12
*** JasonF is now known as JayF18:47
opendevreviewJay Faulkner proposed openstack/nova master: WIP: [ironic] Partition & use cache for list_instance*  https://review.opendev.org/c/openstack/nova/+/90083119:27
mgariepyhmm any pointer on : Migration pre-check error: Unacceptable CPU info: CPU doesn't have compatibility ?19:58
mgariepysame server model cpu memory and all 19:58
mgariepywith 2023.1 release.19:58
opendevreviewMerged openstack/nova stable/2023.2: Fix rebuild compute RPC API exception for rolling-upgrades  https://review.opendev.org/c/openstack/nova/+/90033820:10
mgariepyhmm like this one : https://bugs.launchpad.net/nova/+bug/203980320:17
opendevreviewmelanie witt proposed openstack/nova master: Support create with ephemeral encryption for qcow2  https://review.opendev.org/c/openstack/nova/+/87093220:38
opendevreviewJay Faulkner proposed openstack/nova master: [ironic] Partition & use cache for list_instance*  https://review.opendev.org/c/openstack/nova/+/90083121:26

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!