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