Earlier  
Posted Nick Remark
#openstack-nova - 2024-08-20
10:10:28 sean-k-mooney that means that the ml2 agent only sees the tap when the vm is started vs seeign the veth pair
10:10:40 sean-k-mooney slightly earilier
10:11:13 sean-k-mooney so if we look at the ovs log we should see when it sees the tap
10:11:36 ralonsoh at Aug 19 12:41:15.653623
10:11:48 ralonsoh just before it is deleted
10:12:02 sean-k-mooney 2024-08-19T12:40:15.533Z|02270|bridge|INFO|bridge br-int: added interface tap9bc40eec-ae on port 257
10:12:34 ralonsoh the ovsdb client detects the tap at 12:41:15
10:12:35 ralonsoh Aug 19 12:41:15.653623 np0038215967 neutron-openvswitch-agent[61294]: DEBUG neutron.agent.common.async_process [-] Output received from [ovsdb-client monitor tcp:127.0.0.1:6640 Interface name,ofport,external_ids --format=json]: {"data":[["18eba42b-2254-46a1-aeb8-2027e39235ed","old",null,257,null],["","new","tap9bc40eec-ae",-1,["map",[["attached-mac","fa:16:3e:ec:7b:05"],["iface-id","9bc40eec-ae67-4b56-9e75-551609520b27"
10:12:35 ralonsoh ],["iface-status","active"],["vm-uuid","4623b509-a848-41a4-9fc2-1cf8227bd4ca"]]]]],"headings":["row","action","name","ofport","external_ids"]} {{(pid=61294) _read_stdout /opt/stack/neutron/neutron/agent/common/async_process.py:285}}
10:12:39 sean-k-mooney no it sees it just before neutron sends the vif pulgged event
10:13:14 sean-k-mooney i was checking the actual ovs-vswitchd log https://32db135de77b6f5b2e24-00cf68680e4576901ac5e284377f47f2.ssl.cf2.rackcdn.com/924317/7/experimental/neutron-tempest-plugin-openvswitch-distributed-dhcp/43f8b60/controller/logs/openvswitch/ovs-vswitchd_log.txt
10:14:45 ralonsoh then I don't know why this delay between the vswitch detection and the ovsdb-client
10:14:48 ralonsoh that's a lot
10:15:04 ralonsoh actually one minute (could be an error in the timestamp?)
10:16:45 sean-k-mooney ralonsoh: so nova recived the network vif plugged event correctly after 2 seconds
10:17:11 sean-k-mooney the instance delete starts at Aug 19 12:41:15
10:17:28 ralonsoh yes but why?
10:17:36 ralonsoh why is the VM being deleted?
10:18:48 ralonsoh yes, I see the vif-plugged event at 12:40:16
10:19:15 ralonsoh no idea why is sending it
10:19:21 ralonsoh who*
10:20:02 sean-k-mooney is the provisioning block stuff broken again?
10:20:13 sean-k-mooney proably not
10:20:33 sean-k-mooney im going to check novas api to see what deleted the instance
10:20:37 ralonsoh I'm checking the neutron API logs and this event is not sent
10:24:17 sean-k-mooney so the delete did happen via the api
10:24:19 sean-k-mooney Aug 19 12:41:15.092746 np0038215967 devstack@n-api.service[58447]: INFO nova.api.openstack.requestlog [None req-54123910-92d9-491b-b845-f8e7d37490dd tempest-StatefulNetworkSecGroupTest-1423213631 tempest-StatefulNetworkSecGroupTest-1423213631-project-member] 149.202.166.120 "DELETE /compute/v2.1/servers/4623b509-a848-41a4-9fc2-1cf8227bd4ca" status: 204 len: 0 microversion: 2.1
10:24:21 sean-k-mooney time: 0.127466
10:24:35 sean-k-mooney so the quest is was that tempest
10:24:50 sean-k-mooney it proably was but we can check the request id
10:25:18 ralonsoh yes
10:25:19 ralonsoh 2024-08-19 12:41:15.096 87668 INFO tempest.lib.common.rest_client [req-54123910-92d9-491b-b845-f8e7d37490dd req-54123910-92d9-491b-b845-f8e7d37490dd ] Request (StatefulNetworkSecGroupTest:_run_cleanups): 204 DELETE https://149.202.166.120/compute/v2.1/servers/4623b509-a848-41a4-9fc2-1cf8227bd4ca 0.147s
10:25:30 ralonsoh I didn't find it before...
10:25:50 ralonsoh sean-k-mooney, thanks a lot!!
10:26:18 sean-k-mooney well that proablju just the test cleanup
10:26:26 sean-k-mooney it does not tells use why it decied to do that
10:26:34 sean-k-mooney but im guessing there is a timeout or something
10:26:37 ralonsoh yes, now I need to know why the test is failing
10:26:48 ralonsoh I see the SSH is working
10:28:12 sean-k-mooney and your not expecting too?
10:28:24 ralonsoh no, that'
10:28:37 ralonsoh that's ok, but the test (ping) is working, and should not
10:28:52 ralonsoh add SG rule -> ping; remove SG rule -> no ping
10:29:18 sean-k-mooney so i think for ml2/ovs we alwasy allow icmp but i might be mistaken
10:29:38 sean-k-mooney ovn, iptables and the ovs security group driver do have some diffent behaivor
10:30:05 sean-k-mooney although maybing im thinkign of arp not icmp
10:30:36 sean-k-mooney is the test stopping the ping when it removes the rule
10:30:45 sean-k-mooney it could be related to contrack
10:30:56 ralonsoh sorry, not ping but nc command
10:31:26 sean-k-mooney :) ok agian it could be related to contrack i dont think we terminate established connections
12:49:56 sean-k-mooney mikal: https://review.opendev.org/c/openstack/nova/+/926126 is correct although dansmith for valid reasons prefer we now split this type of change into 2 commits 1 for the object change and 1 for the driver change.
13:26:31 opendevreview Takashi Kajinami proposed openstack/nova master: libvirt: Launch instances with stateless firmware https://review.opendev.org/c/openstack/nova/+/908890
13:29:59 tkajinam sean-k-mooney, I've added functional test coverage but I'm struggling to understand why rebuild test fails... I'll dig into it further but it'd be really appreciated if you can take a look to find out what I've overlooked.
13:30:29 tkajinam also there is a bit tricky problem with assertion in live migration. I've summarized it (as well as the problem with rescue) so it'd be nice if you can check it when you have time
13:36:11 sean-k-mooney tkajinam: if i can find time to run it locally ill try and do that
13:36:34 tkajinam sean-k-mooney, thx
13:36:46 sean-k-mooney tkajinam: we have test helper for rebuild by the way adn some of the other actions
13:36:53 sean-k-mooney so you shoudl not need to do a raw post
13:37:31 tkajinam ah, ok. let me find these. I found these bare posts in a few other test files but we can probably replace these, too
13:37:41 tkajinam (in a separate follow-up
13:37:47 sean-k-mooney https://github.com/openstack/nova/blob/master/nova/tests/functional/integrated_helpers.py#L550
13:38:07 sean-k-mooney most of the actions shoudl be there and if you need a new one you should just ad it ther
13:38:35 sean-k-mooney thats not yoru issue but just good to know they exist to aovid code duplication
13:40:03 sean-k-mooney OS-DCF:diskConfig is not generaly requrie by the way and it default to auto which iswhy we dont actully set it today
13:41:27 sean-k-mooney oh hehe
13:41:45 sean-k-mooney https://review.opendev.org/c/openstack/nova/+/908890/15/nova/tests/functional/libvirt/test_stateless_firmware.py#246
13:42:00 sean-k-mooney tkajinam: your not using the updated server object
13:42:29 sean-k-mooney oh your passing the id and doing the db lookup
13:42:38 sean-k-mooney internally
13:43:32 sean-k-mooney but you rusing self.guest_configs[server_id].os_loader_stateless
13:43:59 sean-k-mooney so i wonder if that has stale info
13:45:11 tkajinam sean-k-mooney, I'm fixing it now. However the current blocker appears in the rescue API call so that line is not related
13:45:32 opendevreview Takashi Kajinami proposed openstack/nova master: libvirt: Launch instances with stateless firmware https://review.opendev.org/c/openstack/nova/+/908890
13:46:29 sean-k-mooney ok so rescue is your main consern https://review.opendev.org/c/openstack/nova/+/908890/16/nova/tests/functional/libvirt/test_stateless_firmware.py#208
13:46:40 sean-k-mooney ill quickly pull that review and see what happens locally
14:09:30 sean-k-mooney tkajinam: so rescue is failing beucase the test is tryign to open the unrescue_xml_path i.e. its tryign to write to disk
14:09:53 sean-k-mooney tkajinam: so there is a missing mock somewhere
14:10:02 sean-k-mooney https://paste.opendev.org/show/bCsw4SkPFosMTi0pL4yd/
14:13:21 tkajinam I was wondering why that instance directory is not created but it might be because fake libvirt driver is used. hmm... there are no rescue functional tests with fake libvirt driver now so I may need to look into additional mocking to make the process pass
14:14:48 sean-k-mooney there are https://github.com/openstack/nova/blob/0b091179d575a5e7cff9cd76223a8016cfbbc019/nova/tests/functional/libvirt/test_rescue_deleted_base.py
14:15:10 sean-k-mooney but but its doing https://github.com/openstack/nova/blob/0b091179d575a5e7cff9cd76223a8016cfbbc019/nova/tests/functional/libvirt/test_rescue_deleted_base.py#L48-L57
14:15:20 tkajinam ahhh
14:17:31 sean-k-mooney if i add that
14:17:47 sean-k-mooney then it fails with https://paste.opendev.org/show/bLajZLL1mJueSgMkPNAQ/
14:18:00 sean-k-mooney but that might just be an issue with the assert
14:18:29 tkajinam yeah. rescue uses the image without stateless firmware so that assertion is wrong
14:19:08 sean-k-mooney ok well i trust you can figure out how to fix that
14:19:19 sean-k-mooney ill quickly look at why the live migration test is failing
14:19:50 sean-k-mooney TypeError: Can't upgrade a READER transaction to a WRITER mid-transaction
14:20:02 sean-k-mooney that od
14:21:03 sean-k-mooney i feel like you just missing the migration stub or soemthign liek that
14:21:37 sean-k-mooney no you have the corret mixin
14:24:03 opendevreview Takashi Kajinami proposed openstack/nova master: libvirt: Launch instances with stateless firmware https://review.opendev.org/c/openstack/nova/+/908890
14:25:25 tkajinam sean-k-mooney, sorry but where did you find that type error ?
14:26:44 tkajinam the remaining problem with live migration tests is that the xml content generated by fake libvirt driver does not contain any loader related fields and it's not possible to assert that these fields are passed in destination_xml. https://github.com/openstack/nova/blob/0b091179d575a5e7cff9cd76223a8016cfbbc019/nova/tests/fixtures/libvirt.py#L1565-L1568
14:27:10 sean-k-mooney im running it in an IDE but you can get it to print by adding OS_DEBUG=1 to your tox command
14:27:45 tkajinam I can technically extend the implementation to simulate more detailed behavior but I'm inclined to look into whitebox tests instead of importing more libvirt's behaviors into that fixture
14:27:48 tkajinam ah, ok
14:30:56 sean-k-mooney oh weird
14:31:03 sean-k-mooney ok it passes if i run it with stestr

Earlier   Later