Tuesday, 2026-02-10

opendevreviewminwoo seo proposed openstack/nova master: Add availability_zone support for migration and live-migration  https://review.opendev.org/c/openstack/nova/+/97608501:22
*** mhen_ is now known as mhen02:24
opendevreviewminwoo seo proposed openstack/nova-specs master: Add spec for availability_zone support in migration  https://review.opendev.org/c/openstack/nova-specs/+/97620202:37
opendevreviewminwoo seo proposed openstack/nova master: Add availability_zone support for migration and live-migration  https://review.opendev.org/c/openstack/nova/+/97608502:42
opendevreviewminwoo seo proposed openstack/nova master: Add availability_zone support for migration and live-migration  https://review.opendev.org/c/openstack/nova/+/97608502:51
opendevreviewMasahito Muroi proposed openstack/nova master: Add indirection_url to metadata-api wsgi app  https://review.opendev.org/c/openstack/nova/+/97620503:09
*** seebaer is now known as seba04:11
*** mhen_ is now known as mhen04:14
opendevreviewminwoo seo proposed openstack/nova-specs master: Add spec for availability_zone support in migration  https://review.opendev.org/c/openstack/nova-specs/+/97620204:28
opendevreviewminwoo seo proposed openstack/nova-specs master: Add spec for availability_zone support in migration  https://review.opendev.org/c/openstack/nova-specs/+/97620204:30
opendevreviewminwoo seo proposed openstack/nova-specs master: Add spec for availability_zone support in migration  https://review.opendev.org/c/openstack/nova-specs/+/97620204:31
*** ykarel_ is now known as ykarel05:40
opendevreviewminwoo seo proposed openstack/nova master: Add availability_zone support for migration and live-migration  https://review.opendev.org/c/openstack/nova/+/97608505:50
opendevreviewminwoo seo proposed openstack/nova-specs master: Add spec for availability_zone support in migration  https://review.opendev.org/c/openstack/nova-specs/+/97620205:58
opendevreviewminwoo seo proposed openstack/nova-specs master: Add spec for availability_zone support in migration  https://review.opendev.org/c/openstack/nova-specs/+/97620206:29
opendevreviewMasahito Muroi proposed openstack/nova master: Add indirection_url to metadata-api wsgi app  https://review.opendev.org/c/openstack/nova/+/97620508:15
opendevreviewTaketani Ryo proposed openstack/nova master: mem-enc: introduce a check between mem_encryption and locked_memory  https://review.opendev.org/c/openstack/nova/+/97130010:45
gokhanHi everyone,12:40
gokhanI'm struggling with a live migration issue where post-copy mode is never triggered, even after the defined timeout, specifically on VMs with 64GB RAM or more.12:40
gokhanDespite having live_migration_permit_post_copy = True, the migration process stays in the "pre-copy" phase indefinitely or until it eventually fails, instead of switching to post-copy when the timeout is reached. I am using OPenStack Caracal version on ubuntu 22.04. My libvirt config is : https://paste.openstack.org/show/bZU8obGPewCaXXlMa9CO/  12:40
gokhanAre there specific qemu.conf or nova.conf tweaks required to ensure the force_complete action actually initiates the post-copy transition instead of just waiting?12:42
gokhanthis is also added. sysctl vm.unprivileged_userfaultfd=113:07
nicolairuckelCould someone take a look at my test failures here? https://zuul.opendev.org/t/openstack/buildset/3a3255ffc9e64cad8afc30bb1cafc254 I think they are unrelated to my changes but I'd like to be sure before starting a recheck.13:55
sean-k-mooneygokhan: precopy activation is entilly contoled internally in libvirt14:42
sean-k-mooneygokhan: the only way to incluance that is to force complete the migration but that wont nessiarly swap to post copy mode14:42
sean-k-mooneygokhan: so no i bleive what you want to do would requrie a change to libvirt/qemu at least im not aware of a way to do it in libvirt today14:43
opendevreviewIvan Anfimov proposed openstack/os-vif master: wip  https://review.opendev.org/c/openstack/os-vif/+/97627115:28
opendevreviewIvan Anfimov proposed openstack/os-vif master: wip  https://review.opendev.org/c/openstack/os-vif/+/97627115:28
opendevreviewIvan Anfimov proposed openstack/os-vif master: Remove url tags from README  https://review.opendev.org/c/openstack/os-vif/+/97627115:29
opendevreviewIvan Anfimov proposed openstack/os-vif master: Drop support for Python 3.9 and add 3.13  https://review.opendev.org/c/openstack/os-vif/+/97627215:30
opendevreviewIvan Anfimov proposed openstack/os-vif master: Drop support for Python 3.9 and add 3.13  https://review.opendev.org/c/openstack/os-vif/+/97627215:31
opendevreviewIvan Anfimov proposed openstack/os-vif master: Drop support for Python 3.9 and add 3.13  https://review.opendev.org/c/openstack/os-vif/+/97627215:31
*** dviroel is now known as dviroel_lunch16:11
opendevreviewMasahito Muroi proposed openstack/nova master: Add indirection_url to metadata-api wsgi app  https://review.opendev.org/c/openstack/nova/+/97620516:30
*** dviroel_lunch is now known as dviroel16:58
nicolairuckel"ModuleNotFoundError: No module named 'pkg_resources'" doesn't look like something I could have touched but a problem within the build pipeline maybe17:17
gibinicolairuckel: yes it is a knonw build issue independently from your change17:18
gibiwe blame setuptools :)17:18
nicolairuckelThere's also test_add_remove_router_interface which fails17:18
nicolairuckelBut blaming setuptools sounds good to me17:18
gibiyes also a known one :)17:18
gibisorry this week CI is a mess17:19
nicolairuckelAre there any bug reports for this that I can link to?17:19
gibiyou can see the details of it in the Monday's nova meeting logs17:19
nicolairuckelthanks17:19
gibiI'm not sure about bug reports17:19
nicolairuckelis "recheck - known CI issues" good enough then?17:19
gibinicolairuckel: do not recheck for a day or so it is pointless17:20
nicolairuckelah, okay17:20
gibithe meeting logs has links to patches we need to land first 17:20
nicolairuckelthen I'll keep an eye on those17:20
nicolairuckelthanks a lot17:20
gibibut feel free to ping us tomorrow about updates 17:20
nicolairuckelAt least I can stop trying to debug this now.17:21
gibiyeah, you can go and do something fun instead :)17:22
nicolairuckelwill do :D17:22
* gibi also drops17:23
dansmithbauzas: can you see my reply on https://review.opendev.org/c/openstack/nova/+/941483 before you drop?17:29
bauzasjust saw it now17:31
dansmiththanks17:32
bauzasdansmith: well, I don't want to validate a lot of things, just making sure that we could not an wrong exception17:33
bauzassomething like verifying indeed about the value and just have a catch if we have a problem17:34
dansmith...what exception?17:34
bauzasthis could be UnicodeDecodeError17:34
dansmithAIUI, it's a string encoded in bytes (bytes because it comes from C) and right now it's base64, so it will always be decode-able17:34
bauzascould secret.value() be None ?17:35
dansmithsecret is checked for None above, I guess I'm not sure if secret.value could be None, but that won't generate a UnicodeDecodeError :)17:36
dansmithbauzas: as I pointed out, I've been concerned about this exact line a couple times in the past, so I share your concern here obviously,17:38
dansmithI'm just not sure what better we can do about it, and I think exploding in "check can live migrate" is going to give us the result we want, which is an answer of "no" and a useful stack trace17:38
bauzasyou know what ? As I said, it could be a FUP, so I'll +2 it and eventually we could discuss this issue by a new change17:39
dansmithI just want to make sure we're not re-litigating this at this late stage, since I brought this up months ago :)17:39
bauzasyeah I understand your point17:39
bauzashence why it has to be a follow-up17:39
dansmithbauzas: but what specifically are you thinking? just catch any exception and LOG and re-raise? or return something in dest_check_data?17:39
bauzaslet's not hold this change17:39
bauzasyeah, something like that, I can provide a wip change if you want17:40
bauzasI'd prefer to return a VTPMSecretNotFound exception instead of something like an global exception17:40
dansmithI gave an either/or... which is it? :)17:40
bauzassorry the former17:41
dansmithokay but NotFound is not really appropriate for either =None or a decode error17:41
bauzasreturning a better exception17:41
dansmithack17:41
bauzashmmm, you're right, this could be another exception17:41
dansmithI'm not opposed to doing that here instead of a FUP, I just don't want to end up with this turning into another multi-month turnaround :D17:42
bauzashmmm, then let me see the code 17:46
bauzasand see what I can propose17:46
dansmithbauzas: I just don't want to lose some inertia here, I'm not asking you to write somethig,17:48
dansmithI'm just saying that a UnicodeDecodeError pointing to the line in the stack that decodes the libvirt secret is very useful17:49
dansmithI don't think we have a VTPMSecretMalformed exception, and I think we too often create single-use exceptions thinking it will be helpful, which is is not always17:49
dansmithI'm fine double-checking secret.value==None, which could be done on the same line as L10874, but it will hide the subtle difference of it being _present_ in libvirt but .. missing a value, which is a different thing,17:50
dansmithso I dunno.17:50
bauzasif you prefer to have a specific unicodeerror, I'm fine17:52
bauzasbut yeah, maybe checking the value itself whether it's None could be better17:53
dansmithhttps://libvirt.org/html/libvirt-libvirt-secret.html#virSecretGetValue17:57
dansmithsays NULL on error only17:57
dansmithI'd have to chase if that gets actually exposed through the bindings or not17:58
melwittyeah I think we would want to differentiate the two so nested None check would be better probably17:58
dansmithbut returning NotFound for that case would not be appropriate17:58
melwittin my experience the way the python bindings are auto-generated is the C API returns NULL and error codes but the python will raise exceptions on any errors. I have not seen the actual code for that though, I guess it would be somewhere in their auto generate tool or the config for the tool or something17:59
melwitti.e. I have not seen the actual code that translates NULL+error codes into python exceptions but it must be somewhere18:00
bauzashmmmm18:00
melwittand the python API is undocumented of course :)18:00
bauzashonestly I don't know what to say18:00
bauzashere, we get a bytes and we decode it18:00
bauzasmy main concern was about the fact that given we directly return the value, if a new libvirt release was changing the value, we could have another problem, but here I don't want us to do more than just saying something like "this is bizarre"18:02
melwittwe decode it because we specifically encoded it to pass to libvirt because it needs the bytes type18:02
bauzasyup I understood it18:03
dansmithright, libvirt wouldn't change the encoding of the value because we provided it in the first place18:05
melwittI hear your point but to me it's like ... all of the libvirt python API is like this. we could say the same thing about every libvirt-python function we call. do we check the return type of virNodeDevice for example? I might be remembering wrong but we just call methods on those returned objects without any special error handling18:05
dansmithit's not the bytes or not bytes that is a concern, melwitt, it's what the bytes are.. if we provide it something non-UTF-encoded then decode() will fail18:05
dansmithbut since we provided it with something we already encoded to UTF-8 and we do that blindly from the key, there's not much else we can do right now and would have to handle it in the future if the thing we're getting/storing changed18:06
melwittI guess my thinking is, we are controlling that right? we are the ones who encode it before handing it to libvirt. is the thought that libvirt might tamper with the encoding we gave it somehow?18:06
dansmithit can't18:06
dansmithand yes, we've given it encoded so shouldn't fail here, we would have failed when we set it (unless tampered-with, in which case not much we can do)18:07
melwittwe generate the key in nova/crypto.py, so we control that too18:07
bauzasyou're right18:07
dansmiththat's why I'm saying I share the concern, but I'm okay with it given the constraints18:08
bauzasso shouldn't be a problem with a new libvirt release18:08
dansmithmelwitt: I know, I'm agreeing :)18:08
bauzasand honestly the bytes field wouldn't change18:08
melwittok, sorry I'm just not entirely following by no fault of anyone other than me18:08
bauzasmelwitt: so, I think I forgot we *did* set it18:09
bauzasso we now that won't change18:09
bauzasso nevermind then my comments18:09
melwittfor me it's that we control every part of the key generation and encoding and decoding and I'm not sure what problem we expect we might have? again, maybe I am just being dumb18:09
dansmithmelwitt: it's just a robustness thing18:09
dansmithif we want to try..except, and log "Failed to decode secret value" and then re-raise, that's fine, I'm just not sure that really adds much is my point18:10
dansmithand since this is mid-stack, let's do (or argue about) that in a FUP :D18:10
melwittlike to handle if someone changes the key generation in nova/crypto.py but doesn't also handle the libvirt calls at the same time sometime in the future18:11
melwittfwiw I am in agreement that it doesn't seem like that would add much value but I am  not opposed to doing it18:11
dansmithbauzas: did you see the previous discussion where melwitt pointed out that we define the secret in XML form, which means we can't have provided just any random binary because it had to be in XML?18:12
dansmiththat to me is another layer of protection  here, not only that we're generating a unicode string, but also that we had to define it in XML which can't have been random binary18:12
bauzasdansmith: no, but looking now the comments 18:13
bauzasdansmith: I guess you're talking of https://review.opendev.org/c/openstack/nova/+/941483/comment/42e25da0_7ac1ff5a/ ? /me reads18:14
dansmithno, I'm talking about the actual comments from PS2118:14
dansmiththat's what I was trying to point at this mornign18:14
* bauzas reads PS21 comment18:15
melwittwell the XML doesn't have the secret value in it but the "define secret XML" API returns a secret object and then we call setValue() on that https://github.com/openstack/nova/blob/264e868d4931595140260c0f655a10b525be38f7/nova/virt/libvirt/host.py#L1225-L122718:15
dansmithoh wait, that's the opposite of what I thought18:16
melwittthe XML has the secret UUID but not the value18:16
bauzasyeah that's another libvirt API for the secret value, right?18:17
dansmithright the set value is how you do it if you _want_ random non-string encode-able binary18:17
melwittyes I think that is what I'm seeing18:17
dansmithmelwitt: you said this:18:17
dansmithIt is apparently possible to create libvirt secrets that don't contain printable characters by using the virSecretSetValue API [1], but we (Nova) have always used the virSecretDefineXML API which has to be specified via XML [2].18:17
dansmithwhich I thought implied that we _were_ using the XML-based method18:18
dansmithare you saying we actually use the former?18:18
melwittwe have to give it XML for it to create the secret but we can't give it the value _in_ the XML18:18
dansmithokay but then I'm not sure why the "but we have always used...XML" comment18:19
melwittit is both, secret = conn.secretDefineXML(xml) creates the secret object which it returns to us and then there is a separate call to secret.setValue(keydata)18:19
dansmithI thought you were saying that we _could_ define random binary with setValue, but we're not because we set it via XML and thus has to be text18:19
dansmithright, so that means we're not getting any extra layer of enforcement of it being tet18:20
dansmith*text18:20
dansmithand that was what I was trying to point out in PS21 and I thought you were telling me no.. I guess I didn't chase it deep enough to confirm.18:20
melwittyeah I'm guessing I misread our code in libvirt/host.py or something18:20
bauzassorry folks, I unfortunately need to have a dinner now :(18:21
dansmithbauzas: either way, it doesn't change that we're just decode()ing something we already encode()ed here, I just thought we were further enforcing it as text because of the XML thing but ... apparently not18:21
bauzasokay, fwiw, I +2d the patch, I think we're just enough robust for now if we are sure that everything vtpm secret is set by nova18:23
bauzasbut I don't know what else to say here18:23
melwittthe only reason it is ever text is because of SensitiveStringField in the object. which was what we touched on the most recent review comments18:24
dansmithum, that can't be true though18:25
dansmithbauzas: go dinner, we'll pick up later18:25
melwittcorrection to my above message: SensitiveString is not the only reason it is text. it is text because it is a "passphrase" secret type in Barbican https://docs.openstack.org/barbican/latest/api/reference/secret_types.html i.e. we Nova create it specifically  as a "passphrase" from urandom generate bytes that we Nova then base64 encoded19:30
dansmithyeah.. which also means that what I said recently about wanting a bytes type in the object is not right.. SensitiveString is 100% the right type for that because ^19:44
melwittgood point19:45
dansmithcommented so we don't find that later and be foncused19:47
melwittsmart20:00
melwitt*commenting on the review is smart (sometimes I type parts of words in reverse too)20:02
dansmithwell, in this case it was intentional :)20:04
melwittoh, it went completely over my head then20:07
JayFsean-k-mooney: (or others who may be interested) -- I'd love to chat for 30-60 minutes sometime in March, pre-PTG, and brainstorm options for improving the Nova-compute story around Ironic further. I think we could get a lot of progress out of moving placement updates (at least partially) to Ironic.20:16
sean-k-mooneyJayF: sure.20:19
JayFsean-k-mooney: my availability is open rest of today PST, and on Thursday, but then I'm out for a couple of weeks -- what's your march look like? maybe I can get something on a clendar20:20
sean-k-mooneymoving inventory reporting to placmenet is proably doable but nova will need to continue to do the creation fo the actual allcoations against those inventories for nova manged servers20:20
sean-k-mooneybeyond st patricks day ill be workign all of march20:21
JayFI mean, I don't think we can get rid of having some idea of "these nodes are managed by this nova-compute"20:21
sean-k-mooneyi can chat now fo a while or thusday if you like 20:21
JayFnow() works, you OK with a zoom?20:21
sean-k-mooneysure20:21
sean-k-mooneywe can chat again latier but if you want to quickly brainstorme somting i have like 20-30 mins then im gettign dinner one way or anohter20:22
JayFugh hold on20:23
JayFzoom client doesn't copy+paste properly20:23
sean-k-mooney:)20:23
opendevreviewZhan Zhang proposed openstack/nova-specs master: Add Additional Live Migration Features  https://review.opendev.org/c/openstack/nova-specs/+/97631121:44
opendevreviewZhan Zhang proposed openstack/nova-specs master: Add Additional Live Migration Features  https://review.opendev.org/c/openstack/nova-specs/+/97631122:00
opendevreviewmelanie witt proposed openstack/nova master: TPM: support live migration of `deployment` secret security  https://review.opendev.org/c/openstack/nova/+/92577122:21
opendevreviewmelanie witt proposed openstack/nova master: TPM: bump service version to enable live migration  https://review.opendev.org/c/openstack/nova/+/97572422:21
opendevreviewmelanie witt proposed openstack/nova master: TPM: test live migration between hosts with different security  https://review.opendev.org/c/openstack/nova/+/95262922:21
opendevreviewmelanie witt proposed openstack/nova master: TPM: add late check for supported TPM secret security  https://review.opendev.org/c/openstack/nova/+/95697522:21
opendevreviewmelanie witt proposed openstack/nova master: TPM: opt-in to new TPM secret security via resize  https://review.opendev.org/c/openstack/nova/+/96205222:21
opendevreviewmelanie witt proposed openstack/nova master: DNM vtpm tempest  https://review.opendev.org/c/openstack/nova/+/95747722:21
opendevreviewmelanie witt proposed openstack/nova master: TPM: fixups for live migration of `host` secret security  https://review.opendev.org/c/openstack/nova/+/97631622:21

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