Monday, 2022-01-31

*** hemna6 is now known as hemna07:37
opendevreviewPierre Libeau proposed openstack/nova master: Move file system freeze after end of mirroring  https://review.opendev.org/c/openstack/nova/+/80371308:54
kashyapsean-k-mooney: Will look the SMM thing09:21
plibeau3bauzas: hello when you have time to read https://review.opendev.org/c/openstack/nova/+/803713/ QEMU community give some input09:55
bauzasplibeau3: ack, I can take a look on it this afternoon09:59
* bauzas is fighting with Tempest as of now09:59
stephenfinsean-k-mooney: Can you look at https://review.opendev.org/c/openstack/nova/+/822749/ today?09:59
opendevreviewImran Hussain proposed openstack/nova master: [nova/libvirt] Support for checking and enabling SMM when needed  https://review.opendev.org/c/openstack/nova/+/82549610:34
opendevreviewImran Hussain proposed openstack/nova master: [nova/libvirt] Support for checking and enabling SMM when needed  https://review.opendev.org/c/openstack/nova/+/82549611:10
* Uggla don't find where we can vote for Z release name. Can someone provide the link to vote ?11:24
*** cozyurt is now known as Guest127111:43
gibiUggla: everybody could nominate Z names, but only the TC votes (this will change in A release)11:51
Ugglagibi, oh ok thx gibi.11:52
sean-k-mooneystephenfin: yep ill look now11:59
sean-k-mooneystephenfin: the only feedback i had is do we want to have the extras installed in the ci but you might be doing that in the next patch12:01
sean-k-mooneywhich you are 12:01
sean-k-mooneyso no im happy with both patches12:01
stephenfinopenstack server create --flavor m1.small --image fedora-iso --port e3caceae-2c74-4114-9f3f-262a37fc1971 --port e3caceae-2c74-4114-9f3f-262a37fc1971 test-server --wait12:02
stephenfinoslo_db.exception.DBDuplicateEntry: (pymysql.err.IntegrityError) (1062, "Duplic12:02
stephenfinate entry 'fa:16:3e:62:88:38/e3caceae-2c74-4114-9f3f-262a37fc1971-0' for key 'virtual_interfaces.uniq_virtual_interfaces0address0deleted'")12:02
sean-k-mooneystephenfin: yep12:04
sean-k-mooneyrepating the port fails there12:04
sean-k-mooneythis is a known failure mode12:05
sean-k-mooneywe could block that in the api12:05
stephenfinWe probably should12:05
stephenfinThere were a few bugs related to this when I Googled but none had resolutions in them12:05
sean-k-mooneyya i have seen customer hit this with heat templates and i think the shift on stack installer hit this about 4 mounts ago12:09
sean-k-mooneyi previously chatted to mdbooth about it.12:09
sean-k-mooneyi know its recently come up again downstream. are you looking at that?12:10
stephenfinyup, spotted downstream12:16
opendevreviewBalazs Gibizer proposed openstack/placement master: Add microversion 1.39 to support any-trait queries  https://review.opendev.org/c/openstack/placement/+/82671912:17
opendevreviewBalazs Gibizer proposed openstack/placement master: Add microversion 1.39 to support any-trait queries  https://review.opendev.org/c/openstack/placement/+/82671912:19
opendevreviewBalazs Gibizer proposed openstack/placement master: Add microversion 1.39 to support any-trait queries  https://review.opendev.org/c/openstack/placement/+/82671912:23
dmitriissean-k-mooney: can't cleanly apply some changes on top of https://review.opendev.org/c/openstack/nova/+/819494/ since I rebased mine to the tip. But I removed the conflicting modifications in bind-time/plug-time event related functions which are getting removed in that change.13:01
dmitriis(wondering if it's OK to rebase Artom's PRs myself)13:02
sean-k-mooneyack am you could artom will be online soon if you want to wait and ask but i dont really see any harm in that. i would move it after the os-traits patch13:03
sean-k-mooneyalternitvily i can review those now and see if we can merge it shortly13:04
dmitriissean-k-mooney: ack, let me rebase both of his changes and I can cherry-pick cleanly then and reorder the VNIC_SMARTNIC patch and the os-traits patch13:07
opendevreviewStephen Finucane proposed openstack/nova master: api: Reject duplicate port IDs in server create  https://review.opendev.org/c/openstack/nova/+/82707013:07
stephenfinsean-k-mooney: ^ (gibi, you might interested also)13:08
sean-k-mooneyalreday have it open :)13:08
sean-k-mooneyi assume a 400 will be returned13:08
stephenfinyup13:08
opendevreviewDmitrii Shcherbakov proposed openstack/nova master: Add nova-ovs-hybrid-plug job  https://review.opendev.org/c/openstack/nova/+/81730313:08
stephenfinI'm really hoping to avoid a microversion for that, since it's so obviously wrong as-is13:08
stephenfinbut I can't make that choice alone, of course :)13:09
sean-k-mooney400 is already a valid return code13:09
sean-k-mooneyso no microversion needed13:09
stephenfinright, but it's currently returning a 20113:09
stephenfinsince server create is async13:09
sean-k-mooneyits returning a 201 but the server end in error13:09
stephenfinyeah13:09
sean-k-mooneyi think we have an excpetion for that13:09
* sean-k-mooney looks at microversion doc13:09
stephenfinso I'm arguing that since every other subsequent server op would fail, this is an acceptable change. We shouldn't break anyones automation13:10
sean-k-mooneyhttps://docs.openstack.org/nova/latest/contributor/microversions.html#when-do-i-need-a-new-microversion13:10
sean-k-mooneyso i would argue that thies is the first yes13:10
sean-k-mooneydid we silently fail to do what is asked13:10
opendevreviewDmitrii Shcherbakov proposed openstack/nova master: Revert "Revert resize: wait for events according to hybrid plug"  https://review.opendev.org/c/openstack/nova/+/81949413:11
sean-k-mooneywe log the error for the duplciate keys in nova-compute but i think the user got a no valid host error in the event log13:11
stephenfinwe don't even get as far as scheduling13:12
stephenfinbut ultimately we silently fail to do what is asked, yes13:13
sean-k-mooneyoh we create teh entry in the virtual interfaces table in the api i gues so we can store any tag infor13:13
sean-k-mooneyok well ya so im pro no microververion for this too and backporting it13:13
opendevreviewStephen Finucane proposed openstack/nova master: api: Reject duplicate port IDs in server create  https://review.opendev.org/c/openstack/nova/+/82707013:14
sean-k-mooneystephenfin: since your about can you quickly look at https://review.opendev.org/c/openstack/nova/+/817303/11 and the followup revert form artom 13:15
sean-k-mooneydmitriis: ping me later today when the full series is rebased and up and ill try and do a full pass form start to finish13:16
stephenfinsean-k-mooney: Sure, I won't do it right now but I'll get to it straight after lunch13:16
sean-k-mooneydmitriis: ill be busy for the next  hour or so but ill try to get to it later 13:16
sean-k-mooneystephenfin: ack13:16
chateaulavsean-k-mooney: what would be the best method for testing my ci job?13:17
dmitriissean-k-mooney: ack, on it now. I'll add a release note to the latest commit as well. I'm going to work on a doc change as well after I resubmit.13:18
*** dasm|off is now known as dasm13:19
*** dasm is now known as dasm|rover13:19
sean-k-mooneychateaulav: typically we submit a DNM patch at the end of a series, in that you can disable most of the intree ci jobs and then test your job by doing <ci>-recheck or whatever the comment is that you use for your ci13:28
sean-k-mooneychateaulav: [DNM] means do not merge and typiclay do not review 13:28
sean-k-mooneywe use it when ever we are doing things to see if they work or when we are workign on infra like the ci13:29
gibistephenfin: +2 on your fix. thanks13:29
chateaulavgotcha13:32
sean-k-mooneychateaulav: here is an example of working on a first party job https://review.opendev.org/c/openstack/nova/+/727228/1/.zuul.yaml you would do the same for third party just leave the -check-requiremetns template enabled and comment out the check an gate jobs then you can recheck usign your third party ci comment13:32
chateaulavsean-k-mooney: thanks!13:32
sean-k-mooneychateaulav: no problem13:32
plibeau4lyarwood: https://review.opendev.org/c/openstack/nova/+/820531 when you have time :)13:37
gibisean-k-mooney: filed bug about placement silently ignoring repeated required query params https://storyboard.openstack.org/#!/story/2009816 I know that you would like to fix it as a bugfix to return http400 (option a) in the bugreport)13:43
gibibauzas, gmann, melwitt: ^^ Do you agree?13:44
bauzassorry folks, I had a problem with my internet13:44
sean-k-mooneygibi: that would be my perfernce yes but lets see how the rest feel13:44
bauzas(not my internet, rather my router)13:44
sean-k-mooneygibi: if we think we cant do that without a microverion im ok with what you have previously propsoed in the patch13:45
gibisean-k-mooney: ack, I will prepare a bugfix as I also think this should be fixed13:46
bauzasgibi: hah, I finally saw the story13:47
bauzasgibi: when I was calling the link, it wasn't giving me the story13:47
bauzasgibi: looks to me a correct bug13:48
bauzasfor the solution, yeah, HTTP400 without needing a microversion I think13:48
bauzasbut let's wait for gmann's thoughts13:49
sean-k-mooneygibi: oh thats an interesting edge case this also hides invlaid "standard" traits like that interesting. it makes sense but that is even more broken then just ignoring some of your requirements when selecting resouces13:50
gibiyepp it hides invalid things13:50
*** cozyurt is now known as Guest128714:40
gibiincoming...14:44
opendevreviewBalazs Gibizer proposed openstack/placement master: Refactor trait normalization  https://review.opendev.org/c/openstack/placement/+/82584714:44
opendevreviewBalazs Gibizer proposed openstack/placement master: Extend the RP db query to support any-traits  https://review.opendev.org/c/openstack/placement/+/82584814:44
opendevreviewBalazs Gibizer proposed openstack/placement master: Reproduce bug story/2009816  https://review.opendev.org/c/openstack/placement/+/82711414:44
opendevreviewBalazs Gibizer proposed openstack/placement master: Reject repeated required[N] param  https://review.opendev.org/c/openstack/placement/+/82711514:44
opendevreviewBalazs Gibizer proposed openstack/placement master: Extra tests around required traits  https://review.opendev.org/c/openstack/placement/+/82711614:44
opendevreviewBalazs Gibizer proposed openstack/placement master: DB layer should only depend on trait id not names  https://review.opendev.org/c/openstack/placement/+/82649014:44
opendevreviewBalazs Gibizer proposed openstack/placement master: Enhance doc of _get_trees_with_traits  https://review.opendev.org/c/openstack/placement/+/82578014:44
opendevreviewBalazs Gibizer proposed openstack/placement master: Extend the RP tree DB query to support any-traits  https://review.opendev.org/c/openstack/placement/+/82584914:44
opendevreviewBalazs Gibizer proposed openstack/placement master: Add any-traits support for listing resource providers  https://review.opendev.org/c/openstack/placement/+/82649114:45
opendevreviewBalazs Gibizer proposed openstack/placement master: Add any-traits support for allocation candidates  https://review.opendev.org/c/openstack/placement/+/82649214:45
opendevreviewBalazs Gibizer proposed openstack/placement master: Remove unused compatibility code  https://review.opendev.org/c/openstack/placement/+/82649314:45
opendevreviewBalazs Gibizer proposed openstack/placement master: Add microversion 1.39 to support any-trait queries  https://review.opendev.org/c/openstack/placement/+/82671914:45
gmannsean-k-mooney: stephenfin +1 on changing return code from 201 to 400 without microversion in case of 'Reject duplicate port IDs in' because server goes in error at the end14:51
opendevreviewBalazs Gibizer proposed openstack/placement master: Extra tests around required traits  https://review.opendev.org/c/openstack/placement/+/82584614:51
opendevreviewBalazs Gibizer proposed openstack/placement master: Refactor trait normalization  https://review.opendev.org/c/openstack/placement/+/82584714:51
opendevreviewBalazs Gibizer proposed openstack/placement master: Extend the RP db query to support any-traits  https://review.opendev.org/c/openstack/placement/+/82584814:51
opendevreviewBalazs Gibizer proposed openstack/placement master: DB layer should only depend on trait id not names  https://review.opendev.org/c/openstack/placement/+/82649014:52
opendevreviewBalazs Gibizer proposed openstack/placement master: Enhance doc of _get_trees_with_traits  https://review.opendev.org/c/openstack/placement/+/82578014:52
opendevreviewBalazs Gibizer proposed openstack/placement master: Extend the RP tree DB query to support any-traits  https://review.opendev.org/c/openstack/placement/+/82584914:52
opendevreviewBalazs Gibizer proposed openstack/placement master: Add any-traits support for listing resource providers  https://review.opendev.org/c/openstack/placement/+/82649114:52
opendevreviewBalazs Gibizer proposed openstack/placement master: Add any-traits support for allocation candidates  https://review.opendev.org/c/openstack/placement/+/82649214:52
opendevreviewBalazs Gibizer proposed openstack/placement master: Remove unused compatibility code  https://review.opendev.org/c/openstack/placement/+/82649314:52
opendevreviewBalazs Gibizer proposed openstack/placement master: Add microversion 1.39 to support any-trait queries  https://review.opendev.org/c/openstack/placement/+/82671914:52
gmanngibi: sean-k-mooney bauzas for placement API ignoring the extra param in query seems like API change which impact users. We should not do that without microversion because of interop.14:52
gibigmann: even if ignoring a repeated silently hides an error?14:53
gibi*repeated param14:53
gmanngibi: sean-k-mooney bauzas we fixed that in nova with microversion only - https://specs.openstack.org/openstack/nova-specs/specs/train/implemented/api-consistency-cleanup.html#proposed-change14:54
gibie.g. the user asked for an RP that has both trait A and trait B but because A is ignored it gets RPs with only trait B14:54
gibithis is a logic error not just inconvinience14:55
gibiso it is not about ignoring invalid query params14:56
gmanngibi: but that is what user asked, 'trait B' at the end of query he mentioned. it can be used in confusion as I am mentioning two value in single field and API should accept it as both but that is wring query14:56
gmanngibi: yeah so this is only if user query in for same field. 14:57
gibiI don't think that when the user said required=A&required=B she meant that only apply B filter14:57
gmannhow they can do multiple query ? for 'required' A and B both together?14:57
gibitoday with required=A,B14:58
gibiafter microversion 1.39 required=A&required=B will work too14:58
gibibut today required=A&required=B is paresed as required=B by placement14:58
gmanngibi: so you are fixing it with 400 or allow required=A&required=B to return A and B ?15:00
gibiI have a bugfix without microversion bump that retuns http400 if required is repeated15:00
gibiand I have a feature with a microversion bump that allows repeating and pareses it as A and B15:01
gibi(and that microversion adds other things to required too)15:01
gibigmann: this is the series, the bottom is the bugifx https://review.opendev.org/q/topic:any-traits-support15:01
opendevreviewStephen Finucane proposed openstack/nova stable/xena: api: Reject duplicate port IDs in server create  https://review.opendev.org/c/openstack/nova/+/82712015:02
gmannok so changing behavior of " required=A&required=B " with microversion but for older microversion we will change 200 -> 400 right ?15:02
sean-k-mooneygmann: yes15:02
sean-k-mooneytoday if you are repeating the required parmater you have a bug in the code that is calling placement15:03
sean-k-mooneywith the new version there will be a vaild meanign for that and that will be supproted with the new microverion15:03
gibigmann: yes15:04
gmann'changing behavior of " required=A&required=B " with microversion' is all good, I am thinking on for old microverison change 15:04
gibibtw efried is on gmann's side in the code review...15:04
gmannwhich break users15:04
sean-k-mooneygmann: it wont break users15:04
sean-k-mooneygmann: user that have a duplciat request are already broken15:04
gibigmann: it breaks uses if the user query was wrong in the first place15:04
efried^15:05
gmannsean-k-mooney: 200 to 400. when user asking with wring query 15:05
sean-k-mooneyyes it will only be 400 for an invild query15:05
sean-k-mooneywhere one of the requiremnt was being ignored15:05
sean-k-mooneynova wont generate this but if we were to consider the isolated aggreates feature15:06
sean-k-mooneyhttps://docs.openstack.org/nova/latest/reference/isolate-aggregates.html15:06
gibiI can imagine one case when we break a valid query. required=A,B&required=A,B is valid today and has a good meaning but it will be HTTP 400 after the fix15:07
sean-k-mooneyif we had &required:CUSTOM_LICENSED_WINDOWS&required:CUSTOM_SOMETHING_ELSE15:07
sean-k-mooneythe the isolated aggreate part would be lost15:07
opendevreviewStephen Finucane proposed openstack/nova stable/wallaby: api: Reject duplicate port IDs in server create  https://review.opendev.org/c/openstack/nova/+/82712115:07
sean-k-mooneygibi: two idential values i guess we could check for and allow that15:08
opendevreviewStephen Finucane proposed openstack/nova stable/victoria: api: Reject duplicate port IDs in server create  https://review.opendev.org/c/openstack/nova/+/82712215:08
gibisean-k-mooney: we coudl but that gets complicate if we need to allow required=A,B&required=B,A as well15:08
sean-k-mooneygibi: it does and i would still consider that to be invalid today15:09
opendevreviewStephen Finucane proposed openstack/nova stable/ussuri: api: Reject duplicate port IDs in server create  https://review.opendev.org/c/openstack/nova/+/82712315:09
sean-k-mooneyit makes logical sense but the parmater is not intended to be repatable today15:09
efriedIMO going into the weeds to allow special corner cases is not The Way. I think we should fix this, but it would be best to do it in a microversion.15:09
efriedAnd by "we" of course I mean "y'all" :P15:09
sean-k-mooneyefried: we cant backport it then15:09
sean-k-mooneywe can certenly fix it in a microverion if that is what we want15:10
sean-k-mooneybut if we do that we need to docuemnt that for older microversion only the last requires clasue will be used15:10
gibiwe have the microversion to fix it above in that series :)15:10
sean-k-mooneyand we need to ensure we dont break that goign forward for older microverion so tech debt15:10
opendevreviewImran Hussain proposed openstack/nova master: [nova/libvirt] Support for checking and enabling SMM when needed  https://review.opendev.org/c/openstack/nova/+/82549615:11
sean-k-mooneygibi: yes i guess it fixed implictly by the new fature15:11
sean-k-mooney*feature15:11
gibisean-k-mooney: yes15:11
gmannf I am using it  required=A,B&required=B with expectation that I need B (onerously wrong way) but it will be broken if we do without microversion15:11
efriedsuch is life. I thought the whole point of the microversion thing was that we weren't locked into major versions where we had to worry about backporting at all. You use whatever microversion you use, from whatever version of other stuff you are using, to support whatever features you need.15:11
gmannand if we are changing the behavior with microversion then we are fixing it anyways so no need to fix for older microversion15:11
efried^15:12
gmanngibi: if you would change it from 400 ever then we might think to do without microversion or not. otherwise it is like  required=A,B&required=B is 200 now,  required=A,B&required=B is 400 after fix  required=A,B&required=B is again 200 with microversion 15:12
gmann*  if you would change it from 400 always15:13
sean-k-mooneyefried: iguess we were just tryign to avoid operators having upgrade pain15:13
gmann*  if you would change it to 400 always15:13
sean-k-mooneynova will not repeat the parmaters today15:13
sean-k-mooneyso for nova this wont matter one way of another15:13
efriedyeah, as usual the reality is that it is vanishingly unlikely that anything in the field is going to be affected by this fix; it's a matter of doing The Right Thing software hygiene process-wise.15:14
gibiI feel more hygenic if we not silently ignore query params15:14
sean-k-mooneyright so hygine wise accepting known invlaid input to me is wrong 15:15
efriedum, that's not the point. I don't think anyone is disputing that there's a bug. It's a matter of the proper procedure to get the fix done.15:15
opendevreviewStephen Finucane proposed openstack/nova stable/train: api: Reject duplicate port IDs in server create  https://review.opendev.org/c/openstack/nova/+/82712615:15
gibiI cannot fix the bug on stable branches if it is requires a microversion bump15:15
gmannefried: yeah. 15:16
efriedstable branches of what?15:16
sean-k-mooneyplacment15:16
gibiplacenet15:16
gibiplacement15:16
efriedAnd those stable branches affect... what? Only OpenStack?15:16
gmannit is definitely a bug but our code has made it working in some way even with not expected result15:16
gibiefried: this argument can be used for any placement change. should we then drop all placement stable branches? 15:17
gmannor may be expected results as we cannot say users would not be using it for query B only but in mistaken way of leaving duplicate query 15:17
efriedIMHO documenting the old broken behavior for stable branches would be adequate.15:18
efriedStable consumers who are affected and care can fix their query if they wish.15:18
gmanngibi: sean-k-mooney efried I feel best way for existing user or stable is to update the api-ref  "required=A,B&required=B is unexpected behavior until microversion 1.39 and after it work like returning both "15:18
gmannyeah documenting it is enough I think when we are anyways fixing it with microversion 15:19
gmannthat is how we do for any other bugs also right? 'fix in new microversion and old microverison it is bug and we donot fix'15:20
sean-k-mooneygmann: well the primary reason for supprot it in 1.39 is for the any traits feature15:20
gibiI don't believe that we want to keep around an incorrect behavior just because somebody might depend on it. but at the same time we say stable consumers can fix their query. I would say master consumer can fix their query too after we forbid the wrong behavior15:20
gmannsean-k-mooney: yeah, I mean if we are fixing this query format too15:20
sean-k-mooneygmann: if one of the repeated section does not use in: you still shoudl not be using it15:21
gibisean-k-mooney: after 1.39 you can repeate required without in: prefix as well15:21
sean-k-mooneyyes but im not sure we shoudl actully allow that15:21
sean-k-mooneyit simpler too15:21
sean-k-mooneybut its not useing the api as intended15:22
sean-k-mooneywe can allow it but i dont think we shoudl encurage it15:22
sean-k-mooneyafter all it we have a limited query string lenght15:22
sean-k-mooneyand this is much more wasteful the jsut combining them15:22
sean-k-mooneyso it may be valild but not idiomatic15:23
* gibi feels burnout on this and goes for vacuuming the carpet instead15:23
gibiI will be back in an hour15:23
gibisorry15:23
sean-k-mooneysorry didnt want to burn you out either 15:24
sean-k-mooneyim not really asking for you to expiclty block the repated case without in specificaly but i woudl like us to docuemnt that it shoudl only be used for that usecase ideally15:25
gmannI think blocking it with microversion and asking to do via "required=A,B" is better way and saying "required=A,B&required=B" in older microversion is unknown behaviour 15:25
gmannor even "required=A,B&required=B" is unknown  behavior is any microversion , do via "required=A,B"15:26
sean-k-mooneyok if that is what peopel prefer but i dont like having to opt into correct behavior which is what that forces15:27
gmannIt was the same issue for nova query param too, we were ignoring the param and users might not get the expected behavior what they think will get. But we did not fix that without microversion and have to fix in new microversion to avoid breaking any users15:32
gmannwhy I say it break users is we allowed our API to be used that way and it return something and we do not know what users expect with API to be used that wrong way, expectation might be what our code return now. 15:33
sean-k-mooneygmann: yes i understand your argument, i just find it hard to accpet that argument when we no any qurty that does this today is invalid15:34
sean-k-mooney/qurty/query15:35
sean-k-mooneyif the perference is to document this which it seams you and efried  perfer and only fix going forward as part of the new feature we can do that15:35
sean-k-mooneyits what gibi initally did before i raiesed the question in the review15:36
gmannyeah, that is better way IMO. documenting the known bug until this microversion and with new version we fixed it.15:37
sean-k-mooneywell technially gibi put in functional tests to assert the current behavior for old microverison to ensure he did not break it15:37
sean-k-mooneygmann: to me this is like intentiolly leaving a cve open but ok15:37
sean-k-mooneywe know it wont affect nova15:38
sean-k-mooneysicne we never generate this edge case15:38
sean-k-mooneyironic dpeloyed in standalone mode  without nova today i dont think uses placment15:39
sean-k-mooneyso im not aware of an consumer of placment that are likely to hit this other then endusers making direct curl requests15:39
sean-k-mooneyso the impact really shoudl be minor15:39
gmannI know, and its a bug and we have to accept/live with it for older microversion as this is what our API returned even wrong or right does not matter but in some cases it might return right-as-per-usage15:40
sean-k-mooneygmann: i can say very clearly that if we had a customer that relied on this in any way we would not supprot there continued use of it at the expence of the rest of our customers15:41
* sean-k-mooney is slictly cranky that we are being force to do the wrong thing downstream to support once customer that did invalide things currenlty15:42
opendevreviewImran Hussain proposed openstack/nova master: [nova/libvirt] Support for checking and enabling SMM when needed  https://review.opendev.org/c/openstack/nova/+/82549615:42
gmannyeah, that is what API is. If we allowed to use our API wrongly with some usable results then it is what we allowed and cannot change the API. 15:48
opendevreviewDmitrii Shcherbakov proposed openstack/nova master: [yoga] Add PCI VPD Capability Handling  https://review.opendev.org/c/openstack/nova/+/80819915:53
opendevreviewDmitrii Shcherbakov proposed openstack/nova master: [yoga] Include pf mac and vf num in port updates  https://review.opendev.org/c/openstack/nova/+/82483315:53
opendevreviewDmitrii Shcherbakov proposed openstack/nova master: [yoga] Introduce remote_managed tag for PCI devs  https://review.opendev.org/c/openstack/nova/+/82483415:53
opendevreviewDmitrii Shcherbakov proposed openstack/nova master: Bump os-traits to 2.7.0  https://review.opendev.org/c/openstack/nova/+/82667515:53
opendevreviewDmitrii Shcherbakov proposed openstack/nova master: [yoga] Add support for VNIC_TYPE_SMARTNIC  https://review.opendev.org/c/openstack/nova/+/82483515:53
opendevreviewDmitrii Shcherbakov proposed openstack/nova master: Filter computes without remote-managed ports early  https://review.opendev.org/c/openstack/nova/+/81211115:53
dmitriissean-k-mooney: submitted the changes in https://review.opendev.org/q/topic:2021-09-10-off-path-net-backends with a dependency on https://review.opendev.org/c/openstack/nova/+/819494/15:56
opendevreviewImran Hussain proposed openstack/nova master: [nova/libvirt] Support for checking and enabling SMM when needed  https://review.opendev.org/c/openstack/nova/+/82549616:00
melwittgibi: +1 to fix as bug without new microversion16:08
stephenfinbauzas: Around? I think melwitt left this to you to confirm https://review.opendev.org/c/openstack/nova/+/81936616:19
opendevreviewMerged openstack/nova master: api: Reject duplicate port IDs in server create  https://review.opendev.org/c/openstack/nova/+/82707016:24
opendevreviewJonathan Race proposed openstack/nova master: Adds Pick guest CPU architecture based on host arch in libvirt driver support  https://review.opendev.org/c/openstack/nova/+/82205316:30
* gibi is back16:33
gibiso there is no clear direction, half of us are up to fix the bug without microversion bump and half of use say fix is with the anyhow incoming 1.39 microversion and document the bug on stable16:34
gibishould I create two separate patch series as see which one land first? or will that simply mean both series will have -1 from the other group?16:37
bauzasstephenfin: I'm surprised I can't see my vote already on the powervm deprecation16:38
bauzasstephenfin: damn shit, I should take a picture16:39
bauzasI literrally found the tab open with my +2 vote and a comment without being submitted16:39
* bauzas facepalms16:39
bauzasmelwitt: gibi: stephenfin: deprecated powervm, that's it.16:40
gibibauzas: +116:40
bauzasif anyone knows any FF plugin that puts the tab in red when you're on a gerrit vote without submitting since 1 day, this would be appreciated :D16:41
bauzasbut I assume this is a bit a corner case16:41
melwittI guess there could also be a hybrid option that doesn't raise a 400 for the current microversion but honors all of the valid ones and then in the next microversion start the 400? I dunno16:43
gibimelwitt: do you mean start translating required=A&required=B to required=A,B withoout a microverison bump?16:44
opendevreviewJonathan Race proposed openstack/nova master: Adds Pick guest CPU architecture based on host arch in libvirt driver support  https://review.opendev.org/c/openstack/nova/+/82205316:44
gmann+1 on that, as long as we do not change the return code for old microversion. translating is also ok16:45
gibibut that also breaks the users who realied on the wrong behavior 16:46
gibiso I don't get the rules then16:46
melwittgibi: not sure (sorry) I don't know the detail of how it works. would doing that raise a 400 with invalid trait? I was thinking that if raising a 400 for invalid trait in current microversion is a problem, could just ignore the invalid and only use the valid16:46
gibimelwitt: currently placement ignores repeated required param and only parse the _last_ one out from the query string16:46
gibithis way anything in an earlier requried param is lost16:46
gibiit can be an invalid trait16:47
gibior a valid one16:47
melwittsorry, trying to ask if required=VALID_A,INVAILD_B,VALID_C would raise 400?16:47
gibithat is raising 400 today16:47
melwittack16:47
gibirequired=INVALID_B,&required=VALID_A is accepted and INVALID_B is ignored16:47
melwittyeah so I wasn't thinking translation then, if the goal is to avoid making old queries fail that used to pass16:47
gibimaking old invalid queries pass is up for debate as you see above16:49
melwittjust to collect all the valid ones and honor them and ignore the invalid ones (current microversion) and then in a new microversion could start rejecting invalid with 400. maybe it's a dumb idea but I'm just trying to help16:49
melwittah.. k16:49
gibimelwitt: in a new microversion I proposed to translate required=A&required=B to mean required=A,B and if A is invalid then the query is invalid16:50
gibithe question is should we add 400 before the new microversion16:51
gibione side says it is an interop issue as API behavior is changing16:51
gibiother side says that we are fixing a bug 16:51
gibiand one should not opt into a bugfix16:51
gmannand along with interop, any user using it for valid response of getting 'B' will also be broken even they are using it wrongly 16:51
gibiand I think those users should fix their query16:52
gibias their query is highly misleding16:52
gmannbut we allowed our API to be succeed for them16:52
gibiyes, we made a bug16:52
gibiI think it was never intentional to parse required=A&required=B as only required=B and ignore the A filter16:53
gibibut we clearly disagree on this16:53
gibiwhere we draw the line between API behavior and fixable bug?16:55
melwittyeah.. so I think the worst part about the bug is ignoring the valid repeated params. and I was thinking to avoid 400'ing users who have an accidental invalid trait in a old repeated passing query, we could fix honoring of the valid traits and leave the invalid to be ignored by the query parsing. then begin the 400 in the next microversion16:56
gibimelwitt: but I think gmann argues that if we start handling required=A&required=B as required=A,B today to accept the valid repeats, then that is also a change in API behavior so requires a microversion16:57
gmanngibi: sorry, may be I am not clear. My concern is to change the 200 to 400 for existing users querying required=A&required=B and ok with having 'B' response. 17:00
gmannwith new microversion we can fix it in any ways, allow or translate or 40017:00
melwittyeah, that would cause a 400 if A or B are invalid. I'm saying do a temporary-for-1.39 thing where you scan all required= and only use the valid traits and silently ignore invalid traits without a 400. with the goal being to apply all valid required traits without introducing a 400 in that case17:00
gibigmann: so would you be supportive to keep 200 response but filter for both A and B _without_ a microversion bump?17:03
gibimelwitt: in 1.39 (in a bump) I'm intended to do a proper translation including rejecting invalids17:03
melwittI'm trying to think of other past cases where the behavior was clearly wrong, have we never introduced 400 for that before?17:03
stephenfinbauzas: :D nw, thank you!17:03
gmanngibi: and no change in 1.39 ?17:04
gibigmann: in 1.39 there a new `in:` prefix is introduced17:04
gibirequired=in:A,B means A or B17:04
gibibut we keep required=A,B as A and B17:05
gmanngibi: ok, so that is different new things which is ok. what about required=A&required=B ? return A and B or 400 in >1.39 ?17:05
melwittgmann: 1.38 is the current microversion17:06
gibiI propose that in 1.39 required=A&required=B is translated to required=A,B 17:06
gmannmelwitt: I mean gibi new microversion 1.3917:06
melwittearlier I wrongly thought 1.39 was current17:06
gibigmann: but sean suggest to make that 400 instead there too17:06
gmannI too initially until I checked in doc :)17:06
gibisorry for not being clear about that17:07
gmanngibi: +1 on making 400 there which will be a clear usage instead of supporting multiple way17:07
melwittI think translation is fine in 1.3917:07
gmannI mean with mivroversion17:07
melwittI was thinking what to do for <= 1.3817:07
gmannmelwitt: but then we end up supporting 1. required=A&required=B  2. required=in:A,B 3.  required=A,B17:08
gibito note that is the easiest to support from code perspective :)17:08
gibito reject 3. I have to add extra logic17:08
gmannIMO, in new microversion we can make first two to avoid confusion 17:08
melwittwhat's wrong with supporting repeated and non repeated in 1.39?17:09
gibialso note that repeating required=in: is needed to be able to express (A or B) and (C or D)17:09
gmannanyways with new microversion, we can see what all to support. but my only concern is for older microversion we do not change anything what it is today17:09
gmannand document in api-ref that  required=A&required=B is unknown behavior until v1.3917:10
gibigmann: do we have a description that defines the line between API behavior (that is unfixable in a bugfix) and non API behavior that fixabelk in a bugfix17:10
gibi?17:10
melwitteven honoring valid traits? I think at the very least it should be changed to honor the valid traits17:10
gmannmelwitt: yeah, for invalid I am ok. my concern is on  required=VALID_A&required=VALID_B return VALID_B response today17:12
gmanngibi: that is always debatable :). But IMO anything working successfully today even with wrong usage of API is what we should not change. in this case  required=A&required=B, user gets 'B' response is successfully case. 17:13
gibigmann: does successfull means http 2xx response?17:14
gmannand we do not know user expectation is only to get B and by mistake they added A too in early query param17:14
gmanngibi: ^^17:14
gmannthis case ^^ not just 20017:14
melwitthm, ok. I guess we disagree there, I think that it should be fixed to return VALID_A and VALID_B even for the current microversion17:15
gmannmelwitt: I am fine with that but not with returning 400 in this case for current microversion17:15
gibimelwitt: I agree that we disagree :) and I would simply reject repeated params in the current microverison17:15
gibigmann: I don't get your last point to melwitt17:16
gibigmann: if we start returning A and B response for required=A&required=B but the user wants to get B only then it is a behavior change17:16
melwittfwiw I'm not as concerned about the 400, my main concern is honoring the valid traits in the current microversion17:16
gibias she get B so far but not any more17:17
gibimelwitt: yeah, it seems 3 of us has 3 different area of concern :)17:17
gibifun :017:17
gibi;)17:17
melwittyeah 😂17:17
gmanngibi: well, we at least does break them in term of return code. and say  required=A&required=B we meant for return  A and B and we fixed it now. 17:17
gmannbut returning 400 for them break them as they get something and then they get error17:18
gibigmann: I'm pretty sure if the relied on gettin RPs with B traits only and now getting empty result as we returning onyl RPs with both A and B will break tem17:18
gibithem17:18
gmannI mean we fix the code to make it return A and B is ok but making them error is issue17:18
gmanngibi: we had similar (not exactly same ) issue in nova query param for silently ignoring few/unknown also and we could not change it without microversion17:19
gibiOK, I'm dropping the bugfix from the patchseries of microversion 1.39. I still intend to land 1.39 this cycle. I don't have such mandate for the bugfix itself. so I prioritize17:20
gmanngibi: sure, in that case we can just leave the current behavior as it is and not breaking anything and say "new microversion gives correct behavior" 17:20
gmannI am if we want to change for current microversion then  we "make it more correct is fine but rejecting the request is not"17:21
melwittwait, I don't understand why the bug fix can't go in 1.39 if 1.39 is not released yet?17:21
gmannI think gibi saying bug fix for older microversion also17:21
gibimelwitt: the bug will disappera in 1.3917:22
gibimelwitt: but I will not try to fix it in <1.39 now17:22
gibias it seem we cannot agree17:22
melwittah ok17:22
gibi1.39 alway planned to allow repeating the required query param17:23
gibias in: needs to be repeated for (A or B) and (C or D) case17:23
melwittok, so repeated was not officially supported < 1.39. sorry I had missed that17:24
gmannyeah, it was always nor documented neither we knew how it work until gibi found it?17:24
gibimelwitt: <1.39 there was not defined behavior for repeat17:24
gibithe code happened to pares the last repetition17:25
gibiparse17:25
gibiand ignore the rest17:25
melwittgotcha.. thanks17:25
opendevreviewBalazs Gibizer proposed openstack/placement master: Extra tests around required traits  https://review.opendev.org/c/openstack/placement/+/82584617:28
opendevreviewBalazs Gibizer proposed openstack/placement master: Refactor trait normalization  https://review.opendev.org/c/openstack/placement/+/82584717:28
opendevreviewBalazs Gibizer proposed openstack/placement master: Extend the RP db query to support any-traits  https://review.opendev.org/c/openstack/placement/+/82584817:28
opendevreviewBalazs Gibizer proposed openstack/placement master: DB layer should only depend on trait id not names  https://review.opendev.org/c/openstack/placement/+/82649017:28
opendevreviewBalazs Gibizer proposed openstack/placement master: Enhance doc of _get_trees_with_traits  https://review.opendev.org/c/openstack/placement/+/82578017:28
opendevreviewBalazs Gibizer proposed openstack/placement master: Extend the RP tree DB query to support any-traits  https://review.opendev.org/c/openstack/placement/+/82584917:28
opendevreviewBalazs Gibizer proposed openstack/placement master: Add any-traits support for listing resource providers  https://review.opendev.org/c/openstack/placement/+/82649117:28
opendevreviewBalazs Gibizer proposed openstack/placement master: Add any-traits support for allocation candidates  https://review.opendev.org/c/openstack/placement/+/82649217:28
opendevreviewBalazs Gibizer proposed openstack/placement master: Remove unused compatibility code  https://review.opendev.org/c/openstack/placement/+/82649317:28
opendevreviewBalazs Gibizer proposed openstack/placement master: Add microversion 1.39 to support any-trait queries  https://review.opendev.org/c/openstack/placement/+/82671917:28
melwittdansmith, bauzas: just a fyi, oslo.limit got a new release so I cleaned up the unified limits set to use it and removed the haxx17:29
gibisean-k-mooney, gmann, melwitt, efried: I restored the patch series of microversion 1.39 not to change the behavior of the repeated required param handling in < 1.39 microversion https://review.opendev.org/q/topic:any-traits-support17:30
gibiso < 1.39 if the required param is repeated only the _last_ instance is parsed a rest is ignored17:30
bauzasmelwitt: cool, as I said, you're my next priority once I'm done with trying to work on Tempest :p17:30
melwittk :)17:31
dansmithmelwitt: nice17:34
sean-k-mooneygibi: ack18:07
*** Uggla is now known as Uggla|afk18:17
opendevreviewRajat Dhasmana proposed openstack/nova master: WIP: Add support for volume backed server rebuild  https://review.opendev.org/c/openstack/nova/+/82036818:20
opendevreviewRajat Dhasmana proposed openstack/python-novaclient master: WIP: Add parameter to rebuild boot volume  https://review.opendev.org/c/openstack/python-novaclient/+/82716318:27
opendevreviewJonathan Race proposed openstack/nova master: Adds Pick guest CPU architecture based on host arch in libvirt driver support  https://review.opendev.org/c/openstack/nova/+/82205318:38
*** tkajinam is now known as Guest130718:43
opendevreviewJonathan Race proposed openstack/nova master: Adds Pick guest CPU architecture based on host arch in libvirt driver support  https://review.opendev.org/c/openstack/nova/+/82205318:45
opendevreviewMerged openstack/nova master: Add nova-ovs-hybrid-plug job  https://review.opendev.org/c/openstack/nova/+/81730318:49
opendevreviewMerged openstack/nova master: Deprecate the powervm driver  https://review.opendev.org/c/openstack/nova/+/81936619:35
chateaulavcan i get a second look on https://review.opendev.org/c/openstack/nova/+/822053, not sure what happened but it seems to be wanting to merge... i think im stuck and not sure what i broke19:42
melwittchateaulav: it show it's in merge conflict, should just need a rebase19:56
melwitt*shows19:57
chateaulavmelwitt: yeah, tried, i think i got it. had to hard reset the branch. gonna add all the changes back and see if it resolves now19:57
chateaulavthanks19:57
melwittack20:04
opendevreviewJonathan Race proposed openstack/nova master: Adds Pick guest CPU architecture based on host arch in libvirt driver support  https://review.opendev.org/c/openstack/nova/+/82205320:43
opendevreviewJonathan Race proposed openstack/nova master: Adds Pick guest CPU architecture based on host arch in libvirt driver support  https://review.opendev.org/c/openstack/nova/+/82205320:48
opendevreviewJonathan Race proposed openstack/nova master: Adds Pick guest CPU architecture based on host arch in libvirt driver support  https://review.opendev.org/c/openstack/nova/+/82205320:50
opendevreviewJonathan Race proposed openstack/nova master: Adds Pick guest CPU architecture based on host arch in libvirt driver support  https://review.opendev.org/c/openstack/nova/+/82205320:53
opendevreviewJonathan Race proposed openstack/nova master: Adds Pick guest CPU architecture based on host arch in libvirt driver support  https://review.opendev.org/c/openstack/nova/+/82205320:55
opendevreviewJonathan Race proposed openstack/nova master: Adds Pick guest CPU architecture based on host arch in libvirt driver support  https://review.opendev.org/c/openstack/nova/+/82205321:11
opendevreviewJonathan Race proposed openstack/nova master: Adds Pick guest CPU architecture based on host arch in libvirt driver support  https://review.opendev.org/c/openstack/nova/+/82205321:17
*** dasm|rover is now known as dasm|off22:29

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