Earlier  
Posted Nick Remark
#openstack-nova - 2024-03-25
13:34:41 bauzas could be a interop issue
13:34:44 sean-k-mooney i created the bug to not loose track of this
13:35:00 sean-k-mooney i dont think it would be an interop thing but i wanted to discsss this at the ptg
13:35:13 bauzas okay, I'm asking that because I don't know whether we could rather a blueprint instead of a bug
13:35:18 sean-k-mooney or get gmann's input
13:35:22 sean-k-mooney bauzas: its not a blueprint
13:35:24 bauzas sean-k-mooney: I created a new etherpad
13:35:46 sean-k-mooney bauzas: we dont actully need to change the api
13:35:48 bauzas sean-k-mooney: could you add it there ? https://etherpad.opendev.org/p/nova-dalmatian-ptg
13:36:02 bauzas sean-k-mooney: no, I'm not saying it would change the API
13:36:02 sean-k-mooney there is a filed called events in teh the action record
13:36:12 sean-k-mooney its currently empty for at least some of the instance actions
13:36:18 sean-k-mooney but apprenly stop populates it
13:36:30 sean-k-mooney so we would jsut be populating that with event for the rest
13:36:36 bauzas but it would return different actions between different API versions
13:36:40 sean-k-mooney that said we may or may not want a microversion to signal that
13:36:47 sean-k-mooney no
13:36:50 sean-k-mooney the actions woudl not change
13:36:55 bauzas (ie. Caracal wouldn't return some action while Dalmatian would)
13:37:09 sean-k-mooney the number of actions woudl be identiacal
13:37:15 sean-k-mooney the payload of the action woudl change
13:37:20 sean-k-mooney one sec ill get the example
13:37:35 artom sean-k-mooney, I believe you - I guess I'm asking if it was 100% reproducible, and did you need to do anything else besides the hw:numa_nodes=1 flavor extra spec to trigger a NUMA topology
13:37:50 sean-k-mooney bauzas: https://docs.openstack.org/api-ref/compute/#show-server-action-details
13:38:04 bauzas I mean the action would have a finish event https://docs.openstack.org/api-ref/compute/#show-server-action-details
13:38:34 bauzas so I don't know if this is an interop issue
13:38:34 sean-k-mooney yes within the events list in the action
13:38:53 bauzas but yeah we can discuss this with gmann sure
13:39:02 bauzas sean-k-mooney: can you add this bug to the PTG etherpad ?
13:39:03 sean-k-mooney its purly additive, populating an existing filed
13:39:07 sean-k-mooney bauzas: sure
13:39:14 bauzas thanks
13:39:43 sean-k-mooney artom: ya pretty much. not 100% but enough thaat it happend on the first try and several in a row
13:39:48 bauzas sean-k-mooney: yeah, my concern is that users would know which release is used for an API just by calling instance actions list :)
13:40:09 bauzas if you can find a finish event, then it's a Dalmatian version
13:40:36 sean-k-mooney yes although that would only matter if we didnt have a microversion fro dalamtion
13:40:50 sean-k-mooney and since we hope to have at least 1 for the maniala shares
13:40:55 sean-k-mooney im not sure this is a concern
13:41:16 bauzas well, this is not a concern from me, rather an open question
13:41:19 artom sean-k-mooney, so, NUMA placement is deterministic, right? (We don't promise it, but de facto it is)... So if this is not happening 100% of the time, it means there's a race or something similarly *non-deterministic*
13:41:25 sean-k-mooney personally i think this is somethign that shoudl be backported once fixed but again we can caht about that
13:41:41 bauzas I wonder #1 whether we need a microversion #2 whether we can backport it
13:41:48 artom When you say "reproduced", you mean the logs for the fitting of network metadata not appearing?
13:42:03 bauzas what I'd prefer is that #1 no and #yes :)
13:42:05 sean-k-mooney artom: deteministic in the sense that if you had only one host and you started with it empty and booted vms in the same sequence you would expect the same result yes
13:42:32 sean-k-mooney artom: obviouly in reality you have mutiple concurrent requests
13:42:33 bauzas sorry, meant : MHO : #1 no and #2 yes (no microversion, and yeah we can backport)
13:42:42 sean-k-mooney so you cant really prediect it 100%
13:42:47 bauzas but let's ask gmann and other folks
13:42:54 sean-k-mooney artom: but for functioanl tests it shoudl be prediable
13:43:10 artom sean-k-mooney, but in the context of a functional test with one host and one (or two) instances, it's fully predictable
13:43:32 sean-k-mooney artom: it should be yes
13:43:56 sean-k-mooney give me a minute to finish up a few more things and if you want we can try pair programming a repoducer in a bit
13:44:11 artom So if I'm not reproducing it (barring the possibility of me doing something wrong with my test), it means the cause is something non-deterministic...
13:44:32 sean-k-mooney artom: no it could mean our test fixtures are maskign it
13:45:36 sean-k-mooney on firday i tought i knew how to repoduce it but i need to recall what that was.
15:06:08 dansmith mnaser: do you have any sort of preprod environment you could test the eventlet hub switch-to-asyncio for us?
15:06:34 dansmith I'm worried about performance and stability issues by just blindly making that change, and I don't think a small-node-count devstack tempest run is good enough to say it's reasonable
15:07:04 mnaser dansmith: lol i was literally reading yesterday about the switch and searching the number of refs of eventlet in codesearch.opendev.org yesterday lol
15:07:07 dansmith and/or some willing tenant that could take the hit in the name of science?
15:07:20 dansmith ah, excellent
15:07:29 mnaser i assume this hits several services
15:07:45 mnaser so not really a "run a few computes with the new code" for example
15:08:30 dansmith no, we'd need coverage for really any service running eventlet in any form, which to me, means even nova-api which doesn't run eventlet proper, but which still depends on some of the plumbing
15:08:51 dansmith a couple compute nodes would be a start, and could be enough to signal "yeah, no, not going to work out of the box"
15:09:02 dansmith necessary but not sufficient
15:09:33 mnaser how intrusive are the changes in the code right now (i guess i can go try and find the review)
15:09:50 mnaser or since its the step 1 in the transition docs its just a one liner switching to the asyncio hub
15:10:12 dansmith yeah, the hub one-liner is what I'm talking about here
15:10:23 dansmith maybe check the latest discussion from this morning on the patch for context
15:11:04 dansmith https://review.opendev.org/c/openstack/governance/+/902585
15:13:11 bauzas for me, I still need to bounce on this governance patch
15:13:46 dansmith I don't know what that means
15:14:14 mnaser dansmith: i wouldn't mind putting this in somewhere and testing but i think for me if there isn't anyone driving the work after the exercise ends up for no reason ;p
15:14:22 bauzas I meant to say "I would want to review it" :)
15:14:55 dansmith mnaser: okay, I think the point is that if it "just works" we'd start making that our default
15:15:15 dansmith mnaser: this is probably going to be everyone's problem pretty soon here so I'm not sure I'm too worried about it not getting attention
15:15:35 dansmith it already exploded and got some immediate attention a few months ago, which is why this spec exists
15:16:43 mnaser dansmith: in that case, if it "just works" in devstack, i'll be happy to flip the switch over in some envs here and report on what we're seeing
15:17:00 mnaser i'd have to double check what is the earliest version of eventlet that supports this change though
15:17:11 mnaser i.e. how recent of an openstack cloud you'd need to test this out
15:17:29 dansmith yeah, might need the recent stuff from eventlet I think
15:17:55 dansmith I think we're expecting it will "just work" from the devstack perspective, but I'm worried that under load we'll see performance and/o deadlock type issues
15:18:04 dansmith but yeah, we can get a sniff test first for sure
15:19:30 mnaser it seems we'll need to bump eventlet version
15:19:42 mnaser https://github.com/eventlet/eventlet/commits/e1afe7b387a2452c47a98b596c9451f9d95f7bdc/eventlet/hubs/asyncio.py
15:20:04 mnaser seems like it was added since 0.35.2 and thats not even in bobcat so it might require a new env
15:21:05 mnaser rally seems like a good idea, i'd be happy to help stand up and env to run rally against since one of the concerns i'd have is well -- if you need to run caracal for this i dont know if i can find something that's running that with enough of a workload :)
15:21:22 dansmith okay
15:22:19 mnaser i assume the challenge is not going straight to asyncio is the fact there are a lot of eventlet based dependencies such as oslo messaging etc?
15:22:49 dansmith parse error
15:22:53 JayF That's the idea, we want to have a migration where openstack can run eventlet/asyncio side by side so we can migrate off eventlet (and onto asyncio, depending on the outcome of testing+the goal)
15:23:04 dansmith the challenge *with* going straight to asyncio/
15:23:30 dansmith mnaser: asyncio is a vastly different programming model from eventlet
15:23:36 clarkb asyncio is cooperative and eventlet pretends to not be
15:23:38 clarkb ya that
15:23:43 dansmith mnaser: it's not a small change, it's a rewrite everything sort of deal
15:24:04 mnaser ah, so ctrl+f and looking at the number of 'eventlet' references is not an indicator of how challenging it might end up being
15:24:11 dansmith what we're discussing is a hack to let eventlet use asyncio as its sort of thread-switching engine, but it's just one step
15:24:20 dansmith mnaser: not even remotely close to that no :)

Earlier   Later