/srv/irclogs.ubuntu.com/2010/10/19/#launchpad-dev.txt

lvhhi00:07
lvhI'm trying to configure my lp instance for remote access, and I'm in the /etc/hosts file00:07
lvhis this rule supposed to remain unchanged?  127.0.0.77      vostok.dev archive.vostok.dev00:08
lifelesshave you looked on the wiki00:08
lifelessRunning/VM00:08
lifelessI think00:08
lifelesscovers some sutff00:09
lvhI hadn't, because I'm running this on a physical machine :-)00:11
lifelesshas the same issues though00:11
lifelessnote that a dev environment isn't suitable for production use (in case thats what you're trying to do)00:11
lvhI'm experimenting, but that was the eventual plan, yes00:12
lifelesshosts files are local - you'll need actual DNS, ssl certificates, front end servers etc00:12
lvhUnless I use ssh forwarding, I still get unstyled main pages that say: Lost something?00:13
lvhThere’s no page with this address in Launchpad.00:13
lvh(For the front page.)00:13
lifelessyou'll need a production config, lazr schema, slave db etc too00:14
lifelesswe don't really document how to run production LP - its not something that was envisioned when we open sourced it (note too that you /must/ rebrand it - the look n feel is not opened)00:15
lifelessyou may want to record the things you learn on the wiki somewhere.00:15
lifelessI don't know why you'd get Lost something pages, unless you're bypassing your front-end apache00:16
lvhI'm not trying to kick any shins, I'm fine just using ye olde bzr + roundup...00:16
lifelesssorry, I can't parse that00:17
lvh(Is there a canonical acronym for LAMP, but for developing software instead of serving webapps?)00:17
lvhlifeless: I'm not trying to piss people off by running my own instances of lp that aren't for developing lp.00:18
lvhlifeless: If that's something you don't want people doing, that's fine -- unfortunate, since that means I have to set up like twenty things instead of one, but I'll survive :-)00:18
lifelessits fine to run your own instance, thats clearly something the AGPL permits; What you can't do is use the launchpad branching - the stock icons, widget set - because thats (IIRC) trademarked.00:19
lifelesslvh: I am curious why you want to run your own instance rather than use launchpad.net (but its not really my business :))00:19
persiaDoesn't that just prohibit use to the public?00:19
persia(but ask counsel for detailed use restrictions on trademarks)00:19
lifelesspersia: https://dev.launchpad.net/LaunchpadLicense00:20
lvhlifeless: IANAL but I did the relevant parts of a law degree00:20
lvh(Enough to know nobody really understands the AGPL ;-))00:20
lifelessI wasn't part of the open sourcing process; its a bit neither-fish-nor-fowl at the moment.00:21
lifelessit would be nice to move the theming into a dedicated tree and just say 'whats in tip, is fully agpl, go free'.00:21
lifelessbut there's some implications for test and development00:21
lvhlifeless: Mostly because I'm researching development stacks at the moment00:21
lvhlifeless: for closed-source stuff00:21
lifelesslvh: sure. Are you aware that launchpad.net supports closed-source stuff ?00:22
lvhlifeless: Yes00:22
lifelessgreat00:22
lvhlifeless: I think their pricing system is wrong ;-)00:22
lifelessanyhow, I hope I've helped with the issue you're seeing00:22
lifelesslvh: have you given that feedback to mrevell ?00:22
persialifeless, Makes sense.  I simply don't know enough of the relevant precedent to know if it's enforceable in cases where it's undiscoverable.  Given that it's an explcit restriction on license, rather than just a trademark claim, I'm no longer tempted to believe it's a public/private thing (which is the common trademark model)00:22
lvhlifeless: Yeah.00:22
lifelesslvh: ok, cool00:22
lvhlifeless: Something along the lines of "I see your point, but it works for some people, and we're not changing it anyway"00:23
lifelessmmm00:23
lifelessnothing is unchangable00:23
lvhlifeless: (I believe you should limit *people*, not *projects*)00:23
lvhOr at least not primarily projects.00:24
lifeless(because?)00:24
lvh(And about a week after I blogged about that, Atlassian went out and did it with Bitbucket)00:24
lvhlifeless: Well, practical example00:24
lvhlifeless: Small interdependent pieces of code: good, big monolithic pieces of code: bad, right?00:25
lifelessbitbucket does closed source by user, not product ?00:25
lvhlifeless: bitbucket lets you make infinite repos00:25
lvhclosed or open00:25
lifelessyeah, I can see the argument.00:25
lifelessit makes sense to me.00:25
lvhlifeless: however, if you want to *share* those repositories, that's when it costs you00:25
lvhfor 5 or below, it's 0, etc00:25
lifelessafterall users are what incur costs, not small bits of metadata.00:26
lvhright00:26
lvhplus everything else pretty much bills you per user00:26
lvhthe cutoff point is pretty high too00:26
lvh250/yr, let's say 20/month00:27
lvhthat gets you 25 users at bitbucket, which isn't a trivial two-bit operation anymore00:27
lvhand they get infinite projects00:27
lvh(I realise my comparison is flawed because bitbucket doesn't have merge proposals and their bugtracker is useless, but you get the basic idea)00:28
lifelessyeah00:28
lifelesswe're primarily here for open source though00:29
lifelesssomewhat different concerns00:29
lvhwell, that's true, but00:29
lvhthe closed source stuff is so I *can* work on open source stuff for free00:29
lvhI still gotta eat at some point in time00:29
lifelesssure00:29
lvh(it actually says that explicitly in the notary ... not sure what the correct english term is. deed? document-that-starts-a-company. One of the goals of the comapny is to contribute to open source projects)00:30
lifelesscool00:31
lifelessarticles of incorporation00:31
lifelessconstitution00:31
lifelessdepends on the country00:32
lvhyeah, I'm from belgium, country-ish things are vague and fleeting00:32
lifelesshmm, the quake a wee bit back was a 5.000:32
lifelesshttp://www.geonet.org.nz/earthquake/drums/00:35
poolie<persia> Doesn't that just prohibit use to the public? (but ask counsel for detailed use restrictions on trademarks)00:35
pooliethis is kind of fud-ish00:35
pooliei know it's not meant maliciously00:35
persiapoolie, It's structurally built into things: it's published that anyone providing legal advice who is not so licensed (where I live, where you live, and many other places) can be (successfully) sued by any counsel without such comments.00:37
pooliewell, don't provide legal advice then00:37
poolieif i say "how do i set up gpg" and you tell me "ask counsel for detailed use restrictions" it may be technically true but it's not very welcoming00:38
pooliedo you see what i mean?00:40
persiaThat's kinda different.  I may be overcareful when it comes to disclaimers when talking about licenses, trademarks, patents, etc., but I don't think it's better to not talk about them.00:40
pooliei think it's better not to say something vaguely worrying00:41
persiaWhich is the worrying bit?00:41
pooliethe "ask counsel" bit00:44
persiaI guess.  Similar to IANAL.  Anyway, off-topic, and taking to /query00:49
poolieyeah, i guess it is just "ianal"00:56
poolieto me, it's a more alarming way of saying it, but i see what you mean00:56
=== Ursinha-afk is now known as Ursinha
mwhudsonlifeless: hey, did you figure out your testtools error?01:14
lifelessno01:14
lifelessno idea at all01:14
mwhudsonlifeless: i mean "Subject: [Launchpad-dev] Fwd: Test results: testtools => devel: FAILURE"01:14
mwhudsonlifeless: i just had a WAG01:14
lifeless\o/01:15
mwhudsonbasically <storm expr> == anything is true?01:15
mwhudsonso perhaps some change in testtools now tests types, or something?01:15
mwhudsoni.e. the tests were already bong01:15
lifelesscould be01:15
lifelessI'll look more closely; thanks.01:15
mwhudsonlifeless: hmm, doesn't look likely actually01:16
mwhudsonbut it's still worth checking i guess01:16
mwhudsonlifeless: i was right, the test is broken01:30
mwhudsonlifeless: and the reason your branch exposes it is that some change in testtools flips the order of the comparison01:30
mwhudson(Pdb) p operator.eq(matchee, matcher.expected)01:31
mwhudsonFalse01:31
mwhudson(Pdb) p operator.eq(matcher.expected, matchee)01:31
mwhudson<storm.expr.Eq object at 0xcc17d90>01:31
mwhudson\o/ ?01:31
lifelesshah01:31
wgrantHeh.01:32
mwhudson        self.assertEqual(UTC_NOW, branch.next_mirror_time)01:32
mwhudsonsigh01:32
mwhudsonshould be01:33
mwhudsonself.assertSqlAttributeEqualsDate(branch, 'next_mirror_time', UTC_NOW)01:33
mwhudsoni guess01:33
mwhudsonlifeless: i guess you can fix that in your branch?01:33
lifelessotp01:34
mwhudsonk01:34
mwhudsonthe other failure is probably something similar01:34
thumperare we still importing the with statement from the future?01:35
lifelessno need01:38
thumperso we are 2.6 everywhere now01:38
thumper?01:38
lifelessyes01:38
lifelessno01:38
thumperw00t01:38
lifelessI lied01:38
thumperwas there an email?01:38
lifelessfuture still01:38
lifelessyes01:38
wgrantThere were a few emails, all contradicting each other.01:38
lifelessthread with mars and me01:38
thumperso...01:39
lifelessfrom __future__ is still needed01:39
thumperstill future01:39
thumperok01:39
wgrantThe PQM chroot?01:39
wgrantOr is there something else?01:39
=== Ursinha is now known as Ursinha-afk
LPCIBotProject db-devel build (82): STILL FAILING in 3 hr 44 min: https://hudson.wedontsleep.org/job/db-devel/82/02:18
LPCIBot* Launchpad Patch Queue Manager: [r=abentley][ui=None] Add database patch for branch merge queues02:18
LPCIBot* Launchpad Patch Queue Manager: [r=rockstar][ui=none][bug=662664] Ensure recipe builds run only under02:18
LPCIBotXen02:18
lifelessmwhudson: thanks for looking into that02:30
mwhudsonlifeless: s'ok -- i hate mysteries :)02:31
thumperwild stab in the dark, but I thought "bin/test -m lp.code.windmill" would only run the code windmill tests02:31
* thumper thinks02:32
thumperactually I think there is a bug layer one there02:32
thumpercanonical.testing.layers.LayerIsolationError: Test didn't reset the socket default timeout.02:32
thumperanyone seen that running windmill tests?02:32
lifelesshttp://i.imgur.com/IOBPq.jpg02:34
thumperI wonder how many page loads were needed to get the right ad :)02:37
mwhudson:)02:38
thumperERROR DISABLED: Test left new live threads: [<Thread(Thread-3076, started daemon 140448791578384)>] ?!?02:38
wallyworld_thumper: bin/test -vvt code.windmill.tests has been working for me02:41
wallyworld_but yours should have worked too i guess02:41
wallyworld_i'm also seeing the live threads stuff02:41
lifelessbombs away02:53
wgrantAn interesting proposal.02:56
lifeless3 minutes, you're running slow02:56
wgrantShh.02:57
lifeless;)02:57
lifelesswgrant: any more feedback than that ?03:00
wgrantlifeless: I think it's a good idea to try it.03:01
wgrantAs long as the scope is clear.03:01
wgrantBut I haven't really got time to think about it too much at the moment.03:01
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Ursinha-afk
marswgrant, if you are talking about lifeless' reviews experiment: the scope is 'anything that requires craftsmanship', which basically means even a single line of code: SQL, Python, or otherwise.04:35
lifelessmars: hi04:50
lifelessmars: I think you're projecting04:51
lifelessmars: I realise my examples can be categorised that way, but its not what I meant.04:51
lifelesss/project/something/04:51
marslifeless, yes, but as wgrant pointed out, drawing the line can be difficult.  I just pointed out a minimum point at which the line may be drawn.  Hopefully discussion will take us beyond that.04:59
* mars signs off for the night - bye!05:00
rockstarwallyworld_, I'm tempted to just say "forget the test, just land the code"05:59
* persia suspects that is a recipe for summoning for certain well-meaning over-knowledgeable folk06:03
rockstarpersia, then I punt to them.  :)06:11
lifelessrockstar: whats the question ?06:26
LPCIBotProject devel build (130): STILL FAILING in 3 hr 56 min: https://hudson.wedontsleep.org/job/devel/130/06:28
wallyworld_rockstar: i'd still like to know what's going on06:29
wallyworld_lifeless: the issue is that some ajax stuff works fine but fails under windmill06:29
lifelessugh06:32
lifelessthat sucks06:32
wallyworld_yep. basically Y.io(...) is just plain failing06:33
lifelesswallyworld_: btw06:33
lifelessbug 66306806:33
_mup_Bug #663068: Remove hard coded test urls <launchpad-foundations> <Launchpad itself:New for wallyworld> <https://launchpad.net/bugs/663068>06:33
lifelessthe tag is unusual06:33
lifelessnormally bugs are put on the launchpad-foundations *project* with separate tags ;)06:33
wallyworld_bugger. i stuffed that one up. sorry06:34
lifelessno worries06:34
lifelessI've fixed06:34
wallyworld_thanks06:34
lifelessbut I thought something might have got lost in translation06:34
lifelessso letting you know06:34
lifelessbug 66306806:34
_mup_Bug #663068: Remove hard coded test urls <paralleltest> <Launchpad Foundations:New for wallyworld> <https://launchpad.net/bugs/663068>06:34
lifelesssee^06:34
* wallyworld_ files mental note06:35
lifelessI think it would be nice to have all bugs on the launchpad project06:35
lifelessbut thats not the current practice ;)06:35
wallyworld_well, it would make it easier perhaps06:36
lifelessmwhudson: looks interesting vis a vis our discussion earlier - http://pypi.python.org/pypi/withrestart/0.2.708:18
lifelessnot sure its tasteful though ;)08:19
adeuringgood morning08:36
lifelessjelmer: hi08:54
lifelessjelmer: the thing you CP'd. what rev of trunk is it? (by CPing you've kind of blocked all deployments till we catch up, now that we're on the new process)08:55
lifelessjelmer: I want to assess what we should do now08:55
lifelesshmmm08:56
lifeless9pm08:56
lifelesstime to write some code08:56
lifeless[one of those days]08:56
=== almaisan-away is now known as al-maisan
jmlgood morning09:23
bigjoolsmorning09:24
lifelesshmmm, leaked config dirs09:28
jmllifeless: any traction on your testtools => devel fail?09:30
lifelesssome09:30
lifelessits a storm expr being used in the test09:30
lifelessso its dependent on the magic ordering of ==09:30
jmllifeless: oh wow.09:31
lifelesswe need to rewrite those tests, shallowly, or thoroughly09:31
jmllifeless: ok09:31
lifelessmwhudson dug into it, and phrased it as broken.09:31
lifeless:)09:31
jmllifeless: I retract any offer of help that my enquiry might have implied :P09:31
lifelesshah!09:31
lifelessjml: did you see https://bugs.edge.launchpad.net/launchpad-foundations/+bug/662519 ?09:34
_mup_Bug #662519: lp test startup exhausts dev/random <Launchpad Foundations:Triaged> <https://launchpad.net/bugs/662519>09:34
jmlno09:34
jmlbut I love that title :)09:34
lifelessit will add some hilarity to your day09:34
jmlof all of the problems that I would have guessed we had...09:35
lifelessjml: well, the thing about surprises09:54
bigjoolswgrant: hello09:57
wgrantbigjools: Hi.09:59
bigjoolswgrant: evening.  I'm trying to test your fix for bug 62992109:59
_mup_Bug #629921: Archive:+packages with empty name search does like '%%' search. <pg83> <qa-needstesting> <timeout> <Soyuz:Fix Committed by wgrant> <https://launchpad.net/bugs/629921>09:59
wgrantbigjools: Navigate to the page ++oops++, filter to Superseded packages, verify that the query isn't insane.10:00
bigjoolswgrant: it's timing out10:00
wgrant... hah.10:00
bigjoolsI don't need a ++oops++ :)10:00
wgrantDeclivitous?10:01
bigjoolsyes10:02
wgrantIt sounds negative.10:03
bigjoolsit means "sloping down steeply"10:03
wgrantAh.10:04
bigjoolswe're half way through the development10:04
wgrantOptimistic!10:04
bigjoolsnot really10:05
wgrantbigjools: I have the first three lucilleconfig-elimination branches proposed, if you'd like to eyeball them.10:13
wgrantI still need to work out what to do about the germanium temproot issue, though.10:13
bigjoolswgrant: I don't have the time right now - I can look probably Thursday if you can sit on it a while10:14
wgrantbigjools: Sure.10:14
wgrantNo urgency.10:14
bigjoolsyeah :)10:14
bigjoolsI am doing QA on your other publisher change at the moment10:15
wgrantAh, thanks. Sorry for leaving that to you, but I can't really do it myself yet...10:15
bigjoolsindeed10:15
bigjoolsright now you do increase my workload quite a lot :)10:16
jmlhttps://code.edge.launchpad.net/~jml/launchpad/codebrowse-port-config/+merge/38812 – need a review10:19
jmlit's part of getting qastaging up10:19
lifeless+110:19
jmllifeless: heh heh10:19
jmllifeless: thanks10:19
jmllifeless: can you please rubber stamp for landing tools.10:20
lifelessI did10:20
bigjoolswgrant: the next thing you might want to look at that would be most beneficial if you're feeling like doing more work is to do that query speedup in the domination10:21
bigjoolsthe PPA publishing cycle is slow :/10:22
wgrantbigjools: Yeah, I need to do that. But I want to try to fix the actual query.10:22
bigjoolswgrant: fix?10:22
wgrantbigjools: To not use a temp table.10:22
jmllifeless: ta10:22
bigjoolswgrant: there's nothing wrong with that10:22
wgrantbigjools: A big part of the publisher slowness (at least locally) is the regular cache purging.10:22
wgrantRemoving that cuts a primary run from >1min to <10s.10:23
bigjoolsare you talking about the storm cache?10:23
wgrant(every (distroarchseries, pocket) domination clears the Storm cache twice)10:23
bigjoolsright10:23
bigjoolsthe first question is - why does it need to flush it10:24
wgrantI'm not sure hwo dumb our cache eviction strategy is.10:24
wgrantIt may not evict at all.10:24
bigjoolsI'm sure lifeless will have something useful to contribute :^)10:25
lifelessbeware the tides, wait oh what ?10:26
lifelessstorm cache depends on the cache thats installed10:26
lifelesswe have a custom one10:27
lifelessI don't recall the details about when its installed10:27
lifelesshow does the sql temp table relate to storm cache flushing?10:27
bigjoolsI no approximately nothing10:27
bigjoolsjeez10:27
bigjoolsknow*10:27
wgrantlifeless: I don't think it should relate, besides being in roughly the same piece of code.10:27
bigjoolslifeless: this is something that cprov may have talked to you about in the past when we started using storem10:27
lifelessok, so I was confused ;)10:28
lifelessbigjools: which this do you refer to ?10:28
lifelesswgrant: so are we talking storm performance or the query ?10:28
bigjoolslifeless: caching on  the publisher10:28
wgrantThe publisher drops caches.10:28
wgrantFrequently.10:28
lifelessok, as a correctness thing I guess? you're changing values in the db10:29
bigjoolslifeless: see judgeAndDominate() inside lib/lp/archivepublisher/domination.py10:29
bigjoolswhich calls clear_cache()10:29
wgrantThat code isn't *too* painful any more.10:29
wgrantSo you won't go insane from reading it.10:29
wgrantI don't think it's correctness.10:30
wgrantWe create a temp table, read in a list of publications from it, then use Storm operations on those.10:30
bigjoolslifeless: I've no idea why it needs to flush_database_updates() then clear_current_connection_cache() then gc.collect()10:30
bigjoolsI have a vague recollection of it blowing memory into small pieces10:31
wgrantbigjools: Because it wants to take 20 minutes :D :D :D10:31
bigjoolsyeah10:31
wgrantI don't see why it would be dealing with a particularly huge number of objects.10:31
lifelessthe conection cache so cccc is store.invalidate10:32
wgrantAt worst it should be a few thousand during an autosync run.10:32
lifelessblah late night typing10:32
lifelessso you could do this in a more direct form10:32
lifelessdrop the store object10:32
lifelessput a new one in its place10:32
lifelesswgrant: I agree - but - numbers will help.10:33
lifelesslets get peak memory utilisation logged (sys.utimes or whatever)10:33
bigjoolsit is logged10:33
lifelessgreat10:33
lifelesshows it look at the moment?10:34
bigjoolsactually - maybe it's not logged for domination10:34
bigjoolsah it's deathrow that does it10:35
bigjoolsit uses process_in_batchers10:35
lifelessbah10:35
bigjoolssigh10:35
lifelesslibrarian hates10:35
bigjools process_in_batches10:35
lifelesspsycopg2.OperationalError: FATAL:  database "launchpad_ftest" does not exist10:36
wgrantbigjools: Doesn't lots of publisher stuff use that?10:36
wgrantOr is PublishingTunableLoop a separate thing?10:36
wgrantThere are a few things like that.10:36
bigjoolswgrant: just deathrow and ftparchive it seems10:36
wgrantAh, yeah.10:36
bigjoolswhen overriding, for the latter10:36
wgrantNot for generating file lists too?10:36
bigjoolsah yes10:37
wgrantYeah.10:37
wgrantI've been in that code a bit lately...10:37
bigjools:)10:37
bigjoolslucky you10:37
wgrantHey, deleting crappy code makes a good break from finishing my last two projects evaar.10:38
bigjoolsI am running the ubuntu publisher on DF at the moment, when it finishes in about an hour or so we'll see if your other fix worked10:38
bigjoolsif the publisher code is a break, I'd hate to see what your projects look like10:38
wgrantbigjools: The file list generation really takes most of that time?10:39
wgrantNot a-f itself?10:39
wgrantI do not understand :(10:39
bigjoolswgrant: domination is SLOW10:41
wgrantbigjools: The three minutes it takes on production is also slow. But I guess your definition is different.10:42
bigjoolsdogfood is spethial10:42
lifelessjml: hey, whats 'stnadard' to log something in twistd10:44
bigjools2010-10-19 09:38:42 DEBUG   Sorting packages...10:44
bigjools2010-10-19 09:43:39 DEBUG   Dominating packages...10:44
bigjoolswgrant: ^10:44
wgrantbigjools: Ah, so only twice production's slowness.10:44
wgrantNot so bad.10:44
jmllifeless: log.msg(), where log = twisted.python.log10:44
lifelessjml: nothing gets logged10:54
lifelessjml: I guess the log only shows after the tac is parsed?10:55
jmllifeless: that sounds vaguely familiar10:55
jmllifeless: but I don't know for sure.10:55
lifelessI wonder how I can easily make this easier to debug10:56
jmllifeless: also, our tachandler nonsense might interfere with early logging10:56
=== bac` is now known as bac
bigjoolswgrant: filelist generation is the slowest part on dogfood it seems.  Probably production too.11:17
wgrantbigjools: Better than before cprov fixed it a year ago...11:18
wgrantbigjools: Prod file list calculation seems to take just a couple of minutes.11:20
wgrantThen a-f takes ~15 minutes.11:21
wgrantDebian recently parallelised a-f calls.11:22
LPCIBotProject db-devel build (83): STILL FAILING in 3 hr 54 min: https://hudson.wedontsleep.org/job/db-devel/83/11:49
deryckMorning, all12:04
jmlbigjools: btw, now that the first cut of testtools twisted support has landed, I'm blocking on the mega-branch for converting all our trial tests & deleting the twisted layers12:23
bigjoolsjml: sweet12:23
bigjoolsjml: are you going to make the change so I can merge it?12:23
jmlbigjools: no, I'm going to wait until your branch lands before I try to land on trunk12:24
bigjoolsok12:24
jmlbigjools: Launchpad doesn't have the testools twisted support yet, it's only landed in testtools trunk.12:24
wgrantbigjools: Has dogfood blessed me yet?12:24
bigjoolswgrant: hahaha no12:25
wgrant:(12:25
bigjools2010-10-19 09:50:16 DEBUG   Calculating binary filelist.12:25
bigjools2010-10-19 11:16:49 DEBUG   Iteration 9 (size 10000.0): 518.693 seconds12:25
jmlbigjools: I'm working on the existing twisted tests in LP in a branch now, working out the kinks with my perfect-in-theory twisted support code12:25
bigjools2010-10-19 11:25:25 DEBUG   Iteration 10 (size 10000.0): 516.320 seconds12:25
wgrant...12:25
wgrantThat is utterly pathetic.12:25
bigjoolsdogfood is SLOW12:25
bigjoolsjml: coolio12:26
wgrantMaybe qastaging will be better.12:26
lifelesswgrant: qastaging is on the staging machine, for now.12:26
lifelesssame db server, same appserver12:26
wgrantWell, I don't know how fast asuka is these days.12:26
lifeless450 milliparsecs12:26
wgrantBut it can't be quite mawson-slow.12:27
bigjoolslifeless: less than twelve parsecs, surely.  :)12:27
lifelessindeed12:39
lifelesshhmm, nearly 1am12:39
lifelesspsql -l | grep launchpad_ftest_[\[:digit:\]] | awk '{ print $1 }' | xargs -n1 dropdb12:39
lifeless^ folk will need that till we shake the bugs out of the parallel stuff :<12:39
jmllifeless: bah, kiwis are nocturnal anyway12:45
* jml is off to lunch & errands12:45
lifelessI'm amazed some of this stuff ever worked12:48
lifelessI hate globals.13:03
lifelessthere, I said it.13:03
persiaNeeded to be said, really.13:04
lifelesslib/canonical/lp/__init__.py takes the database name found at process startup and caches it indefinitely.13:04
persia*choke*13:04
lifelessthat interacts badly with changing it in the test runner.13:05
wgrantThere are a lot of similar pieces of evil.13:09
lifelesswgrant: check this out13:10
wgrantAnd then you check their history and find they were added in early 2005 and probably haven't even been looked at since.13:10
lifelesssqlbase.connect_string13:10
lifelessconfig.rw_main_master13:10
lifelessthen lp.dbname13:10
lifelesswhich is always set...13:10
lifelessto dbconfig.main_master13:10
wgrantlifeless: There used to be a non-main store.13:10
lifelessyes13:10
lifelessbut its circular13:10
lifelessscripts options stash it there13:10
lifelessand then its read back13:10
wgrantAh.13:11
lifelessso a dynamic config system becomes a static variable13:11
lifelessfacepalm13:11
wgrantI'm glad you've found rationale sufficient to justify destruction of this madness.13:12
wgrantAlbeit at 1am.13:12
wgrantbigjools: https://edge.launchpad.net/ubuntu/+source/icecc/0.9.6-1/+build/2000412 is FAILEDTOUPLOAD but has no upload log.13:17
wgrantIs this meant to happen?13:17
wgrant('tis breaking scripts)13:17
bigjoolswgrant: yes - jelmer fixed stuff that was stuck in UPLOADING13:18
lifeless\o/ appserver running up against launchpad_ftet_2243713:18
wgrantbigjools: Ah, so the old stuff got set to FAILEDTOUPLOAD without a log?13:18
* wgrant makes the scripts cope.13:18
bigjoolsyes - there was no log available.13:18
wgrant:(13:18
bigjoolsit was only 200 or so13:18
bigjoolsannoying, but unavoidable because of the bug13:19
wgrantYup.13:19
* bigjools puts the finishing touches to the new buildd-manager and rejoices13:27
bigjoolsassuming jml likes my changes of course :)13:28
lifelessjml: when you return13:28
wgrantWhat does it actually change?13:29
lifelessmy databasefixture branch has a couple of somewhat nontrivial alterations added to it13:29
wgrantMakes dispatching properly asynchronous?13:29
lifelessjml: ^ - would appreciate another glance please.13:29
bigjoolswgrant: yes13:29
bigjoolswgrant: I still need to make file fetching asynchronous but that's for another branch and day13:29
bigjoolsthe most important thing is that the code is now vastly simplified13:30
wgrantRight.13:30
bigjoolsI'm particularly pleased that all the error handling is done in one place now13:30
gmbmars: Did you land that test helper for setting / unsetting feature flags?13:39
gmbISTR you mentioning it in an email thread ages ago but I can't find any details.13:40
LPCIBotProject devel build (131): STILL FAILING in 3 hr 51 min: https://hudson.wedontsleep.org/job/devel/131/14:02
cr3hi folks, is there a convention for separating names consisting of more than one word in launchpad urls? lets say I have a new target called "foo bar", should the url be "foo-bar", "foo_bar", "foobar" or is the convention to find whatever way to just have one word?14:31
jmllifeless: will do.14:33
jmlbigjools: I'll take a look after looking at lifeless's branch14:33
bigjoolsjml: I found some test failures caused by the most recent revision, ping me before you look as I'm fixing them now14:34
jmlbigjools: will do.14:35
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Ursinha-afk
bigjoolsjml: ok it was a trivial piece of pebkac.  However I've got a weird error when it tears down the layers, have you got any idea what's wrong here? http://pastebin.ubuntu.com/516258/14:43
jmlbigjools: something is screwing with the layers. otp. things to try include checking for recent changes to devel that aren't in stable.14:48
bigjoolsrighto14:48
jml(or bad revisions you've merged in from devel)14:48
bigjoolsoh the shame14:48
marsis the use of the rubber-stamp 'rs' review documented anywhere?14:55
=== Ursinha-afk is now known as Ursinha
jmlmars: if you can't find it, then the answer is "functionally, no"15:00
marsjml, I did not even know what it meant until Deryck mentioned it in his listmail.  I thought it was just some funny typo people used from time to time.15:02
jmlbigjools: maybe r11734 is a culprit?15:02
* jml otp again15:02
bigjoolsjml: I'd lay a wager on it15:03
jamabentley: I think you have some private lp branches available. I ran your script, and only see 4.3k branches15:15
abentleyjam: quite possible.  As a member of the code team, I have read/write access to everything.15:16
=== leonardr_ is now known as leonardr
=== leonardr is now known as leonardr-afk
=== salgado is now known as salgado-lunch
LPCIBotProject parallel-test build (6): STILL FAILING in 2 hr 7 min: https://hudson.wedontsleep.org/job/parallel-test/6/15:48
bigjoolsjml: latest devel made it go away.  The branch is ready for your perusal.15:49
gmbmars: Did you land that test helper for setting / unsetting feature flags?16:01
gmbISTR you mentioning it in an email thread ages ago but I can't find any details.16:01
gmbI'm writing tests at the moment and the whole ignore = getFeatureStore().add(...) dance is horrendous.16:02
marsgmb, no, the branch has two small failing tests in it.  I have to make time to fix them16:02
marsgmb, :)16:02
gmbmars: Which branch is it? I can try to take a look at the failures if you'd like.16:03
marsgmb, sure!  lp:~mars/launchpad/add-profiling-feature-flag16:04
=== matsubara is now known as matsubara-afk
=== matsubara-afk is now known as matsubara-lunch
marsgmb, the failing tests are: bin/test -cv lp.services.profile16:04
marsgmb, just two simple ones IIRC16:05
marsgmb, I changed the way that the profiling instruments know that they should be turned on and measuring the request.  The old code had some tests for 'instruments on' and 'instruments off', and they broke when I changed the way that the on/off switch works.16:06
gmbmars: Okay, I'll take a look.16:07
marsgmb, the new code for the flags helper and fixture is in lp.services.features.helpers16:07
gmbCool.16:07
marsmake that lp.services.features.testing16:13
=== deryck is now known as deryck[lunch]
abentleyjam, I've updated https://dev.launchpad.net/Code/BranchRevisions but it doesn't list you as an email recipient.16:23
jamabentley: thanks. I had added "BranchRevisions" but maybe it needs a full match rather than a subset16:24
abentleyjam, anyhow, I'd really appreciate your feedback on it.16:26
jmlbigjools: are you intending anything more for this branch?16:37
bigjoolsjml: nothing planned16:37
jmlbigjools: reviewed16:40
bigjoolsjml: thanks, will look shortly16:41
jamabentley: I'll have some more interesting numbers for you in a couple minutes16:42
jamI ran the script and grabbed the revisions for all those branches16:42
abentleyjam, cool.  Hard data is good.16:42
jamso at least for the ~4k branches I can see, I can tell you how the db will hold it16:42
=== benji is now known as benji-lunch
jamabentley: so the import is done, how would you like the numbers?16:55
jmlhuh16:56
jmlhow did that happen16:56
=== deryck[lunch] is now known as deryck
abentleyjam,  maybe the best place is the BranchRevision page?16:56
jmlbigjools: fwiw, I'm going to be off IRC all tomorrow16:56
jamabentley: sure16:57
=== beuno is now known as beuno-lunch
=== matsubara-lunch is now known as matsubara
jamabentley: updated, and you weren't listed as notified17:19
jam(neither was I, but I'm hoping that is because it is me)17:19
abentleyjam, perhaps I should subscribe :-)17:21
abentleyjam, to calculate the BranchRevisions, take the distance-to-null of the branch tips and sum them.17:24
jamabentley: it is the full ancestry17:24
jamnot the mainline17:24
jamgdfo would be a decent approximation, but still low17:24
abentleyjam, my bad.17:24
jamI'm just going to do a pass across the data, find the ancestry of each rev17:24
jamand then sum those17:24
jamdang, I have to do set operations because 2 parents don't "add" cleanly. but I'll get there17:26
=== salgado-lunch is now known as salgado
abentleyjam, so it looks like the ratio of branches to dotted_revno_rows improves as the number of branches increases.17:32
jamabentley: possibly. I think it depends a lot of the branches themselves17:33
jamA long-lived branch will be 'bigger'17:33
jamand can certainly skew the results more when there are fewer total branches17:33
abentleyjam, true.17:33
abentleyI get 410:1 with merged, 1030:1 with abandoned, 1219:1 with experimental.17:35
abentleyjam, it would be interesting to sort by the revision date.  That should give a rough idea how it scales over time.17:36
abentleyjam, I'd like to hear whether you think my algorithms under "use case analysis" make sense.17:37
=== benji-lunch is now known as benji
=== leonardr-afk is now known as leonardr
jamabentley: so by my numbers, BranchRevision for those 4k branches is 328M rows17:57
jamyour logic seems ok17:57
jamI'm not sure that walking 'backwards' using mainline_parent is the best thing to do17:58
jamspecifically, as a branch changes over-time more entries will end up in the mainline_parent table17:58
jamwe'll need a way to remove old entries, etc.17:58
jamthat table wasn't very big, so I wasn't worried about it accumulating cruft17:58
abentleyjam, walking backwards when implementing a ParentsProvider, for example?17:59
jamWell I say "backwards" I should be saying "forwards" (in the opposite direction of normal)17:59
jamthe ParentsProvider seems good17:59
=== beuno-lunch is now known as beuno-luncheso
abentleyjam, okay.17:59
=== beuno-luncheso is now known as beuno
jamthe 'most relevant branch' is tricky17:59
abentleyjam, yeah.  We might be looking at changing it so we cache the most relevant branch on the revision, and only need to calculate it if the branch goes away.18:00
jamabentley: I think that is a good start, though AIUI it can change18:01
jamspecifically, if I push up a merge of your branch before you push up the branch itself18:01
abentleyjam, true.18:02
abentleyjam, the whole thing is a bit questionable.  The most important thing we need it for is calculating revision karma, which is only done once.18:02
jamif you are willing to start with "Branches owned by the user in this given project" then you can start with the known tips and walk backwards18:03
abentleyjam, I have to meet someone for  lunch now.  TTYL.18:03
jamlater18:03
=== Ursinha is now known as Ursinha-lunch
rockstarSomeone from foundations, I could really use your help.18:35
rockstarEr, help figuring out what's going on with the librarian.18:35
marsgary_poster, ^ ?18:35
jmlrockstar: what's the problem?18:38
rockstarjml, http://pastebin.ubuntu.com/516392/ - that's usually what I expect when the librarian is still up.18:39
rockstarBut I don't see it in ps, and bin/kill-test-services appears to be broken.18:39
jmlrockstar: that message seems to indicate that the librarian is *not* running.18:40
jml"Librarian has been killed or has hung." and then later "[Errno socket error] [Errno 111] Connection refused" … looking at the layer code, that's coming from a failed urlopen(foo).read()18:41
rockstarjml, yeah, we don't seem to be very good at error messages.18:41
sinzuiflacoste, mumble?18:41
rockstarjml, nevermind.  It seems fixing bin/kill-test-services and then running it has fixed it.18:43
rockstarjml, meaning that there was probably crap left over from the last librarian instance.18:43
jmlrockstar: I think there's a bug filed somewhere about it leaving its pid file around after dying18:43
rockstarjml, ah, okay.18:44
rockstarjml, I think that bug's been around for a while, and we've been using bin/kill-test-services to workaround it.18:44
rockstarBut when that script is broken, then it's a little harder to sort out.  :)18:45
LPCIBotProject devel build (132): STILL FAILING in 3 hr 54 min: https://hudson.wedontsleep.org/job/devel/132/18:50
cr3hi folks, sorry for asking again, is there a convention for separating names consisting of more than one word in launchpad urls? lets say I have a new target called "foo bar", should the url be "foo-bar", "foo_bar", "foobar" or is the convention to find whatever way to just have one word?18:52
rockstarcr3, we mostly use foo-bar18:53
deryckAll my ec2 mails complain of failure when it's windmill errors due to threads.  Should I open a bug about this?18:53
jmlderyck: probably yes, but I'd also check StevenK's recent emails about windmill threading errors on the list18:54
deryckjml, ok, will do.18:54
lamontjml: so if someone claims something has landed on launchpad/db-stable (which I'm gathering == launchpad/staging?), then is it fair to assert that it should also exist on lp:launchpad/devel?18:54
jmllamont: no, it's not.18:54
lamontthat explains why it fails that assertion18:54
lamontjml: historically, launchpad-buildd has developed/released directly from /devel, since it's not really part of launchpad, etc, etc.  I'm wondering what else would break in breaking from that tradition, or if I should go have the person who landed his branch on /staging also land it on /devel18:56
jmllamont: branches that require db changes land on db-devel→db-stable, after we've rolled out a db update, db-stable gets merged into devel.18:56
lamontah, interesting.  given that we tested this without db changes, I expect that he should have landed it on /devel instead then, yes?18:57
jmllamont: probably18:57
lamontor additionally, or whatever18:57
jmllamont: but I couldn't say for sure18:57
lamontcan I propose someone elses branch for merging?18:57
jmllamont: you can indeed18:57
cr3rockstar: thanks, might you have an example I could use as precedent?18:57
* lamont goes to dig around a bit18:57
jmllamont: fwiw, splitting buildd into its own branch & project is one of my many Launchpad someday/maybes.18:58
rockstarcr3, not off the top of my head, no. Sorry.18:58
jmlanyway, I have to go now. have a great evening all.18:58
lamonthttps://code.edge.launchpad.net/~abentley/launchpad/detect-xen/+merge/38867 <-- rockstar, wanna approve that beasty?19:01
rockstarlamont, I reviewed that already. It looks like abentley landed it into db-devel (which is lp:launchpad)19:03
lamontright.  and I need it landed on /devel19:03
rockstarlamont, why?19:07
lamontbecause that's where launchpad-buildd releases from, and since it's an as-released thing when it merges, merge conflicts absolutely suck, since it means that the source in lp is wrong (relative to what's actually running)19:08
lamontrockstar: given that the two branches appear to be divergent, it's less work for me to just keep releasing from /devel rather than migrating the releases over to db-stable19:10
rockstarlamont, okay.19:10
lamontesp since the release process comes down to me changing debian/changelog and telling bigjools/whoever to "hey please land this, it's live, kthx"19:11
rockstarlamont, I'm going to go on the assumption that abentley landed it in db-devel on accident, and approve this.  If this assumption is wrong, is quite likely that abentley will thump me.19:11
rockstar(I just want you to know the risk I'm taking)19:12
lamontrockstar: understood.  tell him I made you do it.19:13
lamont'twas tested without db changes, so I'm gonna assert that it doesn't need to be on db-stable19:13
rockstarlamont, I know abentley well enough to know he won't accept excuses.  :)19:13
=== Ursinha-lunch is now known as Ursinha
lamontof course, the descriptions of the branches make even less sense, since db-stable claims to be "development" and /devel makes no such claim19:14
lamontrockstar: my fall back is to just tell him to land it there and let him wait another day to get his code rolled out.19:14
lamont> Please land your branch - after the merge pain of times past, I've learned19:14
lamont> not to deploy from anywhere other than mainline launchpad/devel.19:14
lamontThe branch has landed on db-stable.19:14
rockstarlamont, devel is to db-devel as stable is to db-stable19:15
lamontso stable is for the existing db, and devel/db-devel is for the "we need a db upgrade" stuff?19:16
rockstarlamont, no, things get landed into devel, and when buildbot blesses them, they get pulled into stable.  db-devel then merges stable, and when things get blessed by buildbot, they get pulled into db-stable19:17
rockstarlamont, so, if the buildd code ever gets tests, you'll want to at least deploy from stable, since you know all the tests pass there.19:17
lamontah, yeah. tests would be cool19:18
lamontwe've been doing the "develop and test on dogfood, smack it into devel" process.19:18
lamontsadly, sometimes devel moves during that process, and then I cry a little19:18
rockstarabentley, could you please review https://code.edge.launchpad.net/~rockstar/launchpad/fix-kill-test-services/+merge/3887019:19
lamontrockstar: and good to know, thanks.  I've mostly been flying blind wrt branches19:19
rockstarabentley, I can chat whenever you can.19:37
lifelessmorning19:37
LPCIBotProject db-devel build (84): STILL FAILING in 3 hr 57 min: https://hudson.wedontsleep.org/job/db-devel/84/19:45
lifelessderyck: ping19:51
deryckhi lifeless19:51
lifelesshenninge: hi19:55
lifelessderyck: will come back to you :)19:56
lifelesshenninge: I haven't checked all my mail yet, but as we have only a brief overlap19:56
lifelesshenninge: ah, echannel19:57
derycklifeless, ack :-)  I'll be here awhile longer.19:57
mwhudsonlifeless: re http://pypi.python.org/pypi/withrestart/0.2.7, yeah, i've done something like that too, but as it's not part of the normal protocol in python programs it's kinda useless19:58
lifelessmwhudson: yeah19:58
mwhudsoni gave a talk at .... accu? about this once19:59
* mwhudson hunts for slides19:59
mwhudsonhttp://www.nhplace.com/kent/Papers/Condition-Handling-2001.html <- the paper i was talking about19:59
lvhis there a reasonable way of uninstalling laucnhpad after having been installed with rocketfuel-setup20:11
mwhudsoni guess reading the script and undoing what it does20:20
mwhudsonit's not _that_ bad for system pollution is it?  some /etc/hosts changes, an apache site, a ppa + some packages installed20:20
abentleyrockstar: chat?20:23
rockstarabentley, yes please!20:23
lifelesslvh: rm -rf / ?20:24
jamabentley: would you be interested in a copy of the sqlite db? It is about 33MB after bzip220:24
lvhmwhudson: Yeah, no, it's not very terrible20:24
abentleyjam: sure.20:24
lvhmwhudson: I was just hoping there was a rocketfuel-unsetup20:24
mwhudsonlvh: nope20:24
abentleyjam: I don't actually understand what to do to make history-db work locally.20:25
rockstarlvh, launchpad is like the Hotel California. You can never leave.20:25
lvhYaay.20:25
lvhat least I'm glad I didn't do it on my development box then20:25
jamabentley: #1 install it as a bzr plugin ("bzr branch lp:bzr-history-db ~/.bazaar/plugins/history_db)20:27
=== al-maisan is now known as almaisan-away
lifelessderyck: ok, hey20:32
derycklifeless, hey hey20:32
lifelessI'm wondering if you'd be up for a voice chat20:33
lifelessderyck: ^20:34
derycklifeless, I don't mind a voice chat.  but having to work and watch my youngest while Wendy picks up my oldest.20:35
deryckso it's loud here. ;-)  Working with headphones and music while I eye the little on watching Sponge Bob :-)20:35
lifelessif that means some interrupts during a call, its fine by me20:35
derycklifeless, ok.  it's kind of loud, too, and I can't leave the room.20:35
deryckbut I'm game if you are.20:35
lifelesslets give it a shot20:36
lifelessyou have skype?20:36
rockstarlvh, for context, I run launchpad in a chroot.20:36
lifelessah yes, you do :)20:36
derycklifeless, yup.  firing it up now.20:36
lvhrockstar: I ran it in a VM but it was dead slow20:37
lvhrockstar: turns out the reason why wasn't really related to it being ran in a VM20:37
lvhso I ran it on a spare physical machine20:37
abentleyrockstar: https://dev.launchpad.net/Code/BranchRevisions20:38
mwhudsonwow, https://dev.launchpad.net/Code/BranchRevisions suggests that half of the rowns in the BranchRevision table are from Launchpad20:38
mbarnettwgrant: ping.20:44
gary_posterhey sinzui, is there a way to add members to teams if the member AJAX thing is timing out too much?20:53
sinzuigary_poster, yes, the underlying view20:53
jkakarHi. :)20:54
jkakarI continue to be basically unable to use any popup dialog in Launchpad.  They all timeout for me, almost all the time.20:54
jkakarI've tried edge and not-edge, same result.20:54
jkakarI've tried Firefox and Chrome, same result.20:54
jkakarHopefully all my attempts are creating timeout-juice that will bring these issues up on some report or another. :)20:55
sinzuigary_poster, append +addmember to the team url20:55
jkakarAs a workaround I've been using /+request-review on merge proposals and the bug task disclosure triangle thing on bug reports.20:55
jkakarsinzui: Ah, thanks!20:55
gary_posterwunderbar sinzui, thank you20:56
jkakarsinzui: I should have looked at the status bar, d'oh.  Anyway, it works, thanks a lot.20:56
sinzuijkakar, gary_poster. EdwinGrubbs is doing SQL analysis right now to fix the issue20:56
jkakarsinzui: Wicked, thanks!20:56
gary_posteryay sinzui, thank you :-)20:56
gary_posterand yay EdwinGrubbs, I should say20:56
sinzuijkakar, gary_poster, last week I used an API script to set a user.20:58
* jkakar hugs sinzui20:59
gary_poster:-)20:59
thumpermorning21:00
EdwinGrubbssinzui: on that topic, do you know why there is a Person.account and an EmailAddress.account foreign key?21:12
sinzuiEdwinGrubbs, : gary_poster:  historical baggage. I believe we intend to remove both21:13
gary_posterEdwinGrubbs: step 5 of https://dev.launchpad.net/LEP/OpenIdRoadmap21:14
EdwinGrubbssinzui: if those are both removed, how can I tell if a person is active? Do I just check that Person.merged is false?21:14
sinzuiEdwinGrubbs, that is one reason why person.account still exists21:15
gary_posterEdwinGrubbs: maybe I misunderstand the question, but part of # 5 is "Remove all Account and https://dev.launchpad.net/EmailAddress records not linked to a Person, reducing the number of Account records on the system by 90%."21:16
gary_posterSo I would think that the answer is that, when we drop the EmailAddress.account, it will no longer be an issue.21:16
sinzuiEdwinGrubbs, 18 months ago we wanted to separate account and person and host SSO. 6 months ago it was decided that we do not want SS0 and account separation cause too many bugs21:16
gary_posterIf I'm wrong, we should probably clarify that in that wiki page, and the associated bug21:17
EdwinGrubbssinzui, gary_poster: so for the time being can I assume that I want to check whether an person is active by looking at Person.account.status as opposed to Person.email.account.status, which the vocab is using now.21:18
sinzuiEdwinGrubbs, excellent question!21:18
EdwinGrubbsI'm waiting for an excellent answer.21:18
sinzuiEdwin. before Account email address status=4 was the way we knew a user was active. SSO wrongly lets users with any email status to login21:19
gary_posterum21:20
sinzuiEdwinGrubbs, ^ So account is the only way to check, but the who authentication system is untrust worthy see the daily oopses and weep21:20
gary_postersinzui, is this one of the balls I have dropped?  If so, please take this opportunity to kick me in an appropriate direction21:21
gary_posterappropriately helpful to getting something fixed, is what I had in mind :-)21:21
sinzuiEdwinGrubbs, It is *still* our policy that all users must have a preferred email address and we want that check to suffice. We have dozens of checks in the code that require the email address.21:22
sinzuigary_poster, yes, the ball dropped21:22
sinzuiEdwinGrubbs, Most cases where we pick out a person is to send notification...email. We know the user must have a preferred email. The mailing code does not check account. it knows not to send email to any user without a preferred email address21:24
rockstarwallyworld__, thumper, stand up?21:24
thumperrockstar: wallyworld__ won't be up yet21:26
thumperrockstar: did you want to talk to me?21:26
gary_postersinzui, not clear yet, but I have call.  will ping you later to make sure I understand21:28
sinzuigary_poster, I said this in the user question I answered two weeks ago for you. No user should be permitted to authenticate if there is no email address21:29
sinzuiThe None error in +editemails and openid url errors that we see every day in oopses are when authentication falls over21:31
EdwinGrubbssinzui: when a person is deactivated, is the preferred email removed as well as the account being deactivated?21:31
sinzuiEdwinGrubbs, yes21:31
sinzuiEdwin ResetPassword used to fix the address. That does not happen any more.21:31
EdwinGrubbssinzui: ok, so it should be safe for me to check if a person has a preferred email to determine whether it is a valid person in the vocabulary. It would only cause problems for users that have active accounts but no preferred email address.21:33
sinzuiEdwinGrubbs, I think another way of saying that is that the other users are broken and there is not point in pretending that they belong in ValidPersonVocabulary21:33
EdwinGrubbsok21:34
sinzuiEdwinGrubbs, I assume teams are handled differently21:34
sinzuiEdwinGrubbs, is this issue about ValidPersonVocabulary?21:35
* sinzui wonders if that object really exists21:35
lifelessgary_poster: hi21:37
gary_posterlifeless on call, ping21:37
gary_posterI mean will ping you21:37
lifelessgary_poster: wondering if you wanted a catchup21:37
lifelessyeah sure21:37
lifelessI'll be here ;)21:37
sinzuiEdwinGrubbs, ValidPersonVocabulary must only contain users with preferred email addresses. Deactivated and Suspended users have NEW addresses. Unactivated users have NEW addresses too.21:38
wgrantmbarnett: Hi.21:39
mbarnettwgrant: heya.  i have a question for you, but probably better in pm.21:40
rockstarthumper, I was talking with abentley, but my mental clock was an hour ahead.21:44
thumperok21:45
deryckOk, I'm out now.  Later on, everyone.21:45
abentleyjam, yes, I had already done step 1.21:45
lifelessStevenK: it would be awesome to gather diskio and cpu use21:46
lifelessI wonder if there is a plugin21:46
jamabentley: after that you can do something like "bzr history-db-create --db foo.db -d branch"21:47
poolielifeless: hi there21:47
pooliehi thumper, abentley, deryck21:47
poolieand jam21:47
abentleypoolie: hi.21:47
thumperhi poolie21:48
jamhi poolie21:48
poolielifeless: it occurred to me this morning that filing RTs for things we don't intend to do soon is a kind of lean waste...21:48
StevenKlifeless: Over the life of the test run? ENOIDEA21:50
abentleyjam, ISTM that we would get the best performance from mainline_parent_range if we added to existing ranges where possible.  Do you agree?21:51
jamabentley: if you add to an existing one, what about the old tip?21:51
jamthe code as written, does try to always fill out full groups21:51
jamso if it would chain a 3 + 70 it creates a new 73 length group21:51
* StevenK goes back for a lie down, his headache creeping back21:52
abentleyjam, the old tip is still part of the range, but no longer the tip.21:52
lifelesspoolie: well, we want to do it now21:52
lifelesspoolie: we're resource constrained21:52
lifelesspoolie: so I agree, and disagree.21:52
jamabentley: right, but you can't find the range if it is in the middle (well, not easily, or without indexing all of them)21:53
pooliei think keeping track of things you want but don't have time to start is good21:53
abentleyjam, you convert the revision-id to a revision primary key, you look up the primary key in the mainline_parent table.21:53
poolieon the whole i think starting them just a little bit is normally bad, unless it's going to facilitate back-burner percolation21:54
EdwinGrubbssinzui: yes, this is about the ValidPersonOrTeamVocabulary and the email address is ignored for teams.21:54
sinzuiEdwinGrubbs, I assume is uses merged is not null21:55
abentleyjam, you could even use the revision primary key as the mainline_parent primary key.21:56
abentleyjam, because in this scenario each revision appears in only one revision range.21:56
abentleyjam, and THAT implies that we could combine the revision table with the mainline_parent table.21:57
thumpermwhudson: know what's happening with https://code.edge.launchpad.net/~jameinel/launchpad/lp-service/+merge/37531 ?21:57
EdwinGrubbssinzui: it checks that merged is null. Not null would mean it is merged.21:57
jamabentley: the mainline parent table intentionally de-normalizes groups into 100-ranges. I don't really see how you can put that in the revision table21:58
mwhudsonthumper: it's bouncing off ec221:58
thumperah21:58
sinzuiEdwinGrubbs, I guess I know enough to write such a vocab :)21:58
abentleyjam, this would mean that recent groups would have 1-100 revisions, but they would expand until full.22:00
EdwinGrubbssinzui: can you run these queries. Hopefully, this will be the last set. http://pastebin.ubuntu.com/516472/22:00
jamabentley: I had originally designed it so that any branch tip would find itself in the mainline_parent_range table. you're probably right that it could be done differently22:01
jamI think the index would be much bigger22:01
abentleyjam, you're probably right about the index being bigger, but I don't usually worry about that.22:02
sinzuiEdwinGrubbs, https://pastebin.canonical.com/38825/22:02
abentleyjam: btw, I successfully ran bzr history-db-create22:03
wallyworld__morning22:04
abentleyjam, at least I now understand your objection to the "relevant branch" algorithm better.22:04
abentleywallyworld__: morning22:07
=== matsubara is now known as matsubara-afk
wallyworld__abentley: ready for standup whenever you guys are22:08
abentleythumper: ready for standup?22:08
thumperabentley: aye22:08
sinzui\o/ I traced an oops to a spam attack.22:11
lifeless:)22:12
LPCIBotProject devel build (133): STILL FAILING in 3 hr 31 min: https://hudson.wedontsleep.org/job/devel/133/22:21
LPCIBot* Launchpad Patch Queue Manager: [r=allenap][ui=none][bug=653122] BugSubscriptionSubscribeSelfView is22:21
LPCIBotnow a LaunchpadFormView.22:21
LPCIBot* Launchpad Patch Queue Manager: [r=bac][ui=none][no-qa] Only set LPCONFIG if it wasn't set in the22:21
LPCIBotenvironment.22:21
LPCIBot* Launchpad Patch Queue Manager: [r=lifeless][ui=none][no-qa] Codebrowse host and port are now22:21
LPCIBotconfigured with codebrowse.listen_host and codebrowse.port.22:21
gary_posterthumper: about to get on phone again, but would love your thoughts on https://bugs.edge.launchpad.net/launchpad-foundations/+bug/662912 .  Is this a known issue--am I flailing uselessly? :-)22:24
gary_posterrockstar: any chance to get a reply to mars' mail before EoD?22:24
gary_posterlifeless: off phone, ready when you are22:24
_mup_Bug #662912: staging librarian is broken for merge proposals <Launchpad Bazaar Integration:New> <Launchpad Foundations:Triaged by gary> <https://launchpad.net/bugs/662912>22:24
rockstargary_poster, uh, I sent it this morning.  Did you not get it?22:24
gary_posterrockstar, no22:24
thumpergary_poster: I'll take a look22:24
gary_posterthanks thumper22:24
rockstarthumper, okay, I'll send again.22:25
rockstarwallyworld__, so, I didn't want to ask on the standup for fear of getting off on a tangent, but did you say your Y.io call worked in windmill when you used a post instead of get?22:33
flacostethumper: call?22:34
thumperflacoste: yep22:34
wallyworld__rockstar: i'm still gathering evidence22:34
wallyworld__rockstar: it *appears* at this point that it *may* make a difference22:34
rockstarwallyworld__, I frakkin' hate windmill.22:35
wallyworld__rockstar:  i put it aside to work on the windmill issue - i'll let you know as soon as i make some more progress on it22:35
wallyworld__i should say - the *other* windmill issue ;-(22:35
rockstarwallyworld__, what's the other windmill issue?  I heard you talking about something with setUp.22:36
wallyworld__rockstar: yes - some seemingly innocuous refactoring has broken one and only one windmill test22:36
rockstarwallyworld__, wanna skype about it?  I'm curious.22:36
wallyworld__rockstar: ok22:37
=== henninge_ is now known as henninge
* mwhudson finds another way one of the tests that broke lifeless' testtools branch is broken23:01
mwhudson        future_time = datetime.now(pytz.UTC) - timedelta(days=1)23:01
lifelessrockstar: what do you hate ?23:01
mwhudsonspot the mistake!23:01
lifelessmwhudson: -23:01
beunoor rather, the delta needs an actual delta?23:02
lifelessno23:02
lifelessthats one day in the past23:02
mwhudsonyeah, such an innocent little character23:02
* beuno sits back down23:03
jcsackettmwhudson: was that passing for some cases? i would think a day in the past when you expect a day in the future would screw everything up.23:04
lifelessjcsackett: storm :)23:04
mwhudsonjcsackett: yes, but then the test was written in a way that couldn't fail23:05
mwhudsonwhich was the first thing i fixed :)23:05
jcsackettmwhudson: ah, fun times. :-)23:05
jcsackettlifeless: sadly, i haven't had enough experience with storm where just referencing it explains away things. :-)23:05
jcsackettthough i23:06
mwhudsonjcsackett: if X is a storm SQL expression, X == anything is another storm SQL expression23:06
jcsacketti've had this exchange often enough to accept it as gospel. :-P23:06
jcsackettaaah.23:06
jcsackettdig.23:06
mwhudsonwhich is true when evaluated in a boolean context23:06
mwhudsonaka "operator overloading is bad"23:06
wgrantaka wgrant broke Soyuz :/23:07
jcsackettmwhudson: okay, and thus everything was passing.23:07
mwhudsonyeah23:07
mwhudsonjcsackett: lifeless has a branch which has the sideffect of swapping the order the comparison is done in in assertEquals23:07
mwhudsonthis found a few cases where == was not symmetric...23:08
lifelessmaybe we should check both directions for Equals23:08
lifelesswhat do you think23:08
lifelessa == b and b ==a23:08
lifelessa <b and b>=a23:08
lifelessetc23:08
lifelessmight be a little surprising23:09
lifelesswell, with the boolean logic done right23:09
mwhudsoni'd be careful of mixing ordering in23:10
jcsackettlifeless: at least one fork of rspec (the ruby testing system) does just that. catches some surprising things when people start monkeypatching.23:10
mwhudsonbut checking a == b and b == a and a != b and b != a are all consistent might be good23:10
mwhudsonah hah, zope proxies23:15
lifelesssay its not so23:17
mwhudsonbug 33191923:19
_mup_Bug #331919: delegates() should provide __eq__  and __ne__ operators. <tech-debt> <lazr.delegates:Triaged> <https://launchpad.net/bugs/331919>23:19
mwhudsonlifeless: https://code.edge.launchpad.net/~mwhudson/launchpad/testtools/+merge/3889623:22
lifelesswow, fixtures is getting 30-40 downloads over the course of a few adys23:24
lifelesshttp://pypi.python.org/pypi/fixtures/0.3.123:24
lifelessmwhudson: lp reckons there are conflicts23:24
mwhudsonlifeless: odd, i guess i'll merge trunk23:25
wallyworld__rockstar: for when you get back from class - got the windmill test working, had to move login from test method to setup phase23:25
LPCIBotProject db-devel build (85): STILL FAILING in 3 hr 39 min: https://hudson.wedontsleep.org/job/db-devel/85/23:25
LPCIBotLaunchpad Patch Queue Manager: [r=allenap][ui=none][bug=617699] Add getter/setter property for23:25
LPCIBotlinking distribution/source_package to BugTrackerComponents23:25
mwhudsonlifeless: the conflicts must be in your branch though :p23:25
lifelessprobably ;)23:26
mwhudsonyeah, a Contains matcher was added23:30
mwhudsonwhich should be swiftly shuffled off to testtools too i guess23:30
lifelesshah23:30
lifelessyes23:30
mwhudsonanyways, pushing the merged branch now23:30
lifelesssweet. bombs away23:30
lifelessI think this is starting to look pretty nice as a test:23:34
lifelesshttp://pastebin.com/tq43kxhW23:34
wgrantI think you could use some more context managers.23:35
lifelesswgrant: don't be a hater ;)23:35
lifelessmars: BaseWindmillLayer looks like it tries to disable the new thread check anyhow23:36
marslifeless, ? looking23:36
lifelesslook for disable_thread_check23:36
lifelessin layers.py23:37
marsyep23:38
marsalready had it open23:38
marsreading23:38
marshmm23:38
marslifeless, could it be it is working, but subunit is eating the "ERROR DISABLED" message?23:38
marslifeless, or it could be that the disabling is not working any more23:38
lifelessyes23:39
marslifeless, is this functionality tested?23:39
lifelessif error disabled is being 'print' output, subunit will a) munch it and b) get corrupted23:39
lifelessmars: I think it has some tests, yes. Dunno how many23:39
=== Ursinha is now known as Ursinha-afk
marslifeless, ./testing/tests/test_layers.py has a 'test_slow_thread' test23:41
marsno test verification though - I guess it relies on the testrunner running the test and blowing up if it doesn't work23:42
wgranttest_slow_thread is one that often has a LayerIsolationError.23:44
lifelessmmm, I suspect all these parallel test branches of mine will land as a clump :(23:45
marsok, frustrating - if the 'wait for live threads to exit' should be working.  It gives /lots/ of time for them to shut down23:46
lifelessmars: how long23:46
mars10 seconds23:46
mars100 * 0.1 seconds23:46
lifelessmars: stuff dealing with tcp can timeout after 5 minutes23:46
marsso_linger - yeah :(23:46
lifeless(or more, but 300 seconds is the common one)23:46
marsthought of that23:46
marsthat would make sense with StevenK's stale request hypothesis23:47
marsyou know, if it is always roughly the same windmill test that has issues23:49
marsthen we should be able to pick apart the test and see what is generating the request23:49
marsit would not be the first time an stale thread issue was solved this way23:49
marsbugs had the same problem23:50
lifelessmars: fwiw gary has agreed to have the check disabled entirely until the windmill issue is addressed23:51
lifelessI need to file a bug and make the change.23:51
marsbug 38361523:51
_mup_Bug #383615: Spurious test failure in emailaddress.txt. <spurious-test-failure> <Launchpad Foundations:Triaged> <https://launchpad.net/bugs/383615>23:51
marsack, no23:51
marswrong bug23:51
marsbug 51678123:52
_mup_Bug #516781: Intermittant failure of test_inline_subscriber <qa-ok> <Launchpad Bugs:Fix Released by deryck> <https://launchpad.net/bugs/516781>23:52
jammwhudson: Pushed up a new revision which should fix those things, I still get an atexit warning, but I think that is the existing code.23:53
mwhudsonjam: cool, i'll throw it at ec2 again23:53
lifelessthe atexit is transitional23:54
lifelesswhile we fix layers23:54

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