/srv/irclogs.ubuntu.com/2013/11/21/#juju-dev.txt

thumperfark!!!!02:30
thumperrsyslog is fiddly02:30
axwindeed, and the config format is arcane02:31
thumperhmm...02:31
thumperI think I broke something02:31
thumpera bugger02:33
thumperugh02:33
thumpercopy and paste error02:33
* thumper does the destroy, make, bootstrap dance02:33
axwmake?02:34
axwoh, you use make to build?02:34
thumpermake install02:34
thumperjust does: go install ./...02:34
thumperbut easier to type02:34
thumpermake check does: go test ./...02:35
thumperaxw: so... when is debug-log going to use the API02:35
thumperaxw: I have a feeling we need this backchannel that wallyworld keeps talking about02:36
axwthumper: it uses it now for getting the SSH address, but I guess that's not what you mean :)02:36
thumperaxw: so the api server looks at all-machines.log and filters, streaming info back to the client02:36
thumperright02:36
axwyeah, I don't know - still slogging through destroy-env atm02:36
thumperaxw: when we get it working properly streaming data over the api, then it'll work with the local provider02:36
axwwhat back channel?02:36
thumperI'm getting all-machines.log working for local02:36
thumperthere isn't one02:36
thumperbut we should have one02:36
axwsorry, what does that mean in this context?02:37
thumperit means we could get meaningful informational stuff back to the user02:37
thumperprobably easier to explain in a hangout :)02:37
axwsure02:37
thumper\o/02:37
thumperit works02:37
thumperIT'S ALIVE!!!1!11!!02:38
axw:)02:38
axwhangout now, or are you busy atm?02:38
thumperwhat a fucking mission that has been02:38
thumperabout to go and make a coffee and have a quick sit-down with Rache02:38
thumperl02:38
thumperbut I'll be back after that02:38
axwokey dokey02:38
thumperand we can chat02:38
axwsounds good, ttyl02:38
thumperI could also talk you through these two branches I'll propose02:38
axwcool02:39
thumperone to make the rsyslog udp port configurable02:39
thumperand the other to get the local provider to use rsyslog and all-machines.log02:39
thumperI've also changed the output, so instead of just %HOSTNAME%, we get things like 'machine-1' and 'unit-ubuntu-0'02:39
* thumper goes for a bit02:39
* thumper goes to fix all the broken tests...03:08
thumperdumb script checking in cloudinit03:08
axwthumper: is there a reason why we don't delete the bootstrap state file if bootstrap fails?03:38
thumperum... because we might be 'kinda set up' ??03:39
axwhmm I guess. it does stop the instance if it screws up (it's easier to tell that it failed once it's synchronous)03:39
thumperlocal provider isn't as good, but could be made so03:43
thumperaxw: hangout?03:47
axwsure, just a mo03:47
axwthumper: https://plus.google.com/hangouts/_/76cpiq5hco79gtjcr755e8jsok?authuser=1&hl=en03:49
* thumper is happy that he has figured out some live kvm tests05:08
* thumper is done for now, back for the team meeting05:08
axw_fwereade: hiya. TheMue reviewed my state changes for environment Life, but I thought I'd better wait for you since you reviewed the parent branch07:36
axw_when you have some moments: https://codereview.appspot.com/28880043/07:36
dimiternmorning all08:14
TheMueaxw_: using the uuid check for the id looks better now, thanks08:14
axw_TheMue: cool, thanks for the review08:14
axw_morning dimitern08:14
TheMuemorning08:15
rogpeppemornin' all08:40
axw_morning rogpeppe08:41
jammorning08:43
jamwell, afternoon :)08:43
mgzmornin'09:29
jammorning mgz09:43
jammgz: did you see the recent discussion about maintaining compat?09:44
mgzthe API thread on the list?09:44
jammgz: yeah, abentley reasonably pointed out that Status is something we probably want multi-version compatible09:44
jamso don't be too hasty to tear out the client side code yet09:44
mgzI didn't fully understand his point09:45
jammgz: for CLI API changes that require us to add a new API, we'd like to keep the old code around in the 1.18 client in case it connects to a 1.16 server that doesn't have the new API09:46
mgzbut, I guess that goes for one upgrade step only? we need to remove the mongo access in two stages09:46
jammgz: right. I'm not 100% sure if we want a 1.16 client to be able to do status on a 1.18 but maybe09:47
fwereadejam, mgz: I really don't think we can avoid it09:54
fwereadejam, mgz: 2-way compatibility for minor+2 was always the plan09:54
fwereadejam, mgz: it's just something that we seem to repeatedly fuck up09:54
fwereadejam, mgz: and ofc once we hit 2.0 we need compatibilty all the way back to 2.0 until 3.0 (and even that needs compat back to the final 2.x, I think)09:55
jamfwereade: so I know that we didn't do it for several commands so far (I don't know them offhand, but juju destroy-machine --force comes to mind :)09:57
fwereadejam, indeed so, I definitely fucked that up for 1.16.4 -- but it actually just turned out to be early warning of the same fuckup for 1.1809:58
fwereadejam, casual glance indicates that we've just been doing straight replacement with no fallbacks across the board09:59
jamfwereade: that has definitely been the pattern. I did bring it up to you before09:59
jamit was fine for all the ones that didn't need a new API09:59
jambut the others are all incompatible09:59
fwereadejam, well, fuck, I'm sorry -- I don't recall that, and if I told you to do something stupid then that's all on me10:00
jamfwereade: weekly standup, btw10:01
jamTheMue: are you coming to the standup?10:05
TheMuejam: oh, yep, forgot that it is now, sorry10:06
jamhttps://plus.google.com/hangouts/_/calendar/bWFyay5yYW1tLWNocmlzdGVuc2VuQGNhbm9uaWNhbC5jb20.09gvki7lhmlucq76s2d0lns80410:06
jamTheMue: ^^10:06
jamespagecan anyone help me with the impact and test case for https://bugs.launchpad.net/juju-core/+bug/123950810:16
_mup_Bug #1239508: Empty constraint value lost during some cloud-init step <cloud-init> <juju-core:Fix Committed by thumper> <juju-core 1.16:Fix Released by thumper> <juju-core (Ubuntu):Fix Released> <juju-core (Ubuntu Saucy):New> <juju-core (Ubuntu Trusty):Fix Released> <https://launchpad.net/bugs/1239508>10:16
jamespage(working the SRU for saucy/1.16.3)10:16
thumpercommitted by me?10:17
* thumper looks10:17
thumperjamespage: look at my comment, I marked it as invalid10:19
thumperjamespage: the bug is erroneous10:19
thumperI filed it, but the bug itself is wrong10:19
thumperthe fundamental problem was the local provider wasn't starting10:20
thumperand I thought that this was the problem10:20
thumperbut it wasn't10:20
jamespagethumper, ah - ok10:20
thumperthe problem was that the startup process was changed10:20
jamespagethumper, I thought that was the case but I was not sure10:20
jamespagethanks10:20
thumpermeaning that the local provider needed to set up the storage earlier10:20
thumperhence the branch connected to that bug just has a "setup bootstrap storage" method10:21
thumpernp10:21
jamespageOK - uploaded for SRU team review - lets see how this goes10:34
jamespageMRE soonish if this goes all OK10:34
jamespageehw, ^^10:38
ehwjamespage: \o/10:38
jamespagefwereade, who's a good person to talk to about what juju-core is doing CI wise?10:43
jamespageI need to evidence sufficient upstream testing as part of the Minor Release Exception we need for Ubuntu10:43
jamjamespage: sinzui and abentley seem to be driving that10:46
jamjamespage: I'm the one that set up the trunk robot for passing the test suite before landing to truk10:47
jamtrunk10:47
jamespagejam: unit testing right? or does that exercise with each provider directly?10:48
jamjamespage: it tests each provider against its double, but not against a live service10:48
jam(eg, not against Amazon)10:48
jamtesting against Amazon is on Curtis's team10:48
jamespagejam: does the robot cover unit testing pre-landing for stable branches as well?10:49
jamjamespage: currently es10:50
jamyes10:50
sinzuiCi tests the candidate works on LXC, AWS, HP, Azure, and Canonistack. It also nominally tests  stable to next are compatible10:50
jamso 1.16 passes the test suite before accepting patches, etc10:50
jamespagethumper, sinzui: I marked bug 1239508 as invalid all round - I got confused so figured others would as well10:50
_mup_Bug #1239508: Empty constraint value lost during some cloud-init step <cloud-init> <juju-core:Invalid by thumper> <juju-core 1.16:Invalid by thumper> <juju-core (Ubuntu):Invalid> <juju-core (Ubuntu Saucy):Invalid> <juju-core (Ubuntu Trusty):Invalid> <https://launchpad.net/bugs/1239508>10:50
sinzuijamespage, Ci also verifies the tarball works with Ubuntu packaging. We are verifying the package upgrade (and downgrade)10:53
jamespagesinzui, is this publically visible somewhere10:54
jamespageuseful for my email to the tech board10:54
sinzuivisible, but the results are not very intelligible at http://162.213.34.53:8080/10:54
sinzuijamespage, I just drafted this as a the kind of report we want managers and engineers to see https://docs.google.com/a/canonical.com/spreadsheet/ccc?key=0AoY1kjOB7rrcdEl3dWl0NUM3RzE2dXFxcGxwbVZtUFE#gid=010:55
dimiterng+ kicked me out for some reason and I can't reconnect10:55
fwereadedimitern, not to worry, we'renearly deon10:58
* fwereade can has typing? apparently not10:58
dimiternfwereade, sticky keyboard? :)10:58
natefinchTheMue: forgot to mention. your package shipped, Monday, I believe, so it should be there sometime in the next 3-30 days :)11:03
TheMuenatefinch: fantastic, have to thank you11:18
natefinchTheMue: it's no problem :)11:21
TheMuenatefinch: will be paid at least with one (or some more) beer11:23
natefinchTheMue: bring some coffee, I'm not a big beer guy :)11:24
TheMuenatefinch: yeah, already thought so. will do ;)11:25
arosalesthumper, http://newraycom.com/how-to-set-up-google-hangout-lower-third/11:36
thumperarosales: cheers11:37
* thumper goes to bed11:37
jamsinzui: I set up a 1.17.1 milestone, for things that I know we need before we can do a 1.18.0 final release.12:02
jamsinzui: is that a reasonable way to do it ?12:02
sinzui+112:02
jamaxw_: poke if you're still around12:05
jamI think the summary for https://bugs.launchpad.net/juju-core/+bug/1246905 needs to be updated12:05
_mup_Bug #1246905: status for manual provider hangs <manual-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1246905>12:05
axw_jam: yo, just making dinner - what's up?12:05
axw_ok12:05
* axw_ looks12:05
jamreading the text, it looks like it should be something about "juju should use netwokr address from ?"12:05
axw_jam: yes, agreed - I'll update it in a bit12:06
jamaxw_: thanks, I was a bit confused reading the summary and looking at our trajectory. I think we can unschedule it from "stuff we are working on right now" unless you're looking closer at it12:07
jam(so unset the milestone)12:07
jamnatefinch: are you still looking at bug #1218616 ?12:07
_mup_Bug #1218616: all-machines.log is oversized on juju node <logging> <juju-core:Triaged> <https://launchpad.net/bugs/1218616>12:07
jamI thought I remembered a ping on your logrotate branch12:08
jambut I don't know where that's at12:08
axw_jam: yeah, sorry, it should be unset12:08
jamaxw_: yeah no problem, I was just going through the list and figured I'd check it with you12:08
natefinchjam: I should pick it back up.... all it really needs is a signal to juju to have it reopen the log file so it starts writing to a new one, rather than the old one.  Not exactly sure how hard that'll be to implement, since I don't know the core logging code that well12:10
jamnatefinch: I'm assigning https://bugs.launchpad.net/juju-core/+bug/1248329 to you. Is that ok ?12:10
_mup_Bug #1248329: juju destroy-environment does not accept -e <ci> <destroy-environment> <regression> <ui> <juju-core:Triaged by natefinch> <https://launchpad.net/bugs/1248329>12:10
jamit sounded like you were going to pick it up at the meeting today12:11
natefinchjam: yep12:11
natefinchjam: so we'll support -e but not JUJU_ENV ?12:12
jamnatefinch: and not ~/.juju/environments12:13
jamat least, that is what I'm going with12:13
jamas that will be "you can run juju destroy-environment -e YYYY" on 1.16 and 1.1812:14
jamnatefinch: so you *have* a transition step. Also specifying "-e env" still gets us "you had to type it manually"12:14
jamwhich is what the old bug was about12:14
jamI can respect the "required arguments should be positional" but we still hold to the letter of the original request12:14
jam(don't make it so easy to destroy the production env)12:14
natefinchjam: right.  Are we going to remove -e in 1.20 then, or keep it?12:15
jamnatefinch: *shrug*12:15
jamIf someone feels super strong that we must not have a required but flagged argument then we can remove it in 1.2012:16
jamnatefinch: you can write a bug about it and target 1.19 if you like12:16
natefinchjam: yeah, it does bug me to have required flags :)12:16
jamnatefinch: I think of them a bit like named arguments12:17
jamI actually like them sometimes12:17
jamespecially vs a "cmd dosomething true"12:17
jamcmd dosomething -tox=true12:17
jamfwereade: do you feel bug #1233936 is very important for 1.18 ?12:17
_mup_Bug #1233936: worker/uniter: uniter restarts when relation removed <tech-debt> <juju-core:In Progress by fwereade> <https://launchpad.net/bugs/1233936>12:17
natefinchjam: there are cases where it makes more sense, like if you have several arguments, or the value of the argument is something non-obvious, like a boolean or a number12:17
jam(iow, target 1.17.1 or leave it at 1.19?)12:18
fwereadejam, 1.17.112:18
jamdone12:18
fwereadejam, it's not even hard -- find everywhere in worker/ and cmd/jujud/ that checks for NotFound, and cause it to also check for Unauthorized12:19
fwereadejam, (ok that's more than the bug, but that bug is just a symptom of the broader problem)12:19
jamfwereade: sure, but doing that work as part of the bug is fine12:20
jamyou could even land that today *wink* :)12:20
fwereadejam, but actually coding doesn't seem to be something I can get away with doing at the moment12:20
jam:)12:20
jamI understand the feeling12:20
jamfwereade: it does feel like something that is really missing test coverage12:20
jamsomehow12:20
jamfwereade: I suppose our test suite doesn't assert that services don't bounce ?12:21
fwereadejam, it was something we agreed and planned but missed in the actual hurly-burly of developing stuff12:21
fwereadejam, well, I spotted an unchecked error return in the uniter.filter test suite that would have caught it12:22
fwereadejam, but yeah, I don't think we have adequate coverage of such situations12:22
fwereadejam, otherwise I don't think there'd be any bare NotFound checks12:22
jamdimitern: ping12:45
jamsinzui: bug #1253628 *might* be a blocker for juju 1.17.0, we could sort of go either way here12:46
_mup_Bug #1253628: juju upgrade-juju incompatible with 1.16 <compatibility> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1253628>12:46
jambut not being able to upgrade 1.16 to 1.17 is a bit bad12:46
sinzuiyeah12:46
jamsinzui: I *think* we don't have to block. because people can still test if 1.17 works for new workloads, and we advocate that people *never* upgrade a production env to a dev release12:47
jamso not being able to, hey we just helped you out, right ? :)12:47
sinzuijam, they cannot upgrade without the --dev flag12:48
sinzuithough...12:48
jamsinzui: right, but they *can't do it at all* with a 1.17 that we release today :)12:48
sinzuiyesterday I upgraded the charmworld staging site from 1.13.3 and was surprised to see 1.15.0 selected. That was the aborted release. I then specified the upgrade to choose 1.14.1 then 1.16.3 to upgrade along a path I know worked12:49
jamsinzui: right, we've explicitly stated that we will support stable => stable, but we don't guarantee from/to dev releases.12:50
jamsinzui: I' believe Dimiter was specifically doing upgrade work so that it wouldn't default dev => dev anymore12:50
sinzuifab12:50
jam(so 1.17 won't try to upgrade to anything but 1.17+ by default, not 1.19)12:50
jamdimitern: I'd like you to pick up bug #1253628 if you can12:52
_mup_Bug #1253628: juju upgrade-juju incompatible with 1.16 <compatibility> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1253628>12:52
dimiternjam, will take a look12:55
dimiternjam, is it more important than the CLI stuff?12:55
jamdimitern: it is the compatibility for the CLI stuff.12:55
jamand yes12:55
jamdimitern: essentially because you use Client.EnvironmentGet12:55
jamyou *can't* actually upgrade 1.16 to trunk12:55
jambecause that API doesn't *exist* in 1.1612:55
axw_fwereade: not sure if you saw this earlier, because you got cut off shortly after I sent it:12:55
axw_<axw_> fwereade: hiya. TheMue reviewed my state changes for environment Life, but I thought I'd better wait for you since you reviewed the parent branch12:55
axw_<axw_> when you have some moments: https://codereview.appspot.com/28880043/12:55
dimiternjam, ok, will switch to it then12:56
fwereadeaxw_, I did, and I started to make comments, and then meetings swept me away12:56
axw_no worries12:56
fwereadeaxw_, sent13:04
axw_fwereade: thanks13:10
jamsinzui: I'm upgrading bug #125015413:11
_mup_Bug #1250154: updateSecrets in juju-1.18 uses Client.EnvironmentGet which is not in 1.16 <ci> <intermittent-failure> <precise> <regression> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1250154>13:11
jamsinzui: it turns out that axw_'s patch to try to pass secrets on demand13:12
jambroke *every* cli command against 1.1613:12
axw_:o13:12
sinzuiYay! I like the kinds of changes that are 100% something. Thats how I roll.13:13
jamsinzui: no half-assed measures13:13
jamwe're gonna break it13:13
jamand we're gonna do it right!13:13
jamaxw_: not particularly your fault, as we weren't being cautious and labeling what the new APIs were13:14
jamaxw_: can I assign it to you ?13:14
axw_jam: certainly13:14
sinzuinope. Not one promulgated charm branch worked yesterday thanks to me13:14
jamaxw_: I *think* we can just fall back to finishing api.Open in that case13:14
jamaxw_: because we don't *have* to pass secrets.13:14
jam(most of the time)13:15
axw_jam: ah, because it's existing13:15
axw_yep13:15
jamaxw_: so there is still the potential for someone bootstrapping with 1.16 and then we try to use 1.18 for everything else13:15
axw_I assume we don't have to cater for installed 1.16 without having ever connected to it? :)13:15
jambut I think that window is small enough we can document it and WontFix13:15
axw_+113:15
axw_"delete and rebootstrap with 1.18"13:16
jamaxw_: worst case, yeah13:16
jamas long as destroy-environment still works :)13:16
axw_hehe13:16
jamaxw_: that particular bug makes it hard for me to test what other commands we broke, becaues... they're all broken :)13:17
axw_jam: all the SSH-based ones, IIRC, use a new API13:18
axw_yep - I added the PublicAddress API13:18
axw_sigh13:19
jamaxw_: yeah, I'm just going throug hthe "bzr diff -r juju-1.16.3..trunk"13:19
jamso I'll get there eventually13:19
axw_jam: so that's ssh, scp, debug-hooks, debug-log13:19
jamfwereade: compatibility is turning into quite a bit of work13:19
axw_can we just unbreak upgrade-juju and leave the rest? ;)13:20
jamaxw_: well updateSecrets is a definite fix, and upgrade-juju is13:20
jamstatus hasn't been done yet13:20
jamaxw_: for the rest... I wanted to scope the work and then decide13:20
jambut it is looking pretty big13:20
axw_ok13:20
fwereadejam, isn't the secrets-pushing just one piece of work? ie if the api isn't there, fall back to a state connection to push them using the previous mechanism?13:21
jamfwereade: so *that* is one of the "we must do" bits13:21
jamfwereade: well, I don't think we *have* to fallback, but we could13:21
jamfwereade: the big scope of the work is falling out from my auditing13:22
jamI'm up to about 10 commands and counting13:22
fwereadejam, that just didn't have APIs at all in 1.16!?13:22
fwereadejam, how did the gui get anything done?13:22
jamfwereade: well they were missing a key api.13:23
jamfwereade: like "juju set-constraints" didn't support EnvironmentConstraints13:23
jamfwereade: so the GUI could change a service but not the global13:23
jambut they didn't need to13:23
jamI guess13:23
jamadd-machine wasn't done by the guy13:23
jamdebug-hooks, ssh, scp weren't done by the gui13:24
jamfwereade: service-set and unset needed new APIs to handle the empty string vs null appropriately13:24
jamdestroy-machines,13:24
jamenvironment-get/set13:24
jamso basically, the GUI didn't do machines or environment level things13:24
jamdimitern: just to keep you in the loop, bug #1250154 is blocking *all* of trunk talking to 1.16 so if you go testing manually that needs to be fixed first. axw will pick it up, but you can do a quick hack if you want to test it.13:26
_mup_Bug #1250154: updateSecrets in juju trunk uses Client.EnvironmentGet which is not in 1.16 <ci> <intermittent-failure> <precise> <regression> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1250154>13:26
dimiternjam, ok, so what's the fix we're looking for?13:29
dimiternjam, migrate my set-/get-environment changes into 1.16?13:29
jamdimitern: updateSecrets (in a first pass) should just keep going if it can't get EnvironmentGet13:29
jamdimitern: because the 99% case is that we don't actually need to pass the secrets13:30
jam(it is only needed if they bootstrapped with 1.16 and then never did anything but upgraded to 1.18)13:30
dimiterni'm not sure I get you13:30
dimiternin trunk we need to implement a workaround for using state.EnvironConfig if client.EnvironmentGet fails?13:30
jamdimitern: no. The particular bug is that when doing NewAPIConnFromName we check if we need to pass secrets by calling Client.EnvironmentGet13:31
jambut that API didn't exist in 1.1613:31
jamhowever, we *also* don't normally need to set secrets13:31
jamso a quick fix13:31
jamis that if we try to EnvironmentGet in updateSecrets, and it fails, just keep going.13:31
dimiternjam, ah, so just skip it and ignore the error?13:31
axw_jam: did you mean to set the overall compat bug to me, or the upgradeSecrets one?13:32
axw_(you assigned the former)13:32
jamaxw_: just the upgradeSecrets one13:32
jamI'll fix it13:32
axw_ok13:32
axw_ta13:32
jamaxw_: I'm making you responsible for all that is wrong in the world. Are you ok with that? y/Y ?13:33
axw_;)13:33
jamyay, DestroyRelation should be ok. Finally something that may not have broken (aside from the breaking of everything :)13:34
dimiternjam, so I shouldn't look at bug 1250154, but at bug 1253628 only?13:34
_mup_Bug #1250154: updateSecrets in juju trunk uses Client.EnvironmentGet which is not in 1.16 <ci> <intermittent-failure> <precise> <regression> <test-failure> <juju-core:Triaged by axwalk> <https://launchpad.net/bugs/1250154>13:34
_mup_Bug #1253628: juju upgrade-juju incompatible with 1.16 <compatibility> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1253628>13:34
jamdimitern: well, I think axw_ is officially done working for today. So if you want to pick up 1250154 before he gets to it. It is the more important one. But both are important and you have more context for upgrade-juju13:35
dimiternI'm confused now :/13:35
dimiternwhat's the workaround for SetEnvironAgentVersion ?13:36
jamdimitern: just focus on fixing juju upgrade-juju when running against 1.1613:36
jamdimitern: essentially juju upgrade-juju needs to fall back to poking the DB directly if it can't client.EnvironmentGet13:36
dimitern1.16 in the cloud when using cli from trunk?13:36
jamsince if it can't EnvironmentGet then it can't SetEnvironAgentVersion13:36
jamdimitern: "juju-1.16 bootstrap; juju-1.16 deploy; juju-trunk upgrade-juju --dev" is broken13:37
axw_I've gotta go, I'll look at 1250154 first thing in the morning if it's still broken13:37
jamaxw_: have a good night13:37
dimiternjam, upgrade-juju --dev is no longer present in trunk13:38
axw_cheers, good night jam, all13:38
jamdimitern: "juju upgrade-juju" is just broken13:38
dimiternaxw_, g'night13:38
axw_later dimitern13:38
jamdimitern: we *can't* upgrade a 1.16 installation to anything13:38
jambecause it doesn't have the API we added to do so13:38
jamregardless --dev or whatever13:38
sinzuiI am uncertain about bug #1253576. I expect a relation error to eventually be shown in status if the hook didn't complete.13:38
_mup_Bug #1253576: Juju does not show relation status <add-relation> <juju-core:New> <https://launchpad.net/bugs/1253576>13:38
dimiternjam, so the fix should be "try EnvironmentGet, if it fails, access the state directly?"13:39
jamdimitern: right13:39
dimiternjam, if it fails in a certain way that is - when it's missing13:39
jamdimitern: well, we can just fallback and then worry about other reasons why it fails13:40
dimiternjam, so we'll have 2 commands in 2 old upgrade-juju and the new one13:40
jamdimitern: 2 commands?13:40
dimiternjam, s/in 2/in 1/13:40
jam2 code paths ?13:40
dimiternyeah13:40
jamdimitern: yes13:40
dimiternugh, how ugly... but well13:40
jamdimitern: keep what you've done, we'll want it for upgrading a 1.18 to something newer, but we also need to support upgrading from 1.16 to 1.1813:41
jamdimitern: the "ugliness" is just beginning: https://bugs.launchpad.net/juju-core/+bug/125361913:41
_mup_Bug #1253619: juju 1.18 needs to support all CLI against a 1.16 server <compatibility> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1253619>13:41
jamI'm up to 10 commands13:41
jamthat are broken against 1.1613:41
dimiternso due to compatibility the mess is getting worse for each minor version from now on forever13:41
jamdimitern: no, we don't claim to support 1.16 in 1.2013:42
dimiternwe'll have duplicated code that both has and hasn't direct db access13:42
jamso for things that we have compatibility to 1.1613:42
jamwe can delete it in 1.12013:42
jam1.2013:42
jamthings will be worse in the 2.0 series13:42
jamwhere we *will* go for 2.X is compatible with 2.Y13:42
jambut hopefully we've gotten our shit sorted a bit better by then13:42
fwereadejam, that "10" number hasn't got worse in the last 20 minutes at least :/13:43
dimiterncan we claim that upgrade-juju truly uses the api, if it has this workaround? it seems like a regression/security leak13:43
jamdimitern: it is possible that we'll decide instead "juju upgrade-juju and juju status" are all that need to maintain compat13:43
jamand the rest will just have new ocde13:43
jamfwereade: too much talking on IRC :)13:43
jamfwereade: but actually I've gotten to a few commands that were in the API13:44
* fwereade cheers13:44
fwereadedimitern, jam: and it's 2 steps -- *can* use the api in 1.18, followed by *must* in 1.2013:44
fwereadedimitern, jam: so we can drop the db access code starting in 1.1913:45
dimiternfwereade, ok, that's a small consolation at least13:45
fwereadedimitern, take 'em where you can find 'em ;)13:46
dimitern:)13:46
fwereadejam, do you have a note somewhere for cutting off client mongo access for new deployments in 1.18 and for all in 1.20? as for agents in 14/16?13:51
jamfwereade: 12 total13:52
jamaudit is done13:52
jamfwereade: arguably the 1.18 thing is https://bugs.launchpad.net/juju/+bug/80428413:53
_mup_Bug #804284: API for managing juju environments, aka expose cli as daemon <pyjuju:Triaged> <juju-core:In Progress by jameinel> <https://launchpad.net/bugs/804284>13:53
jambut we need another for 1.2013:53
jamfwereade: is it 14/16 or is it 16/18 ?13:53
jamfwereade: I *think* we actually need to cut off all access in the 1.18 code for all agents13:54
fwereadejam, hmm, you may be right in fact13:54
fwereadejam, ok, we need to do that too then :)13:54
jamfwereade: yeah, filing the bug now13:56
fwereadejam, cheers13:57
jamfwereade: so, an issue of 1.16 to 1.18 to 1.20 compat for direct DB access13:58
jamfor clients specifically13:58
jamif we want "juju-1.18 bootstrap; juju-1.16 status" to work13:58
jamthen we can't remove DB access yet13:58
jambut we can remove access in 1.2013:58
jam(by default)13:58
fwereadeha, good point13:59
jamfwereade: but I think we can just do it forcibly14:00
jamas in, upgrading 1.18 to 1.20 will remove access14:01
jamwhich we *couldn't* do for agents14:01
jammostly because of the set of "people who might access this" is unknown14:01
jamwhile for agents we knew who might14:01
jamand could leave rights just for that set14:01
jamfwereade: ok. so I've done the audit for bug #125361914:05
_mup_Bug #1253619: juju 1.18 needs to support all CLI against a 1.16 server <compatibility> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1253619>14:05
jamfwereade: we have 12 commands that need compatibility14:05
jamfwereade: they break down into "things that touch machine", "things that touch environment", "things that directly access a node", and "ServiceSet" allowed the empty string to indicate reverting a field to default, while we added Unset for that14:06
jamand then we'll get upgrade-juju for SetAgentAPIVersion, "juju status" which the GUI did via the AllWatcher, and "juju deploy" because of the PutCharm stuff.14:07
abentleysinzui: I think the EnvironmentGet thing is interfering with Azure uploads, but I thought that Azure uploads didn't use juju.  http://162.213.34.53:8080/job/upgrade-and-deploy-specific/174/consoleFull#-19356225433c12a2ef-3702-44a9-9d42-48ac051c3e0214:12
jamabentley: You used to use gwacl directly there14:15
jamso it couldn't be EnvironmentGet, but if you changed that maybe14:16
abentleyjam: we don't anymore.14:16
abentleyjam: Now we use azure_publish_tools.py from ci-cd-scripts2.14:16
dimiternjam, fwereade: fix for bug 1253628 https://codereview.appspot.com/30300043/14:17
_mup_Bug #1253628: juju upgrade-juju incompatible with 1.16 <compatibility> <regression> <juju-core:In Progress by dimitern> <https://launchpad.net/bugs/1253628>14:17
jamabentley: that is a pretty big log, any help to narrow down where you think the failure due to EnvironmentGet is?14:17
jamabentley: I don't see azure_publish_tools in that file14:17
abentleyjam: The bit in red.14:17
abentleyjam: The link should have taken you to to bit in red.14:18
jamabentley: I probably scrolled shortly after. So I can't tell what command is being run, but if it is "juju scp" yes, that would be broken14:19
abentleyjam: I don't think it is, but sinzui will know better, because he wrote the script being run.14:19
jamabentley: unfortunately that log seems to hold the output of commands run, but not the commands themselves14:20
jamabentley: anyway, bug #1250154 means that *any* command you run with a 1.17 client against a 1.16 environment will fail14:21
_mup_Bug #1250154: updateSecrets in juju trunk uses Client.EnvironmentGet which is not in 1.16 <ci> <intermittent-failure> <precise> <regression> <test-failure> <juju-core:In Progress by dimitern> <https://launchpad.net/bugs/1250154>14:21
abentleyjam: Yes.  That's because some of these scripts source credentials and I was being cautious to about having credentials appear in the log.14:21
sinzuiabentley, jam: we use the official MS python azure library to upload the stream meta and tools14:21
abentleysinzui: Okay, maybe the azure upload completes, and it's my wait_for_agent_update script that dies.14:22
abentleysinzui: No, can't be that, that happens after we upgrade juju.14:22
sinzuiabentley, The log doesn't show --upload so there is no evidence that juju wanted to move things.14:23
abentleysinzui: I'm going to change the script to output commands, since we now exect publish-public-tools, instead of sourcing it.14:25
abentleysinzui: I think it might be upgrade-juju itself that's failing.14:26
sinzuiabentley, looking at the log and the error line, I see that upload to azure completed a few lines before. We can update the script to state is is done with everything14:26
sinzuiabentley, in juju-dev, jam predicted that upgrade-juju is dead because of a recent landing14:26
jamdimitern: reviewed14:27
abentleysinzui: That would explain it, then.14:27
jamideally we'd have you test with deploying with 1.16 but bug #1250154 will break for you14:27
_mup_Bug #1250154: updateSecrets in juju trunk uses Client.EnvironmentGet which is not in 1.16 <ci> <intermittent-failure> <precise> <regression> <test-failure> <juju-core:In Progress by dimitern> <https://launchpad.net/bugs/1250154>14:27
jamdimitern: if you want to pick that one up then we'll have both fixed which would be great14:27
jamI need to head off to dinner now.14:27
sinzuithanks jam, I stumbled because I wasn't sure how it was renamed14:27
dimiternjam, I'm on it already14:28
dimiternjam, added a single line to call IsNoSuchRequest in the only sensible test I can find, which tests for "no such request" - rpc/reflect_test.go, should be sufficient14:43
dimiternjam, proposing now14:43
dimiternjam, I don't want to complicate things too much for this - it's not easy to test it in params, because there are no api tests there, and in order to test it I need to implement some generic client call that accepts a method name and calls whatever you give it, or something14:46
dimiternjam, fwereade: and this https://codereview.appspot.com/30330043 fjxes bug 125015414:50
_mup_Bug #1250154: updateSecrets in juju trunk uses Client.EnvironmentGet which is not in 1.16 <ci> <intermittent-failure> <precise> <regression> <test-failure> <juju-core:In Progress by dimitern> <https://launchpad.net/bugs/1250154>14:50
rogpeppedimitern: isn't there already such a client call?14:50
rogpeppedimitern: api.State.Call14:50
dimiternrogpeppe, well, not directly accessible from tests I think14:51
rogpeppedimitern: isn't it?14:51
rogpeppedimitern: what about in the state/api tests?14:51
dimiternrogpeppe, there are no tests that use Call directly14:51
rogpeppedimitern: i should look at the CL itself to see what jam is suggesting :-)14:52
dimiternrogpeppe, yeah, do that please :)14:52
dimiternjam, ping14:53
rogpeppedimitern: i think HasPrefix would be better than using regexp14:54
rogpeppedimitern: strings.HasPrefix, that is14:55
dimiternrogpeppe, ah, yes, I forgot about that14:55
rogpeppedimitern: also the Is* functions should work correctly when passed a nil error14:55
dimiternrogpeppe, not in this case - i'm not using ErrCode(err)14:56
rogpeppedimitern: all the Is* functions should work ok when passed a nil error14:56
rogpeppedimitern: that's a current invariant, and a useful one14:56
dimiternrogpeppe, IsCode*, but this is not like the others14:57
rogpeppedimitern: it doesn't matter14:57
rogpeppedimitern: it's like os.IsNotExist and many others14:57
dimiternrogpeppe, ok, I see your point14:57
natefinchsigh.... mgo doesn't like connecting to a mongod that has been started with --replSet.  Trying to figure out why.14:58
rogpeppedimitern: reviewed15:02
dimiternrogpeppe, thanks, take a look at the follow-up as well please https://codereview.appspot.com/3033004315:03
rogpeppe dimitern: i'm not entirely convinced by that15:04
rogpeppedimitern: are we sure that noone is going to bootstrap a 1.16 environment any more?15:04
rogpeppedimitern: and then talk to it with 1.18 tools15:04
rogpeppedimitern: if we can rule that out, then it seems ok15:04
rogpeppedimitern: but i'm not sure15:04
dimiternrogpeppe, what do you suggest?15:05
rogpeppedimitern: well, the proper fix would be to push secrets as we did before15:05
dimiternrogpeppe, expand please15:05
rogpeppedimitern: well, say someone bootstraps a 1.16 environment15:06
rogpeppedimitern: then they run a 1.18 juju command to try and get the status15:06
rogpeppedimitern: actually, that's a bad example maybe15:06
fwereaderogpeppe, dimitern: I think we want +2 compatibility to work both ways15:07
fwereaderogpeppe, dimitern: and I think that is a good example15:07
dimiternfwereade, both ways?15:07
rogpeppefwereade: i think it should work both ways in that specific instance actualy15:07
rogpeppelly15:07
fwereaderogpeppe, dimitern: yeah -- 1.18 client, 1.16 server; and 1.16 client, 1.18 server, are both important15:08
rogpeppefwereade: won't it work with the above CL?15:08
fwereaderogpeppe, I don't know, I haven't looked -- been in a meeting15:08
rogpeppefwereade: the old client will push the secrets correctly because it talks to mongo directly15:08
natefinchniemeyer: you around?15:09
rogpeppefwereade: the new client will push the secrets correctly because it should fall back to talking to mongo directly when the relevant API call isn't implemented15:09
fwereaderogpeppe, yeah, that sounds just fine15:09
rogpeppefwereade: the only thing that falls through the cracks are calls that use the API in 1.1615:09
rogpeppefwereade: but that's a problem in 1.16 anyway15:10
rogpeppefwereade: so i don't think there's a regression there15:10
fwereaderogpeppe, 1.16 calls that use the api should be ok, shouldn't they? what's wrong there?15:10
rogpeppedimitern: i've convinced myself it's all fine :-)15:10
rogpeppefwereade: they don't push secrets15:10
dimiternrogpeppe, ok, so it's good as is then15:10
rogpeppefwereade: so if it's the first call that's made after bootstrapping, they won't work15:10
fwereaderogpeppe, I *think* that we specifically avoided calls that made sense as first ones there15:11
rogpeppefwereade: even better15:11
fwereaderogpeppe, eg juju get -- meaningless without a service :)15:11
jamrogpeppe: yeah, "juju get" and "juju add-unit" both don't work unless you've deployed15:13
jamfwereade: so there is likely to be a gap that if you "juju-1.16 bootstrap" and immediately "juju-1.18 status" the env won't have the secrets15:13
jam*but* you have no services15:13
jamso either you "juju-1.16 status"15:13
jamor you "juju-1.18 destroy-environment; juju-1.18 bootstrap"15:13
jamand things will work ok15:13
rogpeppedimitern: reviewed15:13
dimiternrogpeppe, thanks15:14
jamdimitern: It matches what I thought we would need to do. I wonder if we could mock test it. Or possibly just test it live and I'll be happy enough15:14
rogpeppedimitern, fwereade: BTW if you're ever stuck debugging Eaborted with a large set of transaction operations, you might find this code useful for finding out which assertion actually failed: http://paste.ubuntu.com/6453685/15:15
rogpeppedimitern, fwereade: i just found it very useful15:15
dimiternrogpeppe, cheers, good to know15:16
fwereaderogpeppe, nice15:16
rogpeppedimitern: in case it's not obvious, it returns the index of the operation with the first failed assertion15:16
dimiternrogpeppe, this can probably live in some of the testing packages15:17
rogpeppedimitern: it's not actually that useful in a testing package because the operations rarely escape to the tests15:17
rogpeppedimitern: it might be useful in its own testing package i suppose, to be imported temporarily when debugging15:18
rogpeppedimitern: but in that case it might as well live somewhere external15:18
dimiternrogpeppe, my point was, it's better to be somewhere in the code, so it can be reused if needed + some comments15:18
rogpeppedimitern: i agree it needs comments - i just hacked it up for my own use :-)15:18
rogpeppedimitern: just found that the 9th op out of 11 was the one that failed its assert15:20
dimiternrogpeppe, sweet!15:23
rogpeppefwereade: i think you might be pleased to know i've just refactored all the addmachine logic. i can actually understand it now. hopefully others will be able to too.15:27
fwereaderogpeppe, you rock, thank you15:29
rogpeppefwereade: it was some of the twistiest stuff i've had to deal with in a while15:29
jamdimitern: so if you land those two patches, target the bugs to 1.17.0 since sinzui hasn't released it yet15:49
sinzuithank you jam and dimitern15:50
dimiternjam, ok, will change the milestone to 1.17.015:55
dimiternsinzui, np, they were easy to fix at least15:56
niemeyernatefinch: Yep15:57
natefinchniemeyer: I am having trouble dialing into a mongod that has been started with --replSet, but that hasn't had replSetInitiate called yet.  mgo connects, but then repeatedly tries <something> and eventually fails with " no reachable servers"15:58
niemeyernatefinch: That's the right behavior.. it's not finding the master15:58
niemeyernatefinch: If you want to force a connection to a slave, you can use the direct mode15:59
natefinchniemeyer: but I need to be able to connect to call replSetInitiate so it can determine the master :/15:59
natefinchniemeyer: ahh, ok15:59
rogpeppefwereade: i'm looking at Unit.findCleanMachineQuery16:16
rogpeppefwereade: it first finds all machines with non-empty containers, then finds all machines which weren't found earlier16:16
rogpeppefwereade: do you know of anything that's stopping something jumping in and adding a container between those two steps?16:17
rogpeppedimitern, jam: ^16:17
fwereaderogpeppe, dimitern: if the eventual assignment doesn't or can't assert on the lack of a container, then no16:18
dimiternrogpeppe, fwereade, yeah, that sounds right16:19
rogpeppefwereade: if the query can't, i'm not sure how the eventual assignment can16:19
rogpeppefwereade, dimitern: i think it's fundamentally racy unless there's some indication of "has a container" in machineDoc16:21
fwereaderogpeppe, the eventual assignment surely can, because it can assert on the containerrefs document16:22
rogpeppefwereade: ah16:22
fwereaderogpeppe, whether it actually does so is another question16:22
rogpeppefwereade: yeah, i can't see that it does, but good point.16:23
rogpeppefwereade: i think it should probably be another txn assert inside Unit.assignToMachine16:23
fwereaderogpeppe, sgtm16:24
rogpeppefwereade, dimitern: https://bugs.launchpad.net/juju-core/+bug/125370416:31
_mup_Bug #1253704: state: unit assignment emptiness check is not transactional <tech-debt> <juju-core:New> <https://launchpad.net/bugs/1253704>16:31
fwereaderogpeppe, triage it please :)16:31
dimiternrogpeppe, thanks16:32
rogpeppefwereade: what importance would you give it?16:32
fwereaderogpeppe, I'd call it medium because I can't decide between high and low16:32
rogpeppefwereade: :-)16:32
fwereaderogpeppe, which is what medium means16:32
rogpeppefwereade: confirmed at medium16:33
jamfwereade: rogpeppe: High is we should do it now, Low is we should do it, medium doesn't mean anything16:39
rogpeppejam: i hold no opinion in this matter :-)16:39
rogpeppejam: i will mark it however people think16:40
jamrogpeppe: sinzui put up a good listing of what the different priorities mean16:40
fwereadejam, then almost everything is low ;)16:40
jamfwereade: exactly16:40
jamsaying "this is slightly higher than this other thing" doesn't mean much16:40
jamit is either "stuff we're working on for the next releases" == High16:40
jamor it is Low16:40
jamfwereade: or it is "OMG we have to fix this now" = Critical16:41
rogpeppejam: personally i think that "low" should be reserved for things that won't break anything if they're not fixed16:41
jamrogpeppe: Either it is High and we'll actually schedule it to be done, or we won't actually and then it doesn't matter16:42
jamwhether you call that "Low" or "Medium" they are effectively the same16:42
jambecause you're not getting to them in a reasonable amount of time16:42
rogpeppejam: hmm, perhaps it should be High then16:42
sinzuiHigh mean we commit to fixing it in our plans for the cycle. It is easy to say the cycle is 6 months, but I think 3 months is more realistic for the purposes of planning. I cannot image more than two milestones personally. I think this, that, and them16:45
sinzuiAlso, I don't believe 100 of our High bugs are really High. We just don't have a enough of them in our heads to see which ones we wont fix16:46
hazmatfwiw, there seem to be quite a few issues at the http client layer for go trunk and juju-core trunk wrt to ec2 bootstrapping and s3 interactions17:49
mgzinteresting as in terrifying?17:49
hazmatsinzui, re ui here.. is there any way to sort the latest release at the top, people are just downloading the top link for 1.15 even though 1.16.3 is the latest there (at the bottom) https://launchpad.net/juju-core/+download18:07
sinzuino18:07
sinzuiI keep bring this up. Lp doesn't support what we do and our stable releases will fall off +downloads, breaking debwatch18:08
natefinchsinzui: how are they sorted?18:09
sinzuihazmat, to be blut, Lp doesn't do the right thing for any project in this matter.18:09
sinzuinatefinch, according to the minds of salgado-grubbs-pool-albistte...18:10
natefinchhazmat, sinzui:  wow, that is, umm... like completely unacceptable.18:11
sinzuinatefinch, I believe we are seeing the project's focus-of-development series listed first, then ordered in z-a, then all other series in a-z with releases as z-a18:11
sinzuinatefinch, hazmat I get angry every time this comes up. I didn't have the power and time to prevent it18:12
natefinchsinzui: I have no idea what that means.  Is there a way we can hack out outputs so they sort the way we want.18:12
sinzuihazmat, natefinch I /think/ we want the page listed by deb-version descending and offer an alternate page by date18:12
sinzuithe latestest portlet would show  highest deb-version for the series or all series18:13
sinzuinatefinch, the +downloads page was originally simple and practical. Then changes were made without checking use cases. I wept18:14
natefinchsinzui, hazmat:  in my experience, when stuff like this comes up, the best way to get people to listen is to do something incredibly drastic, so everyone has to go "why the hell would you do that?"  And that gets the conversation going about how to fix things.18:14
sinzuiI don't know the use cases myself, but I think packagers are the first users that need to find what they need to get into distros18:15
sinzui+downloads is broken by design. I haven't found a single project that it works for18:16
natefinchsinzui: here's my suggestion - we delete all the downloads off that page and move them somewhere outside LP where we have control over sorting.  Then email the juju list about the change.... and way to see how long it takes someone to throw a hissy fit.18:16
sinzuinatefinch, the page exists to two of our users. Ubuntu and homebrew. Both pickup packages from that page. removing them will break ubuntu temporarily and home brew for ever18:18
natefinchsinzui: well then, it would definitely get some attention ;)   Sigh, yes, I guess we can't do that, then.18:22
sinzuiI have a 4 day weekend coming up. I can make a grand simplification to the page that stevenk and wgrant might except. They are sympathetic to the needs of packagers.18:24
* sinzui see that we are 2 unstable releases aways from pushing stable releases to the scond page18:25
hazmatnatefinch, drastric would be have release downloads on juju.ubuntu.com only and trash the lp download page.18:28
hazmatsinzui, ^18:29
hazmatnatefinch, oh.. yeah.. same thing you were suggesting18:29
hazmatsinzui, we can fix homebrew18:29
hazmatits an mp away.18:29
hazmater. pr18:29
sinzuihazmat, yes we can do that.18:36
rogpeppefwereade: finally https://codereview.appspot.com/3039004318:37
rogpeppeand that's me for the night18:38
rogpeppeg'night al18:38
rogpeppel18:38
natefinchhazmat. sinzui: took me over 3 months, but I finally realized that when canonical says series, what they mean is "branch", at least from a code perspective.18:43
sinzuinot the same18:43
natefinchsinzui: branch + sub-branches18:44
sinzuinatefinch, a series is metadata about intent. I have argued that Lp should let me state a branch is a fix, a feature, a series that I make releases from18:45
sinzuinatefinch, I would like to think a series is a superset of data about a branch, but distros have series and there are no branches. A series is planning device that branches are arbitrarily associated with. I say "arbitrary" because Lp puts projects before branches, and treats secondary communities as having equal power the the primary developers. equal power with out any responsability18:48
sinzuinatefinch, I know why Lp does its non-sense. I was a collaborator. The developers spent too much time creating incomplete features without journey to guide design18:50
natefinchsinzui: I get it.  And yeah, I can see there's a lot started on LP that didn't get the spit and polish.18:55
=== gary_poster is now known as gary_poster|away
natefinchmorning thumper19:25
natefinchniemeyer: still around?  I still can't get this working.  replSetInitiate.  mgo is returning "no reachable servers" which I know is not true, since it is correctly dialing.  when I do rs.initiate() from the shell, I get "can't find self in the replset config"19:32
niemeyernatefinch: How are you dialing?19:32
natefinchniemeyer: here's the mongod command line and the code I'm running: http://pastebin.ubuntu.com/6454825/19:32
niemeyernatefinch: What's the output?19:33
natefinchniemeyer: actually, I guess it is failing on the dial, I had thought I'd seen it made it past that, but I guess not.  I'm getting "Error from dial: no reachable servers"  (first half is my message)19:34
niemeyernatefinch: In that case you have a sever that is actually in a bad state19:35
niemeyernatefinch: Oh, wait19:35
niemeyernatefinch: You need to use a Monotonic session19:35
thumpero/19:36
niemeyernatefinch: With a strong session, it won't allow anything but a master19:36
natefinchniemeyer: how do I do that?  I only see SetMode on the session, which I can only get with Dial, which is what is failing19:38
niemeyernatefinch: Well, if you cannot even dial the server is likely in a bad state19:41
niemeyernatefinch: Reset your server and try this command again19:41
natefinchniemeyer: ok19:44
natefinchniemeyer: ok, yeah, now I'm getting "couldn't initiate : can't find self in the replset config my port: 28000"19:49
thumpermramm2: around somewhere?19:52
mramm2thumper: yea19:56
=== thumper is now known as thumper-afk
niemeyernatefinch: Cool20:12
natefinchniemeyer: well, except for the error.20:15
niemeyernatefinch: This means you're not configuring the replica set correctly20:15
niemeyernatefinch: It's simply telling you the server isn't part of the configuration, so the config can't be valid20:15
=== gary_poster|away is now known as gary_poster
natefinchniemeyer: ok, I thought since I could do rs.initiate() that I could do a bare replSetInitiate and it would do the right thing, but I can give it a valid config too20:15
niemeyernatefinch: Yeah, it likes valid configs :)20:16
natefinchniemeyer: details details :)20:16
=== gary_poster is now known as gary_poster|away
jamsinzui: we could always make "stable" releases from the trunk series ...20:29
sinzuijam we could20:30
jamsinzui: or maybe the .0 from there?20:30
sinzuiI could also move the releases to trunk now...20:30
jamit at least gets people 1.16 instead of 1.1520:30
sinzuijam ...but I sent an email to wgrant and stevenk proposing an fix that is easy for me to do and would make the page timeout less often20:31
jamsinzui: if you can fix it, I'd rather not work around it :)20:32
sinzuijam, the fix has always been political. I appealed to their love of speed and deb/ubuntu packaging20:32
natefinchahh, of course, I had to set direct=true and mode=monotonic, why didn't I think of that?  #mongodb :/21:10
=== BradCrittenden is now known as bac
=== thumper-afk is now known as thumper
thumperabentley: still around?21:27
abentleythumper: Hi.21:27
thumperabentley: hey21:27
thumperabentley: looking at this 'local provider not starting' bug21:27
thumperabentley: do you have a machine it happens on reliably that I can get you to test a fix on?21:27
abentleyYes, I was excited to see you think you have a solution.  I am not sure how reliably it happens on my machine.21:28
abentleythumper: It worked yesterday, but before that, it had been failing a lot.21:29
thumperabentley: is the machine in question able to compile easily from source?21:29
thumperabentley: I think it is a race condition21:29
thumperso could well be impacted by other work the machine is doing at the time21:30
abentleythumper: just failed.21:30
thumperabentley: let me whip you up a branch21:30
abentleythumper: Yes, I should be able to compile from source here.21:31
thumperkk21:31
thumpergive me a few minutes21:31
thumperwallyworld_: hi21:35
thumperwallyworld_: enjoy the cricket?21:35
wallyworld_thumper: no :-(21:36
wallyworld_bloody poms are winning21:36
thumperabentley: can I get you to hammer this a few times? lp:~thumper/juju-core/fix-upstart-start-race21:36
wallyworld_thumper: if you get a chance today, here's a branch which reworks the provisioner. the container stuff is moved out, only one switch statement now. https://codereview.appspot.com/29450043/21:37
thumperwallyworld_: cool, got time to hangout?21:38
wallyworld_ok21:38
* thumper starts one21:38
thumperwallyworld_: https://plus.google.com/hangouts/_/72cpjtpfsf6lleb295gbg9iff0?hl=en21:38
abentleythumper: Okay, I got it, but I don't know how to build it; make complains that various packages are missing.21:40
thumperabentley: ah bugger21:40
thumperI've forgotten how to grab all that21:40
abentleyhttps://pastebin.canonical.com/100868/21:40
thumperabentley: try 'go get launchpad.net/juju-core21:40
thumperabentley: have you compiled from source before?21:42
abentleythumper: Not sure.  I grabbed the source long ago to make a small change.21:42
abentleythumper: "no Go source files in /home/abentley/hacking/go/src/launchpad.net/juju-core"21:43
thumperugh...21:43
thumpernatefinch: do you member the command?21:43
thumperabentley: perhaps add /... to the end of the go get juju-core command21:43
natefinchthumper, abentley: that error is actually right... we structure our code in a non-idiomatic way, so there actually is no go code in the root directory, and that's ok21:44
natefinchthumper, abentley: you can pass go get the -d flag and it'll just download (by default it downloads and tries to build)21:44
abentleynatefinch: I passed -d and it completed immediately.21:45
natefinchabentley: so, you have juju-core, but it doesn't automatically go get the dependencies21:45
abentleynatefinch: That's what we're trying to accomplish with go get.21:46
hatchhey can someone confirm if juju support retry & remove on 'pending' units?21:48
natefinchabentley: go get launchpad.net/godep21:50
natefinchabentley: then go to launchpad.net/juju-core/ and run godep -u dependencies.tsv21:50
abentleynatefinch: godeps with an s?21:51
natefinchabentley: oops, yeah, godeps21:51
natefinchabentley: there's like three different tools named godep / godeps21:51
abentleynatefinch: "No command 'godep' found, did you mean:..."21:52
natefinchgodeps :)21:53
abentleynatefinch: "godeps: command not found"21:53
natefinchabentley: is your $GOPATH/bin folder in your path?21:54
abentleynatefinch: No.21:54
natefinchabentley: you should fix that :)21:55
natefinchabentley: that's where go puts the binaries that it builds21:55
natefinch(go get both downloads and builds)21:56
abentleyhttps://pastebin.canonical.com/100869/21:56
abentleynatefinch: ^^21:58
natefinchabentley: arg, sounds like it will only update, not actually go get the thing in the first place.  sigh21:59
natefinchabentley: the hard way is to first simply do go get <path> where path is the first string in dependencies.tsv21:59
natefinch(for each line in dependencies.tsv)22:00
abentleynatefinch: https://pastebin.canonical.com/100870/22:02
fwereadehatch, retry no; remove yes22:02
hatchfwereade: thanks for confirming22:03
hatchfwereade: so when a charm gets 'stuck' what is a user to do?22:03
hatchjust remove it and try again?22:03
natefinchabentley: that's probably ok... that's just the same thing as juju-core had22:03
fwereadehatch, soon, they will be able to destroy-machine --force to take the whole thing down; in the meantime, assuming the agent is running, they can destroy the unit and repeatedly resolve hook errors (as opposed to retry) until it finally goes away22:06
natefinchabentley: I have to go in a few minutes, FYI22:06
abentleynatefinch: That's alright.  It's past EOD for me.22:07
fwereadehatch, --force has landed, and will be in 1.17, but most people won't see it until 1.18, which we can't do until we've got some fairly significant api compatibility work done22:08
hatchfwereade: ok so from the GUI if I were to give the user a 'remove' button for units in pending status that would suffice to match the functioning features?22:08
natefinchgood night all22:08
fwereadehatch, yeah, I think so -- we favour the "destroy" terminology, but if you're calling it "remove" elsewhere it's probably best to stay consistent22:14
hatchwell from the gui it can't 'destroy' it can only remove the unit22:14
hatchwhich will leave the machine22:14
hatchat least for the time being22:14
hatchat least I think that's the though process behind it22:15
hatchthought*22:15
abentleythumper: Got it to a state where make finishes with no output, but GOPATH/bin doesn't have an updated juju.  The one there is from March 8.22:17
thumperabentley: make, or make install?22:17
thumpermake just builds22:17
abentleythumper: make install put it there.  I'm used to make install putting it in /usr/bin, not a home directory.22:20
abentleythumper: failed: ERROR failed to initialize state: no reachable servers22:21
* thumper shrugs, and looks at jtv22:21
thumperabentley: again?22:21
abentleythumper: You want me to try again?22:21
thumperas in, you are still getting it?22:21
abentleythumper: I'm saying I just tried it and it just failed.22:21
thumperah, can you show me your command line?22:21
thumperthe sudo line22:22
abentleythumper: "$ sudo $GOBIN/juju bootstrap -e local"22:22
thumperI tend to use $ sudo $(which juju) bootstrap22:23
thumperbut I gess that works22:23
thumpercan you see if the local mongo service is running?22:23
abentleythumper: Since GOPATH isn't in my PATH, that wouldn't work.22:23
thumperinside /etc/init there is a juju-something-db.conf22:24
thumpergo 'sudo status juju-...-db'22:24
thumperto see if it is up22:24
thumperI think it probably isn't22:24
thumperbut now I'm more confused22:24
thumperI thought that this would fix it22:24
abentleythumper: https://pastebin.canonical.com/100872/22:24
thumperno, not monodb22:25
thumperlike I have juju-db-tim-local-kvm.conf22:25
thumperwhere 'local-kvm' is my environment22:25
thumperso I'd type 'sudo status juju-db-tim-local-kvm'22:25
thumperyours is probably juju-db-abently-local22:25
thumperassuming your userid is abently22:26
* thumper forgot last e22:26
thumpersorry22:26
abentleythumper: nw.22:26
abentleythumper: https://pastebin.canonical.com/100874/22:26
* thumper frowns22:27
thumperwtf22:27
thumperok, not sure, will have to come back to this22:27
abentleythumper: okay.  ttyl.22:28
thumperkk22:28

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!