/srv/irclogs.ubuntu.com/2014/11/24/#juju-dev.txt

* thumper tries an experiment00:49
thumper 519 files changed, 9517 insertions(+), 9259 deletions(-)00:51
thumper$ git diff master | wc -l00:51
thumper6588000:51
thumperjust a small experiment00:51
=== fuzzy_ is now known as Ponyo
thumperwallyworld_: you're on-call reviewer right?01:04
wallyworld_yeah01:04
wallyworld_but not if wc -l gives 65000+ lines01:06
* thumper is struggling with something...01:13
thumperwallyworld_: it was entirely mechanical01:21
wallyworld_thumper: np, i have to run out to the bank for a bit, can look when i get back01:25
axwthumper: https://bugs.launchpad.net/juju-core/+bug/139556402:09
mupBug #1395564: jujud constantly spews `juju.worker runner.go:219 exited "identity-file-writer": StateServingInfo not available and we need it` <juju-core:Triaged> <https://launchpad.net/bugs/1395564>02:09
axwthumper: is that worker meant to be on all machine agents, or just state servers?02:09
thumperaxw: ah... well... that's interesting02:10
thumperhmm...02:10
thumperI think it should just be on state servers02:10
thumperbugger02:11
thumperat least I think that refactoring is only on master02:11
thumperand the 1.21 fix didn't have that02:11
LinStatSDRke;;p02:16
LinStatSDRHello* ...02:16
thumpero/02:22
LinStatSDRHi :)02:31
wallyworld_thumper: where's this mega branch?04:20
menn0axw, wallyworld_: why does State.AddCharm() not use transactions?04:35
wallyworld_not sure off hand, i'll look at code04:35
menn0axw, wallyworld_: it's the one of the few (only?) place that uses Insert in state04:36
menn0axw, wallyworld_: and it seems like using a transaction would make it simpler and avoids a tiny race04:36
wallyworld_menn0: at first look i have to agree. i suspect that code dates way back to the early days of the Go port04:37
wallyworld_i think roger could shed more light on the reasoning there04:37
menn0wallyworld_: np. I'll check with him. it just stuck out with some of the work i'm doing.04:38
wallyworld_for sure, i can see why04:38
wallyworld_i suspect hysterical reasons but would be curious to know04:38
axwI also don't know why04:39
axwfwereade_: FYI, http://reviews.vapour.ws/r/522/05:11
wallyworld_fwereade_: ping07:30
fwereade_wallyworld_, morning07:30
wallyworld_hey, morning to you07:30
wallyworld_question07:30
wallyworld_we currently store status in a separate status doc, with _id set to the global machine or unit key07:31
wallyworld_if we now store status for unit agent as well07:31
wallyworld_we'll need a global key of sorts for that07:31
wallyworld_so do you think a prefex of "ua#" would work?07:32
wallyworld_also service will get status in there too07:32
dimiternjam, morning07:32
dimiternjam, 1:1?07:32
fwereade_wallyworld_, thinking07:32
wallyworld_but there's already a global key for service07:32
jamyeah, dimitern, brt07:33
wallyworld_we also currently have a big hidge podge of status "enums" shared across entities07:33
fwereade_wallyworld_, yeah, we should separate those enums out07:34
wallyworld_what's there could remain as machine status07:34
fwereade_wallyworld_, not everything there applies to machines iirc07:34
wallyworld_and new ones (sharing some of the same string values) used for units07:34
wallyworld_right, will have to break them up07:35
fwereade_wallyworld_, so globalKey-style is fine by me07:35
fwereade_wallyworld_, ua# feels ratherwrong though07:35
fwereade_wallyworld_, (1) the existing one is really the agent state already, remember07:35
fwereade_wallyworld_, (2) "a" implying agent is going to be misleading as soon as we manage to consolidate the agents07:36
wallyworld_yeah true07:36
wallyworld_for (2) we need a migration anyway07:36
fwereade_wallyworld_, suffix of #charm, or #runtime, or something?07:36
fwereade_wallyworld_, well07:36
wallyworld_could retain u# for agent status for now07:36
wallyworld_so you mean u#3#charm07:37
fwereade_wallyworld_, u#foo/3#charm, yeah07:37
wallyworld_right07:37
wallyworld_can do that07:37
fwereade_wallyworld_, don't forget that even if they're all in one process the "agent state" is still going to be meaningful07:37
fwereade_wallyworld_, just increasingly inaccurately named, because it's more like worker state07:38
wallyworld_and will be shared for that machine across units07:38
fwereade_wallyworld_, surely not07:38
fwereade_wallyworld_, it is and pretty much always has been uniter state07:38
wallyworld_for some things it will, like allocating etc07:38
wallyworld_i've just starting digging so i'll keep going, thank for clarification on using global key concept07:40
fwereade_wallyworld_, still don't think so? I'm quite inclined to have the uniter stay the only thing responsible for setting its own "agent" state07:40
wallyworld_a lot of the code i'm reading is quite new to me; uniter is something i've managed to avoid in detail till now07:40
fwereade_wallyworld_, lucky you07:41
wallyworld_\o/07:41
fwereade_;p07:41
wallyworld_i did like the wip branch i looked at last week07:41
wallyworld_to separate out operations i think from memory07:41
fwereade_cool07:41
wallyworld_i just want it all to be done NOW07:42
wallyworld_:-)07:42
fwereade_wallyworld_, I didn't get the time to hack on that I hoped for this w/e07:42
fwereade_wallyworld_, *but* well honestly I *could* land it now and we'd still be better off than we were -- however I feel obliged to test the damn thing properly, and I kept getting distracted late last week and never built up the momentum07:42
wallyworld_if what you have is incrementally better, and works, and is tested, i'd be inclided to land07:43
wallyworld_so it doesn't bit rot etc07:43
wallyworld_we've branched 1.21 now07:43
wallyworld_so 1.22 is aways off07:43
wallyworld_deliver early and often and all that07:43
fwereade_wallyworld_, so the trouble is that it's tested as well as it was before07:46
fwereade_wallyworld_, the new structure makes it clear just how shitty that was07:47
fwereade_wallyworld_, and I've been adding tests in the wrong order so I don't have many useful incremental pieces :/07:47
wallyworld_fwereade_: if it compiles, it works right :-D07:47
fwereade_wallyworld_, it passes the uniter_test tests too07:47
wallyworld_i'd be inclined to get what you have landable before doing any more07:48
fwereade_wallyworld_, with just one non-error-message-string change, which I think is a good one anyway, because we're now properly triggering an observer we always should have07:48
fwereade_wallyworld_, yeah, I am actively avoiding *changes*07:48
wallyworld_good :-)07:48
* fwereade_ is very tempted to make today an "I'm not here, I'm working" day07:49
wallyworld_use what you have, that sounds like it's at least got equivalent tests to what's there, as a great basis for launching the next phase07:49
wallyworld_go dark and make it happen :-)07:49
fwereade_wallyworld_, yeah, sounds good07:53
wallyworld_\o/07:53
axwfuuuuuuuuu08:03
axwwallyworld_: I just realised that my intention to use UUID on top-level devices as an identifier will break horribly if a charm requests a raw device and creates a new filesystem on it...08:04
* axw sighs heavily08:04
* wallyworld_ sighs too08:04
axwI think that means we have to partition devices and only dish out the partitions08:04
axwmaybe only if it doesn't have a serial number08:05
wallyworld_needs a little thought for sure08:07
wallyworld_axw: what devices wouldn't have a serial number?08:09
axwwallyworld_: non-physical ones08:10
wallyworld_that i did not know08:10
axwwallyworld_: for example, on EC2 none of the disks have a serial number because Xen08:11
axwthere the block device name is persistent though08:11
wallyworld_maybe that's as good as and we just abstract a device unique identifier08:12
axwwallyworld_: problem is MAAS, where there's not necessarily a guarantee that the disk has a serial. i.e. if/when there's support for non-physically attached disks08:14
axwhence why I asked for UUID and not serial08:14
axw*if* there's a serial we'll populate it when we see it in the machine agent08:14
wallyworld_hmmm. hopefully for even non physically attached disks there's some concept a uuid/serial/something_else_unique08:16
TheMuemorning08:38
voidspacejam: dimitern: TheMue: grabbing coffee will be 2mins late to standup - sorry!09:55
dimiternvoidspace, no worries09:56
voidspaceback, just in time09:59
mattywmorning all10:00
mattywdimitern, do you  have a link to the design document about how the new juju commands will look?10:00
mattywdimitern, (also, morning)10:00
jamvoidspace: you inspired me to do the same10:01
jamTheMue: standup ?10:01
TheMueomw10:01
dimiternmattyw, morning :)10:01
dimiternmattyw, not off hand, but I'll try to find it10:02
dimiternmattyw, I can't find it unfortunately10:15
mattywdimitern, I'll keep looking, do you know who was supposed to be working on it?10:15
dimiternmattyw, either onyx or tanzanite IIRC10:16
voidspacedimitern: finished 1-to-1, going for moar coffeez and then I'd love to chat10:48
dimiternvoidspace, ok10:51
voidspacedimitern: does subnetDoc need an annotator?12:12
dimiternvoidspace, I don't think so - we can add it later I think, if we need to manage subnets via the gui12:20
voidspacedimitern: cool, thanks12:23
sinzuidimitern, jam do you have a moment to review https://github.com/juju/juju/pull/121413:46
dimiternsinzui, looking13:54
sinzuidimitern, sorry, I set master as the merge target in that PR. I closed it14:27
sinzuidimitern, https://github.com/juju/juju/pull/1215 is to change the version of the 1.21 branch14:29
dimiternsinzui, ah, ok -that looks better :)14:33
dimiternsinzui, 1 typo, otherwise lgtm14:33
=== wwitzel3_ is now known as wwitzel3
sinzuidimitern, oops. making a change before my first cup of coffee seems impossible14:34
dimitern:)14:34
sinzuifix is push dimitern14:35
=== ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: see calendar | Open critical bugs: 1395331
=== kadams54 is now known as kadams54-away
=== kadams54-away is now known as kadams54
dimiternsinzui, thanks - good to merge14:59
wwitzel3fwereade_: ping :)15:09
natefinchperrito666, wwitzel3: man you guys are late to standup ;)15:13
alexisbfwereade_, I am going to log on the hangout with FF one sec16:03
natefinchman, utopic has been hell on my browser.  Fine in every other way... but you know, the browser is pretty important17:10
ericsnowcould someone have a look at http://reviews.vapour.ws/r/52617:19
ericsnowit's a one-liner that clears the current CI blocker17:19
natefinchericsnow: looking17:21
ericsnownatefinch: thanks17:21
ericsnowthe joy of having CI-only tests!17:22
natefinchericsnow: ship it!17:23
ericsnownatefinch: thanks17:23
LinStatSDRHello all.17:24
natefinchgood afternoon17:26
ericsnowfwereade_: ping17:27
=== kadams54 is now known as kadams54-away
ericsnowsorry for the pain of 1395331, folks17:59
ericsnowthe fix is in but the CI tests have to cycle through now17:59
jw4ericsnow: :)  no worries tx17:59
jw4do we need to wait for something before the CI gets opened again?  The query on launchpad for critical bugs is returning 0 again, but CI is still rejecting18:00
* jw4 feels so rejected18:00
ericsnowI don't recall if CI automatically unblocks once certain tests pass or if it requires manual intervention18:01
ericsnowmy vague recollection is of the former being the case, but mgz & co. would know18:02
jw4wallyworld, sinzui who should I ask about when/how CI would be unblocked?18:03
ericsnownatefinch: was "Add juju-provider-zone to relation data" the task you recommended to me the other day?18:05
sinzuinatefinch, ericsnow, jw4 We need to steal juju-ci to do reliability testing. I don't know when I can enable testing, or at least say the regression is fix released18:06
natefinchsinzui: this seems problematic if it means we can't land any code18:06
ericsnowsinzui: the failure is limited to the backup-restore tests (which exercise the plugins)18:07
natefinchjw4: I believe the answer in general is "once the CI tests that failed pass again, then the bug that was blocking CI is marked fix released, and *then* CI is officially unblocked"18:07
jw4natefinch: I see - I was just querying launchpad for when there were 0 critical issues18:08
ericsnowsinzui, natefinch: if it makes it so we can simply unblock, I'd be glad to revert PR 100318:08
ericsnownatefinch: ah, right, "fix released" is the trigger for unblocking CI18:09
natefinchyep18:09
sinzuiericsnow, no don't18:09
ericsnowsinzui: k18:09
sinzuiericsnow, jw4, natefinch : I marked the bug as fix released, but it is untested. you are free to merge. Revision testing will resume when reliability testing comp;lete18:11
jw4thanks sinzui18:11
ericsnownatefinch, sinzui: if restore supported local provider (which is currently *not* adviseable) then the CI backup-restore tests could be replaced with functional tests in the core suite, and this sort of situation (an undetected breakage of the backup CLI plugin) would be avoidable in the future18:13
ericsnownatefinch, sinzui: however that would require the "proper" local provider that we never seem to allocate time for writing18:14
ericsnowsinzui: thanks for unblocking that!18:14
sinzuiericsnow, The restore tests often fail because of  juju timing issues and substrate api/network issues. I think we will always need a restore test in clouds to verify real world situations. Though it would be nice to not need to run the test with every revision18:17
ericsnowsinzui: good point18:17
ericsnowsinzui: both are needed then18:18
ericsnownatefinch: about "Add juju-provider-zone to relation data", was that the one?18:20
natefinchericsnow: that one and adding zone to the unit-get hook18:28
ericsnownatefinch: k18:28
ericsnownatefinch: I'm adding task cards to leankit for some of the tasks18:28
natefinchericsnow: cool18:29
natefinchericsnow: feel free to adjust the estimates if you think they need adjusting.  They're listed in ideal developer days, so like, if you  got to code for 8 hours straight with no interruptions... I usually then double that for real-world workdays18:31
ericsnownatefinch: :)18:31
natefinchericsnow: I suggest not reducing the estimates even if you think it'll be faster, though.  We can always use the padding to make up for bad estimates elsewhere18:31
ericsnownatefinch: definitely18:32
voidspaceg'night all18:39
katcohey does anyone have an ssh server you recommend for windows? a friend wants to run one on (i think) win718:56
ericsnowkatco: I always ending up simply using cygwin18:58
ericsnow("simply")18:59
katcoericsnow: yeah same here, but that may be too complicated for him18:59
natefinchit's so sad that this is actually a question that has to be asked19:00
katcoi know... no clue why windows doesn't support ssh these days19:00
katcoof course windows admins used to look at me funny when i asked how to get a command prompt remotely19:01
natefinchFWIW I think Cygwin is the work of the devil and would not recommend it to anyone I want to still like me in 6 months.19:01
katcolol it was a god-send when i was trapped on windows @ work19:01
katcoi would get a bash prompt and sign in relief :)19:01
katcogrep, less, find! all my friends are here!19:02
natefinchI used it for 7 years at my last job... at least once every 6 months I would have to totally reinstall it because it would randomly f-up if I tried to update something19:02
katcowow really?19:02
katcoi never had a problem19:02
katcoused it probably for... 5 years?19:02
natefinchI don't know how often I had to do the POS rebaseall thing, which would work like 1/3rd of the time19:03
katcolol19:03
natefinchand it doesn't help that it defaults to updating EVERYTHING when you run it to update just one thing, which ends up being this massive download that only has a small chance of succeeding.19:04
natefinch....I'm not bitter19:04
katcohaha19:05
natefinchoh yeah, the kicker is that we were using cygwin to support our build infrastructure..... which built a .Net application and a Java application.  (Yes, both would have built just fine on Windows without cygwin).19:05
katcoi really never had any problems with it19:05
jw4natefinch: was msys a viable alternative to cygwin in your situation?19:06
natefinchThe only thing we actually needed cygwin for was to build RPMs for the java server part (sorry to say we deployed the server to CentOS)19:06
natefinchjw4: I have no idea.  I tried to have as little to do with cygwin as possible.19:07
jw4natefinch: yeah - I never really enjoyed cygwin, but msys usually seemed to meet my needs when on windows19:07
katcomy stress level has gone down so much now that i get to work in ubuntu all day :)19:08
katcoit's just cozy.19:08
jw4katco: lol19:09
jw4I cut my programming teeth in cross-platform unix19:10
jw4but have been mostly doing .NET for the last decade19:10
katcoi have much the same story19:10
katcoi always used some form of *nix, and then got a job at a .NET shop19:10
jw4when powershell came out it was like the hallelujah chorus19:10
katcoliked the language, disliked the platform.19:10
katco(C#)19:10
jw4yeah, I'd like to play more with F# too19:11
katcomore-so because anything that _wasn't_ microsoft was some odd duck that we couldn't risk using (e.g. sqlite3, angular, jquery... etc.)19:11
natefinchheh.  My company was a startup with a Java server on CentOS and big .Net desktop client.  Can't tell you how often we had customers ask if Postgres was a reliable DB, and why we weren't using SQL Server.19:16
jw4nice19:17
natefinchWe got acquired by a big company that was 100% microsoft services, so when we started The Big Rewrite (because isn't there always one?) we were basically forced into a .Net webserver w/ SQLServer19:17
natefinchWe at least were able to convince them that the server could use a REST API and not SOAP19:18
jw4*whew*19:18
jw4SOAP just needs to die19:18
natefinch"But you can just generate client code from the WSDL...."19:18
natefinchAAHHHHH19:19
jw4haha19:19
natefinchAt the time I was trying to push for it to be a single page web app using Angular or something similar, but that was too... modern... for them, so it ended up being all server-side rendering & jquery (oh except for the data for some graphs that would then get downloaded asynchronously for some reason).19:20
jw4lol - did you get to use ASP.NET MVC at least?19:21
natefinchyes?  IIRC... and Entity Framework, which was a huge pain in the butt and cemented my "ORMs are evil" beliefs19:22
jw4EF has come a long way, but still can't overcome the fundamental impedance mismatch between relational data and object data19:22
natefinchand this was the optimal case where we're rebuilding from scratch, but have 100% perfect knowledge of the data domain and how we're going to store it... it's just that if you don't structure your data & tables perfectly, then things just don't work with very little feedback about why.  And forget trying to do anything fancy, like storing data blobs...19:25
alexisbnatefinch, I am going to be a little late20:26
natefinchalexisb: ok20:27
natefinchalexisb: np20:27
alexisbnatefinch, ok on and ready when you are20:39
thumperick...20:40
natefinchalexisb: coming20:40
=== kadams54 is now known as kadams54-away
bogdanteleagaanyone has an idea why separating runnings tests with check.f=foo doesn't work if the bar_test.go file doesn't have a bar.go counterpart?20:54
bogdanteleagaor what other reasons there might be for it not working20:55
thumperbogdanteleaga: I think we need a little more context20:56
thumperbogdanteleaga: got your test file handy to pastebin?20:56
bogdanteleagafor example bench_test in core/state20:57
bogdanteleagaif I do check.f=BenchmarkSuite it says OK:0 passed20:57
=== kadams54-away is now known as kadams54
thumperbogdanteleaga: probably because the BenchmarkSuite is for benchmarking not testing?20:59
bogdanteleagathumper: conn_test does the same thing21:00
bogdanteleagathumper: and they were the only ones I've tried so far and they didn't have normal.go counterparts21:00
thumpergocheck.f ?21:00
bogdanteleagathumper: but assign seems to work21:00
bogdanteleagayes21:00
thumperyou said `check.f`21:00
natefinchI think both work now... remember gocheck is now "check"21:00
thumperthe filename has no impact21:01
thumpernatefinch: really?21:01
thumperoh21:01
bogdanteleagayeah, I've tried both21:01
bogdanteleagagocheck seemed to work until I hit that problem21:01
bogdanteleagathen I tried check and that didn't work either21:01
thumpermramm2: call time21:04
thumper?21:04
=== kadams54 is now known as kadams54-away
thumperhttps://github.com/juju/testing/pull/40 anyone?22:34
fwereade_thumper, LGTM22:46
fwereade_thumper, feeling brave? I think you'll hate me but you'll like it in the end: reviews.vapour.ws/r/527/diff/22:46
fwereade_thumper, there are two files of tests that are just repeated `c.Fatalf("XXX")`, I wanted to finish those today but I'm too tired22:47
fwereade_thumper, still I don't expect non-trivial non-test changes and I want to get some less-casual eyes on it22:48
katcowallyworld: guess what is defined in a main package and is not exportable at the moment =|22:52
=== fuzzy_ is now known as Ponyo
wallyworldkatco: ummm, not sure?23:05
katcowallyworld: MachineAgent23:05
wallyworld\o/23:06
katco:)23:06
wallyworldthe stuff in main should be thin anyway23:06
wallyworldso maybe a chance to refactor to fix it23:07
katcoyeah i'll have to23:07
wallyworldluck you23:07
katcoit's a good change anyhow... glad you suggested landing this separately23:07
katcoand by suggested, i mean "commanded atop your iron throne of management"23:08
wallyworldkatco: just saw this last comment as i was helping someone elsewhere23:33
wallyworld:-(23:33
katcoit's ok, i understand you have a manager's schedule.23:33
* katco pokes the open wound23:33
wallyworld:-( :-( :-(23:33
* katco now feels bad23:33
wallyworldgood23:33
katcohaha23:33
=== kadams54 is now known as kadams54-away

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