/srv/irclogs.ubuntu.com/2015/06/04/#juju-dev.txt

menn0thumper: i get that all the time in my trusty VM00:54
thumperugh00:55
menn0thumper: we should probably file a bug00:55
menn0:)00:55
anastasiamacaxw: addressed :D PTAL when u get a chance :D01:53
axwanastasiamac: looking01:54
anastasiamacaxw: \0/01:54
davecheneyany one having troubles adding comments to reviewboard today02:34
davecheneythe comment box does not load for me02:34
davecheneyhttp://reviews.vapour.ws/r/1847/diff/#02:35
davecheneycan someone please try to add a comment on this review and let me know if it works or not02:35
natefinchdavecheney: worked for me.02:40
davecheneyyay, logout / login dance worked02:43
davecheneyi hate reviewboard02:43
davecheneyit adds negative value02:43
natefinchdavecheney: when we started with it, people wanted it  for side-by-side diffs and dependent commits.  I don't know if anyone really uses the dependent commits (I certainly don't), and Github has side by side diffs now.02:47
natefinchdavecheney: it is a lot easier to see a few commits at a time on reviewboard... on github you see everything or just one.  And reviewboard makes commenting better, because they're batched up.02:48
natefinchdavecheney: it's also way easier to see old comments and the state the code was in at the time.02:51
davecheneysure, no aregument there02:54
davecheneybut IMO that doesn't pay for reviewboards inherent shitness as an implementation02:55
anastasiamacdavecheney: ty for shipit!03:11
anastasiamacaxw: i got t2 for the price of one! tyvm :)))03:12
davecheneythumper: what's going on with this workload stuff03:12
anastasiamac2 shipits*03:12
davecheneyis juju getting into the process management game ?03:12
axwanastasiamac: nps03:12
natefinchdavecheney: yes03:12
davecheneyis there any value in me advising caution in this respect ?03:12
thumperdavecheney: what workload stuff?03:13
natefinchprobably not in the grand scheme of things, but I personally would like to hear what you have to say, and since my team is looking into this, that probably is useful.03:13
natefinchcurrent spec (still being revised): https://docs.google.com/document/d/1PcRQXaerlsACro4y1y5LWD-uvhfHya2CkOcoljyFyCU/edit#heading=h.62n9cmrnxg4o03:13
natefinchbrb03:14
davecheneynatefinch: IMO the only reliable way to track a process is to be it's parent03:14
thumperdavecheney: updated my branch03:15
davecheneyand as the charms are the ones that own the start hook, it is not possible for juju to be the parent of any process executed by the start hook03:16
thumperdavecheney: I hear what you are saying03:22
thumperdavecheney: we are going for a good approximation of perfection :)03:22
natefinchdavecheney: I think we could have juju be the parent, but it would go against the way everything else works.  The main problem is that juju is currently set up such that everything in a charm is a script.  Getting juju to be the one to launch the process would likely require a more declarative approach than we currently use.03:48
natefinchdavecheney: there is a note in the spec about auto-launching from metadata... so that might do what you want.03:50
natefinchit is under "open questions" and does say "optional" though03:50
davecheneynatefinch: i don't think juju can be the parent04:11
davecheneypostgress for example WILL NOT run in the foreground04:11
thumperdavecheney: could I get you to take another look at http://reviews.vapour.ws/r/1847/ plz?04:12
davecheneyand some charms start more than one process, etc04:12
davecheneyand when I origianlly joined Juju it was because juju was not going to be a process manager04:12
davecheneythumper: done04:18
wallyworldthumper: does a django charm take a zip / tarball as the app payload?04:21
natefinchway past my bedtime.  Dave - we'll do the best we can.  I'm more than happy to have your input on it.  But I think container management (regardless of what we call it) is sort of required at this point.04:22
davecheneyit might be required04:26
davecheneybut getting 100% functionality is not possible without being the parent of the process04:26
davecheneyand 90% coverage will be like HA, and backups, and leadership, etc04:26
davecheneythat is, a source of bugs and suoport calls04:26
thumperwallyworld: no, not at this stage04:27
wallyworldthumper: how does django in general consume its app payload when you run a django server?04:27
wallyworldan exploded dir of files?04:28
wallyworldyou give django the dir via some config?04:28
thumperwallyworld: there are two ways right now: 1) use a config value to specify a branch of bzr/git/hg/svn that is your app04:29
thumperwhich I don't do04:29
thumperor04:29
thumperprovide a payload subordinate charm that installs it using the 'django-settings' relation04:29
wallyworldthumper: forgetting charms, if a user installs django without juju04:29
wallyworldhow does django itself consume the payload? dir on disk?04:30
thumperyes, an app is normally a python module04:30
thumperor package04:30
thumperalways get those two mixed up04:30
thumperdir in the python path04:30
thumperdjango executable is called with a settings module04:31
thumperit uses those settings to determine which apps are used04:31
thumperapps are expected to be in the python path04:31
wallyworldthumper: thanks, so with resources, we would store an egg of something ad then explode that in the right place for django to pick up04:31
thumperyeah04:32
wallyworldta04:32
thumperwallyworld: it would certainly be simpler than using a payload charm04:32
thumperas long as the resources are optional04:32
wallyworldyes, we will still support the current methods04:33
wallyworldeg charm specifes bzr url04:33
thumperoptional meaning: could be there for any particular instance04:33
thumpernot supported or not04:33
thumperit would be good to have an optional resource04:33
thumperso we could use it if specified04:33
* thumper wanders off again04:34
wallyworldyes, but if supported an admin could publish a django app to JES and then juju deploy --resource myapp=webstorev204:34
davecheneyhttps://esta.cbp.dhs.gov/04:41
davecheneyanyone seeing a cert error visiting this site ?04:41
mikendavecheney: nope (FF 38)05:05
davecheneychrome 43 whinges06:38
davecheneybut not chrome on my nexus06:38
rogpeppe1davecheney: thanks for the review of http://reviews.vapour.ws/r/1853/diff/#07:04
rogpeppe1davecheney: i've updated accordingly07:05
rogpeppe1fwereade: fancy taking a look at http://reviews.vapour.ws/r/1853/diff/# ? it starts to implement some of the stuff that we discussed.07:23
fwereaderogpeppe1, lovely, LGTM with a minor07:42
rogpeppe1fwereade: ta!07:42
rogpeppe1fwereade: i'd prefer not to add constants in this PR as it will obscure the actual necessary changes. i've left as much code as possible untouched so that it's obvious that it's not that invasive a change.07:44
rogpeppe1fwereade: ISTM that adding constants is a fix for old code that justifies a separate PR07:45
fwereaderogpeppe1, it doesn't *have* to be this PR, but would you do a followup then?07:45
rogpeppe1fwereade: sure07:45
fwereaderogpeppe1, works for me07:45
fwereaderogpeppe1, tyvm07:45
rogpeppe1fwereade: and i agree about the -path keys but that was another bite too big for this stage07:46
fwereaderogpeppe1, definitely07:46
rogpeppe1fwereade: i wanted to start with a fields var that was identical to the original one (i verified with gc.DeepEquals)07:46
fwereaderogpeppe1, yeah, I do appreciate how uninvasive it is :)07:47
rogpeppe1fwereade: you'll notice that i added another grouping ("juju") for attributes that are created by juju itself and can't be specified by the user.07:48
rogpeppe1fwereade: AFAIK agent-version and uuid are the only two members of that group - is that right?07:48
fwereaderogpeppe1, ...I *think* so07:52
axwdimitern: would you mind reviewing a small change to ec2test? https://github.com/go-amz/amz/pull/5108:57
dimiternaxw, sure08:57
dimiternaxw, LGTM08:58
axwdimitern: thanks08:58
voidspacedimitern: omw09:01
jamfwereade: TheMue: shouldn't we be archiving cards now that we've looked over the board?09:32
TheMuejam: I don't know the capabilities of the tool. unless there are no limits and good ways to query I always prefer archiving, yes.09:34
jamTheMue: we probably need to work with Alexis so she can pull out whatever metrics she wants to focus on (how many bugs addressed, velocity, etc)09:36
TheMuejam: yep, I'll also talk to katco about the separation between planned tasks in cards and fixes in lp. currently I'm not sure about handling issues in kanban too (double capture vs simple overview in one place)09:39
rogpeppe1axw: ping09:40
axwrogpeppe1: pong09:40
rogpeppe1axw: yay! you're there :)09:41
rogpeppe1axw: i'm looking at UpgradeSuite.SetUpTest in cmd/juju/agent, which i think you might have had a hand in09:41
jamTheMue: lp doesn't make it easy to break down by team IIRC09:42
rogpeppe1axw: i just saw a test panic, and it looks like it might be related to the go func()... setAptCmds statement09:42
jamand if we do start sizing bugs, it doesn't tarck that either09:42
rogpeppe1axw: ... possibly :)09:42
axwrogpeppe1: possible dabbled in there. looking09:42
rogpeppe1axw: anyway, it looks suspicious - do you know why that test starts a goroutine there?09:42
TheMuejam: yes, different focus. would like a kind of  plugin to import an issue into a new card in a given board with auto-linking09:43
TheMue*dreaming*09:43
axwrogpeppe1: IIRC is a contortion around the way command execution is hooked09:43
axwrogpeppe1: so the commands are hooked, then sent to a channel, then this goroutine watches that channel and does stuff with them09:44
rogpeppe1axw: i don't see how it could ever be correct09:44
rogpeppe1axw: setAptCmds doesn't seem to synchronise with anything09:44
natefinchjam, TheMue:  we don't size bugs.  we treat them as a kind of overhead09:44
rogpeppe1axw: i'm fairly convinced this can't have anything to do with the panic i saw (a mgo double-close), but it still looks wrong to me09:45
jamnatefinch: depends how you want to do it. That portion is up to the tea09:45
jamteam09:45
natefinchjam, TheMue: the reason is that the sizing is so we know how long features take to implement.  The bugs factor into the environment that makes features take longer09:45
jamTheMue: you can look into lp2kanban if you like, its a python project on LP that was an attempt to use LP's and Leankits APIs to sync them.09:46
axwrogpeppe1: what do you mean doesn't synchronise? s.aptCmds locks a mutex on the suite...?09:46
rogpeppe1axw: yes, but there's nothing to stop that goroutine running randomly after the test has finished09:46
rogpeppe1axw: or even in arbitrary order over several tests09:46
axwrogpeppe1: right. yes, that could be a problem.09:46
rogpeppe1axw: it's mutexed but not synchronised09:46
natefinchjam, TheMue: if we had bugs in github there are like 1000 projects to sync things :/    for ex: https://waffle.io/juju/juju09:47
jamnatefinch: unbound 'done' doesn't seem great from Waffle09:47
axwrogpeppe1: is this happening for you frequently, or sporadic?09:48
rogpeppe1axw: i just saw it once; haven't tried again09:48
axwok09:48
natefinchjam: I haven't dived into it super deeply, but I know it's pretty customizable09:48
rogpeppe1axw: for the record, this is the panic i saw: http://paste.ubuntu.com/11562154/09:48
TheMuenatefinch: I would like bugs on github too09:48
axwrogpeppe1: I'll make a note to fix it, need to finish off some storage stuff09:49
rogpeppe1axw: ta!09:49
rogpeppe1axw: it may have something to do with the fact i'm running with go tip, which i believe has changed the default MAXGOPROCS  to >109:50
natefinchTheMue: from a purely pragmatic viewpoint, having bugs closer to the code is a good thing... plus then you get all the github bug integrations, like "fixes #123" which marks the bug as closed and puts a link from the bug to the fix automatically.   I think we'd gain a *lot* by moving to github for Juju bugs, just in ability to navigate between bugs and code more easily, and process impovements.09:51
rogpeppe1axw: FWIW, it seems to be in the process of tearing down JujuOSEnvSuite, so it's probably not great that it's still running logic from UpgradeSuite :)09:52
axwrogpeppe1: heh, yeah. I think I fixed this somewhere else before. I probably cargo culted before that09:53
rogpeppe1hmm, no, that's commonMachineSuite09:53
rogpeppe1axw: it's a pity we can't tell from the stack trace what the embedding type was09:54
rogpeppe1a fairly trivial change to juju-utils (prompted by the discrepancy between UUID checking in juju/schema and that in utils) https://github.com/juju/utils/pull/13710:07
TheMuenatefinch: +110:07
rogpeppe1there are various UUIDs in the juju tests that fail the more stringent check. I don't really see why they should. e.g. 2d02eeac-9dbb-11e4-89d3-123b93f75cba10:08
rogpeppe1TheMue: I think it was your code originally10:08
rogpeppe1TheMue: want to take a look?10:08
TheMuerogpeppe1: yes, any pointers to failing tests?10:12
rogpeppe1TheMue: I changed environs/config to use utils.IsValidUUID rather than schema.UUID. That caused some tests to fail (try grepping for the above UUID in the juju code)10:14
rogpeppe1TheMue: I think it's reasonable that the two checks should be aligned, and I don't see any particular reason to forbid non version 4 UUIDs from being parsed10:14
* rogpeppe1 thinks the whole notion of "versioned" uuids is weird10:16
=== rogpeppe1 is now known as rogpeppe
TheMuerogpeppe: I know you're no friends of UUIDs ;)10:17
rogpeppeTheMue: i like UUIDs a lot :)10:17
rogpeppeTheMue: it's just the RFC i have issues with10:18
TheMuerogpeppe: the versions simply express how they are produced or better which information are part of the UUID generation, e.g MAC addresses10:18
rogpeppeTheMue: ... which we never use10:18
TheMuerogpeppe: IMHO an IsValidUUID should allow all versions, not only v4.10:19
rogpeppeTheMue: i guess it might be useful to have a Meta method on UUID that returns information on the UUID by looking at the version10:19
rogpeppeTheMue: but most people these days just use /dev/random so it wouldn't be that useful10:19
* TheMue is currently happy, workers produce machine noise from two sides of the house.*aaaargh*10:20
TheMuerogpeppe: yeah, v4 is the most simple one10:20
rogpeppeTheMue: thanks. i'd appreciate your LGTM on the review if you think it looks reasonable.10:21
=== brandon is now known as web
TheMuerogpeppe: my own lib (https://godoc.org/github.com/tideland/goas/v2/identifier) produces v1, v3, v4, and v510:22
rogpeppeTheMue: the only reason I can think of for versioning UUIDs is so you can extract metadata (e.g. the mac address) from the UUID afterwards. i totally don't see the point in version 3 or 5, which don't even preserve the hash10:26
mupBug #1461871 was opened: worker/diskmanager sometimes goes into a restart loop due to failing to update state <storage> <juju-core:Triaged by axwalk> <https://launchpad.net/bugs/1461871>10:26
rogpeppeTheMue: anyway, old argument, best not restarted :)10:27
TheMuerogpeppe: I have to admit I never looked into the history of UUIDs and why those versions have been created. I only implemented them. *lol*10:28
rogpeppeTheMue: there are many standards that aren't worth implementing :)10:29
TheMues/standards/code/10:29
TheMuehmm, and are to is. or does a plural of code makes sense?10:30
TheMuerogpeppe: btw, LGTM10:34
rogpeppeTheMue: i'd probably say "there is much code that isn't worth implementing"10:34
rogpeppeTheMue: thanks10:34
TheMuerogpeppe: yeah, I've seen huge "enterprise systems" containing tons of never called code. but nobody ever removed it and so those systems got more and more unmaintainable.10:35
jamjam10:48
rogpeppeanyone know why state.State.ForEnviron dials mongo rather than just doing a Session.Copy ?10:51
thumperrogpeppe: because I don't understand mongo10:57
thumper:)10:58
rogpeppethumper: :)10:58
thumperif Copy works, happy to change10:58
rogpeppethumper: it should do, unless i've misunderstood what's going on10:58
thumperrogpeppe: you probably haven't10:58
rogpeppethumper: (which is very likely as i'm just skimming through code trying to understand why tests are failing)10:58
rogpeppethumper: BTW, in case you missed it: http://reviews.vapour.ws/r/1853/11:00
thumpernot looked sorry11:00
rogpeppethumper: it's the start of what i discussed with you the other night11:03
thumperack11:03
mupBug #1461888 was opened: Units stuck in agent-state: down state <juju-core:New> <https://launchpad.net/bugs/1461888>11:08
mupBug #1461889 was opened: don't turn invalid SetAddresses calls into Assert-only txns <tech-debt> <juju-core:Triaged by jameinel> <https://launchpad.net/bugs/1461889>11:08
mupBug #1461890 was opened: leadership unreliable in HA <juju-core:Triaged> <https://launchpad.net/bugs/1461890>11:08
mupBug #1461888 changed: Units stuck in agent-state: down state <juju-core:New> <https://launchpad.net/bugs/1461888>11:20
mupBug #1461889 changed: don't turn invalid SetAddresses calls into Assert-only txns <tech-debt> <juju-core:Triaged by jameinel> <https://launchpad.net/bugs/1461889>11:20
mupBug #1461890 changed: leadership unreliable in HA <juju-core:Triaged> <https://launchpad.net/bugs/1461890>11:20
mupBug #1461888 was opened: Units stuck in agent-state: down state <juju-core:New> <https://launchpad.net/bugs/1461888>11:26
mupBug #1461889 was opened: don't turn invalid SetAddresses calls into Assert-only txns <tech-debt> <juju-core:Triaged by jameinel> <https://launchpad.net/bugs/1461889>11:26
mupBug #1461890 was opened: leadership unreliable in HA <juju-core:Triaged> <https://launchpad.net/bugs/1461890>11:26
perrito666davecheney: from the doc on rand I understand that using just rand.Intn will produce a deterministic result, which I dont really want11:37
davecheneyperrito666: do you mean it won't be seeded11:54
perrito666well I dont feel the doc is not all that clear, but if it behaves as I assumed it does it will use always the same seed11:57
perrito666which should return a deterministic sequence of numbers on each run of juju11:58
perrito666I might have just missunderstood11:58
davecheneyperrito666: i think juju should see the rng on startup11:59
perrito666s/see/seed?12:00
katcowwitzel3: ericsnow: jam and i running a little late, brt12:01
wwitzel3katco: rgr12:06
=== kadams54-away is now known as kadams54_
rogpeppehere's a fix for an intermittent test failure in worker/envworkermanager; reviews appreciated please: https://github.com/juju/juju/pull/249112:45
perrito666axw: around?13:01
axwperrito666: hey, lurking13:01
perrito666axw: have time for a short question? (sorry I know its late there)13:01
axwperrito666: sure, what's up?13:02
perrito666I privmessaged it13:02
mupBug #1461957 was opened: Does not use security group ids <ci> <juju-core:Triaged> <https://launchpad.net/bugs/1461957>13:48
mupBug #1461959 was opened: serverSuite teardown fails <ci> <intermittent-failure> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1461959>13:48
mupBug #1461961 was opened: UniterSuite teardown fails <ci> <intermittent-failure> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1461961>13:48
perrito666its a shame go sees go go as a typo13:51
mupBug #1461957 changed: Does not use security group ids <ci> <juju-core:Triaged> <https://launchpad.net/bugs/1461957>13:54
mupBug #1461959 changed: serverSuite teardown fails <ci> <intermittent-failure> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1461959>13:54
mupBug #1461961 changed: UniterSuite teardown fails <ci> <intermittent-failure> <test-failure> <juju-core:Invalid> <https://launchpad.net/bugs/1461961>13:54
mupBug #1461957 was opened: Does not use security group ids <ci> <juju-core:Triaged> <https://launchpad.net/bugs/1461957>13:57
mupBug #1461959 was opened: serverSuite teardown fails <ci> <intermittent-failure> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1461959>13:57
mupBug #1461965 was opened: UserSuite setup fails <ci> <unit-tests> <juju-core:Incomplete> <juju-core 1.24:Triaged> <https://launchpad.net/bugs/1461965>13:57
wwitzel3katco: will be about 3 minutes behind standup13:59
katcowwitzel3: k np14:02
mupBug #1461968 was opened: TestLXCProvisionerObservesConfigChanges fails <ci> <intermittent-failure> <test-failure> <juju-core:New> <juju-core 1.24:Triaged> <https://launchpad.net/bugs/1461968>14:21
mupBug #1461969 was opened: TestDialAgain fails <ci> <intermittent-failure> <test-failure> <juju-core:Incomplete> <juju-core 1.24:Triaged> <https://launchpad.net/bugs/1461969>14:21
mupBug #1461993 was opened: support using an existing vpc <juju-core:New> <https://launchpad.net/bugs/1461993>15:03
rogpeppejam: it looks like you're ocr today? if so, here are two small juju-core fixes for you, both fixing flaky tests: http://reviews.vapour.ws/r/1859/, http://reviews.vapour.ws/r/1858/15:09
rogpeppeanyone else: reviews much appreciated. the first one is just a one line fix.15:09
jamrogpeppe: well, technically I'm 2 hours past my EOD but I happen to be around so I'll give it a look15:11
jamfirst one LGTM15:12
rogpeppejam: thanks :_15:12
rogpeppe:)15:12
jamrogpeppe: for http://reviews.vapour.ws/r/1858/diff/#15:23
jamI feel like "errors.Cause(err) == tomb.ErrDying" isn't right.15:23
rogpeppejam: oh yes?15:23
jamI *feel* like that should be "!= tomb.ErrDying"15:23
jamrogpeppe: why would we only pass up ErrDying if the underlying runner dies?15:24
rogpeppejam: funnily enough i had it that way originally, but it's wrong15:24
rogpeppejam: luckily i wrote the test :)15:24
jamrogpeppe: so I think the test you added is handled by go func() { m.tomb.Kill(m.runner.Wait()) }15:24
jamthat passes whatever Wait() returns immediately to tomb, doesn't it?15:24
rogpeppejam: but that can happen at any time in the future15:25
rogpeppejam: there's no guarantee that it happens before tomb.Done is called15:25
jamsure15:25
jamrogpeppe: but I don't see how the concrete error gets returned from loop()15:26
jamif it came from runner then15:26
jamrogpeppe: ah, you're checking retErr15:26
jamI'm not a big fan of secret named funcs15:26
rogpeppejam: yes, i wondered if you hadn't noticed that15:26
jamreturn vars15:26
rogpeppejam: it's not *that* secret :)15:27
jamso only if the current return reason is ErrDying then override with the error from m.runner15:27
rogpeppejam: yes15:27
jamrogpeppe: I feel like that is actually the responsibility of tomb.IsFatal and tomb.IsMoreImportant15:27
rogpeppejam: if you've got a better suggestion for how to phrase it, please tell15:28
jamrogpeppe: shouldn't we just pass m.tomb.Kill() the value of m.runner always?15:28
rogpeppejam: tomb doesn't have either of those things AFAIR15:28
jamand then loop() returns and passes that in as well?15:28
rogpeppejam: yeah, that's probably better15:29
jamrogpeppe: k. so the thing I saw was m.runner having the comparison checkers15:29
jamrogpeppe: but Tomb also knows about error priority15:29
jamat least, it knows how to treat ErrDying vs a real error.15:29
rogpeppejam: yes, w.r.t. other errors > ErrDying15:30
jamrogpeppe: do we have to unwrap our error before passing it to tomb.Kill?15:30
jamgiven that you are using errors.Cause()15:30
jamwe can't pass an errors.Cause() style error directly to tomb.Kill()15:30
rogpeppejam: that's not actually necessary15:30
jamif Cause() == ErrDying but *err* != ErrDying then tomb doesn't work right.15:30
rogpeppejam: i just tend to avoid direct error == tests15:31
jamrogpeppe: so new review, LGTM though maybe we'd rather just do m.tomb.Kill(m.runner.Wait()) as we do elsewhere rather than reimplementing that check.15:33
jamrogpeppe: hm...15:33
jammaybe not15:33
rogpeppejam: ha, it should actually probably be done in the caller function, around line 3615:34
jamrogpeppe: as if we are talking to m.tomb.Kill() first15:34
jamthen we take priority15:34
rogpeppejam: i'm thinking we probably want the return value from m.runner to take precedence15:34
jamrogpeppe: defer func() {m.runner.Kill(); m.tomb.Kill(m.runner.Wait())} ?15:34
jamrogpeppe: I don't know this func that well. ATM loop() sets the value first15:35
jamAnd arguably if m.envHasUUID() or whatever fails we're in a state that it doesn't really matter what m.runner returns.15:35
jamsorry m.envHasChanged(uuid)15:35
jamrogpeppe: so what you have is ok, moving into the New* func sounds slightly better.15:36
jamordering of errors sounds like it is going to get us into trouble unless people can concretely say that they need this error over that one.15:37
jambut if envHasChanged returns an error we are likely in a state where m.runner can't say real things anyway.15:37
rogpeppejam: it's always an interesting issue15:37
rogpeppejam: my thought is that m.runner contains the meatiest stuff15:37
rogpeppejam: so we're much more likely to be interested in that error15:38
rogpeppejam: (i wish that tomb logged errors when it threw them away)15:38
jamrogpeppe: agreed about tomb15:38
rogpeppejam: aside: the default value of GOMAXPROCS has changed in go tip, so it's finding these issues more consistently15:39
rogpeppefwereade: do you have any idea what the root cause is behind the intermittent worker/uniter test failures?15:42
rogpeppefwereade: e.g. FAIL: uniter_test.go:875: UniterSuite.TestUniterUpgradeConflicts15:42
rogpeppeutil_test.go:726:15:42
rogpeppe    c.Fatalf("never reached desired status")15:42
rogpeppejam: after experimenting both ways, i think it looks marginally nicer keeping the defer inside the loop function. then the outer level is the classic defer done, kill(loop) idiom15:44
natefinchrogpeppe: I'm so glad they changed the default of GOMAXPROCS.15:44
fwereaderogpeppe, not offhand -- status-setting has changed lately, though15:44
rogpeppenatefinch: +115:45
rogpeppenatefinch: i'm so glad they sped up the scheduler so much :)15:45
natefinchrogpeppe: hah yeah, that too.  Though honestly, I think I would have set it to NumCPUs anyway, since it was always surprising to people when it was not (and it would have meant they find more race conditions if someone did set GOMAXPROCS).15:46
rogpeppefwereade: here's the test output i saw (excluding log messages) FWIW: http://paste.ubuntu.com/11567979/15:46
rogpeppejam: i've changed it - PTAL15:48
jamrogpeppe: https://docs.google.com/document/d/1At2Ls5_fhJQ59kDK2DFVhFu3g5mATSXqqV5QrxinasI/edit?pli=1 those GOMAXPROCS benchmarks look really good in 1.515:48
rogpeppejam: yeah, the overhead's more or less gone away15:49
fwereaderogpeppe, hmm, that looks like we're not clearing the resolved flag15:49
fwereaderogpeppe, I always worried that would be racy... :/15:49
* fwereade thinks he might be able to see it -- util_test.go:978 looks like exactly the sort of hack that'd be rendered unstable by status changes15:52
jamrogpeppe: lgtm15:52
rogpeppejam: ta!15:52
* jam leaves to go play with my son15:52
fwereaderogpeppe, would you point wallyworld at it please?15:52
rogpeppejam: enjoy!15:52
rogpeppefwereade: at the test failure?15:52
fwereaderogpeppe, yeah, I'm blithely assertinng that he did status stuff and should be in a good position to track it down15:53
fwereaderogpeppe, or possibly perrito666? ^^15:53
rogpeppeha, i bet this is the same issue15:57
rogpeppehttps://bugs.launchpad.net/juju-core/+bug/144830815:57
mupBug #1448308: Skipped TestUniterUpgradeConflicts on ppc64 <skipped-test> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1448308>15:57
rogpeppecoretesting.SkipIfPPC64EL(c, "lp:1448308")15:57
rogpeppethat's surely bogus15:58
rogpeppefwereade: it would be nice to have comments on the uniter test primitives. for example, what are the various fields in the waitUnitAgent meant to imply?16:03
rogpeppefwereade: what does a resolved status of "no hooks" imply?16:07
rogpeppesorry, no-hooks16:07
rogpeppeoh i see, ignore me16:08
voidspacedimitern: http://reviews.vapour.ws/r/1860/16:10
mgz_oh, forgot to propose branch...16:13
perrito666sorry I was afk, not having the best health day16:14
mgz_rogpeppe: just for you, http://reviews.vapour.ws/r/186116:14
perrito666fwereade: rogpepe, what's going on?16:14
rogpeppemgz_: i think a fix for those is already landing16:14
mgz_doh, this is why I shouldn't forget branches16:15
rogpeppemgz_: as part of https://github.com/juju/juju/pull/2487/files16:15
rogpeppemgz_: although... i can't land that quite yet as i can't get tests to pass16:16
rogpeppemgz_: so LGTM, go for it16:16
mgz_rogpeppe: sure thing16:16
dimiternvoidspace, looking, but also in a call so it might take some time16:16
mgz_rogpeppe: I actually did that change after you said in irc but forgot about it...16:16
voidspacedimitern: np, I'm working on the higher level stuff anyway16:17
perrito666rogpeppe: fwereade do you still need my help? that particular test suite is a pain to follow16:20
natefinchericsnow: I presume ProcessInfo.Status is supposed to be an enum?  i.e., you can't just put whatever string you want in there16:20
ericsnownatefinch: pretty much16:20
rogpeppeperrito666: i'm seeing a consistently reproducible failure in that test16:20
rogpeppeperrito666: and i don't really want to get sidelined into fixing it16:21
natefinchericsnow: I'm going to leave a comment that says we should make it a numeric enum. Making it a string just makes it less obvious it's supposed to be an enum16:21
perrito666rogpeppe: and this only happens in ppc16:22
perrito666?16:22
rogpeppeperrito666: no, this is on my normal laptop16:23
rogpeppeperrito666: although i am running with go tip16:23
rogpeppeperrito666: i'm sure it's just an inherent problem with the test though16:23
perrito666rogpeppe: yes, that test is as brittle as a crystal hamer16:25
perrito666hammer*16:25
perrito666well not really brittle, it just makes a very good job hiding real issues16:25
rogpeppeperrito666: verifyWaitingUpgradeError in particular seems very handwavy16:26
perrito666rogpeppe: this is master tip rigt?16:26
rogpeppeperrito666: yes16:27
* perrito666 runs the test16:27
rogpeppeperrito666: try running it with GOMAXPROCS=416:27
rogpeppeperrito666: and run it a few times.16:28
rogpeppeperrito666: (best to use go test -c and then run the test binary directly)16:28
perrito666oh it is one of those bugs16:28
rogpeppeperrito666: yeah, it's definitely a race16:29
natefinchnick natefinch-afk16:29
dimiternvoidspace, reviewed16:55
voidspacedimitern: thanks17:01
voidspacedimitern: cool, not much to do - thanks17:02
dimiternvoidspace, well, the code looks solid :)17:09
=== kadams54_ is now known as kadams54-away
=== kadams54-away is now known as kadams54_
perrito666hey I cannot make it to today's meeting I have to take my wife to the dentist, sorry ppl17:50
=== kadams54_ is now known as kadams54-away
alexisbperrito666, team call18:04
alexisbvoidspace, team call if you are still around18:04
alexisbnatefinch, team call18:04
perrito666alexisb:  as I said abvove: <perrito666> hey I cannot make it to today's meeting I have to take my wife to the dentist, sorry ppl18:05
=== web is now known as Web
Webhttps://jujucharms.com/static/img/jujudocs/1.23/getting_started-aws_security.png <-- time to change this I think.  There is a emphasis on iAM profiles now.  Need to run through the process of using one first.18:10
natefinchalexisb: oops, sorry coming18:13
=== kadams54-away is now known as kadams54_
mgz_ericsnow: I have a proposed fix, but I don't think I actually have a bitbucket account18:47
ericsnowmgz_: k18:48
mgz_draft.rich_text = True18:48
ericsnowmgz_: ah18:48
mgz_but there's also a description_rich_text18:49
mgz_just tracking down if that's a subset or not18:49
mgz_aha, just rich_text is deprecated18:53
mgz_so, description_rich_text and testing_done_rich_text are the new way18:53
katconatefinch: 1:1 time19:07
natefinchkatco: dang, sorry19:07
natefinchkatco: coming19:07
katcono worries19:08
perrito666are there no tests for modes code?20:12
natefinchperrito666: we don't test code that rhymes20:15
perrito666natefinch: not fun20:16
natefinchperrito666: better run20:17
perrito666you know... you are lucky to be so far away :p20:18
natefinchbut I do, so I can rhyme all day :)20:19
* perrito666 shops for a ticket to boston20:19
* perrito666 shops for a clue by four20:20
natefinchsorry, A/C man at the door.  Sounds like he's not going to make us poor.20:33
thumpermorning20:46
natefinchmorning20:46
thumperhow's it going nate?20:47
natefinchthumper: not bad... getting our A/C fixed.... which is good, because we thought it needed to be replaced until we got a second opinion.20:51
natefinchthumper: so, probably going to cost us ~$500 instead of ~$10,00020:52
thumperI bet you're pleased about that20:52
natefinchimmensely.  We definitely had not planned on spending $10,000 on the A/C this summer.20:54
natefinchunrelated, I'm trying to figure out a way to get github to be a satisfactory bug tracker for us, because i'm tired of not having integration with the code.20:54
thumpernatefinch: nope, nope, nope20:55
natefinchheh20:55
natefinchthumper: what's wrong with github's bug tracker?20:55
thumpernatefinch: I'm not even going to get started20:56
thumperI don't have long enough20:56
natefinchthumper: haha.... that's ok, me neither20:56
* mgz_ hugs thumper 20:56
natefinchme either?  me neither?  I guess I should say "I also do not have time"20:56
mupBug #1462097 opened: Bootstrap error logging needs to be more descriptive <juju-core:New> <https://launchpad.net/bugs/1462097>21:11
=== weblife is now known as Web
=== kadams54_ is now known as kadams54-away
=== Beret- is now known as Beret
axwperrito666: worker/uniter/uniter_test.go tests the modes indirectly23:14
axwthey're more functional style tests than unit tests23:14
wallyworldaxw: anastasiamac: perrito666: just fiishing a meetig, me there soon23:15
axwsure23:15
anastasiamack23:15
perrito666axw: well yes, I am trying to figure out how to fit my test23:17
axwwallyworld anastasiamac: I raised https://bugs.launchpad.net/juju-core/+bug/146214623:31
mupBug #1462146: cmd/juju/storage: "add" fails to dynamically add filesystem for storage <storage> <juju-core:New> <juju-core 1.24:Triaged> <https://launchpad.net/bugs/1462146>23:31
wallyworldty23:31
anastasiamacaxw: tyvm :D23:31
wallyworldaxw: anastasiamac: btw, i've started to merge 1.24 into master, *lots* of conflicts so i'll see how i go. might need to cherry pick individual commits if it's too hard23:44
axwwallyworld: thank you23:44
anastasiamacwallyworld: sure! just say the word :D23:44
mupBug #1462146 opened: cmd/juju/storage: "add" fails to dynamically add filesystem for storage <storage> <juju-core:New> <juju-core 1.24:Triaged> <https://launchpad.net/bugs/1462146>23:44
davecheneymwhudson: would it short circuit the debian debate if I proposed a change which just added the words we wanted to that page ?23:54
mwhudsondavecheney: quite possibly, yes23:57

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