/srv/irclogs.ubuntu.com/2010/11/28/#launchpad-dev.txt

wgrantHmm, how many tests do we have?00:00
lifelesshow many would you like?00:00
wgrantSince this run just finished in less than three hours.00:00
wgrant11369 tests.00:01
lifelessnice00:01
wgrantNot sure how long it should take on this machine, so I guess it could be right.00:01
lifelesscleaner layering ?00:01
wgrantThree errors left to fix, then could you throw it at EC2?00:02
lifelessdelighted to00:02
wgrantlifeless: PgTestSetup only respects LP_TEST_INSTANCE if it matches the value in BaseLayer. But TestPgTestSetup is layerless, so BaseLayer is unconfigured.00:07
wgrantI suppose I could just call BaseLayer.setUp.00:07
wgrantOr mvoe TestPgTestSetup into BaseLayer...00:07
wgrantAh, it already calls BaseLayer.setUp in other places. I guess I'll do that.00:08
lifelessahm00:08
lifelessI see00:08
lifelessI the dynamic stuff is only part polished - that is, it works.00:09
wgrantYep.00:09
lifelessbut we should get rid of the support for static instances altogether (again, have to remove the persistent helper support)00:09
wgrantMaybe once the librarian doesn't take 8 seconds to start.00:09
lifelesszcml.00:10
lifelessI keep saying I want to nuke it; I really am serious :)00:10
lifelesswell00:10
lifelessI want to remove the global nature of it00:10
lifelesswe shouldn't pay to import all of lp to run 300 lines of code00:10
wgrantSure.00:12
wgrantlifeless: Why is LP_TEST_INSTANCE an envvar?00:18
wgrantIt presumably won't be crossing process boundaries...00:19
lifelesshelpers00:19
wgrantHm?00:19
lifelesslibrarian etc00:19
lifelessgnerally we'll want to set a config section up00:19
wgrantDon't they use LPCONFIG?00:19
lifelessbut it can be useful to introspect00:20
lifelessalso00:20
lifelessthe reinvoke logic00:20
lifelesswhich reinvokes the runner00:20
wgrantSo, at the moment PgTestSetup respects LP_TEST_INSTANCE. But it only does that when BaseLayer is set up, and BaseLayer sets LP_TEST_INSTANCE to the PID.00:21
wgrantSo the two tests that PgTestSetup respects the var are a little wrong.00:21
lifelesshang on00:21
lifelesswhy do you say 'But it only does that when BaseLayer is set up,'00:21
lifelessthats now how I read the code in lib/canonical/ftests/pgsql.py00:22
lifelesss/now/not/00:22
wgrantIn PgTestSetup.__init__, the end of the PgTestSetup.dynamic branch checks that the instance name matches BaseLayer.00:22
lifelessto call config.reloadConfig()00:23
wgrantIf it matches, it uses the calculated name. If not, it reverts to the old one.00:23
jmllifeless: I have some more pictures00:23
lifelessjml: cool00:23
jmllifeless: http://people.canonical.com/~jml/lpstats/good-and-bad.png00:23
jmllifeless: http://people.canonical.com/~jml/lpstats/good-and-bad-by-time.png00:23
jmland then different versions of the same data...00:23
wgrantAh, nice.00:23
jmlhttp://people.canonical.com/~jml/lpstats/how-many-tests-are-slow.png00:24
jmlhttp://people.canonical.com/~jml/lpstats/good-and-bad-by-time-bar.png00:24
jmlsubunit-ls + openoffice00:24
lifelessjml: do you have one with the area00:24
lifelesstest time per test * tests in that bucket00:25
jmllifeless: yes, that's what good-and-bad-by-time is00:25
jmllifeless: it's the sum of the times of tests in that bracket00:25
lifelesscool00:25
lifelessso, start on the 100s tests?!00:25
jmllifeless: yeah, exactly00:26
jmlI also like that we actually have six orders of magnitude of test run times00:26
jmlthe sole 1000s test is actually ~200s00:27
lifelessyou could drop the first 3 off without loss of usefulness00:27
jmlI guess I could have been more strictly logarithmic00:27
wgrantjml: Not the 120s Windmill test that I just found?00:27
wgrantOr does that count as 100s?00:27
jmlwgrant: subunit-ls00:27
jmlsorry...00:27
lifelesswgrant: that may be the same one, machine variation.00:28
wgrantlifeless: Indeed.00:28
wgrantBut most of it is sleeping.00:28
wgrantSo...00:28
jmlgzip -dc some-run.subunit.gz | subunit-ls --times | awk '{ print $2 " " $1 }' | sort -n | tail00:28
lifelessjml: I'd like a leverage graph00:28
jmlwgrant: not-found-traversal.txt used to be mostly sleeping00:28
lifelessjml: http://people.canonical.com/~jml/lpstats/good-and-bad-by-time.png scaled down by tests-per-bucket00:29
jmlas in, the more tests the wider the bar, say?00:29
lifelessjml: or less height00:30
wgrantjml: Yeah, test_inline_subscriber is indeed the longest test.00:30
lifelessjml: 'time spent running those tests / count(those tests)'00:30
jmlright00:30
wgrantFollowed by two Soyuz ones /o\00:30
jmlwas just typing that00:30
jmllifeless: easy enough to do00:30
lifelessI think that that would show the buckets with the most return - amount of time saved per test fixed in that bucket (on average)00:31
jmlI might also shift to be log(run_time) rather than n s.t. 10**(n-1) < run_time <= 10**n00:31
jmlint(log(run_time)), of course00:31
lifelesswgrant: so I'm confused00:32
lifelesswgrant: this branch was spread over 2?3?months00:32
jmllifeless: btw00:32
lifelessand more tz changes than is desirable.00:33
wgrantHeh.00:33
jmllifeless: my last two blog posts link to paste bins with subunit scripts00:33
lifelessjml: yes, I saw ;)00:33
jmllifeless: in my ideal world, someone would make them better and upstream them.00:33
wgrantlifeless: Do you see what I mean about the BaseLayer thing?00:34
wgrantAt the end of the PgTestSetup.dynamic branch.00:34
lifelesswgrant: I'm trying to remember *why*00:34
wgrantAhh.00:34
lifelesswgrant: do what makes sense to you00:35
wgrantApart from that one there are only three Twisted-ish tests failing, all of which have an 'error' but no error message.00:35
lifelessif all the tests pass, we can land this devilish branch00:35
wgrantWhich is a little disturbing.00:35
lifelessand iterate later00:35
lifelessits already had plenty of skew issues with trunk.00:35
wgrantYep.00:35
lifelessjml: I think that would be ideal too00:36
wgrantI'll just make it set up BaseLayer and use the PID instead of 'xx'.00:36
wgrantFor now;00:36
jmllifeless: it'll be a little while before I move on to subunit hacking though. still have a chunk of testtools stuff that I want to get done00:36
jmllifeless: I'm most of the way through a draft of testtools manual for test authors00:37
lifelesscool00:38
jmlit's making me realize there's stuff I want to be able to say but can't yet00:39
=== wgrant_ is now known as wgrnat
wgrnatAny ideas on how to debug http://paste.ubuntu.com/537289/? Three errors left in the branch, but no error message.00:42
wgrnatI've not seen this before...00:42
lifelessisn't that what henninge was seeing?00:43
lifelessperhaps merge devel00:43
wgrnatlifeless: Hah, true, it's on devel too.00:44
lifelessstill?00:45
wgrnatYeah.00:45
lifeless:<00:45
lifelessbuildbot is clean00:45
wgrnatAs is Hudson.00:45
lifeless><00:45
wgrnatBut it's reproducible on three machines here.00:45
wgrnatAll Maverick, though.00:45
lifeless>,00:46
lifelessok00:46
lifelesspush00:46
lifelessme pull00:46
lifelesswe ec200:46
=== wgrnat is now known as wgrant
wgrantPushing...00:46
wgrantDone.00:47
lifelessits with ec2 now00:49
wgrantThanks.00:50
lifelessthe lib/lp/registry/tests/test_mlists.py was fugly00:50
wgrantDid you change it?00:50
lifelesswe shouldn't need to use popen directly  - or at least have a helper for passing the right LPCONFIG around.00:50
wgrantThis one was sort of special, since it needs the appserver config.00:51
lifelessstill00:51
wgrantI removed the other LPCONFIG stuff.00:51
lifelessno i didn't00:51
lifelesslibrarian next?00:53
wgrantJust waiting for it to merge.00:53
wgrantCome on LP...00:53
lifelessI love the way the upstream/downstream linking is coming together01:02
wgrantlifeless: --parallel is rather silent.01:06
lifelesswgrant: feel free to slap any reporter you want on it01:07
wgrantlifeless: No idea whatsoever how to do that!01:07
lifelesswgrant: the easiest way is --subunit | subunit2pyunit01:07
wgrantIt seems to be working, as postgres is going crazy.01:07
wgrantAha.01:07
wgrantThanks.01:08
lifelessor --subunit | tribunal -01:08
jmllifeless: http://people.canonical.com/~jml/lpstats/duration-over-count.png01:09
lifelessjml: interesting01:09
lifelessthanks01:09
jmllifeless: np01:10
jmlbasically, there are "only" ~250 tests that are between 10s and 100s long01:10
jmlwhereas all the other categories are between ~800 and ~500001:11
jmlif I could do SQL on subunit streams, I could probably get a per-layer thing fairly easily01:12
lifelessthat would be nice01:14
lifelessthough time-in-layer isn't very intereseting to me01:14
jmlI guess not01:15
jmlI'd like to break things down by package a bit more too01:15
jmlbut that involves still more Python that I can't be bothered writing01:15
* jml off01:18
lifelessciao01:19
=== Guest81825 is now known as nigelb
lifeless=== Top 10 Time Out Counts by Page ID ===03:00
lifeless    Hard / Soft  Page ID03:00
lifeless     115 / 5419  Archive:+index03:00
lifeless      92 /  233  BugTask:+index03:00
lifeless      23 /  244  Distribution:+bugs03:00
lifeless      13 /  134  ProjectGroupSet:CollectionResource:#project_groups03:00
lifeless      11 /    4  Cve:+index03:00
lifeless       7 /   12  DistroSeriesLanguage:+index03:00
lifeless       6 /  282  Distribution:+bugtarget-portlet-bugfilters-stats03:00
lifeless       6 /  188  POFile:+translate03:00
lifeless       6 /    4  NullBugTask:+index03:00
lifeless       6 /    3  Person:+bugs03:00
lifelesswgrant: zomg04:49
lifelesswgrant: pqm bailed, dunno why06:14
lifelesshave forwarded you the mail06:14
lifelessoh, I do know why06:14
lifelessit thinks a schema patch is there, I think06:14
lifelesssent to db-devel instead06:25
=== almaisan` is now known as al-maisan
=== al-maisan is now known as almaisan-away
wgrantlifeless: Ah, of course, I had to change fti.py :/07:04
=== nigelbabu is now known as nigelb
lifelessand its landed08:23
wgrantSome time ago.08:24
wgrantAnd Hudson hasn't blown up yet.08:24
wgrantlifeless: librarian branch seems to be fairly happy. Just a few hardcoded URLs to sort out.08:28
wgrantAnd an odd localhost/launchpad.dev conflict in URL generation.08:28
lifelesswgrant: cool08:28
lifelesswgrant: jml cherrypicked an early subsection of my work to debug some issues with librarian tests08:29
jmllifeless: oh yeah, I forgot to tell you about that11:48
nigelbheh, only now I saw the lp repo, love the "<kiko> we are changing the world, one commit at a time"14:05
* maxb chuckles at discovering /srv/importd.launchpad.net/production/launchpad-rev-11887-sigh/ in logs :-)17:00
lifelessjml: :)17:24
jmllifeless: I've got to head out now, but I'd appreciate it if you could look at the new & updated testtools MPs17:25
lifelessshure17:26
lifelessjml: did you see17:26
lifelesshttps://code.launchpad.net/~lifeless/launchpad/subunit/+merge/4202317:26
jmllifeless: I did, but not the details.17:26
jmllifeless: it's good stuff :)17:26
lifelessjml: https://code.launchpad.net/~jml/testtools/unexpected-success-2/+merge/42050 looks wrong17:26
lifelessoh17:27
lifelessits an incremental diff17:27
lifelessI think that needs to be called out17:27
lifelessor something17:27
jmlit's still a beta feature. file bugs.17:27
* jml really does have to go17:27
jmllifeless: thanks for looking17:27
* thumper calmly walks away from the laptop to avoid putting his fist through the screen22:54
thumpermwhudson: do you have a minute to talk?22:54
* thumper lunchinates23:01
mwhudsonthumper: in general, yes23:12
StevenKwgrant: O hai23:24
wgrantStevenK: Hi.23:27
StevenKwgrant: What do you think of https://code.edge.launchpad.net/~stevenk/launchpad/db-spph-ancestry/+merge/41943 ?23:28
wgrantStevenK: 'The previous release of this source package.'23:29
wgrantIt's not always.23:29
wgrantIt could be a previous override.23:29
wgrantAlso, have you checked that we can sanely populate it, in all locations that create SPPHs?23:30
wgrantAlso, in the case of a copy, it will be in another archive.23:30
StevenKwgrant: I've been checking that we can actually populate it for existing data23:30
wgrantI'd quite like to add a creator field at the same time.23:38
wgrantIt would mean that we had actual proper copying histories.23:38
StevenKwgrant: This would work much better if I actually knew all the places SPPHs were created :-)23:55
wgrantStevenK: Search for all invocations of SourcePackagePublishingHistory and newSourcePackagePublishingHistory?23:56
lifelesswgrant: so, reckon on fixing Archive:+index today23:56
wgrantAh, yeah, got distracted by parallel testing.23:56
lifelessa good distraction to be sure23:57

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