wgrant | Hmm, how many tests do we have? | 00:00 |
---|---|---|
lifeless | how many would you like? | 00:00 |
wgrant | Since this run just finished in less than three hours. | 00:00 |
wgrant | 11369 tests. | 00:01 |
lifeless | nice | 00:01 |
wgrant | Not sure how long it should take on this machine, so I guess it could be right. | 00:01 |
lifeless | cleaner layering ? | 00:01 |
wgrant | Three errors left to fix, then could you throw it at EC2? | 00:02 |
lifeless | delighted to | 00:02 |
wgrant | lifeless: PgTestSetup only respects LP_TEST_INSTANCE if it matches the value in BaseLayer. But TestPgTestSetup is layerless, so BaseLayer is unconfigured. | 00:07 |
wgrant | I suppose I could just call BaseLayer.setUp. | 00:07 |
wgrant | Or mvoe TestPgTestSetup into BaseLayer... | 00:07 |
wgrant | Ah, it already calls BaseLayer.setUp in other places. I guess I'll do that. | 00:08 |
lifeless | ahm | 00:08 |
lifeless | I see | 00:08 |
lifeless | I the dynamic stuff is only part polished - that is, it works. | 00:09 |
wgrant | Yep. | 00:09 |
lifeless | but we should get rid of the support for static instances altogether (again, have to remove the persistent helper support) | 00:09 |
wgrant | Maybe once the librarian doesn't take 8 seconds to start. | 00:09 |
lifeless | zcml. | 00:10 |
lifeless | I keep saying I want to nuke it; I really am serious :) | 00:10 |
lifeless | well | 00:10 |
lifeless | I want to remove the global nature of it | 00:10 |
lifeless | we shouldn't pay to import all of lp to run 300 lines of code | 00:10 |
wgrant | Sure. | 00:12 |
wgrant | lifeless: Why is LP_TEST_INSTANCE an envvar? | 00:18 |
wgrant | It presumably won't be crossing process boundaries... | 00:19 |
lifeless | helpers | 00:19 |
wgrant | Hm? | 00:19 |
lifeless | librarian etc | 00:19 |
lifeless | gnerally we'll want to set a config section up | 00:19 |
wgrant | Don't they use LPCONFIG? | 00:19 |
lifeless | but it can be useful to introspect | 00:20 |
lifeless | also | 00:20 |
lifeless | the reinvoke logic | 00:20 |
lifeless | which reinvokes the runner | 00:20 |
wgrant | So, 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 |
wgrant | So the two tests that PgTestSetup respects the var are a little wrong. | 00:21 |
lifeless | hang on | 00:21 |
lifeless | why do you say 'But it only does that when BaseLayer is set up,' | 00:21 |
lifeless | thats now how I read the code in lib/canonical/ftests/pgsql.py | 00:22 |
lifeless | s/now/not/ | 00:22 |
wgrant | In PgTestSetup.__init__, the end of the PgTestSetup.dynamic branch checks that the instance name matches BaseLayer. | 00:22 |
lifeless | to call config.reloadConfig() | 00:23 |
wgrant | If it matches, it uses the calculated name. If not, it reverts to the old one. | 00:23 |
jml | lifeless: I have some more pictures | 00:23 |
lifeless | jml: cool | 00:23 |
jml | lifeless: http://people.canonical.com/~jml/lpstats/good-and-bad.png | 00:23 |
jml | lifeless: http://people.canonical.com/~jml/lpstats/good-and-bad-by-time.png | 00:23 |
jml | and then different versions of the same data... | 00:23 |
wgrant | Ah, nice. | 00:23 |
jml | http://people.canonical.com/~jml/lpstats/how-many-tests-are-slow.png | 00:24 |
jml | http://people.canonical.com/~jml/lpstats/good-and-bad-by-time-bar.png | 00:24 |
jml | subunit-ls + openoffice | 00:24 |
lifeless | jml: do you have one with the area | 00:24 |
lifeless | test time per test * tests in that bucket | 00:25 |
jml | lifeless: yes, that's what good-and-bad-by-time is | 00:25 |
jml | lifeless: it's the sum of the times of tests in that bracket | 00:25 |
lifeless | cool | 00:25 |
lifeless | so, start on the 100s tests?! | 00:25 |
jml | lifeless: yeah, exactly | 00:26 |
jml | I also like that we actually have six orders of magnitude of test run times | 00:26 |
jml | the sole 1000s test is actually ~200s | 00:27 |
lifeless | you could drop the first 3 off without loss of usefulness | 00:27 |
jml | I guess I could have been more strictly logarithmic | 00:27 |
wgrant | jml: Not the 120s Windmill test that I just found? | 00:27 |
wgrant | Or does that count as 100s? | 00:27 |
jml | wgrant: subunit-ls | 00:27 |
jml | sorry... | 00:27 |
lifeless | wgrant: that may be the same one, machine variation. | 00:28 |
wgrant | lifeless: Indeed. | 00:28 |
wgrant | But most of it is sleeping. | 00:28 |
wgrant | So... | 00:28 |
jml | gzip -dc some-run.subunit.gz | subunit-ls --times | awk '{ print $2 " " $1 }' | sort -n | tail | 00:28 |
lifeless | jml: I'd like a leverage graph | 00:28 |
jml | wgrant: not-found-traversal.txt used to be mostly sleeping | 00:28 |
lifeless | jml: http://people.canonical.com/~jml/lpstats/good-and-bad-by-time.png scaled down by tests-per-bucket | 00:29 |
jml | as in, the more tests the wider the bar, say? | 00:29 |
lifeless | jml: or less height | 00:30 |
wgrant | jml: Yeah, test_inline_subscriber is indeed the longest test. | 00:30 |
lifeless | jml: 'time spent running those tests / count(those tests)' | 00:30 |
jml | right | 00:30 |
wgrant | Followed by two Soyuz ones /o\ | 00:30 |
jml | was just typing that | 00:30 |
jml | lifeless: easy enough to do | 00:30 |
lifeless | I 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 |
jml | I might also shift to be log(run_time) rather than n s.t. 10**(n-1) < run_time <= 10**n | 00:31 |
jml | int(log(run_time)), of course | 00:31 |
lifeless | wgrant: so I'm confused | 00:32 |
lifeless | wgrant: this branch was spread over 2?3?months | 00:32 |
jml | lifeless: btw | 00:32 |
lifeless | and more tz changes than is desirable. | 00:33 |
wgrant | Heh. | 00:33 |
jml | lifeless: my last two blog posts link to paste bins with subunit scripts | 00:33 |
lifeless | jml: yes, I saw ;) | 00:33 |
jml | lifeless: in my ideal world, someone would make them better and upstream them. | 00:33 |
wgrant | lifeless: Do you see what I mean about the BaseLayer thing? | 00:34 |
wgrant | At the end of the PgTestSetup.dynamic branch. | 00:34 |
lifeless | wgrant: I'm trying to remember *why* | 00:34 |
wgrant | Ahh. | 00:34 |
lifeless | wgrant: do what makes sense to you | 00:35 |
wgrant | Apart from that one there are only three Twisted-ish tests failing, all of which have an 'error' but no error message. | 00:35 |
lifeless | if all the tests pass, we can land this devilish branch | 00:35 |
wgrant | Which is a little disturbing. | 00:35 |
lifeless | and iterate later | 00:35 |
lifeless | its already had plenty of skew issues with trunk. | 00:35 |
wgrant | Yep. | 00:35 |
lifeless | jml: I think that would be ideal too | 00:36 |
wgrant | I'll just make it set up BaseLayer and use the PID instead of 'xx'. | 00:36 |
wgrant | For now; | 00:36 |
jml | lifeless: 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 done | 00:36 |
jml | lifeless: I'm most of the way through a draft of testtools manual for test authors | 00:37 |
lifeless | cool | 00:38 |
jml | it's making me realize there's stuff I want to be able to say but can't yet | 00:39 |
=== wgrant_ is now known as wgrnat | ||
wgrnat | Any ideas on how to debug http://paste.ubuntu.com/537289/? Three errors left in the branch, but no error message. | 00:42 |
wgrnat | I've not seen this before... | 00:42 |
lifeless | isn't that what henninge was seeing? | 00:43 |
lifeless | perhaps merge devel | 00:43 |
wgrnat | lifeless: Hah, true, it's on devel too. | 00:44 |
lifeless | still? | 00:45 |
wgrnat | Yeah. | 00:45 |
lifeless | :< | 00:45 |
lifeless | buildbot is clean | 00:45 |
wgrnat | As is Hudson. | 00:45 |
lifeless | >< | 00:45 |
wgrnat | But it's reproducible on three machines here. | 00:45 |
wgrnat | All Maverick, though. | 00:45 |
lifeless | >, | 00:46 |
lifeless | ok | 00:46 |
lifeless | push | 00:46 |
lifeless | me pull | 00:46 |
lifeless | we ec2 | 00:46 |
=== wgrnat is now known as wgrant | ||
wgrant | Pushing... | 00:46 |
wgrant | Done. | 00:47 |
lifeless | its with ec2 now | 00:49 |
wgrant | Thanks. | 00:50 |
lifeless | the lib/lp/registry/tests/test_mlists.py was fugly | 00:50 |
wgrant | Did you change it? | 00:50 |
lifeless | we shouldn't need to use popen directly - or at least have a helper for passing the right LPCONFIG around. | 00:50 |
wgrant | This one was sort of special, since it needs the appserver config. | 00:51 |
lifeless | still | 00:51 |
wgrant | I removed the other LPCONFIG stuff. | 00:51 |
lifeless | no i didn't | 00:51 |
lifeless | librarian next? | 00:53 |
wgrant | Just waiting for it to merge. | 00:53 |
wgrant | Come on LP... | 00:53 |
lifeless | I love the way the upstream/downstream linking is coming together | 01:02 |
wgrant | lifeless: --parallel is rather silent. | 01:06 |
lifeless | wgrant: feel free to slap any reporter you want on it | 01:07 |
wgrant | lifeless: No idea whatsoever how to do that! | 01:07 |
lifeless | wgrant: the easiest way is --subunit | subunit2pyunit | 01:07 |
wgrant | It seems to be working, as postgres is going crazy. | 01:07 |
wgrant | Aha. | 01:07 |
wgrant | Thanks. | 01:08 |
lifeless | or --subunit | tribunal - | 01:08 |
jml | lifeless: http://people.canonical.com/~jml/lpstats/duration-over-count.png | 01:09 |
lifeless | jml: interesting | 01:09 |
lifeless | thanks | 01:09 |
jml | lifeless: np | 01:10 |
jml | basically, there are "only" ~250 tests that are between 10s and 100s long | 01:10 |
jml | whereas all the other categories are between ~800 and ~5000 | 01:11 |
jml | if I could do SQL on subunit streams, I could probably get a per-layer thing fairly easily | 01:12 |
lifeless | that would be nice | 01:14 |
lifeless | though time-in-layer isn't very intereseting to me | 01:14 |
jml | I guess not | 01:15 |
jml | I'd like to break things down by package a bit more too | 01:15 |
jml | but that involves still more Python that I can't be bothered writing | 01:15 |
* jml off | 01:18 | |
lifeless | ciao | 01:19 |
=== Guest81825 is now known as nigelb | ||
lifeless | === Top 10 Time Out Counts by Page ID === | 03:00 |
lifeless | Hard / Soft Page ID | 03:00 |
lifeless | 115 / 5419 Archive:+index | 03:00 |
lifeless | 92 / 233 BugTask:+index | 03:00 |
lifeless | 23 / 244 Distribution:+bugs | 03:00 |
lifeless | 13 / 134 ProjectGroupSet:CollectionResource:#project_groups | 03:00 |
lifeless | 11 / 4 Cve:+index | 03:00 |
lifeless | 7 / 12 DistroSeriesLanguage:+index | 03:00 |
lifeless | 6 / 282 Distribution:+bugtarget-portlet-bugfilters-stats | 03:00 |
lifeless | 6 / 188 POFile:+translate | 03:00 |
lifeless | 6 / 4 NullBugTask:+index | 03:00 |
lifeless | 6 / 3 Person:+bugs | 03:00 |
lifeless | wgrant: zomg | 04:49 |
lifeless | wgrant: pqm bailed, dunno why | 06:14 |
lifeless | have forwarded you the mail | 06:14 |
lifeless | oh, I do know why | 06:14 |
lifeless | it thinks a schema patch is there, I think | 06:14 |
lifeless | sent to db-devel instead | 06:25 |
=== almaisan` is now known as al-maisan | ||
=== al-maisan is now known as almaisan-away | ||
wgrant | lifeless: Ah, of course, I had to change fti.py :/ | 07:04 |
=== nigelbabu is now known as nigelb | ||
lifeless | and its landed | 08:23 |
wgrant | Some time ago. | 08:24 |
wgrant | And Hudson hasn't blown up yet. | 08:24 |
wgrant | lifeless: librarian branch seems to be fairly happy. Just a few hardcoded URLs to sort out. | 08:28 |
wgrant | And an odd localhost/launchpad.dev conflict in URL generation. | 08:28 |
lifeless | wgrant: cool | 08:28 |
lifeless | wgrant: jml cherrypicked an early subsection of my work to debug some issues with librarian tests | 08:29 |
jml | lifeless: oh yeah, I forgot to tell you about that | 11:48 |
nigelb | heh, 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 | |
lifeless | jml: :) | 17:24 |
jml | lifeless: I've got to head out now, but I'd appreciate it if you could look at the new & updated testtools MPs | 17:25 |
lifeless | shure | 17:26 |
lifeless | jml: did you see | 17:26 |
lifeless | https://code.launchpad.net/~lifeless/launchpad/subunit/+merge/42023 | 17:26 |
jml | lifeless: I did, but not the details. | 17:26 |
jml | lifeless: it's good stuff :) | 17:26 |
lifeless | jml: https://code.launchpad.net/~jml/testtools/unexpected-success-2/+merge/42050 looks wrong | 17:26 |
lifeless | oh | 17:27 |
lifeless | its an incremental diff | 17:27 |
lifeless | I think that needs to be called out | 17:27 |
lifeless | or something | 17:27 |
jml | it's still a beta feature. file bugs. | 17:27 |
* jml really does have to go | 17:27 | |
jml | lifeless: thanks for looking | 17:27 |
* thumper calmly walks away from the laptop to avoid putting his fist through the screen | 22:54 | |
thumper | mwhudson: do you have a minute to talk? | 22:54 |
* thumper lunchinates | 23:01 | |
mwhudson | thumper: in general, yes | 23:12 |
StevenK | wgrant: O hai | 23:24 |
wgrant | StevenK: Hi. | 23:27 |
StevenK | wgrant: What do you think of https://code.edge.launchpad.net/~stevenk/launchpad/db-spph-ancestry/+merge/41943 ? | 23:28 |
wgrant | StevenK: 'The previous release of this source package.' | 23:29 |
wgrant | It's not always. | 23:29 |
wgrant | It could be a previous override. | 23:29 |
wgrant | Also, have you checked that we can sanely populate it, in all locations that create SPPHs? | 23:30 |
wgrant | Also, in the case of a copy, it will be in another archive. | 23:30 |
StevenK | wgrant: I've been checking that we can actually populate it for existing data | 23:30 |
wgrant | I'd quite like to add a creator field at the same time. | 23:38 |
wgrant | It would mean that we had actual proper copying histories. | 23:38 |
StevenK | wgrant: This would work much better if I actually knew all the places SPPHs were created :-) | 23:55 |
wgrant | StevenK: Search for all invocations of SourcePackagePublishingHistory and newSourcePackagePublishingHistory? | 23:56 |
lifeless | wgrant: so, reckon on fixing Archive:+index today | 23:56 |
wgrant | Ah, yeah, got distracted by parallel testing. | 23:56 |
lifeless | a good distraction to be sure | 23:57 |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!