Thursday, 2026-07-30

*** erlon4 is now known as erlon03:06
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Allow rebuild for instances with virtiofs shares  https://review.opendev.org/c/openstack/nova/+/99904806:28
ralonsohsean-k-mooney, please, ping me whenever you have some time (https://bugs.launchpad.net/nova/+bug/2161894/comments/5)07:39
opendevreviewJoan Gilabert proposed openstack/nova master: Report OWNER_NOVA trait on resource providers  https://review.opendev.org/c/openstack/nova/+/99429907:40
opendevreviewJoan Gilabert proposed openstack/nova master: Add libvirt driver MDEV ARQ support for Cyborg  https://review.opendev.org/c/openstack/nova/+/99584007:40
opendevreviewAnton Iacobaeus proposed openstack/nova master: libvirt: Generalize memory encryption config  https://review.opendev.org/c/openstack/nova/+/99846609:25
opendevreviewAnton Iacobaeus proposed openstack/nova master: libvirt: Add memory encryption config for TDX  https://review.opendev.org/c/openstack/nova/+/99860809:25
opendevreviewAnton Iacobaeus proposed openstack/nova master: libvirt: Launch security Intel TDX  https://review.opendev.org/c/openstack/nova/+/99924909:25
*** M00SE3 is now known as M00SE10:14
opendevreviewKamil Sambor proposed openstack/nova master: Add regression test for BFV evacuate + Cinder timeout  https://review.opendev.org/c/openstack/nova/+/99926110:38
*** sambork_ is now known as sambork12:16
*** tdemaret2 is now known as tdemaret12:18
gibibauzas: have you seen compile_mdev_samples step hanging in devstack? It seems to me it causing the nova-whitebox job to time out here https://zuul.opendev.org/t/openstack/build/db30a8569196402898d754be9ce85426/log/job-output.txt#3347013:28
gibi(or I'm not sure how knows more about that step)13:28
bauzashmmm, nope13:28
gibiso far this is a single data point. I will report a bug if I see it happening multiple times13:30
bauzasgibi: hmmm, when looking at the build logs, I see the samples created correctly13:31
bauzasI can read "13:33
bauzas2026-07-30 09:14:57.345940 | controller | [3695 Async compile_mdev_samples:43255]: finished compile_mdev_samples with result 0 in 78 seconds13:33
bauzas"13:33
gibiare we looking at the same logs?13:35
gibi2026-07-30 09:24:02.142618 | compute-host | [3806 Async compile_mdev_samples:29935]: Waiting for completion of compile_mdev_samples running on PID 29935 (2 other jobs running)13:35
gibi334712026-07-30 09:24:02.182165 | compute-host | [3806 Async compile_mdev_samples:29935]: Signaling child to exit13:35
gibi334722026-07-30 09:24:03.318037 | compute-host | + inc/async:async_inner:64                 :   rc=013:35
gibi334732026-07-30 09:24:03.363702 | compute-host | [35342 Async configure_neutron_nova:35342]: finished successfully13:35
gibi334742026-07-30 12:01:31.411526 | RUN END RESULT_TIMED_OUT: [untrusted : opendev.org/openstack/tempest/playbooks/devstack-tempest.yaml@master]13:35
gibithis shows at 09:24:02 that it starts compiling13:35
bauzasI'm looking at https://zuul.opendev.org/t/openstack/build/db30a8569196402898d754be9ce85426/log/job-output.txt#3347013:35
gibiso this is not the same compilation that finishes at 09:1413:35
bauzasah I see13:36
gibiso on the controller it finished ot 09:14 but on the compute-host it just start at 09:2413:36
bauzasit was queued13:37
bauzasbut not started AFAICS13:37
bauzaswith the controller, we see the thread awaken up here https://zuul.opendev.org/t/openstack/build/db30a8569196402898d754be9ce85426/log/job-output.txt#1676013:39
jgilabermelwitt, sean-k-mooney hi I'm seeing some failures on the functional test from my patch adding the OWNER_NOVA trait that I don't quite understand15:04
jgilaberthe tests worked fine in patchset 10, and after what I thought were mostly cosmetic change they are failing apparently randomly https://review.opendev.org/c/openstack/nova/+/994299/10..1315:05
jgilabere.g https://zuul.opendev.org/t/openstack/build/46982818a76243dfa64f66aaa34c2ef3 only one test fails but I see no error15:05
jgilaberand in the same buildset the py313 job failed with different tests https://zuul.opendev.org/t/openstack/build/46982818a76243dfa64f66aaa34c2ef315:06
jgilabersorry wrong link, I wanted to paste https://zuul.opendev.org/t/openstack/build/1b76d14e3a7a48278e4d8b84027e546b15:07
melwittjgilaber: I was just starting to look at that. so far I am suspecting something with database access (perhaps improper transaction context manager nesting or something of that nature). I began to look through the bottom patch and I'm not sure about the location of the minimum service version check and trait addition, my inclination is it shouldn't be in the request spec object there,15:07
sean-k-mooneyjgilaber: you removed resting the cach15:08
sean-k-mooneyin https://review.opendev.org/c/openstack/nova/+/994299/10..13/nova/tests/functional/integrated_helpers.py15:08
melwittand there is a possibility that moving that part might change whatever is going wrong. BUT this is just my preliminary thoughts and I need to continue to look at it15:08
sean-k-mooneyyou were clearign the cash but with the decoreateo you need ot call clear on the funtion15:08
jgilaberright, but even then, that should only skip using the filter15:09
jgilaberthe scheduler should not hang because of that, right?15:09
sean-k-mooneyjgilaber: also what melwitt said but i woudl try clearing the cash like thi https://github.com/openstack/nova/blob/master/nova/test.py#L31915:10
sean-k-mooneywell the filter is adding som eaddtional db calls15:10
sean-k-mooneyto get the min version15:10
sean-k-mooneyactully that is a bad exampel that using the run_once decortor not cache15:11
sean-k-mooneyhttps://docs.python.org/3/library/functools.html#:~:text=cache%5Fclear%28%2915:12
sean-k-mooney but ya we normally clear thsoe15:12
sean-k-mooneyhttps://github.com/openstack/nova/blob/master/nova/test.py#L20115:12
jgilaberack, thanks I'll try that15:13
sean-k-mooneyso lookign at the fialures more closely15:17
jgilabermelwitt, I'm trying to understand your comment, I'm still not too familiar with most of the nova code15:18
sean-k-mooneythe failrue seam to be in  in the clean up15:18
jgilaberso you think that I should not add the version check in the request spec object?15:18
melwittjgilaber: I think it should be elsewhere yes but I will add detailed comments to the review on this once I go through it properly. I just wanted to give you a quick heads up, it is ok to ignore for now15:19
sean-k-mooneymelwitt: perhaps in the resouce translation logic15:20
melwittmainly I wanted to mention that there is a possibility it could be related to the random failures if there is something with the database session nesting, that's all15:20
jgilaberack, thanks, I'll respin with the cache_clear for now to see if that helps 15:20
melwittsounds good15:20
jgilaberthanks for looking!15:21
opendevreviewJoan Gilabert proposed openstack/nova master: Report OWNER_NOVA trait on resource providers  https://review.opendev.org/c/openstack/nova/+/99429915:22
opendevreviewJoan Gilabert proposed openstack/nova master: Add libvirt driver MDEV ARQ support for Cyborg  https://review.opendev.org/c/openstack/nova/+/99584015:22
sean-k-mooneyso what failing initally is a server show request15:22
sean-k-mooneyGET /v2.1/servers/9cb3f749-f071-450f-aa74-122d940bd364" status: 500 15:23
sean-k-mooneybut that is just us pooling for the delete 15:24
sean-k-mooney2026-07-30 08:06:21,544 INFO [nova.api.openstack.requestlog] 127.0.0.1 "DELETE /v2.1/servers/9cb3f749-f071-450f-aa74-122d940bd364" status: 204 len: 0 microversion: 2.104 time: 0.07191215:24
sean-k-mooneyto complete15:24
melwitton one of the HTTP 500 errors I saw that it got stuck in a sql connection code and then timed out15:24
melwittthat's what made me think about database15:25
sean-k-mooneyyes15:25
sean-k-mooneyits coming form 15:25
sean-k-mooney  File "/home/zuul/src/opendev.org/openstack/nova/nova/api/openstack/compute/views/servers.py", line 469, in show15:25
sean-k-mooney    server['server']['scheduler_hints'] = self._get_scheduler_hints(15:25
sean-k-mooney                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^15:25
sean-k-mooney  File "/home/zuul/src/opendev.org/openstack/nova/nova/api/openstack/compute/views/servers.py", line 256, in _get_scheduler_hints15:25
sean-k-mooney    req_spec = objects.RequestSpec.get_by_instance_uuid(15:25
sean-k-mooney               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^15:25
sean-k-mooneywe are pullign the schduelr hinits because of the newer microver which is gettign the requst spec15:25
sean-k-mooneyand that call is getting stuck15:26
sean-k-mooneybut it might be because of os-brick15:26
sean-k-mooney File "/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py311/lib/python3.11/site-packages/os_brick/utils.py", line 47, in _sleep15:26
sean-k-mooney    _time_sleep(secs)15:26
sean-k-mooneysqlachme is calling _thread_yeild which is time.sleep(0) then os-birck is calling time_sleep(secs)15:27
sean-k-mooneyand then we basily end up timign out, so not sure if osbick is the problem or not15:28
sean-k-mooneyim looking at test_resize_revert15:28
sean-k-mooneyin https://5bf0723027f4ff260a96-e8d1ca7bab9532ed61be7cb4aac9c3f9.ssl.cf5.rackcdn.com/openstack/1b76d14e3a7a48278e4d8b84027e546b/testr_results.html15:28
sean-k-mooneywhen i see a time out after som eslep calls i wonder if that sleep was a real thread sleep or not15:29
sean-k-mooneyespically when we see warnding like 15:29
sean-k-mooney2026-07-30 08:08:57,991 WARNING [oslo.service.backend._common.loopingcall] Function 'nova.servicegroup.drivers.db.DbDriver._report_state' run outlasted interval by 21.99 sec15:29
sean-k-mooneyjgilaber: im going to pull your patch onto my macmin and let it run the funcitonal tests in a loop and see if it repoduces locally15:30
jgilaberthank sean-k-mooney, it's running in CI now with the cache clear15:31
melwittthe job fail I looked at was nova-tox-functional-py311 which afaik is eventlet15:31
sean-k-mooneyya i think it should be eventlet as well15:38
sean-k-mooneymelwitt: there are som condering job wehn its calling placement however15:40
sean-k-mooney2026-07-30 08:07:18,669 DEBUG [placement.requestlog] Starting request: 127.0.0.1 "GET /placement/allocations/4f467034-9ccf-4aee-a7a1-754283e011ce"15:40
sean-k-mooney2026-07-30 08:08:12,129 WARNING [oslo.service.backend._common.loopingcall] Function 'nova.servicegroup.drivers.db.DbDriver._report_state' run outlasted interval by 31.64 sec15:40
sean-k-mooneythat get completed at15:40
sean-k-mooney2026-07-30 08:08:24,892 INFO [placement.requestlog] 127.0.0.1 "GET /placement/allocations/4f467034-9ccf-4aee-a7a1-754283e011ce" status: 200 len: 317 microversion: 1.2815:40
sean-k-mooneybut while it was happeing there are waring about timeout and such15:41
sean-k-mooneyi.e. https://paste.opendev.org/show/bVL566Wf6dqJEmComlVI/15:41
sean-k-mooneylike that cell itmout looks sus15:42
sean-k-mooney[nova.context] Timed out waiting for response from cell efc8e2e2-e5fb-446c-b0c4-03451f6aedc1. Left the cell worker thread to finish in the background.15:42
sean-k-mooneymelwitt: im partly wondering if the placement fixture is blockign nvoa db accesse or something while its servicing a request?15:43
sean-k-mooneymelwitt: it defintly looks liek somethign related tot he db for sure15:45
melwittI'm thinking about the file-based sqlite database but I'm pretty sure that's only used when nova is not monkey patched15:45
melwittbasically wondering if one of the changes to cell database fixtures may be related15:46
melwittyeah file-based is guarded by "if utils.concurrency_mode_threading():" at least. but I think some of the other fixture changes may have been across the board. don't really have reason to suspect it yet but just something to keep in mind15:48
melwitt(maybe some sort of lock race in the fixture)15:56
sean-k-mooneyso orginally i wanted to use filebacked alwasy16:02
sean-k-mooneythat what i tought we were doing for the unit tests and its what we are doning in cybrog and watcher16:03
sean-k-mooneybut i know that there were some issue with placmeent to get that to work16:03
sean-k-mooneysambork and gibi woudl know more16:04
sean-k-mooneyjgilaber:  AttributeError: module 'nova.scheduler.request_filter' has no attribute 'cache_clear'16:36
sean-k-mooneyim runing the previous version instead to see if it fails locally16:40
jgilaberoh I used the module instead of the function16:40
jgilaberI'll fix it and move it to the base TestCase16:40
opendevreviewJoan Gilabert proposed openstack/nova master: Report OWNER_NOVA trait on resource providers  https://review.opendev.org/c/openstack/nova/+/99429916:44
opendevreviewJoan Gilabert proposed openstack/nova master: Add libvirt driver MDEV ARQ support for Cyborg  https://review.opendev.org/c/openstack/nova/+/99584016:44
gibisean-k-mooney: melwitt: so yeah the intention is to have the file backed SQL only for the threading version of the jobs16:47
gibibut in threading mode we do have a global lock today 16:48
sean-k-mooneyis that global lock hsared btween nova an placmeent?16:48
sean-k-mooneyor one per service16:48
gibiand we have a patch to change that to a per DB lock https://review.opendev.org/c/openstack/nova/+/99286216:48
gibiyeas it is a shared global lock I think16:48
sean-k-mooneyack16:49
gibibut only should be in place for the threading tests16:49
sean-k-mooneyso that could expalin some of the warnings and slowness16:49
gibithreading version of the test jobs16:49
sean-k-mooneyoh right16:49
sean-k-mooneythis was in the eventlet based job16:49
gibiwe can land https://review.opendev.org/c/openstack/nova/+/992862 and see if it helps16:49
sean-k-mooneyi mena i can go review that now in either case16:50
gibiwe could add some tracing to the lock handling and see if that shows that we somehow introduced the lock to the eventlet job as well16:50
sean-k-mooneyruning jgilaber's patch locally its not repoduceing for me16:50
sean-k-mooneyhum16:51
sean-k-mooneygibi: so this woudl be a good case to use the FiarLockGuarde i wrote16:52
sean-k-mooneyhttps://github.com/openstack/nova/blob/master/nova/utils.py#L114916:52
gibiI'm not following how 16:59
sean-k-mooneyhttps://review.opendev.org/c/openstack/nova/+/992862/comment/6022582b_82867746/17:00
gibibut fairlockguard is to handle when multiple locks is being taken in an order17:01
gibihere we only take one lock 17:01
sean-k-mooneyno17:01
sean-k-mooneythat a usecase17:01
sean-k-mooneyit was intened to be used anytime you need to aquire the same named lock in diffent context 17:01
sean-k-mooneynot just multipel locks17:01
gibiI feel like here we have a simpler use case than what the fairlockguard is created for. Sure fairlockguard is also capable of doing this but to do this we don't necessary need the complexity of the fairlockguard17:03
sean-k-mooneyright but i wnated ot creat that so we would stop using one of version of it17:04
sean-k-mooneythis is reimpelnted a new lock guard17:04
sean-k-mooneywe dont have to use it i think it woudl be good to use it when we need soemthing like this in the futre17:05
gibiit was a long day so I might not capable of seeing the whole picture any more but fairlockguard could be used in any place where a single lock is taken, but we don't want to replace all the locks in our code with a fairlockguard as that would be overkill17:06
gibifairlockguard shines where you have a list of lock to be taken17:07
gibiand you want to do that safely17:07
gibiif you have just a single lock to take at a time then it is overkill in my eyes17:07
sean-k-mooneythe bit i dont like is the fact your creating  collections.defaultdict(threading.RLock)17:08
sean-k-mooneyand locking that collection access17:08
sean-k-mooneythat changed it form a singel lock to a set of related locks17:08
sean-k-mooneyeven if any one invoction of the _locked_scope context manager is only useing one lock17:09
gibiwe could monkey patch the lock object into transaction_context_manager._root for each DB then the DatabaseWriteLock does not need to look up the lock in a dict that maps the context manager to a lock17:12
sean-k-mooneywe could im not aginst merging the patch as it is17:13
gibibut as we already hooking into sqla here it would be extra complexity to hook this deep into it again at DB creation17:13
sean-k-mooneybut we spent a lot of effort addign nesting suprot and other infra in the fairlockgurard and testing to verify it for complex lockign cases like this17:13
gibibut exactly those things are not needed in this case 17:15
gibi(I think)17:15
gibiit is not such a complex case 17:15
sean-k-mooneyyou have muyltiple related locks, nesting / rentrancy 17:16
sean-k-mooneyhence the callout why you needed to RLOCKS17:16
gibithese locks are not related each is for its own DB17:16
gibithey are not guarding the same shared resouce it is one lock - one DB17:16
sean-k-mooneyi know17:17
sean-k-mooneybut you all out thing like "An RLock is used per database because a single thread may nest writer17:17
sean-k-mooney    transactions against the same engine facade."17:17
gibiand that is exactly what an RLock is for :)17:18
sean-k-mooneyand its also one of the thing build into the FairlockGurads constaitns17:18
sean-k-mooneyill upgarde to a +2 for now17:18
sean-k-mooneybut if this proves unstabel i would prefrer ot adotp the FairLockGuard instead fo theying ot fix this implemetion17:19
sean-k-mooneygibi: does that work for you17:19
gibiif the instability is due to a problem that is solved by the fairlockguard then yes it is good for me17:20
sean-k-mooneypatchset 8 was created 21 days ago17:22
sean-k-mooneyso that before your shutdown speedup patch landed yes17:22
sean-k-mooneyso we woudl execte a new run to also be faster17:23
sean-k-mooneyor rather the thereaded and eventet version shoudl be closer now17:23
jgilabersean-k-mooney, so after clearing the cache the functional tests are green again https://zuul.opendev.org/t/openstack/buildset/6a7d3edc4ae84ba7b33487e037f1acc517:41
sean-k-mooneyjgilaber: with an without that change i was not able to cause it to fial locally17:41
sean-k-mooneyi still have it runingin the backgorund17:41
sean-k-mooneybut if ci is happy i guess that is progress17:42
jgilaberyeah, I don't like that I don't know what was wrong there, but good to advance17:43
jgilaberI guess CI harware is slower than our local machines and caused the problem to surface somehow17:44
sean-k-mooneyyes that happens17:44
sean-k-mooneyyou can sort of emulatie that by messign with some of the test teimouts17:45
sean-k-mooneybut then its hard to tell if tis a real failure or not17:46
gmaangibi: you have time to talk about unify the executors get/destroy comment https://review.opendev.org/c/openstack/nova/+/998571/comment/23f68a57_21843d10/17:47
gmaanif you are done for the day, I can add comment on gerrit and we can discuss there or tomorrow17:48
opendevreviewMerged openstack/nova master: tests: Use per-database write locks instead of global lock  https://review.opendev.org/c/openstack/nova/+/99286218:01
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Fix deny_share host locality for NFS  https://review.opendev.org/c/openstack/nova/+/99875219:22
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Support cold migration with virtiofs shares  https://review.opendev.org/c/openstack/nova/+/98963319:22
Zhan[m]Hi friends, recently I found a somewhat tricky bug with live migration: https://bugs.launchpad.net/nova/+bug/2160728. Wondering if I can get some feedbacks on it and I can work on the fix too, thanks!19:54
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Allow rebuild for instances with virtiofs shares  https://review.opendev.org/c/openstack/nova/+/99904822:47

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