/srv/irclogs.ubuntu.com/2013/07/18/#juju-dev.txt

thumperadmin-secret is needed in environments.yaml00:00
sidneithumper: nope, bootstrap complained that the secret was missing, didn't finish, so i had to add it00:00
sidneithe problem seems to be the  "fatal "machiner": unauthorized"00:00
* thumper takes the dog out00:00
ahasenacksidnei: I got it working here, had to make two changes00:04
ahasenacksidnei: haven't seen that fatal error00:04
ahasenackI have revision 148100:05
ahasenacksidnei: is that during bootstrap?00:06
sidneiahasenack: nope bootstrap finishes successfully, juju status returns pending for the bootstrap node, tailing ~/.juju/local/log/machine-0.log i see a retry every 3s with that unauthorized00:06
ahasenacksidnei: did you bootstrap with -v?00:07
sidneiahasenack: y00:07
ahasenacksidnei: so you saw a bunch of "connection refused", and then eventually it worked?00:07
sidneiahasenack: only 200:07
ahasenackreally? I see dozens00:07
ahasenackit retries several times per second00:07
sidneiahasenack: https://pastebin.canonical.com/94599/00:07
sidneiahasenack: get an ssd? :)00:08
ahasenackimpressive00:08
ahasenacksidnei: so juju status should work right after that, and that's where you have the problem then00:08
sidneiyup, status says it's pending00:09
sidneihttps://pastebin.canonical.com/94600/00:09
ahasenacksidnei: what about mongodb, you installed the one from raring?00:09
sidneiahasenack: im running raring00:09
sidneihttps://pastebin.canonical.com/94601/00:09
ahasenacksidnei: right, but you have the raring package?00:10
ahasenacksidnei: I'm not on to something, I'm just comparing notes00:10
sidneiahasenack: sorry, duh. im on saucy not raring00:10
ahasenackoh, ok00:10
sidnei$ apt-cache policy mongodb00:10
sidneimongodb:00:10
sidnei  Installed: (none)00:10
sidnei  Candidate: 1:2.4.3-1ubuntu100:10
ahasenackthat's different :)00:10
ahasenackI have mongo 2.2.400:11
sidneiyet there's a mongod running00:11
ahasenackI don't know if a new major mongo db version could cause this00:11
sidneiah, mongodbserver00:11
ahasenackcould be worth asking around00:11
sidneii guess davecheney would know00:11
ahasenackwait, installed none?00:12
sidneiInstalled: 1:2.4.3-1ubuntu100:12
sidneimongodb-server is the package name, not mongodb00:12
ahasenackso that changed00:12
ahasenackmongodb                              1:2.2.4-0ubuntu1        amd6400:12
ahasenackit's what I have00:12
ahasenackand, well, also mongodb-server00:12
ahasenackmongodb is just a meta package probably00:12
ahasenackmaybe version 2.4 has a new acl or something00:13
ahasenackSecurity Improvements00:13
ahasenackNew Modular Authentication System with Support for Kerberos00:13
sidneifun00:14
ahasenackthey talk about mongodb enterprise00:14
ahasenacknot sure if that's what we have00:14
ahasenackbut this sounds relevant00:14
ahasenackRole Based Access Control and New Privilege Documents00:14
ahasenackMongoDB 2.4 introduces a role based access control system that provides more granular privileges to MongoDB users. See User Privilege Roles in MongoDB for more information.00:14
ahasenack(from http://docs.mongodb.org/manual/release-notes/2.4/ btw)00:14
thumperah that'd probably be it00:15
thumperwe need the ssl enabled mongo00:16
ahasenackssl is enabled00:16
ahasenackeven in sidnei's case, or else bootstrap wouldn't have finished/worked00:16
ahasenackit clearly didn't work fully, but at the bootstrap stage it didn't get any errors00:16
sidneiindeed00:17
davecheneyahasenack: please for the love of $DEITY, don't open the 'lets use a new version of mongodb' can of worms00:20
ahasenackdavecheney: why would I do that? :)00:21
ahasenacksidnei is the one using a newer version :)00:21
ahasenackbut looks like you have until october to get it working with mongo 2.4 ;)00:21
ahasenacksince it's in saucy00:21
sidneiah, here's some info in syslog: https://pastebin.canonical.com/94602/00:22
sidneidavecheney: indeed, saucy has 2.4.300:22
ahasenacksidnei: that's javascript, right?00:23
sidneino idea. reminds me of couchdb though *wink*00:23
ahasenacksidnei:00:23
ahasenack"With authentication enabled, eval will fail during the operation if you do not have the permission to perform a specified task.00:23
ahasenackChanged in version 2.4: You must have full admin access to run."00:23
ahasenackfrom http://docs.mongodb.org/manual/reference/command/eval/00:24
ahasenackis that just to get the date from mongo?00:24
davecheneysidnei: yup, and P, Q, and R have something different00:24
sidneioh, lovely00:24
ahasenackdavecheney: so does go00:25
davecheneyahasenack: yup, lets not light two fires at once00:25
sidneihopefully it'll be a trivial fix. not looking forward to downgrading :)00:34
ahasenacksidnei: I was just poking around, maybe this could be used instead of javascript and eval: http://docs.mongodb.org/manual/reference/method/Date/00:38
ahasenacksidnei: but I don't know how to login on mongo yet, I tried "mongo" with username and key I found in /var/log/syslog, but didn't work00:38
ahasenacki wanted to see what that output looks like, then hack it in state/presence/presence.go in the clockDelta() thing, which is what calls the eval00:39
ahasenackok, gotta go00:46
ahasenackcya00:46
hazmatthumper, future optimization for local provider.. serge & smoser  were discussing being able to use lxc-clone with the cloud-image, ie re run cloudinit post clone, it will make lxc provisioning significantly faster, just a copy or fs snapshot (lvm/btrfs).01:23
thumperhazmat: let's get it working simply first, no?01:24
hazmatthumper, hence the future label. it seems to be working pretty well so far.01:26
hazmatalthough i'd note bootstrap via sudo -E for folks using JUJU_HOME/JUJU_ENV01:27
thumperwut?01:28
thumperhmm..01:28
thumperoh yeah01:28
hazmatsudo strips env vars without -E01:28
thumperHOME is passed through01:28
thumperbut others aren't01:28
thumperhmm... I wonder if sudo -E would pick up the right juju for me01:29
thumperthat would make things a little easier01:29
hazmatthumper, one other random.. --force-machine to 0 on deploy.. might do unexpected things, i got a series error just due to mismatch there, but wasn't sure if there was a sanity check against workloads on 0 with local if series did match01:35
thumperhazmat: machine 0 doesn't support units01:35
thumperhazmat: so would get a different error later01:35
hazmatcool01:39
thumperwallyworld__: ping01:44
wallyworld__hi01:44
thumperwallyworld__, davecheney: ?  https://codereview.appspot.com/1145504401:44
thumperwallyworld__: hangout?01:44
wallyworld__sure01:45
thumperhttps://plus.google.com/hangouts/_/36d42d48a7f8998aa3789caa0e0e93bead3afb24?hl=en01:45
thumperwallyworld__, davecheney: also two others pending reviews for minor things01:45
thumperdavecheney: would love some +1s :)01:59
davecheneythumper: looking02:00
thumperta02:01
thumperdavecheney: one is to add the admin-secret02:01
thumperdavecheney: the other is a small pipeline, one to add gc and jc prefixes instead of importing into local namespace02:01
thumperfollowed by a branch to make containers auto restart02:01
davecheneythumper: why the \n in the maas provider ?02:02
thumperdavecheney: because I noticed that when I went juju init02:03
thumperthere wasn't a gap between maas and local02:03
thumperand all the others did02:03
thumperdavecheney: perhaps we should change the default provider in the init to be local?02:04
thumperalthough I'd like it to mature a bit more02:04
thumperget some more real world testing first02:04
thumperheh, didn't notice that marco did this too02:05
davecheneythumper: sounds like the tests don't care02:06
thumperdavecheney: https://codereview.appspot.com/11491043/ maybe?02:30
davecheneythumper: LGTM02:44
thumperdavecheney: ta02:47
sidneidavecheney: regardless of the upgrade to 2.4, which may or not be a side effect, why is an eval used to get the server time? seems like there's some ill side-effects of that: http://docs.mongodb.org/manual/reference/command/eval/ "By default, eval takes a global write lock before evaluating the JavaScript function. As a result, eval blocks all other read and write operations to the database while the eval operation runs."02:54
sidneiand then there's "Changed in version 2.4: You must have full admin access to run." (re: eval)02:55
sidneiso maybe that's what broke indeed02:55
davecheneysidnei: not sure03:03
davecheneyi don't konw that part very well03:03
davecheneyis it part of our transactoin magic ?03:03
sidneidavecheney: nope, it's in clockDelta() in presence03:03
davecheneysidnei: that is both facepalm and totally correct03:04
davecheneyyou can't rely on the time inside a vm being correcet03:04
davecheneyshit03:04
davecheneyyou can't rely on real hardware keeping good time03:04
davecheneyso the only choice is to use the time on the db server03:05
davecheneyat least it maybe consistent with itself03:05
sidneiyeah, the question is if there's a way to get the time withot eval. seems that from 2.2 on you could get isMaster().localTime03:05
sidneiand there's also serverStatus.localTime03:06
* davecheney waves hands03:06
davecheneyif it 'aint broken, something something, profit !03:06
sidneieh03:06
davecheneyok, battery is flat03:07
davecheneytime for lunch03:07
sidneialright, commented out clockDelta body, hardcoded a return 0, nil. status is now started, and deploy kicked off03:18
* sidnei files bug03:19
sidneihttps://bugs.launchpad.net/juju-core/+bug/120248003:31
_mup_Bug #1202480: raring: bootstrap local environment works, machiner gets unauthorized <juju-core:New> <https://launchpad.net/bugs/1202480>03:31
sidneihttps://bugs.launchpad.net/juju-core/+bug/1202481 is a funny one03:33
_mup_Bug #1202481: oddly formatted directory name in deployer <juju-core:New> <https://launchpad.net/bugs/1202481>03:33
=== thumper is now known as thumper-afk
* thumper-afk back for meetings (lotsa meetings)03:34
thumper-afkin about 4 hours03:34
sidneifwereade_: if you happen to be around, https://codereview.appspot.com/1150104304:20
* sidnei eods04:21
=== tasdomas_afk is now known as tasdomas
davecheneycan everyone please familiarise themselves with the agenda for tonights call07:29
davecheneyhttps://docs.google.com/a/canonical.com/document/d/1eeHzbtyt_4dlKQMof-vRfplMWMrClBx32k6BFI-77MI/edit#07:29
rogpeppedavecheney: doing so07:35
dimiterndavecheney: i don't see go 1.0.3 mentioned on that list - i'm using it and everything builds ok and ec2 works07:37
=== thumper-afk is now known as thumper
dimiternnot sure about azure though07:40
davecheneydimitern: good point07:40
davecheneyit's not available in PPA07:40
davecheneybut as we're grasping at straws07:40
dimiternyeah07:40
davecheneydimitern: added07:41
dimiterncheers07:41
thumpergood morning to you europeans07:50
thumperdavecheney: do the go-curl developers know that it is broken under go 1.1?07:51
davecheneythumper: yes, see agenda07:59
* thumper looks for mgz08:34
TheMuethumper: ping08:34
thumperTheMue: hey08:34
thumperTheMue: so... all my changes around tools are in trunk now08:34
TheMuethumper: sent you a mail regarding the autosync stuff08:34
thumperyeah, I've not looked at the doc sorry08:35
TheMuethumper: yep, already analyzing them08:35
TheMuethumper: np08:35
TheMuethumper: it's just the place where i note my findings08:36
TheMuethumper: so if you have anything to add feel free08:36
thumperok...08:36
TheMuethumper: thx08:36
thumperTheMue: AFAIK, the major point is to make it easy for prod-stack08:36
thumperif we do that, we fix a lot of issues08:37
TheMuethumper: we've got a first solution with sync-tools --source /my/path/to/tools08:38
TheMuethumper: but that's not enough and convenient08:38
thumperTheMue: but anyone can do upload tools now08:39
thumperTheMue: if it grabs the binary08:39
thumperno build env needed any more08:39
TheMuethumper: exactly08:39
thumperTheMue: here is an interesting idea08:39
thumper...08:39
* TheMue listens08:39
* thumper thinks08:40
TheMue;)08:40
thumperhmm...08:40
thumpernot as easy08:40
thumperthe problem isn't the cli08:40
thumperbut the bootstrap node08:40
thumpera setting maybe?08:40
thumperin the config08:40
TheMuethought about that too08:41
thumperto say whether we should auto upload on bootstrap08:41
TheMuemaking it explicit helps, otherwise the detection of the need is not simple08:41
TheMuethat could help08:42
TheMueit's semi-automatic08:42
TheMuebeside the --source for sync-tools I already thought about a --source for bootstrap08:44
thumperI think an explicit setting saying "this cloud can't see remote tools", plz upload08:46
thumperdon't guess08:46
thumperthen it is a one off config item08:46
thumperwe would need the sync still08:46
thumperto do an upgrade, no?08:46
thumperor does upgrade do an --upload-tools too?08:46
thumperor probably should08:46
* thumper goes to have a cuppa tea and watch arrow08:47
thumperback to chat to mgz later08:47
=== thumper is now known as thumper-afk
TheMueupgrade afaik only on demand08:50
TheMuethumper-afk: thx for sharing your thoughts08:51
noodles775hazmat: Hi! I'm trying to test a deployment, and it's hanging here: http://bazaar.launchpad.net/~hazmat/juju-deployer/refactor/view/head:/deployer.py#L114208:55
noodles775hazmat: afaics, that loop never ends (my deployment times out in that loop), and it's checking for a non-existent key (the unit has 'agent-state', but not 'state').08:56
noodles775(well, only ends via timeout - anyway, I'm hacking around it atm, but wasn't sure if it was a WIP - in which case, sidnei, I'm guessing we shouldn't be using it yet).08:59
rogpeppeanyone here used juju with azure?09:29
rogpeppei was just trying to set it up and it's not obvious to me where to find the various pieces of management info09:29
rogpeppervba: ^09:34
rvbarogpeppe: sure, I can help you with that, just one sec…09:35
rogpeppervba: actually, i've just found some of the info by scrolling down and finding "Settings"09:36
rvbarogpeppe: I've written a small tutorial… let me forward it to you.09:36
rogpeppervba: ta09:36
dimiternfwereade_: it worked! s.BackingState.Sync() + a few modifications, I even reverted the in := w.in stuff and the flip-flopping to make sure with the fix the test pass and without it doesn't, i.e. the events are not lost09:53
fwereade_dimitern, sweet!09:53
mgzlooks to me that azure-in-all.go did in fact land btw, so we will want to revert that for release09:57
rogpeppervba: where do you get the azure command from?10:00
rogpeppervba: or... perhaps i don't need to run it.10:01
rvbarogpeppe: you don't need to run it indeed.10:01
dimiternfwereade_: https://codereview.appspot.com/11506043 - others as well? this fixes the StringsWatcher10:01
rogpeppervba: where do i get the cert for the management-certificate-path entry in environments.yaml?10:03
rvbarogpeppe: you can just generate it with: http://paste.ubuntu.com/5887043/10:04
rvbaThen upload the public part to  Azure.10:05
rogpeppervba: hmm, might be nice if that was in the instructions10:05
rvbaSettings > Management certificates10:05
rogpeppervba: the public part being the .cer file, presumably?10:05
rvbarogpeppe: yes10:06
rvbarogpeppe: that's right… these instructions I've sent you are a draft really, they were meant for our team which has already setup an Azure account with a certificate.  We need to polish that up for general consumption.10:06
rogpeppervba: yeah, i've been making some notes about places that tripped me up which i'll pass on to you10:07
rvbata10:07
=== thumper-afk is now known as thumper
thumpermgz: ping10:09
mgzthumper: hey, sorry I missed you earlier, forgot to get into irc after rebooting back to ubuntu10:10
thumpermgz: yeah, got time to chat?10:10
thumperhangout?10:10
mgzer...10:10
thumperor just irc?10:10
mgzthat would mean rebooting again :)10:10
thumperyou can't do hangouts in ubuntu?10:10
thumpermgz: dude, get more computers \o/10:10
thumpermgz: does mumble work in ubuntu?10:11
mgzI have many, not all of which are that portable :)10:11
thumperor skype?10:11
mgzmumble is good10:11
* thumper fires up mumble10:11
thumperis canonical still running the mumble server?10:11
mgzI think I just need to hop...10:12
mgz^yeah, details are on the internal wiki10:12
thumperit eventually connected10:12
* thumper has to remember what his push to talk button was10:12
* thumper is in the cloud engineering kitchen10:13
rogpeppervba: what about the storage account key?10:14
thumpertalking thing isn't working10:14
* thumper pokes some more10:14
mgzaudio is such fun10:14
rvbarogpeppe: once you've created the storage account, click on it, then click on "manage access keys" at the bottom of the screen to get the key.10:15
rogpeppervba: ah, thanks - that menu at the bottom is good for evading the eyes :-)10:15
rvbarogpeppe: yeah :)10:15
fwereade_dimitern, https://codereview.appspot.com/11506043/ reviewed10:27
dimiternfwereade_: thanks10:27
rogpeppervba: do you have to manually create the environment's container?10:28
rvbarogpeppe: yes10:28
rvbaWe could automate this part but haven't done it yet.10:28
rogpeppervba: i assumed so, but was just checking i hadn't done something wrong10:29
dimiternfwereade_: I was thinking of AssertChange, but good naming is an art, and it didn't sound right10:30
dimiternfwereade_: :) so I guess I can make it AssertChanges and leave the comments I added10:30
rogpeppervba: is it possible to create the container from the portal? (i'm probably missing another menu option again...)10:35
rvbarogpeppe: yes: click on the storage, then the "CONTAINERS" tab, then "Add" at the bottom.10:36
rogpeppervba: ah, i'd missed that the storage name was a link10:37
fwereade_dimitern, AssertOneChange/AssertOnlyOneChange perhaps?10:44
fwereade_it's a bit of a nasty global rename10:44
fwereade_dimitern, but it's probably clearer than what I suggested first10:44
rogpeppenow *that's* a doman name juju-azurea44xm2tkgd51kt2l7zx3228isi0olwasqcpiccatd24pmj3lf5zj9.cloudapp.net10:44
rvbarogpeppe: yeah, we'll reduce the size of the random part :)10:45
dimiternfwereade_: no, I decided to go with your original suggestion - AssertChange + AssertOneChange, sgtm10:46
dimiternfwereade_: I tend to avoid very long idents when there are doc comments anyway :)\10:47
dimiternfwereade_: updated https://codereview.appspot.com/11506043/ - rogpeppe: can you take a look as well please?10:54
rogpeppedimitern: will do10:56
rogpeppedimitern: is there a reason you can't do : for {data, ok := <-in; if !ok { break }; out <- data.(*params.StringsWatchResult).Changes} ?10:59
dimiternrogpeppe: why, how is this better?10:59
rogpeppedimitern: it makes the flip logic much more obvious - why use a select?11:00
rogpeppedimitern: it's considerably shorter and simpler for one thing11:00
dimiternrogpeppe: it's not more obvious for me at least11:01
dimiternrogpeppe: i've never seen channels being used like that in a loop11:01
dimiternrogpeppe: hmm11:02
rogpeppedimitern: how is this not obvious? http://paste.ubuntu.com/5887170/11:02
rogpeppedimitern: it's a classic way to transfer data from one channel to another11:03
dimiternrogpeppe: really? didn't know11:03
rogpeppedimitern: read a value; write the value11:03
dimiternrogpeppe: but you have to use w.in and w.out in the loop, right? and instead of the panic you can have return nil after the loop11:04
rogpeppedimitern: with the select, it's not obvious that only one arm is ever active at a time11:04
rogpeppedimitern: yes11:04
dimiternrogpeppe: if you know the mechanics of a select block, it is (that's by definition)11:04
rogpeppedimitern: no - you have to follow the logic of when in and out can be non-nil11:05
rogpeppedimitern: BTW i think you need to select on tomb.Dying when writing to the out channel11:06
dimiternrogpeppe: so for instead of select in this case i agree is probably better11:06
dimiternrogpeppe: i can see it now11:06
rogpeppedimitern: well, the original uses for *and* select11:06
dimiternrogpeppe: but for more complicated cases where you're not just reading from one and directly writing to another as select gives you more flexibility11:06
rogpeppedimitern: sure11:06
rogpeppedimitern: this is a nice simple case though11:06
dimiternrogpeppe: except for a small thing actually11:07
rogpeppedimitern: i know what you're going to say :-)11:07
dimiternrogpeppe: the initial event won't be sent with that code until there is another change11:07
rogpeppedimitern: then swap the statements11:08
dimiternrogpeppe: hmm, not really11:08
dimiternrogpeppe: the initial event comes as an argument to the loop, it's not read from a channel11:08
rogpeppedimitern: data.(*params.StringsWatchResult).Changes11:09
rogpeppeoops11:09
rogpeppedimitern: http://paste.ubuntu.com/5887184/11:09
dimiternrogpeppe: that will probably work yes11:09
dimiternrogpeppe: i'll try it11:10
dimiternrogpeppe: it's a pity if we don't as well change the notifywatcher's loop the same way though11:10
rogpeppedimitern: that's slightly different - it's ok if we're always ready to receive on w.in there11:11
dimiternrogpeppe: there are no changes to send there, so we can always send the initial event11:13
rogpeppedimitern: yeah11:13
rogpeppedimitern: you probably want something more like this actually: http://paste.ubuntu.com/5887201/11:17
dimiternrogpeppe: why wait on the tomb? the commonWatcher is already doing this11:18
dimiternrogpeppe: I think it's more like http://paste.ubuntu.com/5887206/11:19
rogpeppedimitern: how else do we get out of the loop if we're trying to write to the out channel and the watcher is stopped?11:19
dimiternrogpeppe: oops that was for the strings watcher11:19
dimiternrogpeppe: http://paste.ubuntu.com/5887210/ that's for the notifywatcher11:19
dimiternrogpeppe: aha! so that's why we need select - see :)11:20
rogpeppedimitern: yeah we need select when sending the out value but not when reading the in value11:20
dimiternrogpeppe: the interesting thing is, it still works, without the select on the tomb11:21
dimiternrogpeppe: just run all tests - all pass11:21
rogpeppedimitern: i bet i could make it deadlock11:21
dimiternrogpeppe: so let's keep the original select blocks then please11:21
rogpeppedimitern: your original suggestion had the same problem11:22
rogpeppedimitern: (the one in the CL)11:22
dimiternrogpeppe: how so?11:22
dimiternrogpeppe: can you show me how to deadlock it? if the tests aren't detecting this case we need a better test11:22
rogpeppedimitern: yes11:22
rogpeppedimitern: you could deadlock it by creating a new watcher, reading the first change, making a change, waiting for the loop to receive a change, then stop the watcher without reading from the out channel11:23
dimiternfwereade_: how do you feel about my lasy 2 pastes above?11:24
rogpeppedimitern: this doesn't have that problem: http://paste.ubuntu.com/5887201/11:24
fwereade_dimitern, rogpeppe, meeting, will have to read backproperly in amo11:25
dimiternrogpeppe: i'm not really convinced yet11:25
rogpeppedimitern: what your issue with it?11:25
rogpeppes/what/what's/11:25
dimiternrogpeppe: we have a goroutine in commonLoop that waits on w.tomb.Dying()11:26
rogpeppedimitern: yes, and?11:26
dimiternrogpeppe: and it exists the loop when it happens11:26
rogpeppedimitern: there are two loops11:26
rogpeppedimitern: if the loop in StringsWatcher.loop is blocked trying to send on out, how does it know that the goroutine in commonLoop has finished?11:27
dimiternrogpeppe: hmm..11:27
dimiternrogpeppe: it *can* know if it waits for it11:28
dimiternrogpeppe: but i suppose waiting on the tomb is the same thing really11:28
rogpeppedimitern: yes. and your code wasn't waiting for it11:28
dimiternrogpeppe: nor was john's notifywatcher11:28
rogpeppedimitern: because out != nil => in == nil11:29
rogpeppedimitern: actually john's notifywatcher was11:29
rogpeppedimitern: because it was always ready to receive on in11:29
dimiternrogpeppe: hmm11:29
dimiternrogpeppe: i don't see how mine is different? because i'm reading changes, rather than always sending empty structs?11:30
rogpeppedimitern: because of line 21511:30
dimiternrogpeppe: so if I move that at the end of the case it'll work better?11:31
rogpeppedimitern: no11:32
dimiternrogpeppe: why?11:32
rogpeppedimitern: to make it work, you'd have to read on tomb.Dying in the select loop11:32
dimiternrogpeppe: but the notifywatcher is not doing that and yet you say it's correct?11:32
rogpeppedimitern: in the notify watcher it's reading on w.in which is always non-nil11:33
rogpeppedimitern: the point is that when in is nil, you're trying to send on out without allowing any way to know when the tomb is killed11:33
dimiternrogpeppe: that's only because there are always changes to send (empty)11:33
dimiternrogpeppe: but in my case that's also true11:34
dimiternrogpeppe: meeting?11:34
rogpeppedimitern: there aren't always changes to send in the notifyWatcher - otherwise it would always be sending11:34
dimiternstandup time11:34
rogpeppeah yes11:34
mgzI can't make standup I'm afraid, will be back shortly though11:35
dimiternrogpeppe: lp:~jameinel/juju-core/upgrader-api-worker lp:~jameinel/juju-core/long-timeouts11:44
* TheMue => lunch12:00
rvbarogpeppe: btw, I was told that Ian landed a change which affects how the MAAS and the azure provider get the instance id of a machine (previously, that was in environprovider).  So I need to test this.12:06
rvbarogpeppe: I got an awful crash when starting jujud: http://paste.ubuntu.com/5887330/ (bottom of the file).  Does that ring any bell?12:15
rogpeppervba: interesting12:15
rogpeppervba: is this on tip?12:16
rvbarogpeppe: yes, with a couple of tweaks in the Azure provider (that's what I'm testing) but the crash seems unrelated to my changes.12:16
rvbarogpeppe: apparently, it crashed precisely in the new code added by Ian.12:16
rogpeppervba: hmm, the stack trace doesn't seem to make sense to me12:19
rogpeppervba: it seems to imply it's crashing in yamlBase64Value.String12:19
rogpeppervba: ah, no, i was looking at an old version12:20
rvbaI'm using r 1487.12:20
rogpeppervba: ha!12:20
rogpeppervba: the problem is obvious - the previous line is missing a "return"12:20
rogpeppefmt.Errorf("cannot load state from URL %q: %v", stateInfoURL, err)12:20
rvbarogpeppe: ha!12:21
hazmatnoodles775, this is with the python support?12:24
hazmatnoodles775, or with juju-core?12:24
hazmatnoodles775, re deployer12:24
noodles775hazmat: python support (PyEnvironment.wait_for_units)12:30
=== flaviamissi_ is now known as flaviamissi
noodles775hazmat: I could be reading incorrectly, but it looks like we shouldn't be using juju-deployer/refactor yet.12:31
rvbarogpeppe: are you able to boostrap a node (with that bug fixed)?  Even with a manual fix for the "return" problem I'm getting an error, the stateInfoURL is the empty string apparently…12:43
rogpeppervba: i failed to bootstrap correctly, although the node was created.12:43
rogpeppervba: it failed to download the tools (although it seemed to upload them ok)12:44
rvbarogpeppe: same here: http://paste.ubuntu.com/5887414/12:45
rogpeppei saw this error: http://paste.ubuntu.com/5887427/12:47
rogpeppervba: it looks like your attempt got further than mine12:48
rvbarogpeppe: is the container named "juju-private-storage" public?12:48
rogpeppervba: i don't think so. should it be?12:48
rvbaIf you want to be able to download stuff from there without being authenticated, yes.12:49
rogpeppervba: usually the private storage is private12:49
rogpeppervba: ah, the url isn't authenticated?12:49
rvbarogpeppe: no12:49
rogpeppervba: ah, presumably that will be fixed in time12:50
hazmatnoodles775, pyjuju support there isn't 100%, wait_for_units specifically.12:50
rvbarogpeppe: yes, but it's not done yet (I think I wrote a note about this in the tutorial)12:50
hazmatnoodles775, i can push out update for it today12:51
rogpeppervba: ha! yes, you're right, mea culpa - i didn't read that far in the instructions.12:52
rogpeppervba: so there's no way of creating a read-only container?12:53
sidneiohai folks, trivial review? https://codereview.appspot.com/11501043/12:53
rogpeppesidnei: i thought i'd landed a similar fix12:54
rvbarogpeppe: well, you can create an account, put things in a public container, and trow away the key;  now you have a read-only container :).12:54
rogpeppesidnei: oh darn it, it looks like it didn't get merged12:54
rogpeppesidnei: https://code.launchpad.net/~rogpeppe/juju-core/339-fix-lp1197369/+merge/17483112:55
rogpeppesidnei: (argh, the merge failed because the tests hung up - i don't *think* it was related to my changes)12:55
rogpeppesidnei: marking as approved again12:56
noodles775hazmat: Thanks - the update would be great.12:57
sidneirogpeppe: cool12:57
rvbarogpeppe: the problem I'm seeing does not seem to be very Azure-specific… could you try boostrapping an ec2 environment (I'm asking because I suppose you have the set up already).13:00
rogpeppervba: will try13:00
rvbata13:00
rogpeppervba: it bootstrapped ok to me13:10
rogpeppes/to me/for me/13:11
rvbarogpeppe: okay… so it's Azure-specific then… thanks for testing.13:11
rogpeppemgz: conventionally, we start merge proposal titles with the package name(s), e.g. state: add address.go for machine location data13:12
rogpeppemgz: it might be nice to stick with that convention13:12
mgzrogpeppe: I always forget13:14
mgzand struggle to fit in 50 characters anyway...13:14
mgzshall try to do better in future13:15
rogpeppemgz: yeah the 50 char limit is punishing13:16
rogpeppemgz: it's nice to have the package name as a first-level filter though13:17
mgzhm, seems most commits of late have been forgetting it13:18
mgzor have just been changing things across packages13:18
rogpeppemgz: yeah, i should bring it up at a meeting. it's also really good to include the codereview link in the commit message13:19
mgzwell, that one got through the bot without hanging13:19
mgzrogpeppe: any clues on your failed merge test breakage?13:19
rogpeppemgz: i'm waiting to see if it happens again. approved 25 minutes ago. hopefully the queue's not too long.13:20
mgz2013-07-18 13:19:16 DEBUG    Merging https://code.launchpad.net/~rogpeppe/juju-core/339-fix-lp1197369 at revision roger.peppe@canonical.com-20130715172835-nsdxk0l82zpvqtpu13:21
noodles775hazmat: just so you don't double-up, sidnei is working on a fix to the PyEnvironment.wait_for_units.13:21
mgz(add an hour for BST)13:21
rogpeppemgz: where do you see that?13:21
mgzI'm tailing the tarmac logs on the bot13:21
rogpeppemgz: i've been wanting to do that13:21
rogpeppemgz: can anyone do it?13:21
rogpeppeanyway, lunchtime13:22
sidneirogpeppe: your mp doesn't have any Approved votes13:23
mgzrogpeppe: I've added you if you weren't before, `ssh ubuntu@10.55.63.190 "tail -f ~tarmac/logs/tarmac.log"`13:24
rogpeppesidnei: i marked it as Approved, no?13:24
rogpeppemgz: ta!13:24
sidneirogpeppe: the mp yes, but there's no votes, it's still pending review from juju hackers13:24
mgzsidnei: yeah, the votes don't matter in the way we're doing things, as they come in on rietveld rather than launchpad, so bot goes on just the status13:24
rogpeppesidnei: what do you mean by "votes"13:24
rogpeppe?13:24
sidneiah, thanks mgz13:25
sidneirogpeppe: i thought you were using tarmac the 'standard' way :)13:25
rogpeppeah, i guess i'm just unfamiliar with the usual workflow13:25
sidneiwhich looks at the approvals on the mp itself13:25
dpb1Hi all -- is debug-log supposed to work with the local provider?13:31
ahasenackto expand, it tries to ssh into the bootstrap node with ubuntu@, and I don't have an ubuntu user on my achine13:36
ahasenackmachine13:36
ahasenackit should probably not try to ssh and instead tail the log file locally13:36
mgzthat sounds like a bug report :)13:42
rvbarogpeppe: I'm still investigating but I think I found the problem… Ian did not update the Azure provider's code to cope with his new design.  So the url where to fetch the url to the state info file ends up being empty.13:51
rvbas/So the url/So the file/13:53
jcastrowhen's the next release due? sometime this week?13:54
=== TheRealMue is now known as TheMue
rvbarogpeppe: I'm putting together a branch with the fix to the Azure provider.14:06
hazmatjcastro, niemeyer knows travis14:08
jcastroack14:08
rogpeppedimitern: what were those two branches that jam handed off to you?14:09
dimiternrogpeppe: the uploader api and longwait unification14:11
rvbarogpeppe: care to have a look? With that I was able to boostrap a node on azure and deploy charms to get a working mediawiki service: https://codereview.appspot.com/11462044/14:13
rogpeppervba: cool!14:14
rogpeppervba: looking14:14
rvbata14:14
rogpeppervba: reviewed14:17
rvbarogpeppe: thanks14:17
rvbadimitern: could you please give me a second review for this: https://codereview.appspot.com/11462044/? It's tiny.14:24
dimiternrvba: LGTM14:29
dimiternman! i hate when my finger twitches and I send a review like 2-4 times :)14:29
marcoceppierror: build command "go" failed: exit status 1; can't load package: package launchpad.net/juju-core/cmd/jujud: import "launchpad.net/juju-core/cmd/jujud": cannot find package14:32
marcoceppiwhen trying to run juju bootstrap from recently compiled tip14:32
rvbadimitern: 6 times to be precise :).  Thanks for the review!14:33
ahasenackmarcoceppi: I had some build problems this morning14:33
ahasenackmarcoceppi: I rm -rf $GOPATH/* and started from scratch, after 8min it was good again14:33
marcoceppiahasenack: thanks, giving it ago14:38
rogpeppervba: did you edit the mp description directly inside launchpad?14:38
rvbarogpeppe: no14:39
rogpeppervba: hmm, it's really odd that the description doesn't contain the usual link to the codereview page14:39
rvbaSomething is probably wrong with my setup but I can't figure out what.14:39
rogpeppervba: presumably you created the lp mp with lbox?14:39
rvbaYes14:40
rogpeppervba: hmm. try proposing again and see if it works this time14:41
dimiternrogpeppe: btw you haven't sent me your review yet, but wait, i'm reproposing with the changes as discussed now14:42
rvbarogpeppe: I ran "lbox propose" again if that's what you wanted me to do…14:43
rogpeppedimitern: i didn't think there was a point in reviewing until you'd made those changes14:43
dimiternrogpeppe: yeah, good point14:43
rvbarogpeppe: ""14:43
rvbaAn environments.yaml entry for the image name (and region) would be a much14:43
rvbabetter stop-gap measure than patching the source!14:43
rvbarogpeppe: that's on our todo list ;)14:43
rogpeppervba: did the lbox propose make yet another codereview CL?14:44
rogpeppervba: and mp14:44
dimiternrogpeppe: https://codereview.appspot.com/1150604314:44
rvbarogpeppe: no, not this time (maybe because the branch hasn't changed).14:45
rogpeppervba: hmm, i don't see your changes still14:45
rvbarogpeppe: it's on lp: https://code.launchpad.net/~rvb/juju-core/fix-az-prov/+merge/17557414:46
rvbaTrust me, I made the changes :)14:47
rvbaI'll land this now.14:47
rogpeppervba: i believe you :-) i just want our workflow to function correctly14:47
dimiternrogpeppe: did you like the deadlock tests? :)14:59
rogpeppedimitern: haven't got there yet...14:59
marcoceppiI'm definitely missing something15:18
marcoceppiBlown away and go get'd a few times with different GOPATH's everytime I go install -v no output but binaries suddenly show up15:19
marcoceppinevermind.15:19
rogpeppemarcoceppi: go get does a go install15:20
ahasenackmarcoceppi: got a new build?15:20
marcoceppirogpeppe: So I don't need to run go install?15:20
rogpeppedimitern: reviewed15:20
dimiternrogpeppe: thanks15:21
rogpeppemarcoceppi: not if you've done the right go get (i.e. the packages you need)15:21
rogpeppemarcoceppi: go get launchpad.net/juju-core/...15:21
rogpeppemarcoceppi: should be sufficient15:21
dimiternrogpeppe: yeah, i did test it and it fails without the select block (deadlocks, so I needed to tweak the assert call to timeout)15:21
marcoceppirogpeppe: yeah, I do that only I use the -v flag. Didn't know it just built for you15:21
marcoceppithanks15:21
rogpeppedimitern: cool15:22
rogpeppedimitern: have you got a branch name for jameinel's upgrader API? i presume the timeout unification branch is lp:~jameinel/juju-core/long-timeouts15:27
dimiternrogpeppe: it's lp:~jameinel/juju-core/upgrader-api-worker (i did send you both earlier, i think)15:28
rogpeppeso you did - i don't know how i missed that15:29
=== tasdomas is now known as tasdomas_afk
mattywrogpeppe, question for you, if I wanted to get the version of a charm from the api. The only/best place is from the charmUrl right?16:05
rogpeppemattyw: currently yes16:06
mattywrogpeppe, great thanks :)16:07
fwereade_rogpeppe, hey, the public bucket holds tools and potentially simplestreams data -- anything else you can think of?16:09
* rogpeppe thinks16:10
rogpeppefwereade_: it could potentially hold info on available clouds16:10
rogpeppes/clouds/public clouds/16:11
fwereade_rogpeppe, a public bucket's already cloud-specific isn't it?16:11
rogpeppefwereade_: gotta start somewhere. autosync is an example of that.16:11
rogpeppefwereade_: it could hold info on how to contact jaas too16:12
rogpeppefwereade_: istm that a public bucket is our first point of information provision that isn't hardcoded into the juju binary16:13
rogpeppefwereade_: but perhaps i'm thinking too far into the future here16:14
rogpeppemattyw: you can use charm.InferRepository and charm.Repository.Get to actually retrieve a charm given its url16:15
fwereade_rogpeppe, I agree that some sort of global first point of contact would be a good thing, but what you're talking about goes a bit far beyond what I'm considering today16:16
fwereade_rogpeppe, cheers16:16
rogpeppefwereade_: you didn't give me any context for the question :-)16:16
fwereade_rogpeppe, well, you did already answer it perfectly before speculating :)16:17
fwereade_so I can't really compain ;p16:17
rogpeppei'm going to wrap up a little earlier today to go and enjoy the sunshine. leaving in 9 minutes.16:21
rogpeppedimitern: i've reproposed https://codereview.appspot.com/11439043/ with some tweaks and i hope your remarks addressed16:32
dimiternrogpeppe: yes, i saw it, thanks16:32
rogpeppedimitern: re-review appreciated16:32
rogpeppedimitern: the first time was just the original; i've now pushed my changes16:32
rogpeppedimitern: so you can see the exact changes i've made since jam's proposal16:33
rogpepperight, off now. see y'all tomorrow!16:33
dimiternrogpeppe: where's your branch then?16:33
rogpeppedimitern: there16:33
rogpeppedimitern: i just linked to it16:33
rogpeppedimitern: oh bugger, i didn't16:34
rogpeppedimitern: one mo16:34
rogpeppedimitern: https://codereview.appspot.com/1152904316:34
rogpeppettfn16:34
dimiternrogpeppe: i'll scan through it quickly16:35
dimiternrogpeppe: reviewed16:44
* fwereade_ is wondering why we demand that the user have an SSH key in order to bootstrap but still do the admin-secret dance17:41
dimiternfwereade_: that's an excellent question actually17:42
* fwereade_ suspects the answer is "because we're stupid"17:45
dimiterni suspect overengineering might be root cause ;)17:46
fwereade_that said, if we'd gone pk-only we would have problems with the gui, so I guess passwords *are* also necessary18:11
fwereade_not sure there's any good reason to use them from the CLI though18:11
fwereade_hey ho18:12
sidneifwereade_: https://codereview.appspot.com/1140704419:15
sidneire: https://bugs.launchpad.net/juju-core/+bug/120248019:16
_mup_Bug #1202480: saucy: bootstrap local environment works, machiner gets unauthorized <juju-core:New> <https://launchpad.net/bugs/1202480>19:16
thumpermorning20:59
* thumper sighs20:59
thumperlate night meetings make me feel like forever working20:59
* thumper sighs again...21:08
thumperfwereade_: you about later?21:08
sidneihey thumper21:44
thumperhi sidnei21:45
sidneithumper: speaking of reviews, this is a fix for saucy, for the bug i reported yesterday: https://codereview.appspot.com/11407044/21:46
* thumper looks21:46
sidneiit does break compat with mongo 2.0 iiuc, so might need a second opinion21:47
thumperany way to have it have a nice fallback?21:48
sidneithumper: i guess you could fallback to the previous code, running the eval21:48
sidneithe eval doesn't work with 2.4, because it requires admin privs, and the isMaster.localTime is not present in 2.0, so tricky ;)21:49
thumpersidnei: how about:21:49
thumpertry the 2.4 trick21:49
thumperand if that fails, fall back to eval21:49
thumperthat way we support both?21:49
thumperwith a preference to the latest version21:49
sidneithat's what i'd do yes21:50
* thumper leaves that comment on the review21:50
sidneithumper: should the fallback go inside the before/after? should there be a flag so it skips the first one after it fails the first time since it's inside a loop?21:53
thumpersidnei: thinking...21:58
thumperwtf is this command doing?22:06
thumperwhy the wait for 5 seconds?22:06
thumperno comment...22:06
thumperthat's helpful22:06
thumperNOT!22:06
sidneithumper: it's not waiting for 5 seconds, it's *retrying* if running the function on the server takes more than 5 seconds!22:11
sidneieven nicer, the eval acquires a global write lock on the server, so the likelyhood of it waiting to acquire that lock is not exactly low ;)22:12
thumperah...22:13
thumpersidnei: can I get you to add a comment to that effect?22:13
sidneisure, i added like 4x more comments than changes already :)22:14
thumper:)22:14
sidneithumper: how do i upload codereview? lbox -cr?22:31
thumpersidnei: just lbox propose again22:32
sidneithumper: done22:33
wallyworlddavecheney: hi, you tagging a release this morning?22:57
thumperwallyworld: I need to land a fix before the tag hits23:04
thumperwallyworld: or destroying local environments is broken23:04
wallyworldthumper: i was also hoping to get a 2nd +1 on the force machine rename23:05
thumperwallyworld: I didn't realise that the lxc-destroy command removed the symlink from /etc/lxc/auto23:05
thumperwallyworld: at least mine is trivial :)23:05
wallyworldmine isn't that complicated23:05
=== _thumper_ is now known as thumper
thumperwallyworld, davecheney: plz... https://codereview.appspot.com/11546043/23:20
* wallyworld looks23:21

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