[01:32] <wallyworld> axw: standup?
[01:33] <axw> oops
[01:33] <axw> wallyworld: brt
[02:41] <waigani> wallyworld: doc/hacking-state.txt:49 talks about mgo/txn's "transactions"
[02:41] <wallyworld> yeah, i read that way back when
[02:42] <waigani> but they are not really transactions?
[02:43] <waigani> just sets/slices of db opps ?
[02:44] <wallyworld> yep
[02:44] <wallyworld> that's how i see it
[02:45] <waigani> okay, just double checking
[02:45] <waigani> thanks
[02:45] <wallyworld> i guess each slice of ops is a txn
[02:45] <wallyworld> but there are limitations compared with what you might expect from using other dbs
[07:58] <dimitern> morning all
[08:02] <waigani> axw: can I bother you?
[08:03] <axw> waigani: yep?
[08:03] <axw> morning dimitern
[08:05] <hatch> hello all, has anyone ever run into a situation where juju-core (1.17.2 precise( thinks an environment is bootstrapped but can't destroy it because there are no instances? I tried removing the environments/ folder but no luck
[08:06] <axw> hatch: the provider-state file is probably in cloud storage
[08:06] <axw> what provider?
[08:06] <hatch> ec2, I'll take a look
[08:07] <waigani> axw: sync-tools. quick hangout?
[08:07] <axw> hatch: if it happens again, try destroy-environment --force
[08:07] <axw> waigani: sure
[08:08] <hatch> axw that was it! Thanks, I didn't know that it did that, I have been switching between trunk and devel a bunch so I wasn't sure if I broke something big :D
[08:08] <axw> no worries
[08:09] <axw> would be good to know why it happened, but that'd be difficult to figure out with no instances :)
[08:09] <hatch> I'll keep an eye open to see if it happens again
[08:10] <hatch> if the machines were destroyed out from under Juju (in the ec2 control panel) could that cause it?
[08:17] <axw> hatch: that would cause it I think, but I can't tell if that's *the* cause
[08:18] <hatch> well after I'm done doing what I'm doing I can give it a try...might not be until later int he week though :)
[08:20] <axw> no problems, thanks
[08:33] <hazmat> axw, fwiw filed some new manual provider issues over the weekend (https://bugs.launchpad.net/juju-core/+bugs?field.tag=manual-provider&orderby=-date_last_updated&start=0)
[08:34] <axw> hazmat: thanks, will take a look
[08:34] <hazmat> hatch, yanking the provider-state in control-bucket should do the trick, there's an outstanding bug for this issue. basically juju should sanity check the instance id in object storage.
[08:35] <axw> oy, I thought the reverse lookup was fixed
[08:35] <hazmat> hatch, https://bugs.launchpad.net/juju-core/+bug/1176961
[08:35] <hatch> ahhh thanks
[08:35] <hazmat> axw, hmm.. i was going back and forth from trunk to 1.17.2 .. that one might have been against 1.17.2
[08:35] <hatch> I had used --force
[08:35] <hatch> but good to know there is a known issue around this
[08:37] <axw> hazmat: nah there's still a lookup in there, just in a different spot from before
[08:40] <axw> hazmat: is https://bugs.launchpad.net/juju-core/+bug/1280432 on trunk?
[08:41] <hazmat> axw, yes, but your pending branches may address
[08:41] <axw> hazmat: https://bugs.launchpad.net/juju-core/+bug/1279259
[08:41] <axw> yeah
[08:41] <axw> ok
[08:41] <hazmat> axw, it looked like on upload-tools it was hardcoded to use ubuntu user before user was setup
[08:41] <hazmat> modifying it to use configured bootstrap-user resolved it for me.. your fixes look more comprehensive
[08:42] <axw> hazmat: what should happen is the ubuntu user gets initialised before any other ssh attempts are made; then ubuntu@ is hard-coded for everything else
[08:42] <axw> only the ubuntu user init should use bootstrap-user
[08:43] <hazmat> axw, i saw the logic, just not the reasoning, ie say we support centos ;-)
[08:43] <axw> heh
[08:47] <axw> hazmat: fwiw, the reasoning is: limit the number of times we request passwords from the user to one time during bootstrap
[08:47] <hazmat> axw, btw, i was able to use some of the recent manual feature api additions to give a slick demo, of creating 50 lxc containers as env machines in under a minute, all offline
[08:47] <axw> (once for ssh, once for sudo)
[08:47] <axw> nice :)
[08:47] <axw> oh, without apt-get stuff... very cool
[08:48] <hazmat> axw, it needs a little setup (base images, btrfs) but the core comes out to just being roughly 20 lines.. https://github.com/kapilt/juju-lxc/blob/master/juju_lxc/add.py#L29
[08:48] <hazmat> axw, yeah.. it  is pretty awesome, thanks :-)
[08:49] <axw> oo, I hadn't seen juju-lxc
[08:49] <axw> this looks like it'd be useful for my testing
[08:51] <hazmat> axw, yeah.. its what i do dev with.. its not really cleaned up for easy consumption though, hoping to push some of it to tim's push to make local provider moar awesome.
[08:51] <axw> hazmat: ah right, hence the talk of a plugin rather than local-specific.
[08:52] <hazmat> axw, yup.. burnt my free time hacking on making digital ocean manual plugin easily consumable.. curious where that goes... i'll clean up the lxc plugin next time around.. but back to client work for the next few weeks.
[08:53] <axw> enjoy ;)
[09:01] <rogpeppe> jam: standup?
[09:01] <jam> rogpeppe: yeah, 1:1 I was just making some lunch
[09:06] <dimitern> rogpeppe, it's a little early to be standing up :P
[09:21] <rogpeppe> dimitern: you're right, i'm sitting down
[09:36] <mattyw> rogpeppe, can you ping me when you're done? I've got questions/ need some help when you have a moment
[09:39] <dimitern> jamespage, ping
[09:40] <jamespage> dimitern, hello
[09:40] <dimitern> jamespage, did you get my last few messages?
[09:40] <dimitern> jamespage, hey
[10:00] <fwereade> axw, waigani: just responded to https://codereview.appspot.com/61520045/ -- thoughts?
[10:10] <waigani> fwereade: sorry dude, my only thought right now is that I can't keep my eyes open. I'll take a look in the morning.
[10:10] <fwereade> waigani, np, sleep tight :)
[10:32] <TheMue> fwereade: https://codereview.appspot.com/58510045/ is the current approach to debug-log, with support for local provider
[10:35] <fwereade> TheMue, nice coincidence, I literally just got to that point in the review queue, probably won't do it until after standup though
[10:36] <TheMue> fwereade: ok, have a new task where I have to read a lot first
[10:36] <fwereade> TheMue, cool :)
[10:47] <dimitern> rogpeppe, now's the time to stand up
[10:47] <dimitern> ;)
[10:50] <rogpeppe> wallyworld: are you coming back? we miss you!
[11:41]  * dimitern is out for 2h
[13:01] <rogpeppe> trivial code review anyone? https://codereview.appspot.com/65050043/
[13:01] <rogpeppe> (it just sorts all imports consistently throughout the code base)
[13:01] <rogpeppe> fwereade: ^
[13:10]  * fwereade looks
[13:11] <fwereade> rogpeppe, LGTM
[13:11] <rogpeppe> fwereade: thanks
[13:35] <fwereade> TheMue, half-reviewed https://codereview.appspot.com/58510045/ -- rogpeppe, would you take a look as well please?
[13:38] <TheMue> fwereade: thx
[13:43] <TheMue> fwereade: regarding the public or internal params if I ask two of you I get three opinions. :)
[13:44] <TheMue> fwereade: and all are one package, only different files. maybe a more general conceptual problem?
[13:45] <fwereade> TheMue, haha
[13:45] <fwereade> TheMue, what's the case for calling them internal?
[13:45] <fwereade> TheMue, IMO if we expose them over the public API they're, well, public
[13:46] <fwereade> TheMue, re files -- yeah, it's just convention I guess, but I think there's some value to spreading things out by file even if it's not compiler-enforced
[13:46] <TheMue> fwereade: I had it in public before
[13:48] <TheMue> fwereade: see https://codereview.appspot.com/58510045/diff/60001/state/api/params/params.go#newcode570 :)
[13:48] <fwereade> TheMue, cheers
[13:50] <fwereade> TheMue, I read that a bit differently to you, I think -- both the debug bits and the charms response should be in params, because they're both public api
[13:52] <TheMue> fwereade: So you mean it should be moved inside the internal.go file? Otherwise, what does "Also, please move this in internal.go, where ..." mean?
[13:52] <fwereade> TheMue, I think there was agreement in dimitern's second comment that they should both go in params, not internal
[13:53] <fwereade> TheMue, he said params is fine, but please more CharmResponse
[13:53] <fwereade> s/more/move/
[13:54] <TheMue> fwereade: OK, ic.
[13:54] <TheMue> fwereade: But I won't move CharmResponse as the refactoring of those two extra handlers should be an extra CL. This one is already too large.
[14:01] <rogpeppe> fwereade: i responded to some of your comments on  https://codereview.appspot.com/58510045/
[14:14] <TheMue> rogpeppe: your way of letting all providers explicitly set the log location is less convenient but sounds logical and save
[16:29] <dimitern> rogpeppe, hey, are you aware of the status of schema upgrades using the new upgrade framework?
[16:29] <rogpeppe> dimitern: mongo schema upgrades?
[16:29] <dimitern> rogpeppe, yep
[16:29] <rogpeppe> dimitern: i think they're planned for, but i don't know when
[16:29] <dimitern> rogpeppe, I know wallyworld did some work on upgrades in general, but is it usable?
[16:29] <rogpeppe> dimitern: it only covers upgrades to stuff on a given machine
[16:30] <dimitern> rogpeppe, hmm ok, so no schema upgrades yet
[16:30] <rogpeppe> dimitern: the upgrades doc talks about mongo schema upgrades, but there's quite a bit of stuff yet to design
[16:31] <dimitern> rogpeppe, i'm asking because of bug 1174610 which I've just fixed, but it involves some schema changes
[16:31] <_mup_> Bug #1174610: unit ids should be unique <regression> <juju-core:In Progress by dimitern> <https://launchpad.net/bugs/1174610>
[16:32] <rogpeppe> dimitern: schema changes are essentially major-version upgrades
[16:32] <dimitern> rogpeppe, I'll propose it provisionally for now, pending what needs to be done re schema upgrades
[16:33] <rogpeppe> dimitern: how are you proposing to fix the problem?
[16:34] <dimitern> rogpeppe, by using the sequence collection for unit ids, as we do for pretty much all other ids (machines, containers, etc.)
[16:35] <rogpeppe> dimitern: so if you deploy wordpress, then deploy mysql, the first mysql unit is mysql/1 ?
[16:35] <dimitern> rogpeppe, no
[16:35] <dimitern> rogpeppe, the sequence name is "s#servicename#unit", so any service named "mysql" will have its units starting from 0
[16:36] <rogpeppe> dimitern: what happens now?
[16:36] <dimitern> rogpeppe, e.g. if you deploy wordpress as mysql, then add a unit, it will be mysql/0, then destroy the service and deploy mysql with name "mysql", add a unit - it will be mysql/1
[16:36] <dimitern> rogpeppe, now unit ids start from 0 for each service
[16:37] <rogpeppe> dimitern: ok, that's a little better
[16:37] <rogpeppe> dimitern: it feels a little bit like a hack to get around the fact that our *service* names aren't unique though
[16:37] <dimitern> rogpeppe, and apparently that's a regression from before, and some charms depend on using unit ids and them being unique
[16:38] <rogpeppe> dimitern: the problem is that some other charms might depend on having a unit 0.
[16:38] <rogpeppe> dimitern: (not that they should, of course)
[16:39] <dimitern> rogpeppe, if there are any, it's not mentioned
[16:44] <dimitern> hazmat, you'd be happy to know a fix for bug 1174610 is land very soon
[16:44] <_mup_> Bug #1174610: unit ids should be unique <regression> <juju-core:In Progress by dimitern> <https://launchpad.net/bugs/1174610>
[16:44] <dimitern> rogpeppe, there it is https://codereview.appspot.com/64890044
[16:46] <dimitern> hazmat, s/is land/will land/
[16:48] <rogpeppe> dimitern: if it's not backwardly compatible without a schema change, i don't see how it can land
[16:49] <dimitern> rogpeppe, it is compatible i think
[16:49] <dimitern> rogpeppe, the problem is to update the sequences collection during the upgrade, so new units won't get ids starting from 0
[16:50] <rogpeppe> dimitern: exactly
[16:50] <rogpeppe> dimitern: it's a major-version issue
[16:51] <rogpeppe> dimitern: i'm wondering if there's a way to do it without the schema change
[16:51] <rogpeppe> dimitern: or, without needing to synchronously update the schema anyway
[16:54] <hazmat> dimitern, woot!
[16:56] <rogpeppe> dimitern: for example, when a service is created, you could mark it with a "uses global sequence numbering" flag
[16:56] <dimitern> rogpeppe, yeah?
[16:56] <rogpeppe> dimitern: when a service is destroyed that doesn't have that flag set, it could update the sequences collection with the most recent unit number for that service
[16:56] <dimitern> rogpeppe, isn't that a schema change as well?
[16:57] <rogpeppe> dimitern: when a unit is created, if allocates it from the service sequence number unless the "uses global sequence" flag is set
[16:57] <dimitern> rogpeppe, ah, one of those flags where false is default
[16:57] <rogpeppe> dimitern: yes
[16:57] <rogpeppe> dimitern: in that way, you can remain compatible with the old schema but update to the new schema over time
[16:57] <dimitern> rogpeppe, well, that could work, but how about service creation? we always create services with this flag=true
[16:58] <rogpeppe> dimitern: yes
[16:58] <dimitern> rogpeppe, ok, i'll look into it tomorrow, i'd appreciate these comments in the review please :)
[16:58] <rogpeppe> dimitern: so only legacy services will have that flag==false
[16:58] <rogpeppe> dimitern: ok, will do
[16:58] <dimitern> rogpeppe, ta!
[17:44] <jamespage> davecheney, btw a new gccgo-4.9 snapshot is working its way into trusty; I've rebuilt gccgo-go and juju-core using this new version
[17:44] <jamespage> its the default (gccgo -> gccgo-4.9)
[18:27] <rogpeppe> trivial code review, anyone? https://codereview.appspot.com/65160043/
[18:37] <mgz> rogpeppe: will look in a sec
[18:37] <rogpeppe> mgz: ta