13:31:23 #startmeeting ci_scrum 13:31:24 Meeting started Thu Nov 17 13:31:23 2016 UTC and is due to finish in 60 minutes. The chair is esberglu. Information about MeetBot at http://wiki.debian.org/MeetBot. 13:31:25 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 13:31:28 The meeting name has been set to 'ci_scrum' 13:31:40 #topic status 13:32:02 In the future we should do powervm ci scrum, then all the logs go under the same directory out on eavesdrop 13:32:19 o/ 13:32:24 \o 13:32:36 o 13:32:51 Haven't had enough coffee to raise hand 13:33:35 I looked at the dir online and it just says ci_scrum? 13:34:05 Yeah, in the past I was doing powervm ci meeting 13:34:15 So they were going to http://eavesdrop.openstack.org/meetings/powervm_ci_meeting/ 13:34:28 If you keep giving it the same name each time they all go to the same directory 13:34:47 Not a big deal 13:35:03 Oh I had the wrong bookmark 13:35:06 http://eavesdrop.openstack.org/meetings/ci_scrum/ 13:35:22 We must have done it there once or something 13:35:31 Anyways 13:35:44 Status - stop everything until CI is running? 13:35:56 I did end up getting a run to go through last night 13:36:03 But still seeing the same behavior 13:36:24 elaborate? The pypowervm issue certainly isn't fixed 13:36:47 Yeah. But I put USE_CONSTRAINTS=false 13:36:54 that worked? 13:36:56 Didn't we think that would work around? 13:37:00 It did not work 13:37:06 we thought it might. 13:37:13 is everyone aware what the pypowervm issue is? 13:37:21 adreznec? I'm not sure if you were yet 13:37:28 So we're still seeing constraints issues? 13:37:47 Why here and not in the upstream gate? 13:37:51 devstack installs from the requirements file. Which then blows away our local install (with the local2remote patch) 13:38:50 Hmm 13:39:05 before we dive into that (and I'd like to do a deep dive on that) 13:39:13 are there any other items we need to chase esberglu? 13:39:23 otherwise the meeting will get away on us with that rabbit hole 13:39:48 I still need to do work on the post stack vm cleaner script 13:40:49 And neo 6,7,8 stop working last night. Probably just need to restart vio_daemon 13:41:03 esberglu: was that just the lu clean up? 13:41:11 Just... stopped working? 13:41:20 without the CI running/doing anything? 13:41:23 adreznec: apearson is adding in a 'heartbeat' of sorts for that. 13:41:37 * adreznec sighs 13:41:42 yuh 13:41:53 so manual restarts for now, update of novalink in future should help 13:41:58 thorst_: It looked like the LU thing. It happened after I was clearing out the nodes so I could deploy with USE_CONSTRAINTS 13:42:46 But it wouldn't let me delete the LUs or the VMs 13:44:26 I didn't spend too much time looking at it, was more interested in getting a run through the CI 13:45:00 esberglu: alright. 13:45:30 #action thorst to follow up with apearson on vio_daemon thing 13:45:54 #action esberglu to work on the clean up script for lu. Possibly restart vio_daemon depending on how far along that is in NL 13:46:52 any other items? 13:48:35 Not from me 13:49:14 You guys ready to talk about the pypowervm versioning then? 13:49:47 esberglu: do you have a link to a run that we saw this issue/ 13:50:11 So if I understand correctly it's happening because pypowervm is now a global-req, which because our stuff now as a real requirement.txt requirement on pypowervm is causing pypowervm to be installed down the develop branch path I put in, erasing our pre-installed version of pypowervm 13:50:49 adreznec: well, it doesn't erase it 13:50:52 9.114.251.93:8080/job/nova-powervm-pvm-dsvm-tempest-full/304/consoleFull 13:50:55 but yeah, effectively. 13:51:13 Crap not what I meant to paste 13:51:27 heh 13:51:53 http://184.172.12.213/15/328315/20/check/nova-powervm-pvm-dsvm-tempest-full/84aad2b/ 13:52:08 Does it not install over the top of it? 13:52:22 adreznec: Search for this timestamp: 2016-11-16 20:27:46.703 13:52:36 It would be relatively easy to fix this in our CI - our scripts download the requirements project first, then hack the pypowervm lines out of global-requirements.txt and upper-constraints.txt, then proceed with the rest of devstack - but fixing it for our devstack in general is going to be tougher. 13:52:37 Here's one suggestion, not particularly pretty: 13:52:37 We start by re-syncing 1.0.0.4 into 1.0.0.3.9. 13:52:37 Then moving forward, we write any new pypowervm function into nova-powervm itself (or whichever out-of-tree driver needs it), while continuing to develop against 1.0.0.4. 13:52:37 Then periodically, we release a new version of pypowervm to pip (1.0.0.3.9.1, 1.0.0.3.9.2, ... just kidding) and update the global requirements. 13:52:37 Once that merges, we update nova-powervm accordingly, removing that functionality and repointing its usage from the temporary nova-powervm code to the released pypowervm code. 13:53:25 the challenge with that is that we don't want frequent updates to the global-requirements.txt. 13:53:45 Right, so when I say "periodically" above, we're talking once or twice per release. 13:54:02 (openstack release, that is) 13:54:13 then we lose the flexibility that we have now of getting fixes across multiple components (in a short period of time) for the out of tree driver 13:54:21 Yup. 13:54:26 Yeah, that's kind of a pain 13:54:50 It's pretty rare that we need something from pypowervm in multiple out-of-tree drivers, neh? 13:54:54 I think that's 100% right for in-tree...in fact I'd like the in-tree to use 1.0.0.4 basically once that goes out, even after pypowervm goes to 1.0.0.5 13:55:04 at least support it. 13:59:43 I like the idea of having the out of tree potentially overwrite the req. 14:00:11 Can we accept that it won't work for devstack in general? Only for CI? 14:00:16 no 14:00:20 we need a devstack'd solution 14:00:55 I'd accept that we don't have the right answer for now...and maybe the work around is that we have something in the nova-powervm (or c/n) devstack scripts tweak the upper-constraints 14:01:05 and that we need to dwell on this a bit. 14:01:56 Would need to confirm this, but I believe the devstack scripts run really early, as soon as the project is collected. 14:02:31 The problem there is that we don't know for a given devstack run whether nova-powervm is collected before or after the requirements project. 14:02:50 It's not deterministic. 14:03:24 Which is kind of the point of global requirements - to at least make the levels of everything deterministic regardless of the order they happen to come in. 14:03:34 so it only installs for projects that require it. Right now that's nova-powervm, networking-powervm, and ceilometer-powervm (and at some point nova) 14:03:42 so it would be called before that 14:03:47 but potentially, quickly changed. 14:04:00 because nova would be the first thing called. 14:04:20 so it's deterministic right now... 14:04:54 I think the 'hack' (and it is a hack) is two stages. 14:04:58 We can't get away with having nova's devstack scripts muck with the requirements. 14:05:06 1) our devstacks tweak the upper-limits 14:05:39 2) once in nova, we know that nova will go before nova-powervm. So there nova-powervm would have to uninstall what nova put in, then let the other install go through. 14:05:59 the other install being what we developed in 1 14:06:11 core nova won't muck with it. That's a no go. 14:06:15 nor should it. 14:06:21 that'd be...awful. 14:08:16 thorst_, I think we can implement both pieces at the same time. 14:08:37 Basically *-powervm uninstalls any pypowervm that happens to be there and installs the right version. 14:08:47 efried: possibly, but if we separate out and get one before the other...then I'd like to do what's quickest 14:09:10 (unless its like a couple hour difference) 14:09:48 Uninstalling 'any pypowervm that happens to be there' basically assumes it was pip installed 14:10:03 Unless we're going to get in the game of doing apt/yum removes, etc 14:10:08 Which sounds gross 14:11:55 adreznec: well, we'd just pip uninstall 14:11:59 not apt-get uninstall 14:12:10 I think part of this comes back to our pypowervm versioning being broken 14:12:13 again 14:12:16 yup 14:12:42 Right, because if we had proper versioning this wouldn't be a real issue 14:13:03 We could bump upper-constraints to something reasonable 14:13:31 and not worry about it ripping this version out from under us 14:14:29 adreznec, wouldn't we still have the moving-target problem? 14:14:44 Assuming we can't update upper-constraints twice a week whenever we put something new in pypowervm 14:14:57 and wouldn't it be well know that version 2.0.x doesn't exist, so how can that realistically be an upper-constraint 14:15:03 Sure, but so does everyone else in openstack... it makes things a bit less flexible, I agree 14:15:29 Right, I have to assume you can't put a version number that doesn't exist into requirements. Or that'd be a snap. 14:15:40 unless you can? 14:16:03 Even if you could, I'd imagine the reqs team would -1 that patchset if they caught it 14:16:34 Otherwise it kind of defeats the entire purpose of upper-constraints, no? 14:16:39 For sure. 14:16:43 That's what we're trying to do. 14:16:47 Look, our upper-constraint is version 9000! 14:16:48 Defeat the entire purpose of upper-constraints. 14:16:50 Right 14:17:17 I'm still finding it tough to believe that nobody else runs into this on a regular basis. 14:17:18 Our goals are very different from their goals here since this is basically a development branch of an out-of-tree driver 14:18:07 Yeah, I looked at the compute-hyperv driver 14:18:10 back to the 'out-of-tree driver should isolate its weirdness in itself' 14:18:16 But they just bump os-win 14:18:34 and requirements 14:18:42 How frequently? 14:19:05 https://github.com/openstack/os-win/releases 14:19:09 Not that frequently 14:19:53 So thorst_, give it to me again why the lockstep approach wouldn't work? (Accumulating function in nova-powervm and then, a couple times a release, "moving" it over to pypowervm.) 14:20:57 efried: well that was my request earlier. Can we get more frequent releases of pypowervm without driving the whole train along with it. 14:21:01 which perhaps we can. 14:21:06 I know this won't work for all cases. But for now in the CI couldn't we just update the pypowervm requirement everywhere we need to before devstack even starts 14:21:24 esberglu, yes, but we need a solution that works for devstack in general. 14:21:26 esberglu: no, cause its too high a version, so upper constraints installs over it 14:21:41 esberglu: sorry, I misread. 14:21:57 efried: Yeah I just meant for now. So we can get CI up 14:22:56 esberglu: yeah, lets I guess do it for now. 14:23:25 #action esberglu: Change pypowervm requirements before CI runs 14:25:18 alright...lets do that for CI, cool off and figure out how the heck we do this moving forward. 14:25:41 Sounds good. Anything else before I end the meeting? I know we are way long 14:26:12 It looks like, if we wanted to do this in the *-powervm projects' devstack scripts, it would install over the top of 1.0.0.3.9. 14:26:41 ...which gets pulled down *with* each *-powervm in a way we have no control over. 14:27:12 yep. Lets close up meeting here 14:27:15 we can still discuss 14:27:28 #endmeeting