15:00:27 <bswartz> #startmeeting manila 15:00:27 <openstack> Meeting started Thu Jun 22 15:00:27 2017 UTC and is due to finish in 60 minutes. The chair is bswartz. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:00:28 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 15:00:30 <openstack> The meeting name has been set to 'manila' 15:00:30 <bswartz> hello all 15:00:34 <jprovazn> hi 15:00:36 <gouthamr> hi 15:00:37 <ganso> hello 15:00:37 <dustins> \o 15:00:42 <zhongjun> hello 15:00:44 <vponomaryov> hello 15:00:46 <markstur> hi 15:00:59 <tbarron> hi 15:01:03 <xyang1> Hi 15:01:03 <jungleboyj> o/ 15:01:52 <bswartz> once again, no announcements this week 15:02:01 <bswartz> #agenda https://wiki.openstack.org/wiki/Manila/Meetings 15:02:12 <bswartz> I wanted to start off today with 15:02:16 <bswartz> #topic IPv6 status 15:02:47 <bswartz> I have finally been able to shut out distractions and start to focus on this again 15:02:53 <cknight> Hi 15:02:54 <bswartz> I have 2 new LVM driver patches up 15:03:21 <bswartz> where do we stand on testing and implementation for ipv6? 15:03:28 <vkmc> o/ 15:03:38 <bswartz> zhongjun: do you have a list of patches that are required? 15:03:48 <zhongjun> I have many patchs about IPv6 https://review.openstack.org/#/q/owner:jun.zhongjun2%2540gmail.com+status:open 15:04:23 <raissa> hi 15:04:35 <bswartz> #link https://review.openstack.org/#/c/406776/ 15:04:40 <bswartz> #link https://review.openstack.org/#/c/312321/ 15:04:45 <bswartz> #link https://review.openstack.org/#/c/328932/ 15:04:51 <bswartz> ^ these are the ones I've been looking at 15:05:13 <zhongjun> First we need to focuse on this: https://review.openstack.org/#/c/406776/ 15:05:31 <zhongjun> focus 15:06:11 <bswartz> what about https://review.openstack.org/#/c/476057/ 15:07:06 <zhongjun> gate job: https://review.openstack.org/#/c/476057/ 15:07:23 <bswartz> okay that can't merge until a bunch of other patches merge 15:07:29 <zhongjun> add ipv4 and ipv6 in lvm export ips config 15:07:31 <bswartz> but we should make it a priority for that to be able to pass 15:08:16 <bswartz> so everyone is still on board with the plan to have a single job for testing both ipv4 and ipv6 right? and centos will be required to actually turn on the v6 tests? 15:08:28 <tbarron> +1 15:08:45 <gouthamr> +1 15:08:53 <bswartz> okay 15:08:53 <zhongjun> We can test both ipv6 and ipv4 after merge gate job 15:09:34 <zhongjun> +1 15:09:44 <bswartz> the main thing left for me then is to add more unit tests coverage on my patch and get it merged so we can start merging zhongjun's stuff 15:10:26 <bswartz> I'm going to keep pushing for this to move quickly 15:10:36 <bswartz> we can't be still working on ipv6 at the end of p-3 15:10:56 <bswartz> anything else related to ipv6 that we should discuss today? 15:10:59 <zhongjun> agree 15:11:28 <bswartz> okay moving on... 15:11:29 <bswartz> #topic Driver fixes to branches beyond stable/R-1 15:11:42 <bswartz> gouthamr: you're up 15:11:54 <gouthamr> bswartz: thanks 15:12:20 <gouthamr> okay, we identified a few bugs in our drivers that go way back to many older releases 15:12:48 <gouthamr> but when we fix such bugs, backports to these fixes are only limited to ocata 15:13:25 <gouthamr> but i'd like to ideally backport them to newton too... but what stops me would be the backport policy around stable branches 15:13:42 <gouthamr> in cinder, i'm able to propose such backports to "driverfixes" branches 15:13:49 <tbarron> so this issue was discussed in cinder; do you have a solution for this issue in cinder? 15:13:51 <tbarron> jinx 15:14:06 <jungleboyj> tbarron: Yes. 15:14:20 <jungleboyj> We have the driverfixes branch for each release. 15:14:20 <gouthamr> teh point being distributors are probably looking at those branches to pick up vendor driver fixes? (unsure) 15:14:23 <bswartz> +1 for driverfixes 15:14:39 <jungleboyj> gouthamr: They should be. The driver vendors are at least. 15:14:57 <gouthamr> jungleboyj: nice... so, can we start doing that in manila.. 15:15:27 <jungleboyj> bswartz: Gave it a plus 1. :-) Would make sense to keep Manila consistent if others agree. 15:15:50 <zhongjun> +1 It also good for me 15:16:06 <bswartz> "R-1" mean previous release, not Rocky milestone-1 15:16:20 <gouthamr> the community would need to sign up to maintain such branches.. and we'll run bitrot jobs on those like cinder does.. 15:16:23 <gouthamr> haha happens just once in 26 times bswartz 15:16:30 <ganso> bswartz: thanks, that had gotten me confused 15:16:47 <tbarron> it seems like a good idea, I thought I'd ask how the cinder solution has been working out for our distro 15:16:51 <jprovazn> so vendors then cherry-pick from "driverfixes" whatever they need? 15:17:14 <jungleboyj> jprovazn: Right. 15:17:22 <gouthamr> jprovazn: yes... vendors can propose fixes into those branches and its up to the distros from there on out.. 15:17:28 <jungleboyj> tbarron: That is a good question. I wonder if the distros have been making use of it. 15:17:36 <tbarron> jprovazn: driver vendors would put their patches there; vendors would pull from there 15:17:44 <tbarron> distros would pull from there 15:18:06 <bswartz> jprovazn: the theory is that distros would follow that branch and see new patches merge -- distros can follow master today but it's harder to know which bug need backporting at all, and also backport some changes can be hard -- in the driverfixes branch all the merge conflicts would be dealt with already 15:18:20 <gouthamr> +1.. instead of each driver vendor maintaining their own manila forks someplace else 15:18:31 <bswartz> the major challenge is testing -- the branch would be officially untested 15:19:23 <bswartz> IIRC cinder just runs basic bitrot jobs on driverfixes 15:19:23 <gouthamr> untested with tempest tests... 15:19:24 <jungleboyj> bswartz: Right. We had to accept that. The assumption is that the vendors are testing well if they are pushing up patches. 15:19:36 <ganso> pardon my ignorance but what does "bitrot jobs" mean? 15:19:43 <gouthamr> ganso: py27, unittests 15:19:44 <bswartz> well it would be between the distros and the vendors to assure quality 15:19:46 <tbarron> i think we supported this idea for cinder, i just want to check how it worked out, were there any unanticipated consequences, etc. 15:19:50 <ganso> gouthamr: oh, just that 15:19:53 <ganso> gouthamr: thanks 15:20:15 <zhongjun> so we don't need to run our CI too? 15:20:20 <jungleboyj> tbarron: I am not aware of any. 15:20:20 <gouthamr> tbarron: eharney has had me push some changes into cinder's driverfixes branches ... 15:20:37 <bswartz> zhongjun: IMO vendors could run CI if they chose too, or not 15:20:49 <tbarron> gouthamr: thanks, eharney is in another meeting right now and is ignorminng my PM on the subject :) 15:20:53 <tbarron> so +1 15:20:53 <bswartz> running CI on ancient releases is a challenge for a variety of reasons 15:21:16 <gouthamr> zhongjun: not a requirement, no.. we're assuming that someday devstack will stop supporting these old branches 15:21:23 <bswartz> distros happen to specialize at testing and supporting very old things (thanks RedHat/SUSE/etc) 15:21:24 <gouthamr> zhongjun: and most CIs run devstack 15:21:40 <xyang1> tbarron: eharney is probably already pulling fixes from Cinder driverfixes then 15:22:43 <bswartz> okay so the concrete actions proposed here are: 15:22:50 <jungleboyj> xyang1: ++ 15:23:11 <bswartz> * create the branch for newton (since ocata is still open) 15:23:23 <bswartz> * setup gate jobs 15:23:47 <bswartz> * announce that our policy for this branch will match cinder's current policy 15:24:00 <bswartz> is that all we need 15:24:02 <bswartz> ? 15:24:20 <gouthamr> +1 15:24:46 <vponomaryov> only newton? 15:24:47 <bswartz> and gouthamr is volunteering to the branch and gate stuff? 15:24:50 <vponomaryov> why not mitaka? 15:24:55 <bswartz> good point 15:25:00 <gouthamr> vponomaryov: i'd like to do mitaka too 15:25:02 <bswartz> why not mitaka? 15:25:09 <bswartz> what about liberty? 15:25:09 <jungleboyj> Makes sense. 15:25:16 <xyang1> Cinder has mistakable 15:25:22 <ganso> what about kilo? :P 15:25:25 <vponomaryov> bswartz: we have stable/mitaka, but not stable/liberty 15:25:42 <xyang1> Mitaka 15:25:43 <gouthamr> mistakable sounds good xyang1 :) 15:25:44 <vponomaryov> xyang1:"mistakable" ^_^ 15:26:00 <xyang1> Autocomplete:) 15:26:04 <bswartz> vponomaryov: the proposal is that a driverfixes branch would be needed as soon as the stable branch became closed to non-critical bugfixes 15:26:14 <jungleboyj> @! 15:26:25 <bswartz> jungleboyj: looks like the bot isn't here 15:26:26 <gouthamr> table-flip-bot 15:26:32 <vponomaryov> bswartz: I see, I meant that we have some reference branch in that case 15:26:34 <jungleboyj> Awwww, no pewp bot 15:26:43 <gouthamr> he ded 15:26:53 <bswartz> probably just doesn't know about this channel 15:27:13 <jungleboyj> bswartz: Also, should document that you are supporting this process. 15:27:24 <bswartz> vponomaryov: yes the driverfixes branch would always fork from the stable branch at whatever time the stable branch closes to non-critical bugfixes 15:27:36 <bswartz> jungleboyj: after the branches exist I'll do the announcement 15:27:44 <gouthamr> okay 15:27:53 <jungleboyj> bswartz: Ok. 15:28:20 <gouthamr> #action: gouthamr will propose driverfixes/mitaka and driverfixes/newton branches and project-config changes to run bitrot jobs 15:28:31 <bswartz> and it's worth noting that critical bugfixes and security bugfixes should go into both the stable branch and the driverfixes branch as long as both branches are active 15:29:01 <bswartz> does cinder currently do this? ^ 15:29:35 <jungleboyj> bswartz: Good point. We should be doing that. I need to make sure we are. 15:29:42 <jungleboyj> I will follow up on that. 15:29:44 <ganso> bswartz: the order of merging could diverge and cause cherry-picks into stable branches not suceed cleanly 15:29:56 <bswartz> ganso: yes 15:30:10 <bswartz> maintaining branches causes many issues 15:30:23 <bswartz> that would be the main argument against doing this exercise 15:30:32 <bswartz> but I think we believe the benefit is worth the cost 15:30:53 <ganso> bswartz: I guess we just gotta be extra careful... we don't rebase stuff on our repos/branches 15:31:28 <bswartz> anything else on this topic? 15:31:42 <bswartz> #topic Open Discussion 15:31:42 <gouthamr> nope.. 15:31:47 <bswartz> any other topics for today? 15:31:51 <zhongjun> I have a simple one 15:32:11 <bswartz> yes? 15:32:12 <zhongjun> As we did it before, we just pop the parameter in old API version when we add a new parameter in API. such as: we add 'is_public' in manage API. Do we really need to raise BadRequest in old API? 15:32:12 <zhongjun> 22:45 such as: https://github.com/openstack/manila/blob/master/manila/api/v2/shares.py#L187 15:32:46 <vponomaryov> #link https://review.openstack.org/#/c/461712/29..32/manila/api/v2/shares.py 15:33:04 <vponomaryov> ^ this is the point of question 15:33:22 <zhongjun> Should we check, whether these keys are provided or not. If they are provided with old API , then need to raise "BadRequest" 15:33:51 <gouthamr> okay zhongjun: this is not a simple one 15:33:57 <vponomaryov> "these keys" are the ones that are supported by newer API and not supported by existing OLD one 15:34:25 <bswartz> do we have this problem because we're not rejecting extraneous inputs today? 15:34:31 <gouthamr> yes 15:34:44 <zhongjun> gouthamr: :) It could be a big change for API 15:34:51 <gouthamr> we have known for a while that sending invalid inputs doesn't blow up some of our APIs 15:34:51 <bswartz> I thought there was an effort some time back to validate requests and reject anything that doesn't strictly match what's allowed 15:35:02 <gouthamr> and for one, queries on all of our APIs 15:35:31 <gouthamr> you can send any filter key you want iirc and you'll not see 400 BadRequest 15:35:40 <gouthamr> vponomaryov: is that wrong? ^^ 15:35:50 <bswartz> if there are places were we allow garbage input today, then the correct thing to do is to fix those places to throw errors and to microversion those changes 15:35:52 <vponomaryov> gouthamr: I consider it a bug, yes 15:36:20 <gouthamr> vponomaryov: then the fix needs to be generic.. i disagree that we add new query parameters and only disallow those in older versions 15:36:21 <bswartz> however for backwards compatibility, older microversions should continue to allow garbage 15:36:29 <vponomaryov> gouthamr: bug wiiiith looooong grey beard 15:36:53 <gouthamr> vponomaryov: and such a fix should begin at a new microversion 15:37:09 <xyang1> gouthamr: +1 15:37:36 <bswartz> we can be more nuanced here though 15:38:01 <bswartz> allowing garbage is only desirable if there is a conceivable reason such garbage would have been sent in an otherwise valid request 15:38:05 <vponomaryov> yes, big nuance is that we have keys that are supported in other microversions and common garbage 15:38:36 <bswartz> if the garbage indicates a broken client then it's probably kinder to actually generate an error and let the user know their client is broken 15:39:50 <bswartz> I'm trying to understand the change in question and the comments here: https://review.openstack.org/#/c/461712/29..32/manila/api/v2/shares.py 15:39:53 <gouthamr> (GIGO :) you can't stop all madness.. only some of it) 15:40:27 <zhongjun> gouthamr: +1 haha 15:40:40 <bswartz> gouthamr: as you know I have no problem breaking backwards compatibility when the old behaviour was clearly wrong 15:40:46 <gouthamr> okay, my point there being vponomaryov wanted older microversions to be changed for the query params: export_location_id and export_location_path 15:41:05 <bswartz> where we need to be careful is when we might break something that currently works fine 15:41:47 <zhongjun> We have many places now, do we need to fix it? if it is a bug 15:42:15 <bswartz> it's always a bug if we accept garbage 15:42:38 <bswartz> the question is whether to fix those bugs by disallowing the garbage always or only after a certain version 15:42:51 <gouthamr> bswartz: we used to accept, but ignore.. so zhongjun's previous patch just popped those out of the request dictionary 15:42:54 <zhongjun> ok, we always accept garbage :) 15:43:14 <gouthamr> bswartz: so it maintained backwards compatible behavior that garbage will be ignored 15:43:32 <bswartz> okay that sounds like a good thing 15:43:43 <gouthamr> bswartz: i agree with vponomaryov that we should never ignore garbage (and we should throw it back at the requestor.. :P) 15:43:44 <bswartz> I'm still confused about who is arguing for what 15:44:21 <gouthamr> bswartz: but that fix should be from a new version.. :) 15:44:28 <bswartz> WHY IS THERE SO MUCH GARBAGE?!? 15:44:49 <bswartz> gouthamr: generally speaking, yes 15:44:51 <jungleboyj> We are a wasteful society. 15:44:51 <vponomaryov> I am ok with error'ing for garbage, but not making it a blocker for existing features 15:44:52 <zhongjun> May be we alway copy code 15:45:24 <vponomaryov> zhongjun: new API dir for new microversions? ))) 15:45:29 <bswartz> zhongjun: are you clear on what you need to do? 15:45:49 <ganso> as long as old microversions still work for the parameters that weren't garbage before, I see no problem 15:45:49 <bswartz> I think this can be solved with an if statement 15:45:59 <zhongjun> bswartz: ok, just cleaning garbage from me 15:46:05 <ganso> btw 15:46:10 <bswartz> if version >= new version: 15:46:15 <ganso> I figured maybe a change like this could be worthy of v3 15:46:15 <bswartz> garbage is an error 15:46:27 <gouthamr> ganso: YOU EVIL YOU 15:46:40 <bswartz> v3 will be needed when we change the versioning scheme itself 15:46:41 <ganso> gouthamr: lol 15:46:59 <bswartz> until then we march towards 2.99999999999999999999999999 15:47:09 <vponomaryov> ganso: you tried )) 15:47:29 <ganso> vponomaryov: and failed 15:48:07 <bswartz> okay other topics? 15:48:30 <bswartz> I'm working on a new helper for NFS https://review.openstack.org/476239 15:49:09 <bswartz> it's not passing tests yet but I hope it will make things more reliable when its done 15:49:09 <gouthamr> dejavu 15:49:39 <gouthamr> bswartz: this is unrelated to teh ipv6 changes in LVM? 15:49:46 <tbarron> i like its size 15:49:55 <gouthamr> tbarron: heh, no unit tests 15:50:11 <bswartz> gouthamr: it's not strictly necessary, but I think it might be desirable 15:50:55 <bswartz> gouthamr: unit tests after it passes functional tests 15:51:25 <bswartz> anyways I'll ask for reviews when that's actually working 15:51:29 <ganso> bswartz: it is clearly visible that you don't do TDD 15:52:12 <bswartz> ganso: that's true 15:52:16 <bswartz> I'm not trendy 15:52:41 <tbarron> gouthamr: it's about a third the size in functional code of what it replaces, let's see if it has the same functioinality 15:52:56 <tbarron> well, bswartz is a trendy dresser 15:53:02 <gouthamr> haha.. 15:53:34 <bswartz> okay I think we're done 15:53:36 <bswartz> thanks all 15:53:40 <zhongjun> thanks 15:53:47 <bswartz> #endmeeting