Earlier  
Posted Nick Remark
#openstack-nova - 2024-10-14
22:36:03 sean-k-mooney i ment the hub
22:36:12 sean-k-mooney but also didnt you remove the console auth service
22:36:19 sean-k-mooney we now do auth in the cell db
22:36:47 melwitt oh, the console auth service, yeah that is no longer used
22:37:51 melwitt for some reason I was thinking the db call but yeah that doesn't use rpc
22:38:24 sean-k-mooney well even if it did we could deal with this differently
22:38:45 melwitt oh wait, there is an rpc call for "validating the console port
22:39:50 melwitt https://github.com/openstack/nova/blob/741e1b38705efecc083f091c51164b3cafb9697c/nova/console/websocketproxy.py#L133
22:40:00 melwitt that's the only one AFAICT
22:40:22 sean-k-mooney so we are changing the oslo messaging executor to threading
22:40:42 sean-k-mooney so im not sure it that will be a problem or not but ok this is somethign we need to test
22:42:32 melwitt ok, yeah. I would think it should work fine if you delete the hub at the same time as the switch to native threads in oslo.messaging. I agree, definitely something to test
22:43:53 sean-k-mooney that is tomorrows problem o/
22:44:20 melwitt yes o/
23:14:16 sean-k-mooney[m] so i reinstalled my home openstack and entirly redidi my sotrage to use nova lvm instead of cinder lvm, most of the speedu is form other change but i wend form about an 80 minute devstack install to about 21 minutes
23:15:02 sean-k-mooney[m] im hoping with a liitlme more turning to shave another miniute or so but thats closer to the speed i would expect on this host
23:15:53 sean-k-mooney[m] i used to reliable be able to get a fresh vm deployed in about 18-20 mins so that pretty close already
23:19:52 sean-k-mooney[m] although there isnt much standing out as a bottle neck to be honest although i think i can speed up the disk io slightly more. beyond that i would likely need a local mirror/cache but the install time for package is already pretty good https://paste.opendev.org/show/825791/
#openstack-nova - 2024-10-15
01:40:49 opendevreview Takashi Kajinami proposed openstack/placement master: Drop db migration tool https://review.opendev.org/c/openstack/placement/+/932324
07:02:46 opendevreview Balazs Gibizer proposed openstack/nova stable/2024.2: Revert "Test live migration between hosts with differnet cpu_shared_sets" https://review.opendev.org/c/openstack/nova/+/932379
07:17:07 gibi sean-k-mooney[m]: melwitt: I skimmed the discussion above above about the threading in scatter gather. Yes, my comment about the timer was only about the proposed native thread based code.
07:19:37 gibi also please note in native threading there is no such thing that having a timer in an existing thread. The timer itself is always a seperate thread (with basically a sleep and a callback). So if we want a threading.timer based solution to signal an existing thread we need a communication channel between the timer thread that runs our callback on timeout and the existing thread that needs the timer
07:19:43 gibi signal. The most simple thing is to share an Event between the two threads. All the solution needs the existing thread to monitor some channel (e.g. the Event) periodically.
07:31:19 sean-k-mooney[m] an event wont work as far as im aware since the event wont raise an excpetion unless we check it
07:31:53 sean-k-mooney[m] also isint the time just a syscall to the OS to have the OS signal the thread after a timer interupt fires
07:36:15 sean-k-mooney[m] hum, maybe a https://docs.python.org/3/library/threading.html#threading.Barrier is closer to what we want
07:36:39 sean-k-mooney[m] the main issue is we dont really have a concpet of a frestandign cancelable task
07:36:46 sean-k-mooney[m] that what we really want
07:45:44 opendevreview Michael Still proposed openstack/nova-specs master: Repropose spice-direct console support. https://review.opendev.org/c/openstack/nova-specs/+/932387
07:46:31 sean-k-mooney[m] gibi: the first example here https://www.geeksforgeeks.org/python-different-ways-to-kill-a-thread/ could be adapted for our use
07:47:31 sean-k-mooney[m] we can wrap the function into a calss with an overloaded call operator and add a function to raise the excption
07:47:57 sean-k-mooney[m] then we can use the current timeout code to invoke that function if it expires
07:54:03 sean-k-mooney[m] ill see if i can come up with a restandign example of that and we can see what we think of the approch
09:29:49 gibi sean-k-mooney[m]: threading.Timer is a thread not an OS signal based construct https://github.com/python/cpython/blob/546dddca43a2a69dbe33d230e9e540636b403270/Lib/threading.py#L1318-L1343
09:30:18 sean-k-mooney gibi: ya i read the docs on it after
09:30:24 sean-k-mooney its a subclass of thread
09:30:25 gibi sean-k-mooney[m]: python has signal handling if we want but that require special care as signal handlers can only run in the main thread and can be tricky to write them properly
09:30:51 sean-k-mooney no im in two minds
09:31:03 gibi https://docs.python.org/3/library/signal.html#signal.SIGALRM
09:31:04 sean-k-mooney part of me wonders if the current approch is corect
09:31:21 sean-k-mooney i.e. are we trying to handle this in too generic a way
09:31:39 sean-k-mooney the only reason this timeout exist sis to timeout the db query to the cell db
09:31:56 sean-k-mooney so im partly wonderign if sqlachemy has a native way to do that
09:32:35 gibi yeah, we can step back and look at the current use case to see if we can reformulate it
09:32:37 sean-k-mooney on the other hand if we dont and we want a generic killable way to execute a task a process is better for that
09:33:27 gibi what we want is a to limit the API response time which a) is limited by the web server (haproxy) already I guess and b) avoid stuck threads waiting for a result that never arrives.
09:35:25 sean-k-mooney yep we have a few options, create a task obejct that will execute an arbitry funciton but kill itself after a timeout, run the function in a process and kill it outselves, convert it to a asyncio corutine and cancel it after a timeout or use somethign in sqlacment to kill it after a timeout at the low level
09:39:18 gibi Do we know how many places in nova we rely on the eventlet in process timer? If it is just 2-3 places then it make sense to do a specific solution for each, if it is more than 5 then I would vote for a creation of a cancellable task primitive and use that everywhere
09:40:21 sean-k-mooney thats a good question. This query_wrapper function is only used in one place i belive
09:40:31 sean-k-mooney im not sure if we have this patterin in ohter however
09:41:14 sean-k-mooney im currently trying to play with creating a BoundTask class to do that
09:41:38 sean-k-mooney maybe TimerTask naming is hard
09:41:40 gibi I guess we have timers in the compute for e.g. vif_plug events
09:42:15 sean-k-mooney yes but it depend on how they are used
09:42:33 sean-k-mooney what i want to do and other can disagree
09:42:51 sean-k-mooney is have our main loop handel pooling for RPC messages
09:43:02 sean-k-mooney but dispatch the message handler to a worker thread pool
09:43:36 sean-k-mooney so basiclaly each RPC handlelr woudl be spawned into its own thread which it can freely block on
09:43:46 gibi I'm not sure how oslo.messaging works in threading mode, I assumed it already does the dispatch of messages to separate threads (from a pool)
09:44:09 sean-k-mooney ya im kind fo hoping it does but not sure either
09:45:12 sean-k-mooney basicaly i want use to be able to safly dispatch connurent work to a seprate io_thread_pool in our functions and block on the returned future
09:45:21 gibi https://docs.openstack.org/oslo.messaging/latest/reference/executors.html#threading
09:45:26 gibi Executor that uses a thread pool to execute calls asynchronously.
09:45:51 sean-k-mooney yes bvut im not sure if that is just submiting it to rabbit
09:46:23 sean-k-mooney i.e. the read/write calls
09:46:28 gibi I think that is the receiving side
09:47:01 gibi the sending side is simply blocking for cast until rabbit takes the message, and blocking for call until the response arrives
09:47:57 sean-k-mooney so if we get this fro free then cool, this may also be externalise in oslo.service
09:48:18 sean-k-mooney this was on my todo list to look at after the removel of our explict use of eventlet.tpool
09:49:35 gibi yepp executors are for receving messages https://github.com/openstack/oslo.messaging/blob/930d97599c0048e84f7c47dca0d62d2cc0562166/doc/source/reference/executors.rst#L12
09:49:41 sean-k-mooney https://github.com/openstack/oslo.messaging/blob/930d97599c0048e84f7c47dca0d62d2cc0562166/oslo_messaging/server.py#L368
09:50:29 sean-k-mooney so ok _on_incomming is just submitting the callback to the executor which in threading mode is a threadpool executor form oslo messaging
09:50:37 sean-k-mooney so this is already done for us
09:50:53 gibi yepp it seems so
09:50:53 sean-k-mooney that is what i was hoping for but as i siad i had not confirmed that till now
09:52:14 gibi btw, as you are around, could you do a review round on the igb series https://review.opendev.org/q/topic:%22bp/igb-vif-model%22 the os-traits part is landed released an bumped into both global and nova reqs.
09:52:37 gibi so the nova series is ready to go
10:51:30 sean-k-mooney oh i was not aware we had approved the bluepirnt yet
10:51:58 sean-k-mooney sure i stood up a devstack yesterday so i can pull it in an try it out and give it a test
10:52:19 sean-k-mooney ill see if i can do that later today
10:52:33 gibi thanks. Yes the bp was approved couple of weeks ago
10:52:58 sean-k-mooney ack i vagule remember that but it didnt click that it was ready for review again
10:53:32 sean-k-mooney for some reasoin i tought we were waiting for the ptg but i was proably thinking about somethign else
11:14:07 WJeffs1 Hey, So I was sure I saw an option once, to run a script locally on the HV after a VM is created and the same for deletion? As I'm being overly hopeful or is this actually an option?
11:14:26 sean-k-mooney not in nova but it is in libvirt
11:14:30 sean-k-mooney libvirt has hooks
11:14:40 sean-k-mooney we dont supprot that but it would allow you to do that
11:14:50 WJeffs1 ahh that was probably where I saw it :) I'll dig there thanks!
11:50:03 opendevreview Stephen Finucane proposed openstack/placement master: requirements: Remove setuptools https://review.opendev.org/c/openstack/placement/+/932398
11:50:04 opendevreview Stephen Finucane proposed openstack/placement master: Add pyproject.toml to support pip 23.1 https://review.opendev.org/c/openstack/placement/+/932399
12:56:33 opendevreview Takashi Kajinami proposed openstack/nova master: Remove Windows OS Support https://review.opendev.org/c/openstack/nova/+/932407
13:10:40 opendevreview Takashi Kajinami proposed openstack/nova master: Drop dependency on netifaces https://review.opendev.org/c/openstack/nova/+/931582
13:11:42 opendevreview Takashi Kajinami proposed openstack/nova master: Remove Windows OS Support https://review.opendev.org/c/openstack/nova/+/932407
13:11:47 opendevreview Takashi Kajinami proposed openstack/nova master: Drop dependency on netifaces https://review.opendev.org/c/openstack/nova/+/931582
13:44:55 opendevreview Takashi Kajinami proposed openstack/nova master: Drop dependency on netifaces https://review.opendev.org/c/openstack/nova/+/931582
13:45:20 opendevreview Takashi Kajinami proposed openstack/nova master: Remove Windows OS Support https://review.opendev.org/c/openstack/nova/+/932407
13:45:27 opendevreview Takashi Kajinami proposed openstack/nova master: Remove Windows OS Support https://review.opendev.org/c/openstack/nova/+/932407
16:02:25 bauzas doh
16:02:33 bauzas I was using the wrong chan (-tc)
16:03:01 bauzas #startmeeting nova

Earlier   Later