/srv/irclogs.ubuntu.com/2012/06/13/#juju-dev.txt

davecheneyniemeyer_: i'm actively responding to rog's comments on the stop/start machine CL01:50
davecheneyand will have another proposal by the end of the day01:51
davecheneyi'll remove it from review01:51
niemeyer_davecheney: Cool, I was just skimming over it actually01:51
davecheneyit'll be 10-15% smaller by the end of the day01:51
niemeyer_davecheney: Sounds good.. I'd like to have a look at it with a fresher brain tomorrow as well, so that will suit well01:51
davecheneycool01:52
niemeyer_davecheney: Oh, that's nice01:52
davecheneyniemeyer_: related question: do you know what the status of our hp cloud access is01:56
davecheneyie, can we just use it, or is there something left to do ?01:57
niemeyer_I have not heard, but I can check in the morning02:12
davecheneyniemeyer_: thanks02:13
Arammorning.06:56
* davecheney goes back to fighting juju test07:00
rogpeppeAram, davecheney, fwereade_: hiya07:23
fwereade_heyhey07:23
Arammoin07:23
davecheneyevening lads07:23
davecheneyi'm just on my way out07:23
davecheneyhave a nice evening07:23
rogpeppedavecheney: what are doing to poor jujutest; she never wanted to fight anyone :-)07:23
rogpeppes/doing/you doing/07:23
rogpeppedavecheney: ok, have a good one07:24
fwereaderogpeppe, can I ask a favour please? I'm off today, and the rework-stop-watchers branch is still not submitting cleanly; if you would merge it for me I would be most grateful09:12
fwereaderogpeppe, I can worry about why I can't submit anything else later ;)09:13
rogpeppefwereade: i will try, np09:13
fwereaderogpeppe, tyvm09:13
niemeyerGood morning10:19
rogpeppeniemeyer: hiya10:21
rogpeppeniemeyer: i'm wondering what your feeling on10:22
rogpeppecannot create new10:22
rogpeppemachine node10:22
rogpeppeoops10:22
rogpeppeniemeyer: i'm wondering what your feelings on assign-subordinate-units are now10:22
rogpeppeniemeyer: although i think bcsaller's criticism is somewhat misfounded (the change is always made properly within a retryChange transaction), i'm still inclined to drop the change and make Machine.Units (perhaps renamed) return principal units only10:24
niemeyerrogpeppe: The data fiddling seems to be unnecessary10:26
rogpeppeniemeyer: that's what i'm thinking10:26
niemeyerrogpeppe: And it's nice to avoid depending on atomic behavior, even if we can10:26
rogpeppeniemeyer: (if i understand what you mean by data fiddling here)10:26
rogpeppeniemeyer: that too.10:27
niemeyerrogpeppe: The Units API still looks nice, though10:27
rogpeppeniemeyer: i'm happy if we document that Machine.Units returns principal units only10:27
niemeyerrogpeppe: That sounds bad10:27
rogpeppeniemeyer: oh10:28
niemeyerrogpeppe: Have you seen the comment in the review?10:28
rogpeppeniemeyer: so your suggestion, i think, is that topology.UnitsForMachine should do a search for subordinate units too, rather than just looking a topoUnit.Machine?10:30
rogpeppes/a topo/at topo/10:31
niemeyerrogpeppe: Right, it's the same loop..10:31
rogpeppeniemeyer: no, i think it needs to be an inner loop. it's n^2 but probably not bad in practice.10:31
rogpeppeniemeyer: that is, for each unit we find with the given machine, we have to scan all other units to see if any has that unit as its principal.10:32
niemeyerrogpeppe: Only if we do it badly10:32
rogpeppeniemeyer: right, we could do two linear loops, building up a map in the first one, i suppose10:33
niemeyerYep10:33
rogpeppestill not quite "the same loop" but, yeah, that would work ok.10:34
rogpeppeniemeyer: and i have to check if we always know if a unit is principal when we create a *Unit.10:35
niemeyerrogpeppe: It can actually be done in the same loop, but it doesn't matter.10:35
niemeyerrogpeppe: The Principal is a setting next to the Machine10:36
rogpeppeniemeyer: i don't *think* so, because when we get to a subordinate before its principal, we don't know whether to keep it around or not.10:36
niemeyerrogpeppe: I'm going to argue.. it doesn't matter..10:36
niemeyerI'm not going to argue10:36
rogpeppeniemeyer: i'd like to do it in the same loop, which is why i'm asking. i don't mind much though.10:38
rogpeppeniemeyer: ok, i'll go with that, thanks.10:39
rogpeppeniemeyer: i don't think the tests need to change, which is nice.10:39
niemeyerrogpeppe: I'm more concerned that it looks nice.. it doesn't have to be in the same loop10:39
niemeyerrogpeppe: The tests need to ensure subordinate units are returned, because clearly they don't right now10:40
rogpeppeniemeyer: that CL made it do so, and tested for that10:40
rogpeppeniemeyer: but i think Unit.MachineId should look up the principal unit when necessary. that's new.10:41
niemeyerrogpeppe: Yeah, indeed10:42
Aramhi niemeyer10:44
niemeyerAram: Heya10:45
rogpeppemramm: hiya10:45
mrammrogpeppe: hi10:45
TheMueLunchtime11:30
* rogpeppe *hates* the fact that ^W deletes a tab in Chrome. And that it loses the contents of any text entry box in doing so.11:31
TheMueniemeyer: https://codereview.appspot.com/6296064 is just in again. Looks better, definitely. Thx for that great idea.11:31
Aramrogpeppe: I hate that ^W is so close to ^Q.11:31
rogpeppeAram: i'd switch off all menu shortcuts if i could (i don't count ^X, ^C and ^V)11:32
niemeyerTheMue: Heya, no problem12:16
niemeyerrogpeppe: clean up data", but that's not the only thing that zkRemoveTree is used12:18
niemeyerfor - removing a service is not really "cleaning up data").12:18
niemeyerrogpeppe: I'm not following..12:18
niemeyerrogpeppe: That's exactly what zkRemoveTree is doing in that context12:18
niemeyerrogpeppe: Ah, I think I see what you mean12:20
TheMuerogpeppe: zkRemoveTree() only adds this, but it's called in methods adding more context.12:25
TheMuerogpeppe: So you've got "can't remove server: can't clean up data: ...".12:25
TheMuerogpeppe: The context of where zkRemoveTree() is called has to be added by the caller.12:26
TheMueOoops, 'can't remove service "foo": can't clean up data: <<some error during zk.Delete()>>'12:30
TheMueSo it looks like.12:31
niemeyerTheMue: That was his point too12:33
niemeyerHeading off for doc appointment12:41
niemeyerTheMue: You have a review on this issue12:41
TheMueniemeyer: Yes, I've seen and started the changes.12:41
TheMueniemeyer: Is back in again.12:55
* TheMue really likes errorContext(). It later easily can be extended.12:58
niemeyerTheMue: Thanks, checking again13:47
TheMuerogpeppe: Does the current errorContext() doesn't work with govet? My editor uses govet live (at least I thought so) and it doesn't complain.14:01
rogpeppeTheMue: in a meeting, back in a short while14:02
TheMuerogpeppe: ok, have a phone call, so np14:05
niemeyerTheMue: Another review in14:07
niemeyerTheMue: The point of rog's comment is that he suggests go vet would actually catch mistakes with his proposed implementation. I'm not sure about that myself, and would like to see it happening before changing the function to something uglier.14:08
niemeyerIs fwereade off today?14:39
TheMueniemeyer: reasonable14:39
TheMueniemeyer: Yes, he's off today.14:39
* TheMue has a hot ear from phoning a bit longer.14:40
niemeyerThere are two branches with similar names and similar descriptions, pushed around the same time14:40
TheMueniemeyer: fwereade asked rogpeppe this morning regarding rework-stop-watchers14:41
niemeyerTheMue: Oh?14:42
TheMueniemeyer: It's not submitting cleanly and so he asked rog to merge it.14:43
niemeyerTheMue: The branch is up for review14:43
niemeyerOh, but it's a copy of a third branch?14:44
niemeyerUgh.. messy14:44
TheMueniemeyer: I think rog can tell you more about it.14:44
niemeyerIt seems to be the same branch that was already reviewed14:46
niemeyerIt just sucks that there are two merge proposals up without any hints about what's going on14:46
niemeyerI'll pick the newest one and attempt to merge it14:48
TheMueniemeyer: Next propose is in.14:58
* rogpeppe is out of the meeting15:02
rogpeppeniemeyer: william wasn't able to submit the branch15:02
rogpeppeniemeyer: he was getting "readonly transport" errors15:03
niemeyerrogpeppe: Okay, it's in now.. hopefully I got the intention properly15:03
niemeyerTheMue: Review is in15:03
rogpeppeniemeyer: the point about the go vet stuff is that i think it's asking for trouble to have a function that takes a printf-like format string and deliberately miss the last argument.15:03
rogpeppeniemeyer: and in fact i think the signature is slightly nicer - every single call would end in ": %v" AFAICS15:04
rogpeppeniemeyer: so we can lose that15:04
niemeyerrogpeppe: How's go vet related to that?15:05
rogpeppeniemeyer: go vet can check printf-like format strings15:05
niemeyerrogpeppe: I'm happy to have the ": %s" added automatically.. that point wasn't clear from your comment15:05
niemeyerrogpeppe: Have you managed to make go vet work with that function?15:05
rogpeppeniemeyer: yes15:05
niemeyerrogpeppe: Can you please paste an example that fails15:06
niemeyerTheMue: Please hold off merging for a moment15:06
TheMueniemeyer: Yes, I'm following here.15:06
rogpeppeniemeyer: actually i lie. i managed to make go tool vet work with that function.15:06
niemeyerrogpeppe: Same thing.. can you please paste an example of go vet complaining?15:06
rogpeppeniemeyer: http://paste.ubuntu.com/1039204/15:08
niemeyerrogpeppe: Ah, you're calling vet manually with explicit parameters15:10
rogpeppeniemeyer: yes, you need to tell govet about custom functions.15:10
rogpeppeniemeyer: but it can still do the check15:10
niemeyerrogpeppe: Ok, sounds good15:10
niemeyerTheMue: That sounds good to me.. what do you think?15:11
TheMueniemeyer: Yes, so I'll change it from append()... to +. Also adopt it in the error strings.15:12
niemeyerTheMue, rogpeppe: Awesome, thanks15:13
rogpeppeTheMue: thanks15:13
rogpeppeTheMue: and note that the function name needs to end in "f"15:13
TheMueniemeyer: I'll also change the name.15:13
TheMuerogpeppe: Yes. ;)15:13
TheMueniemeyer: Tests are green with latest trunk. Directly submit it or do you want to have a final look?15:22
niemeyerTheMue: If it's all as agreed, +1 on submitting15:29
TheMueniemeyer: OK, here it comes.15:30
niemeyerTheMue: Woohoo :)15:30
TheMueniemeyer: Hmm, not yet. Have a "Cannot lock LockDir" during submit. Any idea what I'm missing?15:33
rogpeppeTheMue: i think that's the same error fwereade was getting15:34
rogpeppeTheMue: does it say "readonly transport" ?15:34
TheMuerogpeppe: Exactly!15:35
rogpeppeniemeyer: have you tried submitting fwereade's branch? i wonder if you'll get the same problem.15:35
niemeyerrogpeppe: As I mentioned, it's already in15:40
niemeyerHopefully I got the proper end of it15:41
niemeyerI wonder if I screwed up the setpu somehow15:41
rogpeppeniemeyer: ah, i haven't seen a submit message yet.15:41
niemeyerThere won't be one, but I added a note15:42
niemeyerAnd mentioned above too15:42
niemeyerTheMue: What's bzr info telling you?15:43
rogpeppeniemeyer: ah, i didn't see anything that said you'd actually submitted anything. my clients probably missed the message somehow.15:44
niemeyerJun 13 12:03:00 <rogpeppe>      niemeyer: he was getting "readonly transport" errors15:44
niemeyerJun 13 12:03:25 <niemeyer>      rogpeppe: Okay, it's in now.. hopefully I got the intention properly15:44
TheMueniemeyer: It's a standalone tree format 2a, push branch is  bzr+ssh://bazaar.launchpad.net/~themue/juju-core/go-state-second-error-improvement/.15:45
TheMueniemeyer: Branch root is .15:46
rogpeppeniemeyer: ah, i didn't realise that's what you were talking about :-)15:46
niemeyerrogpeppe: Heh15:46
TheMueniemeyer: Parent is ...../trunk15:46
niemeyerTheMue: Hmm15:46
niemeyerSomehow it's picking up a branch for merging onto that you don't have access to15:49
niemeyerWhich makes little sense to me15:49
niemeyerOh, it's making more sense now15:50
niemeyerCrap15:50
niemeyerI've pushed as gophers rather than ~juju15:50
niemeyerTheMue: Please try to submit now15:51
TheMueniemeyer: Yeah, great, thx!15:52
TheMueniemeyer: So I can start the next branch for unit.go.15:53
rogpeppeniemeyer: assign-subordinate-units updated as we discussed: https://codereview.appspot.com/629907315:55
TheMueniemeyer: Ah, I'm a gopher now, see the reason. ;)15:56
niemeyerTheMue: Worked?15:59
niemeyerrogpeppe: Thanks a lot man16:00
niemeyerrogpeppe: I'll have a look at that as soon as I'm back from lunch16:00
TheMueniemeyer: Yes, it's in.16:00
rogpeppeniemeyer: thanks!16:00
niemeyerTheMue: Superb16:00
niemeyerrogpeppe, TheMue: So it was just me screwing over on the migration16:00
TheMueniemeyer: Thank you, I'll continue with unit.go now.16:00
niemeyerI'll fix that when I'm back too16:00
rogpeppeTheMue: you might want to review that too. and this one also: https://codereview.appspot.com/629908216:21
rogpeppebcsaller: i've changed https://codereview.appspot.com/6299082/ based on your feedback. i *think* the two are functionally the same, but the new version avoids the need to make changes in several places in the topology at once.16:25
bcsallerrogpeppe: thanks, I'll look at it again16:25
rogpeppebcsaller: oops, i meant https://codereview.appspot.com/6299073/16:26
rogpeppebcsaller: thanks a lot for the feedback BTW. it's really good to have more people familiar with the python version looking at the changes going past in the Go version.16:26
bcsaller:)16:27
rogpeppebcsaller: can you think of a good reason why the machine agent downloads the charm for the unit agent that it starts?16:56
bcsallerrogpeppe: rather than the unit agent you mean?16:57
rogpeppebcsaller: yeah16:57
rogpeppebcsaller: given that the unit agent already deals with downloading charms for its subordinates16:57
bcsallerrogpeppe: I cannot, I think it should be the UA for when things are in LXC containers, but that design predates the LXC everywhere model16:57
rogpeppebcsaller: cool, thanks.16:58
bcsallerrogpeppe: yeah, the sub stuff is new and we factored out the deployment stuff for that to be reused but did touch the orig MA use16:58
rogpeppebcsaller: the other thing i'm thinking about is that if the machine agent crashes but the unit agents carry on, then there doesn't seem to be a way for the MA to detect that they're still around and avoid starting them again. am i missing something?16:59
TheMuerogpeppe: Review is in, sadly clicked too fast so one remark and one with comments.16:59
rogpeppeTheMue: ok, thanks a lot17:00
bcsallerrogpeppe: on restart of the MA it needs to look at the at the assigned units and their states in ZK, no?17:00
rogpeppebcsaller: yeah, you're right. i must've missed that bit in the python code. thanks.17:01
rogpeppebcsaller: i suppose the difficulty is that there's no real way of telling if the unit has really gone down, or just the unit agent.17:03
bcsallerrogpeppe: a real and persistent issue, yeah, knowing if the service is running apart from the agent isn't really handled, it could mean so many things17:04
rogpeppebcsaller: and upstart *should* handle the unit agent restart. so perhaps it's right that the machine agent only checks for unit agent presence when it starts up, rather than watching it continually.17:05
bcsallerrogpeppe: I think there is nothing wrong with the idea that the MA should observe the UA presence unless we are sure there is no action it will take (due to upstart for example)17:06
bcsallerrogpeppe: but if its always a no-op then sure17:07
rogpeppebcsaller: i'm trying to think of a case where we'd want the MA kill the UA (and its container) and restart it. because there's no way the MA can restart the unit in general without doing that.17:08
bcsallerrogpeppe: there would have to be a coordination protocol around the stop/restart/upgrade of units, kapil has been thinking about that stuff for some time now17:09
rogpeppebcsaller: do any of those (stop/restart/upgrade) imply that the unit's container needs to be ripped down, then recreated?17:11
bcsallerrogpeppe: upgrade might for some definition of ripped down, but generally no17:11
bcsallerrogpeppe: upgrading the agent itself17:12
rogpeppebcsaller: upgrading the agent itself is ok i think, and can be done without affecting the container17:12
bcsallerrogpeppe: agreed17:13
rogpeppeTheMue: the difference between addLoggingCharm and addDummyCharm is that addDummyCharm is used a lot, so probably justifies the charm variables stored in StateSuite (avoiding the overhead of reading the charm directory each time), but i'm not sure that addLoggingCharm does...17:19
rogpeppeTheMue: on the other hand, maybe a more general mechanism might be good. i'll think about that.17:22
niemeyerrogpeppe: I can't think of a reason for tha MA to be killing the UA like that17:22
Aramgah.17:22
Arammanaged to lock myself out of the apartment.17:23
Aramwe have these dumb doors that lock themselves at all times.17:23
niemeyerrogpeppe: and +1 on having UAs handling their own charms17:23
rogpeppeAram: so you're outside the door using your wi-fi?17:23
Aramrogpeppe: no, I had to wait for my girlfriend to come back.17:23
rogpeppeniemeyer: cool.17:23
niemeyerAram: Oh, crap.. that was one of the first things I did when we moved17:23
niemeyerAram: I mean, replacing the door handle by a reasonable one17:24
Aramheh, yeah.17:24
niemeyerIf you want to lock the door from outside, you need the keys.. such a nice way to turn the issue into a non-existent problem17:24
* rogpeppe has to go. happy evenings all.17:26
Aramfare thee well.17:26
rogpeppeniemeyer: if you manage to look at those two CLs (ttps://codereview.appspot.com/6299073 and https://codereview.appspot.com/6299082) that would be marvellous, thanks.17:27
niemeyerrogpeppe: Certainly will, thanks17:27
niemeyerrogpeppe: Have a good time there17:27
* TheMue has to leave too17:38
=== samkottler1 is now known as samkottler
=== hazmat is now known as kapilt
niemeyerrogpeppe: If you have a spare moment in your evening by any chance, Dave's https://codereview.appspot.com/6307071/ is waiting for you19:48
niemeyerOkay, review queue is in good state finally.. three days to get it cleaned after holidays. Phew.20:05
niemeyerI'm having a break.. will come back later to polish some juju slides20:05
=== kapilt is now known as hazmat

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