Tuesday, 2026-09-01

opendevreviewMerged openstack/os-vif master: Fix config option registration  https://review.opendev.org/c/openstack/os-vif/+/100317300:51
opendevreviewAdam McArthur proposed openstack/nova master: Use safe allocation deletion on instance delete  https://review.opendev.org/c/openstack/nova/+/100320804:07
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Support cold migration with virtiofs shares  https://review.opendev.org/c/openstack/nova/+/98963307:11
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Reconcile stale Manila share access rules  https://review.opendev.org/c/openstack/nova/+/100191607:11
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Support cold migration with virtiofs shares  https://review.opendev.org/c/openstack/nova/+/98963307:38
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Reconcile stale Manila share access rules  https://review.opendev.org/c/openstack/nova/+/100191607:38
opendevreviewLajos Katona proposed openstack/nova master: Use SDK for Neutron subnets  https://review.opendev.org/c/openstack/nova/+/96219007:48
opendevreviewLajos Katona proposed openstack/nova master: Use SDK for Neutron extensions  https://review.opendev.org/c/openstack/nova/+/96227007:48
*** Gues__________________________ is now known as mmagr08:05
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Support cold migration with virtiofs shares  https://review.opendev.org/c/openstack/nova/+/98963308:07
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Reconcile stale Manila share access rules  https://review.opendev.org/c/openstack/nova/+/100191608:07
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Support cold migration with virtiofs shares  https://review.opendev.org/c/openstack/nova/+/98963308:28
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Reconcile stale Manila share access rules  https://review.opendev.org/c/openstack/nova/+/100191608:29
gibigmaan: https://github.com/openstack/nova/blob/d3a1c95d06c2d97368207c2728fc262796683ad8/nova/service.py#L435 this combined with the _get_manager_shutdown_timeout returning 0 is a big trap in the functional tests. It means test cases leaving a thread behind that finishes after the test case finished and a new one starts and they are calling things on the manager that calling things on the global 08:33
gibiexecutor state. 08:34
gibiI filed https://bugs.launchpad.net/nova/+bug/216599108:40
gibibtw new hit on TIMED_OUT and no new hit on DB locked. But I still checking out the rest of the functional-threading failures happend yesterday (zuul is non cooperative):08:54
gibiI mean no new hit08:55
gibiI belive the DB locked issue is real as I saw it locally once or twice in extreme scenarios08:55
gibi(extrem means by introducing  lot of additional DB churn)08:55
gibibut still no stable reproducer08:56
gibiI have one suspicious functional-threading fauilure from yesterday https://5125be418d93521dc669-217c5d59ee9178b06ecc76d8426e75cb.ssl.cf1.rackcdn.com/openstack/1ff94c6e70154943aae8d53d58fbcdd5/testr_results.html I will look deeper into it09:03
opendevreviewAshish Gupta proposed openstack/nova master: Fix init_host crash migration test under native threading  https://review.opendev.org/c/openstack/nova/+/100136909:33
opendevreviewBalazs Gibizer proposed openstack/nova master: [test]Ensure shutdown thread is waited on  https://review.opendev.org/c/openstack/nova/+/100324510:36
gibigmaan: ^^ fix for the above reported bug10:36
gibigmaan: I will put a follow up on top with 3 functional test fixed that haning the shutdown10:37
gibigmaan: also if I see that graceful shutdown logs a task as live_migration_at_dest which RPC handler it is? post...at_dest? rollback...at_dest?10:52
gibiI started logging stack trace at _record_task_start and I see something strange11:14
gibithe _record_task_start live_migration_at_dest actually happens from   File "/home/gibi/upstream/git/openstack/nova/nova/compute/manager.py", line 9431, in pre_live_migration11:15
gibiis this correct that we name the task live_migration_at_dest when it is actually a pre_live_migration RPC?11:15
gibiwe need at least some help for devs to know what hangs when we log that11:18
gibias it was a pretty long goose chase for me to find out that pre_live_migration records a task named live_migration_at_dest but that task only finished when the whole live migration terminated. 11:19
gibiwhich make sense after I discovered all this but was pretty strange when I did not know about that logic11:19
gibibtw I think we have a path that rolls back the live migration but never finishes the live_migration_at_dest task11:23
gibifiling a bug and then we can discuss if it is a realistic scenario11:23
gibi(it is hit by a functional test so it is at least triggerable)11:23
gibi(I cannot open a bug as launchpad is dead)11:34
gibiso https://github.com/openstack/nova/blob/d3a1c95d06c2d97368207c2728fc262796683ad8/nova/compute/manager.py#L10553-L10562 here if the code takes the else branch as do_cleanup is false then the task will never finish11:35
gibihttps://bugs.launchpad.net/nova/+bug/216600912:00
sean-k-mooney_rollback_live_migration can be called in _cleanup_pre_live_migration and 2 places in _do_live_migration before and after the migrtion is called12:00
sean-k-mooneyi dont really recall off the top of my head what the critia for do_cleanup is12:01
sean-k-mooneylooks like its determeidn by https://github.com/openstack/nova/blob/d3a1c95d06c2d97368207c2728fc262796683ad8/nova/compute/manager.py#L9968 _live_migration_cleanup_flags12:01
sean-k-mooneyi guess its tryign to figure out if its on shared storage?12:01
sean-k-mooneybut we defintly dont want to alwasy do that12:02
sean-k-mooneydo you think its only a testing issue or a production one12:02
gibiI feel like this is a real code path we can take 12:04
gibiand it result in a task kept pending forever in the graceful shutdown task tracker12:04
sean-k-mooneyyes if we are on shared storage i think we will take it (nfs)12:04
sean-k-mooneyor perhasp if we fail in pre-live migrtion12:06
sean-k-mooneyas there is nothign to clean up on the dest12:06
gibithe complication here as far as I see is that this task is in the dest compute's tracker and the source computes rolls the migration back and never calls the dest compute so the dest compute cannot finish the task12:07
sean-k-mooneyit looks like  do_cleanup, destroy_disks are only ever used inside that if12:07
sean-k-mooneywell should it be in the dest tracker at that point12:08
sean-k-mooneyi havent fully follosed you but if it roling back before the call to pre live migrate on dest it wont be there12:08
gibiif you want to trace it there are at least two function test cases that hitting the codepath (noted in the bugreport)12:09
sean-k-mooneyso the edge case would have to haappend form pre live migratoin at soruce or the call to migrateToURI3 at the libivrt level12:09
sean-k-mooneyif we are seing live_migration_at_dest i think that impleise we are rooling back at the libvirt migrate call12:11
gibitest nova.tests.functional.regressions.test_bug_1888395.TestLiveMigrationRollbackWithoutMultiplePortBindings this is the cleaner repro and it trigger dom.fail_job()12:11
sean-k-mooneyas in this is happen right at the point of no return since we do not supprot rollback if that call complete without error12:12
sean-k-mooneythats still a little impresices we do not supprot calling rollabck if that libvirt job that was started by that call complete without failing12:13
gibithis also triggers the path and it uses abort not rollback nova.tests.functional.notification_sample_tests.test_instance.TestInstanceNotificationSampleWithMultipleCompute._test_live_migration_abort12:16
sean-k-mooneygibi: so we are recordign the task start here https://github.com/openstack/nova/blob/d3a1c95d06c2d97368207c2728fc262796683ad8/nova/compute/manager.py#L9426-L943212:17
sean-k-mooneybut never callign https://github.com/openstack/nova/blob/d3a1c95d06c2d97368207c2728fc262796683ad8/nova/compute/manager.py#L9441-L944412:18
gibiyeah12:18
gibiI think rollback at dest and post at dest call that helper that finishes the task12:18
gibibut in this scenario there is no rpc to the dest that can call that helper12:18
sean-k-mooneyif we just passed destory disks false when we woudl have had do_cleanup=false12:19
gibithe source handles the rollback / abort alone as far as I see12:19
sean-k-mooneyit might be safe12:19
sean-k-mooneyi.e. if we just alwasy call cleanup at des when not  pre_live_migation12:20
sean-k-mooneyactully no its recoreded in pre_live_migration12:20
sean-k-mooneyso we proably woudl want to alwasy call it if we can make sure its non distuctive for shared sotrage12:20
sean-k-mooneyafter all this is being called or not called form the souce and the task is beint gract on the dest right12:21
sean-k-mooneyso we cant just do _end_pending_dest_live_migration_task since that woudl remvoe it form our local dictionatry12:22
gibiyeah the livemigartion failure detected on the source but this task is pending at the dest12:22
gibiif the source can alway send and rpc to the dest then that rpc can remove the pending task on the dest12:23
sean-k-mooneyi think instead of tghe if you could and do_cleanup with detstory_disks12:24
sean-k-mooneythe remainign question is are any of the actions in https://github.com/openstack/nova/blob/d3a1c95d06c2d97368207c2728fc262796683ad8/nova/compute/manager.py#L10658-L10731 soemthing that are unsafe to attpemt alwasys12:25
sean-k-mooneyi think the network cleanup is fine12:26
sean-k-mooneywe defintly dont want to leak portbindings and do want to make suere we have cleaned up any ports12:26
sean-k-mooneyfreeing pci claims is also somthign we woudl prefr to do rather then waith for the resouce tracker12:27
sean-k-mooneyits possibel we failed before they were claimed btu i tough it and we coudl handel that anyway12:27
sean-k-mooneyso i think the manger level tasks all look ok12:27
sean-k-mooneywe also liekly do want to do most if not all of this https://github.com/openstack/nova/blob/d3a1c95d06c2d97368207c2728fc262796683ad8/nova/virt/libvirt/driver.py#L12040-L1208512:29
sean-k-mooneythe domain may or may not exist on the dest12:30
sean-k-mooneybut thats ok12:30
opendevreviewBalazs Gibizer proposed openstack/nova master: [func test]Catch hanging task at graceful shutdown  https://review.opendev.org/c/openstack/nova/+/100326612:30
gibithis is basically a poor man's reproducer ^^12:30
gibiI did not dig deep enough to say for sure but it sounds like an unconditional rpc to the dest during rollback is a potential solution for this12:32
gibiI let gmaan to chime in :)12:32
gibiand now that https://review.opendev.org/c/openstack/nova/+/1003245 I can go back to try to reproduce the DB locked case12:32
sean-k-mooneyhttps://paste.opendev.org/show/borJKJA9ol8nnqWHqBru/12:33
sean-k-mooneyi would be tempted to do that12:33
gibiyeah it is not a bad idea on the surface for sure but I did not dig deep enough to say it has no unwanted side effect12:34
sean-k-mooneyright i did skim pass torugh the manger eand driver but not enough to say it correct12:35
sean-k-mooneybut its proably worht a try when we have more time12:35
gibiyepp12:35
gibiI hope gmaan will have the time to dig deeper12:35
sean-k-mooneyill comment on the bug and go back to post cybrog and watcehr release stuff12:36
sean-k-mooneyat least in nova we have enough fucntial testign of live migraton to validate much fo this12:37
sean-k-mooneyi.e. without going all the way to tempest and bespoke devstack deployment to verify all the edgecases12:38
gibibah one more functional-threading instability (seen 3 times now) https://bugs.launchpad.net/nova/+bug/216601412:39
gibisean-k-mooney: thanks for checking it out12:40
*** mhen_ is now known as mhen13:53
gmaangibi: sean-k-mooney yes, live migration at DEST task start at "pre_live_migration" (which is on 2nd RPC server) and ends at two place 1. post_live_migration_at_destination 2. rollback_live_migration_at_destination so normal RPC rollbackl is covered (the if part)15:58
gmaanbut _rollback_live_migration() happening on source and (in else block) it does not notify the dest about it and task on dest is not marked as ended15:59
gmaanso yea it is bug in this code path. solution is not easy because task is on dest (tracking list on dest process) and source cannot end that due to separate process16:00
gmaanlet me dig into it more today16:00
gmaanbtw thanks gibi for the functional tests bug https://bugs.launchpad.net/nova/+bug/2165991. just to make sure that this is not production issue as that thread is daemon and will go away with process. but agree to fix it in functional tests16:01
gmaani really wanted to move all unit/functional tests pass with defaults, I will keep checking your series of fixing hanging tests or spend my time also to find/fix a few16:02
sean-k-mooneygmaan: well it can if it can safely call the rpc16:02
sean-k-mooneyi think it can safely call the rpc unconditionally16:02
sean-k-mooneybut we need to confirm16:02
sean-k-mooneythere is no way to od it localy however16:02
gmaanyeah, RPC call will work but we have these kind of communication gap between source and dest, this live migration sand other i found in revert_resize and those can be handled in part-3 where we can try to make operations more self-healing or at least abort in good state16:04
sean-k-mooneyworst case we will have to add a new rpc jsut for this case to notify the dest16:04
gmaanyeah16:04
gmaanlet me dig into it today if that is similar to revert_resize case and ok to move to part-3 or has to be handled in this part-216:05
sean-k-mooneyif we added a new rpc we might be able to make it a littel mroe generic i.e notify_task_compelte16:05
gmaanI will not add task complete or so but call per operation cleanup as actual operation is hanging in other node and it is not just task tracking16:06
sean-k-mooneyas long as we have a solution for the test senario for now movign the larger change to pahse 3 i think is ok16:06
gmaanthis is revert_resize case where dest can leave things in half way without notifying/doing revert at source https://bugs.launchpad.net/nova/+bug/216209016:07
gmaanand looks like this live migration issue is on similar issue. and i will not be surprise if we will have more such cases where source/dest are not talking to each other during failure and cleanup completely at both side16:08
* gibi cannot focus here now due to downstream call16:11
gibiust to make sure that this is not production issue as that thread is daemon and will go away with process. but agree to fix it in functional tests16:17
gibiI disagree ^^16:17
gibithis will make the gracefull shutdown a lot slower than it should be as it will wait for the timeout value16:18
gibiand it will be a warning log during graceful shutdown that sends support to a goose chase about a in progress migration that is not in progress16:19
gmaanis it but, it will not wait for timeout as graceful shutdown will terminate the process and thread will be stopped right?16:19
gibiif you sent the timeout to 300 then the test fill time out as it waits for the whole 300 seconds and that is more than the test case timeout16:20
gibiso it is waiting for the the timeout as it thinks there is a task to wait for16:20
gibiand when times out it exists16:20
gibibut that means we wait a 180 seconds by default16:21
gmaanyes for functional tests as process is not exit so i agree to fix the live migration task hanging. 16:21
gmaanthe live migration task left is I agree is the production bug but I am talking about hthttps://bugs.launchpad.net/nova/+bug/2165991 though it is because of migration task hanging 16:22
gibisimilarly the dest nova-compute will not exit until 180sec as it thinks there is an in progress live migration16:22
gmaanI think I mixed both in my question16:22
gibiI think that two things are the same :)16:23
gibifeel free to rename the bug title16:23
gibito talk about the leaked task16:23
gibithe hanging functional test is just a symptom16:23
gmaangibi: my question was if anything we need to fix on shutdown_thread creation and when it fail/timeout16:23
gmaangibi: agree on that16:23
gmaanI am saying this part is all ok https://github.com/openstack/nova/blob/d3a1c95d06c2d97368207c2728fc262796683ad8/nova/service.py#L433-L43516:24
gmaanand yes we need to fix that task leak16:24
gibiit is a trap for functional test due to the thread can leak, but I can cirumwent that with setting a non 0 timeout to wait for that thread16:25
gibiand when I set that timeout to 300 I saw the task leak in 3 functional tests I reported as the bug16:26
gmaanack16:27
gibialso now I see that setting 300sec timeout also make a bunch of test sad in the eventlet job 16:28
gibiso we might have more leaks of we might have differently hanging shutdown in eventlet job16:29
gibihttps://review.opendev.org/c/openstack/nova/+/1003266/116:29
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Support cold migration with virtiofs shares  https://review.opendev.org/c/openstack/nova/+/98963316:42
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Reconcile stale Manila share access rules  https://review.opendev.org/c/openstack/nova/+/100191616:42
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Reconcile stale Manila share access rules  https://review.opendev.org/c/openstack/nova/+/100191616:56
Uggladansmith, melwitt, gouthamr comment about the virtiofs migration and FFE: https://review.opendev.org/c/openstack/nova/+/1001916/comments/965cff03_8b75df3717:09
gouthamr\o/ ty Uggla 17:09
Ugglagouthamr, dansmith, melwitt  I think Melanie is on PTO until tomorrow. I hope Melanie could jump on this review as soon as she will be back.17:11
Ugglagouthamr, dansmith, melwitt also forget to mention that the msg above contains a short summary of the tests I did.17:13
gouthamr++ i read them, ty for testing those scenarios. I will try and add a multi-node job with cephfs to the manila gate, and one with LVM/NFS to the nova gate (and spread the test coverage between projects) 17:14
Ugglagouthamr, it will be great. Just to note I also tried several way to break it, and it looks solid so far.17:16
gouthamrUggla: ++ :) ty! 17:41
gmaangibi: for eventlet functional job, you mean tox cover jobs or  nova-tox-functional-py313 or both? bth failing though but I am seeing only one failure in nova-tox-functional-py31317:56
melwittUggla: thanks for adding the comment, I will be reading over everything19:33
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Use a per-instance cephx identity for CephFS shares  https://review.opendev.org/c/openstack/nova/+/100190020:16
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Extract share management from ComputeManager  https://review.opendev.org/c/openstack/nova/+/99934920:17
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Support cold migration with virtiofs shares  https://review.opendev.org/c/openstack/nova/+/98963321:14
opendevreviewGoutham Pacha Ravi proposed openstack/nova master: Reconcile stale Manila share access rules  https://review.opendev.org/c/openstack/nova/+/100191621:16
opendevreviewGhanshyam Maan proposed openstack/nova master: Fix task leak for live migration rollback case  https://review.opendev.org/c/openstack/nova/+/100338621:21

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