21:00:06 #startmeeting swift 21:00:06 Hi 21:00:09 hello 21:00:11 Meeting started Wed Nov 16 21:00:06 2016 UTC and is due to finish in 60 minutes. The chair is notmyname. Information about MeetBot at http://wiki.debian.org/MeetBot. 21:00:12 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 21:00:13 o/ 21:00:15 The meeting name has been set to 'swift' 21:00:18 who's here fro the swift meeting? 21:00:19 hi 21:00:19 o/ 21:00:22 hi 21:00:26 o/ 21:00:26 hi 21:00:28 o/ 21:00:31 o/ 21:00:31 hi 21:00:33 o/ 21:00:41 hi 21:00:52 welcome everyone 21:01:24 hi 21:01:25 like last week, not much on the agenda. but that's not a bad thing ;-) 21:01:26 #link https://wiki.openstack.org/wiki/Meetings/Swift 21:01:32 #topic ptg 21:01:43 again, reminder to get your ticket for the ptg 21:01:47 o/ 21:01:52 and there were some questions that came up about hotels 21:02:12 there's a block in the hotel where the ptg is, but some people had pointed out that nearby hotels were cheaper 21:02:27 timburke: acoles: I think? 21:02:49 i think tdasilva mentioned it first 21:02:57 somebody 21:03:06 so a question that some people had was around when peopel were planning on getting there (early or mid week) 21:03:15 yeah, or maybe zaitcev 21:03:36 I saw an email to -dev pointing out cheaper alternatives 21:04:13 timburke: what were your questions you asked me this morning? 21:05:07 oh, mainly just whether it would make sense for a bunch of swifters to invade a cafe or something mon-tue 21:05:43 there will be the cross project sessions mon-tue 21:05:50 So long as there were no cross project stuff happening on those 2 days, sounds cool. 21:06:14 and from the ML, if we have things to address there, it's largely up to us to get on the agenda which is set by the teams meeting on those days 21:06:18 timburke: i'm going to try to participate in some horizontal team sessions mon-tue - it's kinda the point of the ptg instead of mid-cycles? 21:06:30 o/ 21:06:57 true. but how much of that time will actually be relevant to us? 21:07:20 ptg == the dev sessions of the summit, including cross project stuff 21:07:22 timburke: all horizontal work is relevent to everyone by definition 21:07:41 timburke: i'm trying - really trying 21:08:01 clayg: you're doing great :-) 21:08:09 clayg: to a point right? 21:08:11 i'm not opposed to sitting in on sessions that aren't directly and immediately relevant, but sometimes i want to get some shit done 21:08:26 notmyname: i don't really buy it - as long as swift developers get to *go* summits - design will happen at summits 21:08:51 ptg is replacing my mid-cycle travel - so it's going to have to do the job we normally do at mid-cycles - come summit time we'll make the best of what we've got 21:08:52 clayg: there is no summit any more. that doesn't exist. there is the ptg and the forum. 21:08:58 if it doesn't work we re-orient 21:09:24 yes, that's true. and practically all that really matters 21:09:35 sorry - yes - the forum - there will be feedback from operators and design work happen at *the forum* as long as swift operators and swift developers are *at* the forum (t.b.d.) 21:10:22 yes. but from what I've heard, forum == marketing talks and expo hall, and oh yeah I guess ops can have a room 21:10:40 notmyname: be more optomistic! 21:10:57 we don't need to rehash the ptg/forum/summit/midcycle changes yet again this week :-) 21:11:10 no one wants to ruin everything for everyone - if it happens - it was just an accident - we can trust everyone to observe that and correct 21:11:13 back to the ptg: clayg will be participating mon-tue in cross project 21:11:22 long curve of history bends postive yada yada yada 21:11:31 sure will! 21:11:39 and other people should too :-) 21:11:50 swift-specific sessions will be wed-fri 21:11:50 yes I figure we should 21:11:55 but that may acctually be a good oppertunity for the swift community to get some real work done without my constant disruption! 21:12:10 lol 21:12:16 +1 21:12:23 I'll be busy at least in part in the first 2 days. 21:12:38 mattoliverau: kolla!? 21:12:40 Ansible stuff, maybe some release if Tony has his way :) 21:12:47 nice 21:12:48 noice 21:13:05 in australia, kolla is known as "drop-containers" 21:13:11 /badly phrased joke 21:13:29 This time I hope to get there early and get a jetlag day, but really thats in the hands of the travel peeps, but I can nag :) 21:13:34 kolla->koala->drop-bears 21:13:43 notmyname: lol 21:13:50 notmyname: it's not as fun when you have to explain it 21:14:06 :D 21:14:11 I see what you did there. Shame there aren't move Aussies in the room 21:14:21 more 21:14:24 clayg: you just gotta go visit australia more often ;-) 21:14:26 and here i thought dropbear was an sshd 21:14:29 +1000 21:14:48 ok, on to other stuff. seems ptg discussion has moved on 21:14:53 #topic other stuff 21:15:14 i have a thing! 21:15:16 FYI https://review.openstack.org/#/c/336323/ will change test requirements 21:15:20 oh... 21:15:26 oh.... 21:15:42 as in, your existing SAIO will likely break. gotta have /tmp (or TMPDIR) as an XFS mount 21:15:49 yay, progress! 21:15:55 so, be aware. and beware 21:16:00 clayg: what's your thing? 21:16:10 notmyname: doesn't it ust make you saio skip a bunch of unittests until you fix it? 21:16:28 yep. tests will totally pass (see the current CI output). everythign is fine! 21:16:37 notmyname: i don't see that touching the doc/saio/ tree.... 21:16:40 notmyname: oh, it's just fun stuff - you remember the openstack principles documnt? it's actually changed quite a bit since it was first drafted -> https://review.openstack.org/#/c/398540/ 21:16:44 just about 1/3 of unittests skip and about 98% of functests skip 21:17:03 so it also speeds up our tests.. nice ;P 21:17:06 timburke: good point on the docs! :) 21:17:07 lol 21:18:18 clayg: yeah, that's a much better phrasing 21:19:26 I have one more thing to bring up, but I want to make sure that other people have an opportunity too 21:19:45 anything else from anyone before we talk about EC libraries and releases? 21:20:40 ok, release stuff then 21:20:58 the swiftclient release was approved, so that's good 21:21:04 but we still want to do a swift release 21:21:16 notmyname: oh yeah... what are waiting for? 21:21:43 if you've seen the patches in gerrit, kota_ (mostly) and clayg have been figuring out an issue related to liberasurecode 21:22:09 so there's been a 1.3.1 release of liberasurecode (here on out called "libec" to save typing) 21:22:32 so here's the deal: it seemed like the libec stuff was just about done back when we started looking at the swift release 21:22:58 it would be really good to release swift with requirements that force deployers to pull libec up to 1.3.1 21:23:13 however, nobody has a good idea on how to get that done 21:23:33 ideally, we'd release pyeclib to require libec>=1.3.1 21:23:57 however, that patch can't land because the gate tests will pull in libec from distros. which haven't packaged 1.3.1 yet 21:24:16 interestingly, this is one expression of a common problem 21:24:37 we've seen the same thing in the past for swift/swift3 and if we have to split golang into a different repo, we'll have the same issue there 21:24:45 so here's the options, as I see them now: 21:25:08 1) redo tests to install the dependencies from source and test that way 21:25:27 2) release now anyway and have a strongly-worded commit message and hope deployers read it 21:25:34 3) ??? 21:25:57 so I was hoping for some resolution that could apply to a swift release. but this is where we are 21:26:06 i'm not sure of the best way forward 21:26:31 I don't think what we want out of the swift release is related to the libec 1.3.1 release? 21:26:50 isn't there some other critical fixes in the swift code that we need to get out? even if it doesn't help with issue in the libec code? 21:26:51 clayg: deployers to not have a massive footgun 21:26:52 notmyname: thanks for bringing up it, that's what I've been fighting recently 21:27:11 ok, go kota_ ! 21:27:32 yeah, kota_ has been doing great work here. kota_, did I summarize it ok? 21:27:49 notmyname: an idea for a solution, I'm draftign the hard coded dependency in-side of pyeclib, https://review.openstack.org/#/c/395998/ 21:27:54 (rephrased) clayg: deployers to not have a massive footgun with some combination of dependencies 21:28:09 notmyname: fwiw - the nova folks hit this with libvirt and neutron with ovs/ovn too - so it certainly raises its head in a bunch of places ... I've been trying and failing to find a general solution for a while 21:28:15 notmyname: ah, it's kinda 1) you said above. 21:28:31 I do not have one, mind you 21:29:09 oh, another option (IMO not terrible) is to combine the libec and pyeclib repos so they can be released at the same time (just with multiple deliverables). that gets rid of one layer in the puzzle in this case 21:29:28 mordred: any insight is appreciated 21:29:54 notmyname: most of what I've got right now would be restating problems 21:30:25 biggest issue with combining libec and pyeclib is that it still doens't solve the issue of pyeclib needing to be able to link against libec at pip install time AIUI 21:30:35 right 21:30:48 kota_: what do you want to do? 21:30:50 notmyname: obviously the original intention for liberasurecode was that it would be an underlying shared library that could have bindings in different languages - when we accepted that dependency we agreed to carry that burden - i'm not sure it's fair to kevin and tushar to change that design - but obviously we have a choice about what swift does 21:30:53 tdasilva: any thoughts? 21:31:23 mordred: true, that's the reason, we wanted to solve when spliting repo. 21:31:35 notmyname: what clayg just said, plus i'm wondering if we are creating a artificial dependency for this upcoming release 21:31:39 kota_: ++ 21:31:51 tdasilva: what do you mean by artificial? 21:32:03 notmyname: not have strongly opinon as well as you for now 21:32:07 kota_: ok 21:32:21 notmyname: do the fixes that went into swift work with the existing libec/pyeclib? 21:32:29 still trying to find the best way... 21:32:34 notmyname: not to put words in tdasilva's mouth - but seriously we need to release critical fixes in swift/obj/ that have *nothing* to do with this right? 21:32:56 the fix in libec is very isolated to libec right 21:33:00 ? 21:33:01 clayg: true. I had only hesitated because I underestimated the dependency challenge for libec stuff 21:33:05 tdasilva: right 21:33:30 so, release swift now, no changes to dependencies for swift 21:33:55 * mattoliverau is sorry but has to run, have a meeting in Canberra that I need to drive in for. 21:34:05 mattoliverau: o/ 21:34:06 mattoliverau: exciting! 21:34:09 enjoy! 21:34:26 :) 21:34:38 notmyname: fwiw i know zaitcev is working to package new version of libec 21:34:47 that's great to know 21:35:43 so if we release swift now, without dep changes, should swift have a changelog note saying that deployers should upgrade libec? or watch out for different combos of libraries? 21:36:24 seems like the responsible thing to do, although it doesn't technically seem to be needed since there are zero changes in swift about it 21:36:51 thoughts? 21:36:52 kota_: can you confirm that it would be *possible* to have a body of code with all the performance benifits of libec provide the ec interface that swift needs and be built/released *entirely* from code that can be tagged and released into the OpenStack gate via pypi? 21:37:10 mordred: what does neutron nova do in these situations? changelog note with telling people to upgrade libvirt? 21:38:04 tdasilva: they wait 21:38:13 clayg: the "via pypi" is the hard part right? 21:38:15 until the version of whatever they want is in the distros 21:38:41 ... granting that may not be *desirable* for various reasons - but basically just removing the extrenal linking to libec by inlining the c code that the cpython code in pyeclib calls? 21:38:51 clayg: it should be phyiscally possible, yes 21:39:17 either, 1. pyeclib includes libec code and built (seems hard work) or 2. devstack plugin can make it install libec from source ???(still need to make sure) 21:39:27 not sure, right now. 21:39:33 clayg:^^ 21:39:47 tdasilva: that is obviously not a _great_ way to write cutting-edge stuff ... thus the 'problem' - but I believe there are a bunch of feature flags of the kind "if libvirt version > blah" 21:39:55 mordred: interesting. one tiny difference here is that the non-openstack dependencies here are pretty much maintained by swift devs. so it's the same people waiting on distros to use their own code 21:40:12 the deficality including libec to pyeclib is from the permission AFAIK 21:40:15 notmyname: yes. this makes the problem more crazypants 21:40:38 libec need to be located in sort of /usr/local/lib (means out of python package) 21:40:48 and pyeclib will be in virtualenv 21:41:09 to locate libec from pyeclib setupper, it requires root permition 21:41:20 notmyname: but it's still a very similar problem - openstack wants to tell the distributors it needs a new version of $lib - we do it fine for python libs, but not for C libs 21:41:34 mordred: or potentially golang ;-) 21:41:36 permission 21:41:37 like, we certainly don't wait for distros to update python libs before we update python requirements 21:41:49 notmyname: yah - basically anyting not-python we have no story for yet 21:41:54 other than "wait for it to exist in the distros" 21:42:18 kota_: I'm currently mucking in the project config stuff to do things that require root. it's possible, but not straightforward, to install something as root before our tests get called 21:42:34 mordred: fwiw, that exception for python libs was never obviously correct to me - i understand it being more convenient - but not more correct 21:42:37 notmyname: how about, making 'warning log line' in pyeclib if older libec found 21:42:48 the 'obvious' solution - which is host our own repo of distro packages that leads the release ... has the problem that it winds up becoming a production dependency for deployers even when we tell them to not rely on it for production since it's not getting security updates 21:42:57 notmyname: it's still week but we can notify to upgrade for operators via warning log 21:42:59 clayg: totally 21:43:01 wak 21:43:04 weak 21:43:47 clayg: it just happens to be the one we have a ready mechanism to be able to communicate in a release what versions of a thing we need if someone wants to package us - definitely not indicative of having solved the problem holisitcally 21:43:54 kota_: and then when distros have libec 1.3.1 we can pull that out in favor of the hard version requirement? 21:44:08 notmyname: sure 21:44:20 kota_: that seams reasonable, I think 21:45:16 mordred: that's an interesting perspective - sheds a longer term attractive light on bindeps ;) 21:45:37 anyone else want to weigh in on kota_'s suggesting for libec and pyeclib? 21:46:28 notmyname: we need to have a release-announce list for liberasure is my basic understanding 21:46:31 mordred: clayg: the thing with pypi is that we can push there, right? that's the only thing that pypi gives us that makes the python story at allr easonable 21:46:37 then we need to tell people that package stuff to be on the list 21:47:04 mordred: are non-governance openstack/* projects allowed to use the release announce list? 21:47:18 ie pyeclib and libec 21:47:28 notmyname: I do not know the answer to that ... swift certainly is allowed to :) 21:47:47 ok 21:47:56 notmyname: idk, it makes it *work* - not sure it's "reasonable" - if a deployer is using packaged python-foobaz from distro-bar linux - us pushing to pypi doesn't really change their situation? 21:48:20 clayg: yeah, I agree 21:48:31 we assume people deploy swift from "some random sha on master" (we do, we know other people that do) - but for people who use distro packages none of this effects them 21:48:39 they're still at the whim of the release cycle of their distro 21:48:43 clayg: it doesn't - but since we test with the version on pypi, we're signaling to the people packaing the next release of openstack that they should darned well also package the appropriate version of the python lib 21:48:58 so we need to tell the distros - yo liberasure 1.3.0 will hurt you bad 21:49:29 mordred: have our own apt/yum repo that are firewalled to only allow CI nodes to access them? ;-) 21:50:35 notmyname: yah :) 21:50:39 notmyname: so is the proposal that we cut a release now with pyeclib warning/suggesting upgrade to libec (but not requiring), then when libec upgrade is in distros we release again and require latest libec? 21:50:44 notmyname: honestly I've heard talk of doing some testing/ci from nightly built distro packages - if we could push a tag to liberasurecode and get new packages in the gate we'd be *pretty* close to what we need 21:51:08 clayg: we've already pushed the tag :-) 21:51:13 ... still doesn't really effect the "what happens to deployers pulling from distros after the gate" question - that's a problem for liberasurecode release announce list 21:51:23 ++ 21:52:23 we've gotten feedback at ops summits that there is actually a fairly wide range of folks deploying from distros, from pypi/source and from their own built distro packages - none of the three were a clear winner, so they're all certainly real problem spaces 21:52:27 notmyname: i think swift works with libec 1.3.0 and swift doesn't need to change (we should do a release tho, it's unrelated and not blocked) 21:52:31 acoles: ^ 21:52:32 current idea is that we release swift with a changelog mentioning that deployers shoudl upgrade libec. then we also release pyeclib with a warning if libec<1.3.1. then after libec is in distros, roll those hard requirements forward through the dep chain 21:53:14 acoles: we should *also* annouce liberasurecode packages - if you run swift + ec your realm of pain is a little bigger than *just* bugs in the swift repo unfortunately 21:53:27 that sounds like a great plan - at least until such a time as we have a better one 21:54:20 acoles: kota_: clayg: tdasilva: jrichli: sound good? 21:54:23 notmyname: yeah, it think your plan is more than the minimum required 21:54:39 notmyname: but we *have* to figure out how to annouce releases to libec that's that the swift release notes? 21:54:57 sounds a good way in current situation 21:55:03 +1 21:55:12 got it. +1 21:55:14 notmyname: just a little concerned about the pyeclib warning message??? can kota_, notmyname explain that part again?? 21:55:16 i don't have better idea than it for now. 21:55:32 clayg: I think that's pretty easy. I've sent emails there myself in the past, and I think we can set up libec tags to be announced 21:55:48 ohkay cool! 21:55:59 tdasilva: patch pyeclib to detect installed version of libec and emit a warning if <1.3.1 is detected 21:56:12 tdasilva: not yet, prepared but i can make a patch for that for pyeclib. pyeclib can detect the libec version from c header 21:56:41 tdasilva: then once 1.3.1 is actually available in distros, we swap the warning for an actual hard dependency on >=1.3.1 21:56:42 tdasilve: and if pyeclib find the older version, we can dump a log line to somewhere (e.g. syslog) 21:56:47 is that really necessary? i'm afraid it will just raise bugs from people that see the warning and the solution is really just wait for the libec to be packaged and deployed 21:57:14 if the alternative is "slowly and silently corrupt data" then, yes. totally necessary :-) 21:57:59 and, hey, if distros bundle new versions, we can go through that process quickly 21:57:59 tdasilva: another solution is built from source by deployer 21:57:59 no no, i mean, is the warning message necessary right now if we just plan on putting the hard dependency later 21:58:16 instead of waiting distro updated 21:58:31 tdasilva: well, i'm not sure that it's actually necessary, but it seems like the right thing to do 21:58:55 ok, don't want to confuse matter further 21:59:16 tdasilva: exactly, it may be redandunt though 21:59:28 seems we've, yet again, taken a short meeting agenda and managed to fill a full hour :-) 21:59:39 thank you everyone for coming. and thank you for working on swift 21:59:51 I'll work on the swift release process and get that finished up this week 21:59:57 #endmeeting