12:00:12 #startmeeting watcher 12:00:12 Meeting started Thu Jul 24 12:00:12 2025 UTC and is due to finish in 60 minutes. The chair is dviroel. Information about MeetBot at http://wiki.debian.org/MeetBot. 12:00:12 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 12:00:12 The meeting name has been set to 'watcher' 12:00:35 hi all, who's around today? 12:00:50 o/ 12:01:12 courtesy ping: sean-k-mooney chandankumar morenod rlandy 12:02:43 let's start with today's meeting agenda 12:02:49 o/ 12:02:55 #link https://etherpad.opendev.org/p/openstack-watcher-irc-meeting#L26 (Meeting agenda) 12:03:14 feel free to add your own topics to the agenda 12:03:37 first one 12:03:48 #topic Eventlet Removal 12:03:54 o/ 12:04:11 as usual, this topic is to cover the progress on eventlet removal patches 12:04:28 this week, there isn't too much updates 12:04:40 #link https://etherpad.opendev.org/p/watcher-eventlet-removal (watcher evenlet removal etherpad) 12:05:03 at the beginning of the etherpad there is a list of changes open for review 12:05:11 one patch recently merged 12:05:33 the one that merge dec-engine services 12:05:39 #link https://review.opendev.org/c/openstack/watcher/+/952499 12:05:58 the others are open for review 12:06:01 are you plannign to respine https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/954264 12:06:38 sean-k-mooney: yeah, i was thinking yes, but didn't get into it yet 12:06:47 or maybe provide a follow up to improve it 12:07:05 ack i had a look at it and you seaid you would fix one of the commend in the next patchset 9 days ago 12:07:12 so i was partly waiting for you to do that 12:08:15 ack, I can work on it in until the end of the week 12:08:54 i was busy with other patches, which i should also propose soon 12:09:10 ack no worreis 12:09:17 ack, we can wait for a new ps on the plugin 12:09:21 i aslo kind of agree with alfredo about chaning how the test works 12:09:30 yeah me too 12:10:06 i think it might be useful to have a dummy sleep stagey that we could use instead 12:10:31 i..e one that will generate sleep actions 12:10:45 chandankumar is working in another tempest test for continuous 12:10:48 noop is also ok 12:10:58 there are pros and cons to both aproches 12:11:10 there is a dummy strategy which creates a testplan with two nop and one sleep 12:11:36 yes so i think the main continue audit test shoudl use that or somethign eimilar 12:11:37 i proposed to use it in https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/955472 12:11:42 not the zone migration stragy 12:11:57 and i dont think we shoudl have a continues version of each stragey 12:12:09 but it's still good to have one as dviroel one to test stuff related to model, which has shown to be problematic 12:12:30 yeah, unless there is a reason, we can use the dummy instead 12:12:32 nop or sleep actions will not validate access to model 12:12:39 yes and no 12:12:59 test of the continue audit fucntionalty shoudl be isolated form testing the logic of the stragies 12:13:14 they should be tested independtly 12:13:39 model updates are independent of the functioning of the continous audit 12:13:40 yes, i think that's good, that's why i proposed to use dummy for the a full continuous cycle audit 12:13:47 +1 12:14:17 just as an aside. 12:14:26 but as dviroel found, continuous audits are sensitive to issues related to access to model 12:14:27 if you are adding coment for multipel steps in a test 12:14:46 agree, the scenario that I am testing is a corner case with threading mode 12:14:59 that is generaly an indication that you are not propelry breaking up the test into the seprate parts or should at least condier pulling the part out into helper funcitons 12:15:06 so there is space for both tests 12:15:15 I was also working on testing continous audit with cron format here https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/955472 got feedback from amoralej to use nop strategy . just wanted to highlight here to avoid duplicy 12:15:32 the corner case shoudl be tested in the unit/functional suite not in the integration tests in general 12:16:21 i can check how it would be possible to do that 12:16:29 ah amoralej already spoke about the same. 12:16:56 chandankumar: yep we can loop back to the topic of cron format supprot 12:17:43 it's interesting to test that kind of synchronization issues with unit tests .. 12:18:30 unit and functional test are best positoin to test that 12:18:40 tempest is very bad at testing race condtions 12:18:51 we generally avoid that if possible 12:20:01 but i dont know the detail of the issue dviroel found with threading as there isnt a bug report for it that expains it properly. 12:20:34 it is not really a race issue, but an initialization problem, of the continuous audit service, which only happens in threading mode 12:21:01 well you talks baout runnign the threads in diffent processes 12:21:14 which woudl not change with or witherh trehadign 12:21:53 and 2 thread can share a single data stucrue in memory 12:22:20 so if they are indeepently creatign there own in memory model that is a bug even with eventlet 12:23:50 a tempest test is not the correct way to prevent regressing that type of but a unit and preferably functional test is 12:23:57 but perhaps we shoudl move on 12:24:06 we can dicsuss that outside the meeting 12:24:25 ack, i can check how I can reproduce the issue with funcional tests perhaps 12:25:00 yes, we can move on 12:25:11 thanks for the discussions on that topic 12:25:45 that's what I have for the evenlet 12:25:50 before we move on we shoudl try and create a bug report for this 12:26:05 and likely we want to fix this indepenetly of the eventlet removal work 12:26:25 or at least in a way we woudl be comfortabel backporting 12:26:36 as it stand we would need to split https://review.opendev.org/c/openstack/watcher/+/952257/9 12:26:42 if we were to backport 12:27:03 ack, I can file a Bug and try to reproduce it in a evenlet env 12:27:19 you should be able to use id() 12:27:25 or `is` 12:27:47 to assert the refence to the data model is the same in the backgroud schduler as it is in the main data model i think 12:28:08 ack 12:28:15 will give a try on that 12:28:47 tks sean-k-mooney 12:28:53 moving to the next topic then 12:29:10 #topic Skip actions feature update https://blueprints.launchpad.net/watcher/+spec/add-skip-actions 12:29:28 i added that one 12:30:01 i've sent some patches and I'd like to share the progress and how I did the split of the feature 12:30:14 so you have an spec update too 12:30:14 #link https://review.opendev.org/c/openstack/watcher-specs/+/954718 12:30:35 yes, that's just adding the same field status_message to the audit for convenience 12:30:57 as it can be useful at some point, i think it'd be good to be covered by the same microversion 12:31:18 ack, as discussed previously here in the channel I think 12:31:22 exacgtly 12:31:37 #link https://review.opendev.org/c/openstack/watcher/+/954745 12:31:38 yes it was 12:31:53 i left a minor comment on the spec update but i htink it good in general 12:32:13 that's the first implementation one, it just adds the status_messages to the database, object, notification and adds api microverson 12:32:32 first feedback on that is your doing a lot in one patch 12:32:38 i will fix that sean-k-mooney , thanks 12:33:03 noramly you woudl do the object change in one patch db in anothe rand the api change gos a the end of the serise wehn the entire feature is functional 12:33:57 +1 12:34:25 so, that one should be three patches? 1st db, 2nd, object, 3rd api change? 12:35:00 note that's just status_message, nothing related to the SKIPPED yet 12:35:23 yes can you split this in 3 , db schema changes in first patch, object and notificaiton changes in secodn and api and apiref changes in the final pathc whihc shoudl go after the other 2 you have already proposed 12:36:05 so, i could join both api changes (status_message and patch action) in the same patch and api microviersion ? 12:36:21 yes you can do that and proably should 12:36:42 do you have anything that is setting the status message to a value in the first patch 12:36:53 nop, but in the second 12:36:58 when doing automatic SKIPPED 12:37:10 right so we do not make the api changes before the code that uses the new fields 12:37:12 i'm setting status_message 12:37:33 the api change alwasy comes at the end after the feature is fully working. 12:37:59 ok, let's move on to the next patches, and at the end we can agree to the entire sequence of patches 12:38:22 #link https://review.opendev.org/c/openstack/watcher/+/954746/ 12:38:32 that's the automatic skipped based on pre_condition 12:39:46 ack, so this one is using the fields from previous patch 12:39:53 yes 12:40:19 in this one, i'm extending the nop action to ease testing different situations https://review.opendev.org/c/openstack/watcher/+/954746/4/watcher/applier/actions/nop.py 12:40:35 i hope i don't need an spec to modify the nop action :) 12:40:54 well technialy you do 12:41:10 beacuse your modifyint eh api schema for the parmaters 12:41:23 yes, but it's just testing action .... 12:41:27 i think case i think we are likely ok with this as part of the larger work 12:41:34 there is no just 12:41:41 it follow the same rules as the rest 12:41:56 but you r right that its not going to break real uscases 12:42:26 i think this is ok but can you split it into its own commit 12:42:43 we might want to backprot that for other testing usecases in the future 12:42:51 the problem is that, for that i need the new exception i'm creating 12:42:54 so having it as its own commit will make that simpeler 12:42:59 so we have chicken-and-egg 12:43:19 well you dont you can extend it twice 12:43:37 once to add the fail cases 12:43:42 ok, i can create one commit for the nop action for "everything" but the skip part 12:43:45 and then again for the skip part 12:43:52 ok 12:43:52 exactly 12:44:11 that can go really early in the series for what its worth 12:44:21 although the order is up to you 12:44:23 yep, actually, would not depend on anything else 12:44:38 right that was my thinking as well 12:44:44 #link https://review.opendev.org/c/openstack/watcher/+/955753/ 12:44:58 that's the new PATCH /actions/ part 12:45:09 includes its own microversion 12:45:39 ya again i would split that in 2, one for the non api part first and hten combine the othe rapi change form before into the second patch and do all the api changes at once 12:46:17 i think there is no non-api part 12:46:21 lemme double check 12:46:37 you hav changes to the applier 12:46:50 but your right its mostly api and docs 12:47:15 only applier piece yes 12:47:17 it's very closely related to the api change 12:47:33 actually, i'd may do that when adding the SKIPPED state 12:47:43 it'd be more correct probably 12:47:54 that might be better its not actully related to the api changes it related to the object changes 12:48:04 yes, i will do that, it makes sense 12:48:27 so this 3 patch serise will likely be 5-7 after the bits are split and re arranged 12:48:32 somethink to remark, i'm adding https://review.opendev.org/c/openstack/watcher/+/955753/1/watcher/api/controllers/v1/types.py 12:48:42 and the nop change can be merged indepentely of the rest 12:48:49 a new way to validate patch calls based on allowed_attributes only 12:49:06 in addition to internal_attributes 12:49:20 i think that may be useful for others 12:49:31 it's a more restrictive way 12:49:36 if you think it might be it should be its on patch 12:49:43 but alos we shoudl liekly discuss that seperatly 12:49:56 thanks for highligting it however 12:50:11 implementing here adds a use case to discuss it, which is useful i think 12:50:15 but i can do depends on 12:50:17 i want to dicsson oru api implation a tthe ptg 12:50:37 * cant type right now 12:51:18 im generallly nnot super happy with how we do api validation and the technologies/libs watcher is cureently useing 12:51:30 but i think any large refactorign of that shoudl be indepenent of your series 12:52:06 so, should i avoid doing that? 12:52:31 tbh, i felt it was an improvement but there may be a better way 12:52:33 was it discussed in the spec as part of the feature 12:53:05 nop, but that's just an internal implementation detail, do not affect users 12:53:05 we can discuss it and perhaps still do it this cycle but its not part of the skipped feature 12:53:23 it changes api validation and there for could 12:53:31 so its boarderline 12:53:37 note i'm not applying to any other call 12:53:49 default behavior is keeping the existing behavior 12:53:59 and it skips if its empty so its backward compatible 12:54:05 exactly 12:54:13 but again it should be in a diffent commit 12:54:19 ok, i will 12:54:30 if we ever need that fuctionalty to fix a bug we woudl want to be able to cleanly backport it 12:54:42 instead of extracting it form this change 12:55:25 amoralej: any other patch that you want to highlight? 12:55:36 1. nop action change 2. change in validation 3. db change 4. object + notification 5. adds SKIPPED state 6. api change with microversion 12:55:58 #link https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/955775 12:56:04 last one, that's the tempest test 12:56:36 ah, i need to do the skip for previous versioins 12:57:17 so, that's it 12:58:06 altight, thanks for all the proposed changes, I will take some time to review then after you submit again 12:58:08 thanks for your feedback, it's very helpful 12:59:06 we have only 2 min left, so i will just skip the bug triage, but there are 2 new bugs there, if you want to take a look 12:59:29 chandankumar: i believe that you might want to discuss more about yours? 12:59:51 we are out of time, if needed, we can continue discussing afterwards in the channel 13:00:15 the other one is a doc bug only, with a patch proposed, we can chat about next week 13:00:16 dviroel: we can revisit next time 13:00:23 #topic Volunteers to chair next meeting 13:00:33 dviroel: I will chair for next meeting 13:00:33 someone wants to chair? 13:00:38 thanks chandankumar 13:01:01 let's wrap up for today 13:01:09 we will meet again next week 13:01:14 thank you all for participating 13:01:19 #endmeeting