Tuesday, 2026-07-14

opendevreviewGhanshyam Maan proposed openstack/nova master: Add doc and release notes for the graceful shutdown task tracking  https://review.opendev.org/c/openstack/nova/+/99714100:42
gmaandansmith: melwitt: graceful shutdown changes are ready for review https://review.opendev.org/q/topic:%22bp/nova-services-graceful-shutdown-part2-task-tracking%2200:42
opendevreviewyaguang proposed openstack/nova master: libvirt: enable Hyper-V evmcs on Intel VMX hosts  https://review.opendev.org/c/openstack/nova/+/99562002:50
opendevreviewMasahito Muroi proposed openstack/nova master: Add bug 2106085 reproducer test case  https://review.opendev.org/c/openstack/nova/+/97115304:20
opendevreviewMasahito Muroi proposed openstack/nova master: Add check_instance_state validation to the four action API  https://review.opendev.org/c/openstack/nova/+/94622304:20
opendevreviewBhavana proposed openstack/nova master: Add custom GPU PCI weigher for scheduler optimization Add Minimal Displacement Solver for MIG GPU Repartitioning  https://review.opendev.org/c/openstack/nova/+/99605804:37
*** ralonsoh_ is now known as ralonsoh06:22
ralonsohhi folks, if you have a few minutes, please check https://review.opendev.org/c/openstack/os-vif/+/99593307:26
ralonsohdansmith, ^ thanks in advance07:27
gibigmaan: thanks I will check your feedback07:58
gibisean-k-mooney: elodilles: the oslo.concurrency 7.6.0 cross test failure turns out to be a real nova bug we now see but was hidden before https://bugs.launchpad.net/nova/+bug/2160596 Two VMs on the host using the same multi attach volume being deleted in parallel can result in danging volume attachments09:03
gibias we are not serializing the deletion by volume id just by VM id09:03
gibias the attachment delete (in the manager) is far from the volume disconnect check (in the driver) it is not easy to just add a new lock.09:04
gibinot dangling volume attachements, but dangling volume host mounts09:17
elodillesgibi: ah, ACK, thanks for the information09:36
sean-k-mooneygibi: hum i really tought i had properly fixed that09:46
sean-k-mooneygibi: did we regress it09:46
sean-k-mooneygibi: that what i was fixing in https://bugs.launchpad.net/nova/+bug/204883709:47
sean-k-mooneygibi: if this only happens with the new oslo.concurrency then its a but in oslo09:48
sean-k-mooneygibi: i added per volume locking in https://opendev.org/openstack/nova/commit/72132f89ee4ca7367a6a5639f763f9b20d2c441a09:49
sean-k-mooneysorry in https://opendev.org/openstack/nova/commit/22012360c40045ac1bf6dd0dc95aea3e15fed0cd09:50
gibiI have to look deeper as my simple reproduction does not work without the oslo change so something important changed in oslo09:52
gibithe only real change is oslo.concurrency is eventlet related10:20
gibireverting https://review.opendev.org/c/openstack/oslo.concurrency/+/988652 stops my reproduction to recreate the issue10:23
sean-k-mooneyhum i looked at that and discounted it10:24
sean-k-mooneyi kwno that eventlet has import order dependent behvior10:25
sean-k-mooneyi dont know why that would break locking10:25
gibiyeah me neither but I will dig further10:26
sean-k-mooneyespically when we are not chanign the patching10:26
sean-k-mooneygibi: does the cross job run wiht our without monkey patching?10:28
sean-k-mooneyi assume with eventlet for now10:28
sean-k-mooneysince that stil technially our default10:28
sean-k-mooneyi think this this early out https://review.opendev.org/c/openstack/oslo.concurrency/+/988652/1/oslo_concurrency/lockutils.py#11110:30
sean-k-mooneythat is shared across all locks10:30
sean-k-mooneybut https://review.opendev.org/c/openstack/oslo.concurrency/+/988652/1/oslo_concurrency/lockutils.py#13110:30
sean-k-mooneyneed to run for all rwlocks when we are patched10:30
sean-k-mooneywithihs chagne it will hapen for the first lock but not the rest10:31
sean-k-mooneyso _EVENTLET_CHECKED should just be removed10:31
gibiit is eventlet for now10:31
sean-k-mooneythe refactor i think is fine it the _EVENTLET_CHECKED caching that i think broke things10:32
gibiyou mean the current thread thing breaks our multi threahdead testing10:32
gibi*do you mean?10:32
sean-k-mooneythe _EVENTLET_CHECKED early out reintoduced  https://github.com/eventlet/eventlet/issues/73110:33
gibiack, testing it...10:33
gibiyepp commenting out https://review.opendev.org/c/openstack/oslo.concurrency/+/988652/1/oslo_concurrency/lockutils.py#135 makes it not possible the reproduce the problem10:38
gibiswitching the bug to oslo.concurrency...10:38
sean-k-mooneyya so the early out i thinkwas an attempt to not import it over and over10:39
sean-k-mooneybut python caches import so its cheap10:39
sean-k-mooneyif we want to cache somethin we coudl cache the result of  eventlet_patcher.is_monkey_patched('thread')10:39
sean-k-mooneybut i would just delete it10:39
sean-k-mooneywe dont need the extra complications of _EVENTLET_CHECKED10:40
sean-k-mooneybrb coffee10:40
gibiI need to craft a oslo.concurrency level of test for this to avoid future regressions10:44
sean-k-mooneyin this case just create 2 rwlocks when eventlet is monky patched and assert both have the same method fo self._current_thread11:05
sean-k-mooneya better test might be to test the side effect 11:07
sean-k-mooneyi.e. that they both agree on the current thread id11:08
gibiyeah I want the latter as that does not depend on the implementation11:15
gibihm11:15
gibinot event that11:15
gibiI want a test that shows the mutual exlusiveness of a write lock11:15
sean-k-mooneyhum ya that is higher level and less coupled11:16
sean-k-mooneywell11:16
sean-k-mooney2 locks are indpemendent11:17
sean-k-mooneyso its not as simple as aquire lock a and lock b and try to access somethign shared11:17
sean-k-mooneyyou need to create 2 locks11:18
sean-k-mooneyand aquire both in 2 diffent eventsletlest or somthing11:18
sean-k-mooneyideally with less infram then nova test case11:18
gibihm. isn't it the second lock I create will not work if used from two different greenlet?11:19
sean-k-mooneyits not really that you need two locks11:20
sean-k-mooneyin this case it that the second time any RW lock was inited the relevent code was skipped11:20
gibiyepp11:20
gibiso the second lock is broken when shared across greenlets11:20
gibithat is my theory11:20
sean-k-mooneyso for the workers you can just use 1 lock and a thread.event11:21
sean-k-mooneygibi: yes thre is a rentrency issue11:21
sean-k-mooneyin that when shared the second lock seas the real treadid11:21
sean-k-mooneynot the evnetlet greenthread id11:21
sean-k-mooneyso it goes one im on the same trhead where i aquired the lock and it races11:22
sean-k-mooneyi think its breaking https://github.com/openstack/nova/blob/master/nova/utils.py#L123311:23
sean-k-mooneyhum although maybe not11:24
sean-k-mooneysinc ei have test for that and those pass11:24
sean-k-mooneyit was only one test that actully failed right11:24
sean-k-mooneyso its not any fo the simple test case i am already testing11:24
sean-k-mooneyim going to stop guessing if you come up with a test that works let me know and i can take a look11:26
gibisure I'm working on it11:31
gibiit is a bit more complicated due to https://github.com/openstack/oslo.concurrency/blob/9aff32494fb97b7fc7508269224353aceb9ceef6/oslo_concurrency/lockutils.py#L101-L10311:31
gibiso they are also passing threading.current_thread to the parent11:32
gibisorry I ment https://github.com/openstack/oslo.concurrency/blob/9aff32494fb97b7fc7508269224353aceb9ceef6/oslo_concurrency/lockutils.py#L101-L10811:32
sean-k-mooney ya i was looking at that functor11:33
sean-k-mooneythreading.current_thread should be monkeypatch to eventlet.getcurrent in general before we hit this code11:34
sean-k-mooneyif we are usign eventlet11:34
sean-k-mooneyhttps://github.com/openstack/oslo.concurrency/commit/02dee958453513bb8a5aaae905312d306c2d9083#diff-60d0bce7c34c2c70cf4e3ac63060779235ede2a247bd39d1188f8fedd6306b38R10911:35
sean-k-mooneyso that defaulting was added in the typeing patch11:35
gibiahh I see it, I need to use spawn_n not spawn to reproduce it11:36
sean-k-mooneyand it proably should not be11:36
sean-k-mooneyoh11:36
gibithe original eventlet issue is only affecting spawn_n11:36
gibinot spawn11:36
gibithanks melwitt for the good bug report 11:36
sean-k-mooneyi know that changes between a raw greenlet and a greenthread11:37
sean-k-mooneyis that really the level where it broke11:37
gibiyepp11:38
sean-k-mooneyi tought i had a patch to remove all useage of spawn_n at one point11:38
gibithat is a good point ^^ we need to look11:38
sean-k-mooneyi am :)11:38
sean-k-mooneyhttps://review.opendev.org/c/openstack/nova/+/89272211:39
sean-k-mooneyso yes i did but we went with https://review.opendev.org/c/openstack/nova/+/87306111:40
sean-k-mooneyinstead11:40
sean-k-mooneyit would still be an oslo bug11:40
sean-k-mooneybut ya we can likely simplify now11:41
sean-k-mooneyoh we already have11:42
sean-k-mooneyspwan is now a call to spawn on with the default executor11:42
sean-k-mooneybut i bet the futurist executor might be using spwan_n somewhere along the way11:43
sean-k-mooneywe have a hacking check to prevent raw usage of spawn and spwan_n https://github.com/openstack/nova/commit/6179854ae77960d4ae883349626069023b407cb011:44
sean-k-mooneywell and eventlet in genreal so any usage is likely not in nova11:45
sean-k-mooneygibi: yep https://github.com/openstack/futurist/blob/6f870896819197ca323b3dd8af8f3b0389aff69c/futurist/_futures.py#L71811:46
sean-k-mooneygibi: so the GreenThreadPoolExecotor uses spwan_n whne it spins up new workers11:46
gibiI will be so happy when we finally delete eventlet :)11:47
sean-k-mooneyhehe so that litrally made me lol11:47
sean-k-mooneybut i agree11:47
sean-k-mooneygibi: that can help you create a test case but i assume you already have one now11:48
opendevreviewsean mooney proposed openstack/nova stable/2025.2: Make QEMU_IMG_LIMITS process limits configurable  https://review.opendev.org/c/openstack/nova/+/99702811:53
opendevreviewsean mooney proposed openstack/nova stable/2025.1: Make QEMU_IMG_LIMITS process limits configurable  https://review.opendev.org/c/openstack/nova/+/99702911:54
gibisean-k-mooney: here is the repro and the fix https://review.opendev.org/c/openstack/oslo.concurrency/+/99720012:02
sean-k-mooneyoh thats the fix :)12:05
sean-k-mooneyi was like wait they alrady have a bug for this12:05
sean-k-mooneyi.e. reading "# This is bug https://bugs.launchpad.net/oslo.concurrency/+bug/2160596"12:05
gibi:)12:06
gibisean-k-mooney: thanks for the help root causing this issue12:07
sean-k-mooneyno worries i wrote the test that was beign broken so i was interested in the resolution12:07
sean-k-mooneyi tried really hard to make the FairLockGuard robust12:08
sean-k-mooneyso i was concerned i missed somthing12:08
gibisean-k-mooney: yeah all that effort is in vain if eventlet breaks you12:08
sean-k-mooneyminior nit in the commit messge of the second patch12:17
sean-k-mooneybut the logic in both looks good to me12:18
gibifixed12:18
sean-k-mooney:)12:20
opendevreviewJoan Gilabert proposed openstack/nova master: Report OWNER_NOVA trait on resource providers  https://review.opendev.org/c/openstack/nova/+/99429912:59
opendevreviewJoan Gilabert proposed openstack/nova master: Add libvirt driver MDEV ARQ support for Cyborg  https://review.opendev.org/c/openstack/nova/+/99584012:59
opendevreviewMerged openstack/nova master: Reproducer for https://bugs.launchpad.net/nova/+bug/2160224  https://review.opendev.org/c/openstack/nova/+/99675613:10
opendevreviewBalazs Gibizer proposed openstack/nova master: Do not try to return empty attachment_id from API  https://review.opendev.org/c/openstack/nova/+/99675713:49
gibigmaan: sean-k-mooney: ^^ this is now ready to land ;)13:52
gibisean-k-mooney: also if you have a sec we have this small fix https://review.opendev.org/c/openstack/nova/+/996757/1 13:53
sean-k-mooneyisnt that te same link13:54
gibithen when these are landed I will propose a patch to make the functional-py313-threading patch as voting13:54
gibihttps://review.opendev.org/c/openstack/nova/+/996793 this is the correct link for the small fix13:54
sean-k-mooney:)13:54
gibi(copy paste is hard as you see) 13:54
sean-k-mooneysure ill look at both now13:54
gibithanks13:54
sean-k-mooney+2w on the fix the cyborg irc call is starting nowish so ill see if i can review the attachmet id one before then13:56
gibiOK13:56
sean-k-mooneyach cool you addeed the return code checks13:56
sean-k-mooneywell you added them as new tests13:57
sean-k-mooneybut ya i think thats ok13:57
sean-k-mooneygibi: +2 on that too i dont really have any feedback to add so if gmaan is happy to proceed then cool14:04
sean-k-mooneyirc meting just started but are you plannning to follow up with the other bug to make repsonce validation return a 50014:05
gibiI will take a look on that bug too yes14:06
opendevreviewBalazs Gibizer proposed openstack/nova master: Make functional-py313-threading voting  https://review.opendev.org/c/openstack/nova/+/99721614:12
gibisambork: am I correct that this is still valid as you only fixed something in vncproxy especially? https://bugs.launchpad.net/nova/+bug/215153714:13
samborkgibi I think so because my fix was only in proxies14:16
samborkbut I can take a look and apply similar fix if it's applies also to this issue14:17
gibisambork: so far I only know it is a pickling issue but not more 14:17
gibiwe don't need to rush, if you have time you can take it I'm not actively working on it. I just did a quick scrub of eventlet-removal bugs as some was outdated and I noticed this14:18
samborkack!14:18
opendevreviewBalazs Gibizer proposed openstack/nova master: Stabilize test_create_images_negative_invalid_state  https://review.opendev.org/c/openstack/nova/+/99722215:16
opendevreviewMerged openstack/nova stable/2026.1: Make QEMU_IMG_LIMITS process limits configurable  https://review.opendev.org/c/openstack/nova/+/99702715:22
opendevreviewMike Lowe proposed openstack/nova stable/2025.1: libvirt: Fix false mem-encryption/UEFI conflict with cpu_mode=custom  https://review.opendev.org/c/openstack/nova/+/99725817:39
opendevreviewMike Lowe proposed openstack/nova master: libvirt: Fix false mem-encryption/UEFI conflict with cpu_mode=custom  https://review.opendev.org/c/openstack/nova/+/99725917:42
gmaangibi: sean-k-mooney lgtm, +w18:14
sean-k-mooneygmaan: you may also be intrested in https://review.opendev.org/c/openstack/nova/+/971153/2 and the fix https://review.opendev.org/c/openstack/nova/+/946223/618:20
sean-k-mooneythere is a window where invoking instnace actions can reulst in a 500 before the inital server create is complete18:20
sean-k-mooneythose repoduce and adress that and call out that precondtion more explcitly18:21
gmaansean-k-mooney: ack, will check sometime today otherwise tomorrow18:21
sean-k-mooneythe repoducer need a littel work so no rush18:21
sean-k-mooneythe fix is more or less correct but ya just good to add to yoru queue18:21
gmaansure18:23
opendevreviewFabian Wiesel proposed openstack/nova master: vmware: optionally combine host+datastore inventory query  https://review.opendev.org/c/openstack/nova/+/99728318:28
opendevreviewsean mooney proposed openstack/os-vif master: typing: Adapt to oslo.versionedobjects 3.11  https://review.opendev.org/c/openstack/os-vif/+/99728918:34
opendevreviewsean mooney proposed openstack/os-vif master: typing: Adapt to oslo.versionedobjects 3.11  https://review.opendev.org/c/openstack/os-vif/+/99728919:51
opendevreviewsean mooney proposed openstack/os-vif master: typing: Define supported OVS VIF types  https://review.opendev.org/c/openstack/os-vif/+/99729619:51
opendevreviewsean mooney proposed openstack/os-vif master: ovs: Preserve versioned field compatibility  https://review.opendev.org/c/openstack/os-vif/+/99729719:51

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