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

marslifeless, I'm signing off for now, will push the branch once the upgrade finishes00:01
mars(which would be now)00:02
lifelessmars: cool00:09
wgrantlifeless: I think basic auth is still enabled, just using the old passwords.00:23
wgrantWhich is probably useless and a security risk.00:23
lifelessoh, hahaha.00:27
lifelessI just realised another interaction/issue with lowering hard timeouts00:27
* lifeless sighs00:27
wgrantOh?00:27
thumperlifeless: ?00:27
lifelessa single rogue page that renders slowly can cause 3 other requests to timeout00:27
lifelessbecause python + threads is epic fail.00:28
lifelessso the lower the hard timeout, the more boundary-case slow pages will cause *other* pages to have inexplicable timeouts like - https://lp-oops.canonical.com/oops.py/?oopsid=1681EB387100:29
lifelessOTOH this may just be a genuinely slow template00:30
wgrantlifeless: Maybe you should use that as an excuse to spawn a push to minimise Python time throughout the application.00:33
lifelesswgrant: we're doing that by lowering the timeout :P00:33
wgrantIs the performance report public again yet?00:33
lifelessany losa around that can't sleep? I need a kcachegrind profile from staging please.00:34
lifelesswgrant: no, it needs log filtering applied to strip private urls.00:34
lifelesswgrant: technically even staff can't look at it atm.00:34
wgrantAhh.00:34
lifelesswell, thats a slight exaggeration, but you know what I mean: there *can* be stuff turn up that normally you'd need DB access to see00:35
lifelesswhich is undesirable at best00:36
ajmitchOOPS reports don't expose quite as much?00:38
lifelessthey are also staff only00:38
lifelessand also need to have this issue addressed00:38
lifelesswith the issue addressed we could start publicising them, which I would dearly love to do00:38
* thumper is frustrated00:40
thumperdamn code didn't work as I expected00:40
lifelesswhich one?00:40
thumperQAing the fix I did for processing merge directives00:41
lifelesswgrant: publishedpackage is what you nuked yes?00:41
lifelesswgrant: what revision did it land in? has it landed?00:41
thumperI fixed one bug, but now it isn't actually pulling in the directive (it seems)00:41
thumperhow often are the staging logs synced to devpad?00:42
lifeless7 minutes I think00:43
lifelessperhaps 600:43
thumper:( known 2a and MD bug check failed: Cannot add revision(s) to repository: missing text keys:00:45
* thumper thinks00:45
thumperonly way to confirm fix is not to use 2a00:45
wgrantlifeless: db-devel r962800:45
lifelessdamn00:46
wgrantNot on staging yet?00:46
lifelesswgrant: I wish you had done that as two separate patches, db + other00:46
lifelesswgrant: no, 10 timeouts from it in sundays edge report00:47
wgrant:(00:47
wgrantWhich views?00:48
wgrant+distrotask?00:48
lifeless+filebug00:48
wgrantAh.00:49
lifelesstell me about SPPPH00:59
lifelesssorry, SPPH00:59
lifelessalso, ugh, pagination *hate*01:00
thumperlifeless: got a stutter there?01:00
thumpercan anyone push to staging right now?01:01
wgrantlifeless: What about SPPH?01:09
wgrantSSPPH died a few months ago.01:10
lifelesswgrant: timeouts01:12
wgrantlifeless: Ah, the getBuildRecords timeout?01:14
james_wwgrant: yeah, it's a separate class so we can port a bit at a time. It has a different API as I think this is better than the old one.01:15
wgrantjames_w: It looks like it, yes.01:15
wgrantSTP is pretty old and was put together over a long time.01:16
james_wyeah, it's understandable. IMO it needs to mature now that it is a central part of Soyuz's testing01:16
wgrantDefinitely.01:16
wgrantAnd bonus points for eliminating sample data while we're at it.01:16
james_wyeah, that's my main aim, but as I started working with it I wanted to clean up the API01:17
wgrant0*$ bash                                                                                                                                                                                                                           Menu:<F9>01:17
james_wsome changes are gratuitous, but others will help stop being the tests so tightly bound to the implementation, which is one of the problems that we have with sampledata, so I wouldn't want to replicate it at a different level01:17
wgrantIndeed.01:18
wgrantWe have model code working around bad sampledata :(01:18
wgrantSo it will be good to eliminate it.01:18
lifelessgrah01:18
lifelesshmm01:26
lifelessthis is nonoptimal01:26
lifelesslpmain_staging=> SELECT Bug.heat FROM Bug, Bugtask, DistroSeries WHERE Bugtask.bug = Bug.id AND Bugtask.distroseries = DistroSeries.id AND DistroSeries.distribution = 3 ORDER BY Bug.heat DESC LIMIT 1;01:26
lifeless heat01:26
lifeless------01:27
lifeless(0 rows)01:27
lifelessTime: 235347.492 ms01:27
ajmitch...01:27
ajmitchthat's awfully long01:27
lifelessyou think?01:27
wgrantIt is staging, though.01:27
wgrantBut yeah, just slightly slow.01:27
lifeless14 seconds 'hot'01:27
lifelesswhich matches production timing01:27
lifelesshttp://pastebin.com/G8sctDVF01:29
wgrantHmm.01:30
lifelessIf I read it correctly its scanning every bug ever in descending heat and one by one comparing their distroseries distribution01:31
lifelesswhat we'd really rather it do is expand the set of distroseries ids to be 'IN select distroseries.id from distroseries where distroseries.distribution = 3'01:32
mwhudsoni don't suppose it matters here, but can there really not be an index on distroseries.distribution?01:32
lifelessof course, also to do that magically.01:32
mwhudsonmaybe it's just such a small table that seqscan is quicker01:32
lifelessmwhudson: it may be that that is needed.01:32
wgrantIt's a tiny table at the moment.01:32
lifelessyes, but query analyser magic.01:32
* wgrant wishes for an import fixer.01:34
wgrantsed's handy for moving stuff, but then you have to reorder and merge lines :(01:35
lifelessedwin has a vim script for it01:35
wgrantI have his set of vim scripts.01:36
wgrantMaybe I have it but just don't know about it.01:36
* wgrant looks.01:36
mwhudsoni want to write something that does all my import statement editing for me01:37
mwhudson(based on tags or something)01:37
mwhudsonrope apparently has something to do this, but i never got ropemacs to work01:37
wgrantHm, so, yes, it has Ctrl+L which uses tags and adds the magical import.01:37
wgrantAnd Ctrl+P supposedly reformats all the imports.01:37
lifelesswgrant: if you're interested in performance stuff02:02
lifelessDistroSeries:EntryResource:getBuildRecords02:02
lifelesshttps://bugs.launchpad.net/soyuz/+bug/59070802:03
_mup_Bug #590708: DistroSeries.getBuildRecords often timing out <api> <oops> <soyuz-build> <timeout> <Launchpad Foundations:Triaged by benji> <Soyuz:Triaged by michael.nelson> <https://launchpad.net/bugs/590708>02:03
lifelesswgrant: ^ the soyuz task on it needs to change to a better query in the short term02:03
lifelesswgrant: danilo has crafted one, but its not been transcribed; should be very low hanging fruit, and its the top timeout from mondahy02:04
lifelesspoolie: shall we continue with that bug ?02:05
lifelesshmm, when do we toggle from 'fix committed' to 'fix released' ?02:24
lifelesssinzui: hi, btw Ursinha requested that we use oops and timeout tags as mutually exclusive things02:31
Ursinhalifeless, after the rollout?02:32
lifelessUrsinha: no, a couple of weeks ago02:32
lifelessUrsinha: you pinged me about filing bugs with oops & timeout tags, as said 'one or other'02:32
Ursinhalifeless, I answered your first question02:32
Ursinha<lifeless> hmm, when do we toggle from 'fix committed' to 'fix released' ?02:32
lifelessUrsinha: ah, cool, ECONFUSED :)02:33
Ursinhahehe :)02:33
sinzuilifeless, akc02:33
sinzuior ack02:33
sinzuiUrsinha, When I see the release announcement, and I see the registry change is indeed on lpnet, I run the close_developer_bugs for the registry team. When I was RM, I ran it for all launchpad-project02:35
Ursinhasinzui, that's cool02:36
Ursinhalifeless, ^02:36
lifelesscool02:36
lifelessI was asking because I wanted to fit in ;)02:36
sinzuiI know I sent it to the list a few months back. you can pass a list of launchpad ids to update, or ALL to DTRT02:37
lifelesssinzui: the portlet thing02:38
sinzuiyes that thing02:38
lifelesswhen I looked at an oops for the timeout02:38
lifelessit shows a very long non-sql gap taking place02:38
lifelessdo you think that that is just the parsing and construction of the objects returned by the earlier query ?02:39
sinzuilifeless, yes. EdwinGrubbs can to that conclusion02:40
sinzuiwe only want a number too02:40
lifelessright02:40
lifelessI'm with you on that, just wanting to be sure we fix the core issue :)02:40
lifelesssinzui: the thing is, that there are 2155 rows02:41
lifelesssinzui: I find it hard to believe that creating 2155 objects takes 18 seconds of python time02:41
lifelesssorry, 16 seconds02:41
lifelesssinzui: I'm looking at https://lp-oops.canonical.com/oops.py/?oopsid=1681EB299502:42
lifelessthe last query that completed is at 960ms into the request, and has no limit - its the one you want to convert to get a count.02:42
lifelessthe distroseries is 103 based on another place in that page that has the literal02:43
sinzuiThat is the one I was looking at02:43
sinzuiI think it is getting packaging, spn, product_series, product) because in most cases, you want to see all the items...but most cases also make the request with a batch navigatot02:46
sinzuilifeless, ^02:46
lifelessso, that makes sense to me02:47
sinzuilifeless, The property must use a decorated resultset too. It is iterating over *all* the items02:47
lifelessit does, or it should ?02:48
sinzuiIt should I think02:48
lifelessmakes sense to me02:48
lifelesswhats the property called ?02:48
sinzuidistroseries.packaging02:48
sinzuilifeless, last year this property only had to content with a few hundred packages. It is time to review all the callsites and decide wha the model really needs to provide02:50
sinzuis/content/contend/02:50
lifelessthanks02:50
lifelessyes, I agree02:50
lifelessscaling  - this is part of my design guidelines, and its past time I wrote them up on the wiki02:50
sinzuiI almost got rid of distroseries.packaging 6 months ago too :(02:51
lifelessI wanted to get some actual concrete fingers-dirty things done before making real suggestions02:51
lifelesssinzui: :)02:51
sinzuilifeless,  we are down to 4 callsite, 3 of which is the distroseries model itself02:53
lifelessso is the attribute the issue02:54
lifelessor the table joins etc?02:54
lifelessI guess I mean, whichi thing are yo uworking to reduce-the-use-of-and-delete?02:54
Ursinhalifeless, email sent02:54
sinzuiI am wrong, one callsite, just the one getting the count! we can replace it without packaging_count02:54
Ursinha(about oops/bug change)02:54
lifelessUrsinha: sweet, thanks.02:55
* sinzui sees EdwinGrubbs move the other callsites to use _all_packagings via specialised menthods02:56
cody-somervilleis '++profile++' the name of soom tool?02:56
cody-somerville*some02:56
spivIt's a magic URL path segment you'll be able to add to Launchpad URLs to make it generate profiling data.02:57
spiv(once the relevant work lands, if it hasn't already)02:57
poolielifeless: hi, yes, let's03:00
pooliescutwork of expenses and sysadmin is done03:00
pooliei  wonder if paused kvms survive reboots?03:00
poolieprobably not03:00
lifelessThe defn does03:01
lifelessthe instance doesn't03:01
lifelessspiv: everything but the glue has landed03:01
cody-somervilleAre there any examples in Launchpad where the privacy of an object is determined by an 'owning' object?03:02
poolielifeless, as of last night, i put that null object into the testrequest and that had a trivial failure03:02
poolieso let's try again03:02
lifelesscody-somerville: not polished ones, no.03:03
lifelesscody-somerville: but private bug attachments will be kindof this soon03:04
lifelesscody-somerville: and branches already are via the 'branch policy' stuff03:04
lifelesspoolie: cool; I has caffeine and I has toast cooking03:04
cody-somervilleThats not really what I meant03:04
cody-somervillealthough branch policy describes the default privacy for a new branch, privacy checks aren't actually delegated to it03:04
* poolie tries again03:04
pooliehave you seen any deprecation warning failures in bzr builder to do with 'debian' vs 'debian_bundle'?03:05
lifelesscody-somerville: sinzui's team will be working on something very much like this soon03:05
wgrantcody-somerville: P3As do that sort of thing.03:05
poolieor is that just out of date sourcecode or something?03:05
wgrantAll the publications and builds within the P3A inherit their privacy from it.03:05
lifelesspoolie: jelmer did something related to that recently03:05
cody-somervillewgrant, Is this a feature inherent to zope or something the soyuz folks bolted on?03:05
wgrantThe security adapters just delegate to the archive.03:06
wgrantYou could write a security adapter which just by default delegates to the parent, but that's not the default.03:06
wgrantIn a normal Zope app that would work fine, since everything has a parent.03:06
wgrantNot so much in LP.03:06
cody-somervillewgrant, Do you actually write a security adapter or is it all done via zcml?03:06
lifelessgod no03:06
wgrantcody-somerville: One just needs to throw an adapter in lib/canonical/launchpad/security.py. No ZCML required.03:07
* ajmitch is reminded too much of acquisition at the moment03:07
wgrantajmitch: Hm?03:07
lifelesscody-somerville: its a four letter word around here :P03:07
ajmitchthough that's more the containing object03:07
lifelessajmitch: its more uncles03:08
pooliehow do you typically run tests?03:08
pooliemake check?03:08
poolieor bin/test?03:08
wgrantpoolie: The former runs everything, so you can't use it.03:08
poolie?03:09
wgrantYou want to use bin/test, unless you want to run the whole test suite locally, in which case you might be crazy.03:09
lifelesspoolie: testr run -- -t PATTERN03:09
pooliecos.. it'll take a long time?03:10
wgrantpoolie: ~4 hours on a fast machine.03:10
pooliethat's ok03:10
wgrantI just 'bin/test -1cvvt [sometestspec]'03:10
wgrantAh.03:10
pooliei have a decently fast machine03:10
pooliei don't see a good reason to run it on ec2 and leave this idle03:11
pooliebut also, i want to run specific tests too03:11
wgrantIf you want to run the whole thing, do use 'make check'. It wraps things in xvfb-run so you don't get Firefox windows popping up everywhere.03:11
poolieon a separate vm03:11
lifelesswgrant: so does testr run :)03:12
wgrantlifeless: Hm, so it does.03:12
wgrantHandy.03:12
jtvThe good thing about waking up at decent times for my timezone is the first thing I see online is my antipodean friends.  The bad thing is: there is a risk that they may be talking windmill.03:13
lifelesswgrant: so what do you think about doing that query change?03:13
wgrantlifeless: I was hoping that stub could come up with something better.03:13
wgrantBut apparently not.03:13
lifelesspoolie: ok, so where does that leave us - are you making headway, or fighting friction?03:14
lifelesswgrant: I'm about to start hacking on another branch; you're better equiped to do that one, but I don't want to ignore the high-oopser03:15
lifelesswgrant: which is why I'm looking for either 'I'm on it' or 'not me' from you :)03:16
pooliestill moving forward03:16
wgrantlifeless: I'm on it.03:16
lifelesswgrant: \o/03:16
pooliehm apparently 2GB is not enough to run the tests03:18
wgrantlifeless: Can you please explain analyze these two queries a few times on staging? http://paste.ubuntu.com/475721/03:22
lifelesshttp://pastebin.com/AT04PS1P03:26
wgrantWTF03:27
sinzuipoolie, I run the whole suite in 2G on a dual core 1.8Gh03:28
lifelesssinzui: so this is the problem line ?03:29
wgrantlifeless: http://paste.ubuntu.com/475724/03:29
lifeless   <dt id="recently-linked" tal:condition="view/recently_linked">03:29
lifeless?03:29
sinzuibefore that03:29
lifelesssinzui: its my first time (in many years) debugging from the pt down, so please excuse my fail :)03:30
sinzuilifeless, count view/num_linked_packages >> len(self.context.packagings)03:30
lifelessok03:31
lifelessand that would be found by looking at the view class03:31
lifelessyes?03:31
lifeless(just so I know how the dots are joined)03:31
sinzuilifeless, the line you were looking at is intended to return the 5 latest packagings...I noted that we may need an index on datecreated too03:32
sinzuilifeless, yes, I see the view class doing len()03:32
lifelesswgrant: http://pastebin.com/1mdW53Yv03:32
lifelesssinzui: ok, cool.03:32
lifelesssinzui: I'll have a poke03:33
wgrantlifeless: Aha, thanks.03:33
wgrantThe query planner is stupid.03:33
lifelesswgrant: remember that staging stats can be different to prod too, but yes - thats what that bug seemed to say, to me.03:33
lifelesswgrant: do you think you've got a better offering than danilos?03:33
wgrantlifeless: I'm trimming a couple of other bits out of the query that don't make sense.03:34
lifelessah, ye old holistic approach03:34
lifelesssinzui: this looks odd to me03:35
pooliesinzui: my mistake, the vm only had 1gb03:35
poolieand no swap03:35
lifelessresults = results.order_by(Desc(Packaging.datecreated), SourcePackageName.name)[:5]03:35
lifelessoh foo, ignore me.03:36
lifelessECAFFEINE>03:36
pooliewould it make any sense to share ~/launchpad across VMs over nfs?03:37
lifelessno03:37
lifelesstest isolation is - and I use the word advisedly - terrible in Launchpad03:37
mwhudsonbzr doesn't work across nfs, remember!03:37
* mwhudson hides03:37
lifelessmwhudson: :P03:37
poolie:-P03:37
lifelessmight make sense to share your repo and use a checkout over nfs03:38
lifelessthe sourcedeps caches are pretty small and I wouldn't stress about them03:38
mwhudsonwell03:39
mwhudsonmy download-cache is twice the size of my launchpad repo03:39
lifelesslightweight checkout time ;)03:40
mwhudsonand the eggs dir about 1.5x the size03:40
lifelessits actually a case where that works well03:40
mwhudsoni guess that would save about 50% yar03:40
lifelessthe eggs dir I have to nuke regularly03:40
pooliei have a 1.5GB download cache03:40
pooliehow do you clean it up? just randomly delete stuff?03:40
mwhudsonthat seems very large03:40
mwhudsonmine is 415 megs and is a full branch i think03:41
lifelessrm -rf eggs/*; make build (but of course be sure to delete a couple of things I never remember because the Makefile + buildout combo is ... traumatic03:41
mwhudsonoh eggs can get huge03:41
poolie611MB eggs; 470MB sourcecode; 416MB download-cache (of which 217MB .bzr)03:42
=== Ursinha is now known as Ursinha-afk
lifelesssinzui: whats a good test case to run to be sure I haven't broken this ?03:44
* sinzui thinks03:44
sinzuilifeless, I do not see a single test for num_linked_packages03:47
lifelesssinzui: well, anything that uses 'packagings' will be fine.03:47
sinzuilifeless,  lp/registry/doc/distroseries.txt has 3 tests03:49
lifelessthanks03:49
lifelesshttp://pastebin.com/xUwxKGC103:49
lifelesshah, forbidden attribute len()03:50
poolieok, so with all eggs deleted, i get 'no module ZConfig'03:53
pooliei guess it depends on actually having some eggs present?03:53
lifelessyes03:53
poolie:/03:53
lifelessas I said - traumatic03:53
lifelessyou need to delete the generated files from bin/03:53
lifeless(bzr can tell you those)03:53
lifelessand then do python ./bootstrap03:54
lifelessand then 'make build03:54
pooliebin in my branch, or elsewhere?03:54
lifelessin your working tree03:54
sinzuilifeless, I do not think we need .packagings any more. No callsite wants the data returned. The only callsite wants count03:54
lifelesssinzui: \o/ tests pass03:54
lifelesssinzui: whats the page that shows it ?03:54
lifelessjust any distroseries ?03:55
lifelessUpstream packaging03:56
lifeless3  source packages are linked to registered upstream projects. 1  need linking.03:56
lifeless\o/03:56
sinzuiany ubuntu or debian series03:56
lifelesssinzui: well, this was very shallow, so I'll push it up and we can see ;)03:57
sinzuifab03:58
lifelesssinzui: I don't know enough to know what the right/wrong fix is here03:58
lifelessother than that this should help03:58
poolieok, re-bootstrapping03:58
lifelesssinzui: https://code.edge.launchpad.net/~lifeless/launchpad/registry-packagings/+merge/3216404:01
sinzuilifeless, r=me04:10
poolielifeless: so if 'testr run' mentions no failures, there were no failures?04:12
lifelesssinzui: cool04:13
lifelesspoolie: thats right04:13
lifelesssinzui: do you think this is rc ?04:13
pooliewhat's the invocation to re-run failures?04:14
lifelesstestr run --faling04:14
lifelessbah04:14
lifelesstestr run --failing04:14
sinzuilifeless, yes.I think it is RC. I expect it is also a CP candidate since we really want users seeing the distroseries page04:17
lifelesswell as rc I can shoot it off now and it should be in the rollout ?04:18
poolieok now http://pastebin.ubuntu.com/475731/ is strange04:19
lifelesspoolie: how so ? the fact its failing?04:19
poolieyes04:20
pooliemaybe it's not my fault04:20
pooliehow would i re-run just a doctest? -t views_txt doesn't seem to work04:22
pooliemaybe with a dot?04:22
lifelessteset04:22
lifelessyes04:23
lifelesse.g. -t doc/views.txt04:23
lifelessor whatever04:23
pooliedo you have any guesses about the memcached test failure?04:24
lifelessnone sorry04:25
lifelessit looks like it uses a subclassed test or something ?04:25
lifelesssinzui: throwing it at ec204:25
lifelesssubclassed view I mean04:25
sinzuiwoot!04:25
pooliemaybe memcached is sad? i'm also getting "WARNING:root:Memcache set failed"...04:26
pooliejust thinking aloud here04:26
sinzuipoolie, I think that means the test needs to run on the LaunchpadFunctionalLayer04:27
sinzuiOh, it is on the correct layer04:28
sinzuipoolie, Did you change something on the distroseries-needs-packaging.pt page?04:30
lifelesssinzui: he changed base-layout04:32
sinzuiI do not think that should have any impact on the test. The test does not care about layout/markup.04:33
sinzuipoolie, when you saw ""WARNING:root:Memcache" did you see the the memcache layer was brought up before the test?04:35
lifelesspoolie: you can do 'subunit-ls<.testrepository/$testid' to answer that question04:35
jtvlifeless: would it be easy to implement the fake librarian as a test resource?  I could install it from setUp/tearDown but it'd be such a chore.04:36
lifelessjtv: we don't have testresources glued in with layers yet04:36
lifelessjtv: so, setUp/tearDown will be easier, for now.04:36
lifelessafk for a bit04:37
jtvbummer04:37
pooliesinzui: it did say the layer had been started up04:37
sinzuipoolie, I see the test requires LaunchpadFunctionalLayer. I have see the warning reported when authoring a test on the wrong layer04:38
sinzuipoolie, memcache layer is brought up just before the LaunchpadFunctionalLayer...04:38
mwhudsondo we need another scummy loop to make sure memcache has started accepting connections?04:39
sinzuipoolie, I think (speculate) that I have seen memcached startup/shutdown contentions between tests. I think I saw memcached not come up because it was not fully torn down in a previous test04:40
sinzuiI saw it only once, and the issue was only on my machine when I was refactoring04:40
poolieso maybe it's something about the specific tests i was asking for04:42
sinzui:(04:42
sinzuipoolie, you may want to try --layer=LaunchpadFunctional to restrict tests to a certain layer04:44
pooliethat runs only the tests in that layer?04:44
sinzuicorrect04:44
poolieok04:44
pooliei'm now trying to just run everything04:44
poolieeverything seems to be passing04:51
sinzui:)04:52
pooliethough who knows what will fail later04:53
poolieand i found another tribunal bug :)04:53
poolieit should set stdin into nonblocking mode to cope better with slowly-fed pipes04:53
lifelessjtv: did you get the mail 'Translation template import - typewriter in pidgin-typewriter trunk' just now ?04:53
jtvlifeless: I don't think I did.04:54
lifelessforwarded04:54
lifelessits a little worrying that it exposes all the email addresses04:54
lifelessand04:54
lifelessthat we're getting it at all :)04:54
jtvThat was a little side job I didn't quite get around to doing at Epic.04:55
jtvWe want to disable these success notices for Ubuntu imports at the least.04:55
pooliei get a lot of these04:55
pooliei don't know about yours in particular04:55
jtvlifeless: I believe the exposure of co-recipients happens in simple_sendmail04:56
pooliejtv: i just happened to notice that there's what seems to be translations exported metadata inside 'virsh help domname'04:57
poolieactually i'll just file, or look for, a bug04:57
jtvpoolie: sorry what is "virsh help domname"?04:57
lifelessvirsh is a tool for managing kvm stuff04:57
lifelessdomname is a help topic in the tool04:58
jtvand who is domname?04:58
pooliei think it's a bug in either their use of gettext or our packaging04:58
jtvThen that would probably be a bug in libvirt-bin04:58
lifelesswe're down to 52 timeout bugs04:58
lifeless< 2 per developer!04:58
jtv(or rather, whatever source package it came from)04:59
cody-somervillelifeless, you rock! :)04:59
lifelesscody-somerville: not I04:59
lifelesscody-somerville: I've done 2 I think05:00
cody-somervillelifeless, I was just commenting on how you rock :P05:01
lifelesscody-somerville: aw shucks, well thanks!05:01
poolieor 52 per lifeless05:10
poolieso with all of the tests running, i don't seem to see that memcached failure05:11
lifelesspoolie: cool05:13
poolielifeless: with that null object added, 0 failures out of 2280 so far05:34
lifelessawesome05:35
pooliewant to give me an incremental review?05:41
lifelessyes05:42
lifelessr=lifeless05:42
lifelessexcept as its not release-critical, it can't be landed for the moment ><05:42
poolieok05:42
pooliei might take a break and let this keep grinding05:42
lifelesskk05:45
lifelesswgrant: around/05:45
wgrantlifeless: Just wandered into uni.05:45
wgrantSo, yes.05:45
lifelesshey05:45
lifelessso05:45
lifelessI mailed you an oops-extract05:46
lifelessI was wondering if you could quickly eyeball me and tell me if its still relevant, or if something done in soyuz recently has 'made it all better'05:46
wgrantMy eyes are bleeding.05:47
wgrantThat... that query.05:47
wgrantSo, I'd say that's still problematic.05:49
wgrantAnd probably related to the model changes a couple of months ago.05:49
wgrantNothing there has changed recently.05:49
lifelessthe query at the top isn't particularly bad05:50
lifelessits death by a thousand cuts territory05:50
wgrantIt's always been a problematic page.05:50
lifelessdo you remember the template name ?05:50
lifelessnvm I see it05:50
lifelessmore relevantly, are their unit tests of it ?05:51
wgrantOf the view?05:51
wgrantVery unlikely.05:51
wgrantOnly Code tends to do those, AFAIK.05:51
lifelesss/their/there/05:51
lifelesswgrant: many places do fwiw05:51
lifelessnot directly, but via publication, using unit test frameork though05:51
wgrantHm, so they do.05:52
lifelessin fact, test_archive_packages == soyuz one05:52
wgrantIndeed, there are a few.05:52
wgrantBut it's tiny.05:53
lifelessalso, if they drive the view without publication its an invalid test05:57
lifelesswhich is higher up the stack05:59
lifelessLPFunctionalLayer05:59
lifelessor DBFunctionalLayer ?05:59
wgrantlifeless: So, the whole getBuildRecords stack makes me somewhat sad. Code duplication, manual SQL construction, etc. I've a quick and ugly fix for the slow query now, but I'll rewrite it all next cycle.05:59
lifelesswgrant: \o/06:00
wgrantlifeless: LP == DB + librarian + memcached06:00
wgrantfunctional = Zope06:00
wgrantzopeless = Zopeless Zope06:00
wgrantI think those are the main ones.06:00
spivI should have called "zopeless" "zope on a rope".  It would still be inaccurate, but at least it would make me laugh.06:01
wgrantspiv: Was it ever actually Zopeless?06:01
lifelesswgrant: it is zope--06:01
spivKinda.06:01
spivOnce upon a time it avoided loading all the config and zcml and whatnot.06:02
wgrantRight. That's what I thought it would do, when I first came upon the name.06:02
lifelesswhats the thing to get a test browser again ?06:02
spivI think that was back when the paint in cave paintings was still wet.06:03
wgrantlifeless: self.getUserBrowser06:03
lifelessspiv: so, yesterday then ?06:03
lifelessspiv: :P06:03
lifelesswgrant: any tips on test helpers to populate a ppa?06:05
lifelesswgrant: I want to trigger the repeated queries seen in https://edge.launchpad.net/~kalon33/+archive/experimental-stuff/+packages06:05
wgrantlifeless: See SoyuzTestPublisher. james_w is in the middle of an API change, but the old one will be around for a while.06:05
wgrantAlthough there might be enough stuff directly in the factory now.06:05
wgrantLet's see.06:05
wgrantlifeless: STP.getPubBinaries will be more useful if you want sources, binaries and builds (which is probably the case). If you just want sources, LOF.makeSourcePackagePublishingHistory would work.06:07
lifelessthanks, I'll see if I can get a failing test up with those hints06:07
lifelessobject.canonical_url is the way to get a canonical url, right ?06:08
wgrantcanonical_url(object)06:08
lifelessblah06:08
* mtaylor decides to just be annoying and complain about zcml for no reason06:08
lifelessmtaylor: I think you need to actually make a complaint for that to make any sense at all06:09
mtaylorlifeless: oh - I was just complaining about the existence of zcml in the first place06:10
lifelessmtaylor: it solves a problem06:10
mtaylorlifeless: yes. it does.06:11
lifelessmtaylor: you didn't have enough things to complain about!06:11
mtaylorlifeless: this is a strong, but potentially correct assertion :)06:12
mtaylorgah! python-software-properties should have been in base06:16
wgrantmtaylor: Yes :(06:17
wgrantadd-apt-repository is handy.06:17
mtaylorit's fantastic06:17
mtaylorof course ... don't even get me started that to install add-apt-repository one has to install python-software-properties...06:17
lifelesswgrant: self.getPubBinaries ?06:18
wgrantlifeless: You need a SoyuzTestPublisher.06:18
wgrantWhich is in lp.soyuz.tests.test_publishing06:19
lifelessay06:19
lifelessis making a new series feasible06:19
lifelessor should I just use hoary?06:19
wgrantlifeless: http://bazaar.launchpad.net/~wgrant/launchpad/bug-590708-getBuildsByArchIds-timeout/revision/11317 is my quick fix. It does the same thing we do in most of the rest of the Soyuz queries -- precalculate the archive IDs (making use of the distribution/purpose index), and stick them into the query, preventing the planner from fucking us over.06:20
lifelessI'm cloning from the top of xx-archive.txt which only makes me slightly dirty06:20
wgrantlifeless: Use hoary for now.06:20
wgrantjames_w is fixing everything to let us not use sampledata, but it's not quite there yet.06:20
StevenKMy problem with that is that almost all of the Soyuz tests use sampledata :-(06:21
wgrantYes :(06:21
lifelesswgrant: +106:21
lifelesswgrant: is the fakeChroots thing etc needed?06:22
lifelesswgrant: I see 5 lines of boilerplate in xx-archive.txt and and don't want to copy unneeded boilerplate06:23
wgrantlifeless: I wonder if you might not get any builds if you don't add them.06:23
wgrantBut try without.06:23
lifelessso, just construct and use ?06:23
wgrantIn order to get the right binaries, you may have to prepareBreezyAutotest and use breezy-autotest instead.06:24
wgrantDifferent tests do different things for different reasons :(06:24
lifelesswgrant: I'm totally list06:24
lifelesslost06:24
wgrantlifeless: STP.prepareBreezyAutotest does 'stuff'.06:25
wgrantThe 'stuff' may be necessary to get the right binaries.06:25
wgrantI'm not quite sure.06:25
lifelessok, I'll just copy cprovs stuff :)06:25
wgrantlifeless: So, I'd like to confirm that the query still performs sanely. For that I need the archive IDs.06:25
lifelessshoot06:26
wgrantSELECT archive.id, archive.name FROM archive JOIN distribution ON archive.distribution = distribution.id WHERE distribution.name = 'ubuntu' AND archive.purpose IN (1, 4);06:26
lifeless   1 | primary06:27
lifeless 534 | partner06:27
wgrantThanks.06:27
lifelessyou could do this with a subselect and an IN clause, just saying.06:27
wgrantThe query planner disagrees.06:28
lifelessoh!06:28
lifelessthats fail06:28
lifelessthough I'm a natural born sceptic here06:28
lifelessI would suspect a correlated subquery-by-mistake or something like that06:28
wgrantThat's the whole problem with the query.06:28
wgrantlifeless: http://paste.ubuntu.com/475767/06:29
wgrantanalyze plz.06:29
lifelesswgrant: cold cache this one is a bitch06:31
wgrantOf course.06:31
lifelesssuggests we have more work to do is all06:31
lifelessIndex Scan Backward using buildfarmjob__date_finished__idx on buildfarmjob  (cost=0.00..71787.87 rows=103051 width=12) (actual time=0.118..246.771 rows=778 loops=1)06:33
lifelessis the one that seems to be painful06:33
wgrantStill, timing-wise it's 30 times better than the current one.06:34
wgrantAnd I may be able to remove the date_finished thing later.06:34
wgrantIts purpose is limited.06:34
cody-somervillehow do you interpret the cost= bit?06:35
lifelesscody-somerville: its a scale-less estimate06:35
lifelessall the costs are on the same scale, but the scale can't be compared outside the explain06:36
StevenKIt looked at over 103k rows?06:36
wgrantThat's the expected.06:36
lifelessStevenK: well, the stats made it thought it would06:36
poolieone more failure, a very specific test about base-layout06:36
poolieshould be shallow06:36
lifelesspoolie: \o/06:36
wgrantFirst parenthesised section is what the planner thinks, second is what actually happened.06:36
pooliewith 6168 run06:37
lifelesswgrant:06:40
lifelessERROR: lp.soyuz.browser.tests.test_archive_packages.TestPPAPackages.test_ppa_packages_query_limit06:40
lifeless  File "/home/robertc/launchpad/lp-branches/working/lib/lp/soyuz/browser/tests/test_archive_packages.py", line 111, in test_ppa_packages_query_limit06:40
lifeless    test_publisher.getPubBinaries('binary1', distroseries=hoary, archive=ppa)06:40
lifeless  File "/home/robertc/launchpad/lp-branches/working/lib/lp/soyuz/tests/test_publishing.py", line 303, in getPubBinaries06:40
lifeless    build.builder = builder06:40
lifelessUnauthorized: (<BinaryPackageBuild at 0xda2c250>, 'builder', 'launchpad.Edit')06:40
lifeless------------06:40
lifelessshould I login as the owner of the ppa first ?06:41
wgrantI hope not.06:41
lifelesshttp://pastebin.com/ciEsMcd606:42
lifelessthe with_person_logged_in bit was not there when it errored06:42
StevenKI didn't think .builder was settable except by celebrity?06:43
lifelessso how are you meant to use this test 'helper'06:44
wgrantlifeless: See how others use it, I guess.06:44
wgrantI suspect the other users might mostly run Zopeless :/06:45
lifelessdeathrow doesn't even login06:45
wgrantZopeless doesn't need login.06:45
lifelessok, so -who- should be logged in to use this ?06:45
wgrantI guess you could just use an admin.06:45
wgrantThat's what lots of tests seem to use.06:45
lifelesshow is that spelt ?06:46
wgrantlogin('admin@canonical.com')06:46
wgrantThere may be a constant for that now.06:46
lifelessadding one06:47
StevenKI thought one had been added06:50
mwhudsonthere is one06:50
mwhudsonof course i can't find it now06:50
mwhudsonlogin_team('admins') also works i guess06:50
lifeless    elif person_or_team.is_team:06:51
lifelessAttributeError: 'str' object has no attribute 'is_team'06:51
lifelesssadness, person_logged_in -> fail on str06:51
StevenKThen obviously it isn't an IPersonRole06:51
StevenKI think I'm misremembering that06:52
pooliejtv, lifeless, bug 615708 is the one i mentioned before06:54
_mup_Bug #615708: help for domname contains Launchpad translations metadata? <amd64> <apport-bug> <maverick> <Launchpad itself:New> <libvirt (Ubuntu):New> <https://launchpad.net/bugs/615708>06:54
poolieStevenK: do you have any idea how that^^ could happen in soyuz06:55
wgrantSounds like Rosetta's langpack stuff to me.06:56
StevenKIndeed06:56
wgrantSoyuz has just about nothing to do with that.06:56
jtvNo, that's the po file header (which would typically be present anyway, Launchpad involvement or not) being allowed to sneak into somewhere where it's not supposed to be.06:56
wgrantRosetta just sends the files through it.06:56
jtvAs I said yesterday, looks more like a bug in the source package—something in how it's built.06:57
jtvMaybe upstream uses gettext files without headers, and came to rely on that.  Maybe they run the empty string through gettext somewhere and so get the header as a translation.07:00
lifelessin short, its a software bug in virsh ? :)07:00
jtvlifeless: that was my impression yesterday, and I stick by it.07:01
jtvstand by it, rather.07:01
* StevenK grumbles at initialise-from-parent.txt07:01
wgrantStevenK: bzr rm07:02
StevenKI did07:02
StevenKwgrant: Code from it in a unittest fails07:02
wgrantStevenK: Functional vs Zopeless, I bet.07:02
lifelesswgrant: thanks, I have enough now to try hooking in HasQueryCount07:03
wgrantOr possibly just being logged in as a different user.07:03
StevenKwgrant: The line that is failing is hoary['i386'].getPublishedReleases(). But IDistroArchSeries doesn't have a .getPublishedReleases()? WTF?07:04
wgrantStevenK: i-f-p.txt doesn't have ['i386'].07:04
wgrantAlso, that method name is broken.07:05
wgrantKill it.07:05
StevenK- >>> hoary_i386_pmount_pubs = hoary['i386'].getReleasedPackages('pmount')07:05
lifelesshaha07:05
lifelesshahaha07:05
lifelesshahahahahahaha07:05
wgrantlib/lp/soyuz/doc/initialise-from-parent.txt:  >>> hoary_pmount_pubs = hoary.getPublishedReleases('pmount')07:05
lifelessDifference: queries do not match: 12 is >= 5107:05
wgrantlib/lp/soyuz/doc/initialise-from-parent.txt:  >>> foobuntu_pmount_pubs = foobuntu.getPublishedReleases('pmount')07:05
lifelessto show a PPA with 2 binary publications.07:05
wgrantStevenK: getPublishedReleases != getReleasedPackages07:05
StevenKwgrant: A few lines under that07:05
wgrantStevenK: You initially spoke of getPublishedReleases. But the line you quote mentions getReleasedPackages.07:06
StevenKRight. wgrant correctly tells me that I need to learn to read.07:06
wgrantI stand by my assertion that the method names are fucked.07:06
wgrantThis may mean that I need to go on a rampage next week and destroy them all.07:06
lifelessand 55 for 3 packages07:09
lifelessthis is going to end badly:)07:09
wgrantIndeed it will.07:09
poolieomg doctests07:13
pooliefailing on whitespace differences07:13
lifelessactually07:14
lifelesswhat it probably means is that there is -one- key diff07:14
lifelessand the whitespace stuff just telling you about all differences07:14
lifelessperhaps not, but I found this behaviour very confusion07:14
lifelesss/ion/ing/07:14
poolieright, that is it07:14
StevenKpoolie: "Feature"07:14
lifelesswgrant: if you're still around ?07:21
wgrantlifeless: Of course.07:21
wgrantIn a shitty tute.07:21
wgrantSo please, distract me :)07:21
lifelessI'd like to do roughly what I did with _all_members for +packaging07:22
lifelesswhich is to make the request count constant for 2 and 3 build pages by populating related data07:22
lifelessIf you could point me at a couple of entry points in soyuz, that would be great.07:22
wgrant+packaging is more Registry.07:23
lifelessI don't believe in those lines07:24
wgrantSo there probably aren't really any Soyuz entrypoints, as such.07:24
lifelessthe data is generated by soyuz07:24
wgrantSo I'm not quite sure what you're asking.07:24
lifelesshmm07:24
lifelessso07:25
lifelessI'll follow my noise07:26
lifeless*nose*, from the template07:26
* StevenK wonders if he can get the exception text with self.assertRaises()07:30
lifelessit should do that by default07:34
lifelessor you could grab my matchesException , mmm, I wonder if thats in testtools yet07:34
poolielifeless: i wonder if we should convert doctests one by one to just use matchers or something07:41
pooliejust in line, to make it easier07:41
poolieit would have made this one easier07:41
pooliehowever07:41
pooliemy test run failed i guess due to the lack of a $display to run windmill things07:41
pooliei'm going to retry with make check and then i think that's it07:41
lifelesstestr run should have done the display thing for you07:45
lifelessbe sure to log in with X forwarding in your ssh07:45
lifelessit lets it work regardless07:45
pooliei didn't use it because i wanted to pipe it out to tribunal07:46
lifelessah right - to get incremental ?07:46
poolieincremental progress and errors yes07:47
lifelessstub: btw, I've tagged a couple of things dba07:50
stubk07:52
lifeless /launchpad-project/+bugs?field.tag=dba or something like that07:53
lifelessstub: I need to chat with you to make sure your life won't become a living hell with the RFWTAD LEP07:53
lifelessfrancis pointed out that db patching is a bit labour intensive at the moment, or something07:54
StevenKubuntu['breezy-autotest']07:54
StevenKAnd ubuntutest['breezy-autotest']07:54
StevenKSampledata, YOU (&(^ING SUCK07:54
lifelesshow does this hang together08:06
lifelessarchive-packages.pt does08:07
lifeless<metal:package-list use-macro="context/@@+macros/source-package-list" />08:07
lifelessoh, I see, non_selectable is a bit magic08:08
lifelessand -fun- it has a template per row08:10
StevenKO hai, I can haz review?08:11
StevenKO hai, I can haz review?08:19
StevenKWhoops.08:20
StevenKAnd obviously not08:20
lifelessheh08:21
lifelesswhats up?08:21
StevenKlifeless: Tis simple-ish: https://code.edge.launchpad.net/~stevenk/launchpad/switch-ifp-to-unittests/+merge/3207308:21
lifelessIts a bit late for me to be confident in checking that08:23
lifelesssorry08:23
lifelessat a first glance though08:23
lifelessyou have lots of literal sample data there08:23
StevenKSo the original doctest :-(08:23
lifelessmight want to add constants to sampledata.py08:23
StevenKEr, so did08:23
lifelessremind me08:26
lifelesshow does storm and __init__ interact08:26
jtvdanilos: another nice effect of your big variants cleanup is that we're one step closer to not passing pofiles around in the new "recife" methods.08:27
lifeless\o/ registry-packagings passed ec208:28
lifelessstub: ping08:31
* lifeless wtfs class SourcePackagePublishingHistory(SQLBase, ArchivePublisherBase):08:35
StevenKYes, SPPH is ... special08:35
lifelessStevenK: btw I really really wish you wouldn't propose things that you're only just working on08:36
StevenKlifeless: Why not?08:36
lifelessterrible diff gets mailed out08:36
lifelessby which I mean useless08:36
StevenKlifeless: The last MP I did as WIP?08:36
lifelessyes08:36
StevenKDoes that still mail out a diff?08:36
lifelessits not how the system is meant to be used08:36
StevenKlifeless: If I want Julian to look at a branch, I need a WIP MP :-(08:37
lifelesswhy?08:37
lifeless(obvious answer, don't worry about Julian looking at the branch :P)08:37
StevenKBecause he wants to view a nice diff in a web page, I guess08:37
jtvdanilos, henninge_: setCurrentTranslation doesn't really need a TranslationSide argument, so I'm removing that.  Also, IPOTemplate now exposes its TranslationSide but not the traits that go with it.08:37
StevenKI'm doing it because Julian asks me, not to annoy you08:38
jtvdanilos, henninge_: at least, when I get this branch reviewed & landed.  :)08:38
lifelessStevenK: you're the only person doing it, its pretty weird. I know you're not trying to annoy; What do we need to change to fix this?08:38
=== henninge_ is now known as henninge
StevenKlifeless: Have Julian be less lazy?08:38
StevenKI guess? :-)08:39
henningejtv: yeah, try finding a reviewer willing to approve *that*!08:39
jtvuh-oh08:39
henninge;)08:39
jtvhenninge: well no worries, guess who's ocr tomorrow :)08:39
henningeno jtv, you can *not* approve your own branches!08:39
jtv«damn—how did he guess!?»08:40
lifelessis there a utility to do what cachedproperty does, but in a function ?08:41
adeuringgood morninig08:43
pooliehttps://bugs.edge.launchpad.net/launchpad/+bug/615740 sigh08:45
_mup_Bug #615740: test_on_merge.py doesn't handle eintry <Launchpad itself:New> <https://launchpad.net/bugs/615740>08:45
lifelessare there ppas in the sample data?08:47
StevenKyes08:48
StevenKcprov has one, for example08:48
lifelessok, cool, I've found code that runs when the packages list is shown :)08:49
lifelessexcept, not on +packages, only on the ppa page itself. wtf08:50
stublifeless: pong08:50
lifelessstub: hey08:50
lifelessstub: can you do a brief skype call, or is irc more convenient? topic: agile db patches08:51
lifelessoh man, thats so annoying; my timeout fix for sinzui missed edge by 1 hour08:51
stubI can do either. Typing is generally better for me.08:52
lifelessok, lets go with typing08:52
lifelessso, in the new workflow that should start in ~ a week08:52
lifelesswe'll get rid of edge08:52
lifelessand have nondb patches flowing straight through with in-line qa08:52
lifelessyou know all this ;)08:52
lifelessto start doing db patches in a similar manner, I've been assuming it was primarily a matter of figuring out a series of non-downtime db patches and background scripts interspersed with code changes to match08:53
lifelesse.g. db, code, db, code etc until the transition is done08:53
lifelessnot all db patches can be done like this, and so far I've been figuring that its up to the developer to choose between their development time vs doing a single patch in the monthly downtime08:54
stubUnless we plan to be cowboying all our DB changes, the main issue is reworking our processes and tools to support that.08:54
lifelessso - what things are likely to cause friction or failure08:55
stubWith replication, non-downtime means data migration and adding/dropping indexes.08:55
lifelesscould you expand a little, so I think I understand :)08:55
pooliehow do i fix this:08:55
poolie  Getting distribution for 'testtools==0.9.6dev91'.08:55
poolieError: Couldn't find a distribution for 'testtools==0.9.6dev91'.08:55
lifelesspoolie: update your download-cache and run make build08:56
stubData migration are just python or sql scripts that get run on the master - just data changes like any other script. No real problem, except we need to ensure they get run and tested on staging automatically.08:56
poolielifeless: with update-sourcecode?08:58
stubAdding and dropping indexes may well have to be a manual process. We need to run CREATE INDEX CONCURRENTLY on each node, outside of a transaction, and be around to cleanup if things messup. Also need to manage long running transactions as the index build will block on long running transactions.08:58
lifelesspoolie: I use 'bzr update' in the download-cache directory08:58
stubFor pretty much all other DB patches, we need to go via the slony tools. Slony locks all the tables, removes all the replication triggers, applies the patches to the nodes one at a time, rebuilds all the replication triggers (which might be different now there might be new columns etc.), and unlocks.08:59
lifelessstub: does that involve perceived downtime ?09:00
poolieoh for deb dependencies :)09:00
stublifeless: Yes. The lock will never be granted while the appservers are active.09:01
stublocks I should say (exclusive lock on every replicated table in the replication set)09:01
lifelessstub: ok, so that I understand - we can't e.g. add a column live09:01
lifelessstub: but we could create a whole new table, migrate data to it, then start it replicating ?09:02
stubYup. So goal is to minimize that time. There are at least two improvements we can make to our existing tools to lower times, and that is the first step I think.09:02
stubNot invoking comments.sql on production (no real need so it is waste), and making security.py more intelligent.09:03
stubYes, we can create a new table live and add it to replication.09:03
lifelessok09:03
lifelessso a long term theme will be increasing the refactorings we can do live09:04
pooliespiv i was going to try something like https://bugs.edge.launchpad.net/launchpad-foundations/+bug/615740/comments/109:04
_mup_Bug #615740: test_on_merge.py doesn't handle eintr <Launchpad Foundations:In Progress by mbp> <https://launchpad.net/bugs/615740>09:04
stubAlthough it usually would be create table, add to replication, populate rather than create table, populate, replicate09:04
poolieoh ffs launchpad09:04
lifelesspoolie: ?09:04
pooliewhitespace folding in bug comments is not the kindest thing for python programmers09:04
lifelessheh09:04
lifelessmasochists all09:05
poolieanyhow spiv http://pastebin.ubuntu.com/475807/09:05
lifelessstub: thanks; so - in summary - its doable for a small set of cases now, and we can start building them out as we go09:05
* spiv moves to this channel09:05
lifelessstub: there is expected to be a high risk of pear-shapedness, so it won't be part of the fast-qa path09:05
lifelessstub: and thus we also need some reporting for folk that are doing staged-refactorings so they know when w particular db change has gone live and they can move to their next stage.09:06
spivpoolie: looks reasonable to me09:06
lifelessstub: is that about the size of it ? [glossing over the details about what we can/can't do today]09:06
pooliei'll clarify that comment and interactively test it09:07
spivpoolie: although I wonder why make check needs a SIGWINCH handler?09:07
lifelessspiv: make check runs the pqm merge check09:07
lifelessspiv: which ~ 0 devs run - it has a supervisor process etc09:07
stublifeless: Pretty much. We already do indexes live as necessary, normally without too much grief. The biggest fallout from live changes is occasionally timeout OOPSES when I underestimate how long a lock will need to be held, and breaking staging (eg. creating new DB users and forgetting to replicate that work there).09:07
spivlifeless: this only makes me more perplexed09:07
lifelessstub: thanks heaps; I'll write this up somewhere. How would you feel if I encourage people to start exercising this ?09:08
stublifeless: New tables we can do with the existing infrastructure for process and staging. And if the patch is suitable to be applied live, I can do so. I'll need to do it manually, but I don't see any risk on the db side.09:08
pooliespiv i can't see where it gets one from09:09
lifelessstub: do you think the additional work will be a burden ?09:09
lifelessstub: (work for you I mean)09:09
stubWe can start now, sure. I'm not sure how popular it will be - suck it and see I guess.09:09
pooliemaybe as a side effect of psycopg2 or something?09:09
lifelessstub: cool, thanks!09:09
spivpoolie: possibly something like that :/09:10
lifelesspoolie: +109:12
poolielifeless: to which bit? the patch?09:13
lifelessyes09:13
* poolie is glad he bought a new desktop cpu/mb :)09:13
mrevellGood morning09:15
stublifeless: So do we want a short term 'I'm busy' system? If the appserver is in read-only mode, all requests pop up a 'I'm busy. This page will automatically reload in 60 seconds' screen. This could give us some agility for, say, <5 min db outages without annoying users too much (for some values of 'too much').09:15
lifelessstub: that sounds like an improvement on the current read-only thing regardless09:16
pooliewhy auto reload?09:16
stubSo people can walk away, have a coffee, and their posts have been completed when they get back with no need for retyping.09:17
lifelessexcept for POSTs09:17
lifeless:)09:17
stubIt would need to cope with POSTs. I'm not sure of the JS magic required.09:18
lifelesscoping with POSTs will run into browser issues09:19
lifelessan interaction between the HTTP spec for POST, and browser security - I09:20
wgrantstub: Hi.09:20
lifeless'm fairly sure it would be a path to pain09:20
stubyo09:22
stubIf it doesn't cope with posts, then there is no improvement. GET requests already work just fine in read-only mode.09:23
wgrantstub: Could you please EXPLAIN ANALYZE http://paste.ubuntu.com/475767/ on a production slave?09:24
lifelessgotcha09:24
stubI think we already do something similar for OpenID - not sure.09:24
stubwgrant: http://paste.ubuntu.com/475813/09:25
wgrantstub: Eeexcellent. Thanks.09:25
bigjoolslifeless: helleau09:25
lifelessbigjools: hiya09:25
bigjoolslifeless: a new storm seems to be in our sourcecode, which is nice, coz it's got some improvements we should be using.  Thought you might like to be aware :)09:26
lifelessbigjools: I'm trying to find the code that runs to generate the table of packages on ppa/+packages09:26
lifelessbigjools: any tips?09:26
bigjoolsI'm going to go on a rampage to remove unnecessary .count() with .any()09:26
bigjoolss/remove/replace/09:27
bigjoolssince the latter now strips ordering09:27
* noodles775 looks09:27
lifelessbigjools: thanks for highlighting that; as it happens I knew because I let deryck know he needed it to land his branch - his branch was how we found the bug with the storm cache that is fixed in 0.1709:27
bigjoolsand bool() on SQLObjResultSet now works09:27
bigjools\o/09:27
stubwgrant: That might start performing bad when there are a large number of unfinished jobs09:27
stubwgrant: I think we can make an index to cope if that happens09:27
wgrantstub: There are already lots with date_finished NULL.09:27
bigjoolslifeless: yeah +packages can get slow.09:28
lifelessbigjools: right, I'm pulling on it - it goes up by 4 queries per package, more or less09:28
lifelessbigjools: but having trouble figuring out what damn methods run :)09:28
noodles775lifeless: is it the source-package-list macro that you're looking for (in archive-macros.pt), which uses the view's batched_sources property?09:30
lifelessnoodles775: no, its down at the model layer09:30
lifelessI navigated the templates ok with a little elbow grease09:30
stubwgrant:  (((status <> 1) OR (date_finished IS NOT NULL)) AND (status = 2))09:30
stubwgrant: Doesn't that just simplify to 'status=2' ?09:31
stubOr am I lacking coffee again?09:31
wgrantstub: It does, yes.09:34
wgrantBut fixing that requires a bit more of a rework.09:34
poolielifeless (if any): i think flags-webapp is good now, can you try it again?09:34
noodles775lifeless: so you've been through the ArchiveSourcePublications iterator that's used by the batched_sources property then? Hrm. ok.09:34
wgrantThere's duplicated code and string-based query construction everywhere. I plan to rewrite it.09:34
stubCool. If we can simplify that sort of thing, we can improve things with more specialized indexes if needed.09:35
lifelesspoolie: try again ? If you mean land it - no, I can't - we're frozen for non-rc till, I think, friday09:35
lifelessnoodles775: I'm currently looking for getBuildSummaryStatus09:35
lifelesspoolie: I can do a test-only run, but that should be precisely equivalent to what you just did09:36
lifelessnoodles775: I found what I needed - ArchiveSourcePublication in the adapters09:36
noodles775Great.09:36
lifelessok, so it causes 2 of those per-row queries itself09:41
lifelessand man is it indirect, how many getUtility things?09:42
lifelessI'll unravel it a bit tomorrow. Objects are great.09:42
bigjoolslifeless: dude, you can't RC approve your own branches!09:45
StevenKTeehee09:45
StevenKThat's cheating09:45
thumperheh09:47
bigjoolsthumper: did you see my comment on the bug you marked qa-untestable?09:49
thumperyes09:49
thumperbut I didn't see how that tested it09:49
thumperit didn't start09:49
thumperand staging was down09:49
bigjoolsthe problem was in the creation - as soon as you hit the button it oopsed09:49
bigjoolsit didn't need to start building09:49
thumperI didn't think so09:50
thumperI thought it was the fact that it could have a date finished, but not a date started09:51
thumperthat is what the branch fixed09:51
bigjoolshmmm actually, I might be mistaken09:51
lifelessbigjools: can't rc-review, can rc-approve ;)09:51
bigjoolslifeless: dude, no!09:52
bigjoolsnot if it's your own branch09:52
lifelessno? my bad then; where are the docs, I'll get the policy straight for future09:52
lifelessrc analysis seems to be totally separate from code review to me09:53
bigjoolsin this case it's fine I would have said it was ok, but generally it's frowned on09:53
thumperlifeless: but you can't rc analyse your own09:53
lifelessthumper: *why not*09:53
lifelessits not like code review09:53
thumperwhy can't you review your own code?09:53
thumperyeah, it is09:53
lifelessno, its not09:53
thumperin this regard it is09:53
lifeless*why*09:53
thumperjudgement is skewed when looking at your own stuff09:54
bigjoolsconflict of interest09:54
thumperthat is why we have other people look at things09:54
lifelessthats a very adversarial way of thinking about both code review and release-critical assessement09:55
bigjoolsif it's a genuine RC you won't have any problems getting it in09:55
bigjoolsthere is no rush at this stage09:55
lifelesshuh? I think you've just segued to a different concern09:56
bigjoolsI would not think of doing a branch, getting someone to review it, and then landing it with my own RC09:56
bigjoolsnot really, I'm pointing out that you had plenty of time to get approval from someone else09:56
lifelessI didn't think about time-till-release at all in doing this09:57
bigjoolsthe new approval process says that TLs must get approval from Francis or other TLs09:57
lifelesswhat new approval process? Only one that I recall was db-query approvals wasn't it?09:58
bigjoolsall out of band prod changes09:58
lifelesswhich was (francis, stub, me: can approve anything, TL's can approve each other)09:58
bigjoolsand you can't approve your own stuff09:59
lifelesstaking a step back, I can see you feel I didn't something totally wrong09:59
lifelessand I don't want to be doing that09:59
lifelesshowever I don't *understand* the assertion you are making10:00
lifelessso I want to drill into that10:00
bigjoolsit boils down to the fact that we don't like unilateral changes and rc analysing your own code is a potential recipe for problems.10:01
lifelessso there are two things there that concern10:02
bigjoolsyou're the first person I know who's RCed his own branch :)10:02
lifelesswhat risks do you see in assessing a branch for rc status at this stage, and how are they affected by who wrote the branch vs who assesses it.10:03
bigjoolsit's the same principle as reviewing your own code, you *will* miss problems that other people see10:04
lifelessI object to it being the same principle10:04
lifelessI don't think its even vaguely similar10:04
bigjools2 of us disagree with you so far10:04
bigjoolsanyway I don't want to argue with you about this, perhaps you'd like to raise it in tomorrow's TL call10:05
lifelessYou've both asserted a cultural norm, not made any attempt to expand other than to say 'judgment is in question'10:05
lifelessI'm going to read up the process etc10:06
lifelessand get well across that10:06
lifelessI'll probably send it to the list, I think the more intellects assessing this the better10:06
thumperI think it is a matter of culture and policy rather than us saying "in this particular respect"10:06
bigjoolsI am not asserting a cultural norm, I am telling you that it's the same as reviewing your own code10:06
lifelessbigjools: And I'm disagreeing with the assertion that it is the same.10:06
thumperbut I agree with bigjools and the "same as reviewing your own code"10:06
thumpertwo to one, we win10:07
* thumper leaves10:07
bigjoolslol10:07
lifelessrc analysis is about risk assessment: chance of throwing out the release vs delaying the fix for a separate QA round10:07
lifelesscode review is about making the code better, understanding if its clear enough for another person to understand it and maintain it10:07
bigjoolslifeless: in that case, why don't we let all developers RC their own branches?10:09
bigjoolswhat makes you special?10:10
lifelessbecause RC assessment is delegated to the rotating RM, plus jml me & flacoste, AIUI10:10
bigjoolsah, so it's by convention10:10
lifelessyes10:10
bigjoolsor should I say "culture and policy"10:10
bigjoolswhich is what you were arguing against earlier10:11
lifelessI didn't argue against it, I said I seem to have violated a cultural norm10:11
lifelessthat in itself doesn't mean its good or bad10:11
lifelessjust different10:11
lifelessand10:11
lifelessWould I be happy with every developer being able to make an RC assessment? Actually, I think I would.10:12
lifelesshowever, entirely separately, I must apologise for doing *any* RC approvals10:13
lifelessaccording to https://dev.launchpad.net/PolicyAndProcess/ReleaseManagerRotation its not delegated to *anyone* except the RM10:13
lifelessI'd like to understand why10:13
lifeless(because it doesn't fit what I've observed happening here in the not-very-distant-before-I-became-TA-past10:13
lifelessbigjools: I shall however follow it now that I've reread it and raise it for reevaluation10:14
bigjoolslifeless: usually the RM and Francis dole out RCs, because they are best placed to see the bigger picture10:15
lifelessbigjools: and this makes sense to me, and was why I felt comfortable both handing out one the other day (though I put a caveat saying 'If I can' - which you and the other people on the MP seemed to think was appropiate)10:16
lifeless - and handing out one today, because I have been doing little but watching the bigger picture10:16
bigjoolslifeless: as long as it's not your own branch I don't mind, but the RM should know about it regardless10:16
lifelessbigjools: of course - note that the one I did of mine I had you as an explicit rc-review requested10:17
lifelessso that you would10:17
bigjoolswhich was good :)10:17
lifelessso concretely, you're happy that that particular branch was rc worthy, you're happy that you were in the loop, you're unhappy that I made that assessment *and* wrote the code.10:18
bigjoolsI think it would be safe to say that most if not all of us would be uncomfortable with people giving RCs on their own code.10:25
lifelesswhy? Given what RC /means/10:26
thumperlifeless: the whole point is to have more than one set of eyes on the problem10:27
lifelessthumper: not all problems are equal. Perhaps a definition of RC would help.10:27
lifeless'worth adding to the QA queue while the trunk is frozen'10:27
lifelessthats it. Thats /all/ that rc means.10:27
bigjoolsno, that's completely incorrect10:29
lifelessok.10:29
lifelessplease help me understand, because thats what the process documentation says it is10:29
bigjoolsRC means we need to land something that is either fixing a critical breakage if we release with it, or adding something that is business critical10:30
lifelessI think you have conflated two concepts: why we rc-approve, and what rc-approve *implies*10:30
lifelesswe rc-approve to fix critical breakage or address a business critical concern10:30
lifelessrc approval *implies* that we'll have more QA coming in rather than just reducing the QA so that the release can happen10:31
lifelessreasons *why* we do something are motivation. The impact and effect of doing it are risk and rewards.10:32
lifelessassessing whether something should be rc approved is balancing the why - the desired reward - against the risk and the expected actual reward10:32
bigjoolsyes, but the motivations to do it are as I stated.  The person giving RC needs to assess how risky the change is.10:33
bigjoolsand now, I am done talking about this.10:33
lifelessok10:34
lifelessits annoying how chromiums search box is on top of the moin search box on the wiki10:34
lifelessgnight y'all10:56
* thumper throws in the towel10:56
bigjoolssee y'all10:58
deryckMorning, all.11:58
jtv1Yay!  staging is back.  Let's Q/A, people!12:57
=== jtv1 is now known as jtv
wgrantFinally!12:58
wgrantOf course that doesn't mean the code isn't ancient.13:00
=== matsubara-afk is now known as matsubara
=== Ursinha-afk is now known as Ursinha
wgrantOOPS-1683S33913:14
wgrantCan I have a statement log for that?13:14
wgrantIt's really quick now. I guess I could just blame a cold cache.13:16
jelmerwgrant: Did somebody get the statement log for you for that OOPS yet?13:33
wgrantjelmer: Not as yet.13:34
wgrantOOPS-1683S348 also concerns me, and is still happening.13:35
wgrant(I'm trying to QA one of my revs)13:36
jelmerwgrant: I'll get them to you in a sec.13:38
wgrantjelmer: Thanks.13:38
bigjoolsstub: still around?  I have problems with the PG 8.4 upgrade13:40
stubwazzup?13:40
bigjoolsstub: I installed the 8.4 packages, did the config changes then ran utilites/launchpad-database-setup13:41
bigjoolsand I get:13:41
bigjoolscreateuser: could not connect to database postgres:13:41
bigjoolsafter it's done the config change13:41
bigjoolsthe server is running AFAICS13:41
stubThere is another error message after the one you quoted (the reason it couldn't connect)13:41
bigjoolscould not connect to server: No such file or directory13:42
stubThat makes it sound like it isn't running. You shut it down, edited the configs, restarted yes?13:42
bigjools/var/run/postgresql/.s.PGSQL.5432 is not there, but /var/run/postgresql/.s.PGSQL.5433 is13:42
bigjoolsyep13:42
bigjoolsyour port instructions on the wiki page conflict with the ones in that email BTW13:43
stubSo look in /var/log/postgresql/postgresql-8.4-main.log - should be an error message in there saying why it isn't running.13:43
bigjoolsit's running ok13:44
bigjoolsjust using port 5433 from the looks of it13:44
bigjoolsbut the client expects 542213:44
stubYes, which is why we edited the config files to make 8.4 listen on 543213:44
bigjoolsgar13:45
bigjoolsmissed that bit :(13:45
stub;)13:45
bigjoolshttps://dev.launchpad.net/DatabaseSetup needs updating then13:46
bigjoolsit says to change 5432 into 543313:46
bigjoolsstub: aha, I see what's going on13:47
bigjoolslaunchpad-database-setup is changing the port to 543313:47
stubbigjools: Look closer - that section is about upgrading, so matches my email (edit pg8.3's config to use a different port, so 8.4 can use 5432)13:48
bigjoolsso I hadn't missed it :)13:48
bigjoolsah ok13:48
bigjoolslaunchpad-database-setup is buggering things up though13:49
stubSo the wiki page documents reconfiguring the old version before the installing the new packages, and my email documents reconfiguring after installing the new packages.13:49
stubDunno why launchpad-database-setup would be doing that :-P13:49
jelmermaxb, ping13:50
maxbjelmer: pong, but about to disappear for lunch13:50
stubbigjools: Did you edit your 8.3 postgresql.conf too?13:50
maxboh, was just replying to bigjools email13:50
jelmermaxb: ah, ok13:50
stubbigjools: And bounce 8.3 per the email?13:50
jelmermaxb: I was just wondering if you might be able to have a look at my open meta-lp-deps reviews13:50
bigjoolsstub: yes, I took it down13:50
bigjoolsentirely13:51
stubAnd the config has been edited to say port=5433 ?13:51
jelmermaxb: in preparation of uploading a new version of meta-lp-deps, but from what I read now that process already seems to be in motion..13:51
stubbigjools: The 8.3 config I mean13:51
bigjoolsstub: no, I left it alone since I didn't intend to start it up (I wanted to purge the configs but the package dependencies foiled me)13:51
stubBecause it looks like launchpad-database-setup rebuilds the 8.4 cluster, and if the postgresql tools see another database configured to use a port it will choose another.13:52
bigjoolsyay :/13:52
maxbjelmer: I'll look. AFAIK the current blocker is unresolved questions about what to do w.r.t. pocket-lint and rabbitmq on hardy13:52
* maxb gone13:52
jelmermaxb: pocket-lint should no longer be an issue (we've uploaded a package for hardy), not sure about rabbitmq13:52
maxbbigjools: Are you all settled on pg8.4 now?14:09
bigjoolsmaxb: I am :)14:10
bigjools8.3 and configs is history14:10
wgrantWhen's production moving to Lucid?14:10
bigjoolsRSN14:10
maxbWhat's the ordering here? => pg 8.4, then later => Lucid?14:10
maxbjelmer: you saw my needsinfo review of https://code.edge.launchpad.net/~jelmer/meta-lp-deps/chardet-dep/+merge/31260, right?14:11
jelmermaxb: Yep, thanks14:11
maxbAlso, in the spirit of Robert's email, I should point out that no one has said I can review meta-lp-deps merges. Though in this case I _know_ that the process is that there is no defined process.14:12
jelmermaxb: That's a good point. You had been doing reviews (and are the registrant of lp:meta-lp-deps) so I assumed that was the proper procedure.14:14
maxbhttps://dev.launchpad.net/LaunchpadPpa says "Exercise personal judgment on whether your change merits a merge proposal, or is sufficiently trivial to just be committed directly." -- and I wrote that14:15
jelmermaxb: That doesn't say anything about who should do the review :-)14:17
maxbThat seemed in keeping with the fact that I wasn't given any requirements to seek review of any kind when I was issued with ~launchpad/+archive/ppa upload permissions14:17
wgrantIt doesn't even say there should be a review, just an MP :P14:17
jelmermaxb: Anyway, these changes are quite simple but I would prefer if somebody else could give them a quick glance regardless. There are two MPs left.14:18
jelmerwgrant: Well, a proposal implies that there is going to be acceptance or a declination somehow.14:19
henningedanilos, jtv: POTMsgSet.submitSuggestion does not sanitize translations. Is that intended?14:22
* henninge vaguely remembers something like that.14:22
daniloshenninge, what does "sanitize" translations mean? calling old "sanitizeTranslations"? :)14:23
jtvhenninge: for setCurrentTranslation it was a documented assumption, but I don't think we discussed it for this one.14:23
henningedanilos: No, calling the new code.14:23
daniloshenninge, oh, right, we've split that out already, right?14:23
daniloshenninge, jtv: I don't think it should sanitize input14:24
henningedanilos: yes, I did that in a hotel room in Recife ;-)14:24
daniloshenninge, jtv: it's something that callsites should do14:24
daniloshenninge, when it was four of us squeezing together? oh yes, I remember14:24
henningedanilos: ok, so in tests I should make sure to pass sanitized input.14:24
daniloshenninge, put that into a factory method ;)14:24
jtvThe problem IIRC was that "sanitized" was actually relative to the input medium—different de-indentation requirements for browser and import, etc.14:25
daniloshenninge, or simply into translations test helpers14:25
danilosjtv, exactly14:25
jtvThen, there's validation.14:25
danilosjtv, also, we store invalid translations as suggestions as well14:25
danilos:)14:25
jtvBut we don't make them current, right?14:25
jtvAlthough that can still happen if a template update adds a flag, I guess.14:26
danilosjtv, yeah, that's an old bug14:28
danilosjtv, but unrelated to this :)14:28
jtvjust saying :)14:28
* bigjools -> lunch14:28
abentleybigjools, jelmer: Does soyuz.browser.build.CompleteBuild serve any purpose nowadays?  AFAICT, we don't use its self._buildqueue_record attribute at all.14:39
jelmerabentley: I'm not sure, I14:41
jelmer'm not very familiar with that class.14:41
jelmernoodles775: Do you happen to know perhaps?14:41
maxbhttps://code.edge.launchpad.net/~maxb/meta-lp-deps/pg8.4/+merge/32200  <-- if someone has a moment14:46
noodles775abentley, jelmer: It's caching the buildqueue_record with the batched builds, and seems to be used in soyuz/templates/builds-list.pt:96?14:47
jelmermaxb: Reviewing14:48
abentleynoodles775, ah.  I missed that buildqueue_record method.  (Which surely ought to be a property?)14:48
noodles775Looks like it certainly should, but zope templates apparently don't care.14:49
abentleynoodles775, it was causing me grief because it delegates to IBinaryPackageBuild, but setupCompleteBuilds was wrapping it onto SourcePackageRecipeBuilds.14:51
maxbWho is the best person to ask to push for getting the launchpad ppa / hardy / rabbitmq situation resolved? Basically it needs packages copying from the internal "cat" archive14:52
abentleymaxb, copied *to* the cat archive?14:52
maxb*from*14:52
abentleymaxb, to what?14:52
maxbto the public launchpad PPA -  the problem is that launchpad-dependencies depends on rabbitmq, which is satisfied via the cat archive, but makes launchpad-dependencies uninstallable unless you have access to cat14:53
abentleymaxb, I assume you mean on older distros, because I don't use the cat archive and I have launchpad-dependencies installed.14:55
maxbCorrect, this is only an issue on hardy14:55
abentleymaxb, elmo is the usual guardian of that archive.  mars might also be interested.14:55
marsmaxb, I can file an RT for you.  It is rabbitmq for hardy, right?  Do we still support hardy in the PPA?  I thought we skipped to the next LTS?14:58
maxbI believe there's an email from flacoste stating that we ought to support what production is running in the PPA14:59
jelmermaxb: FWIW the landscape folks have a backport of rabbitmq to hardy in their PPA.14:59
maxblifeless asked mthaddon about this on launchpad-dev@, but the thread died14:59
mthaddonmaxb: the request has been filed, we're just working on other stuff (based on priorities that we've agreed with the LP devs)15:00
marsmthaddon is usually swamped, and rarely checks mail unless it is an RT15:00
mthaddoniow, it should get done at some magical time in the future when we have time to do it :)15:00
maxbmthaddon: ok. That bit of info didn't make it into the public dev list :-)15:00
maxbMeanwhile, we can't/shouldn't update the launchpad-dependencies version in hardy in the PPA, unless we make a hardy branch that omits rabbit15:02
salgadosinzui, do you know what external services/scripts use xmlrpc.launchpad.net?15:23
sinzuisalgado, I do not15:24
salgadoflacoste, do you? (^)15:24
james_wsalgado: bazaar at least15:24
salgadoyeah, I thought bazaar would be one of its users.  I'm trying to find all of its users to see if we'd need it for vostok, in order to make sure https://code.edge.launchpad.net/~salgado/launchpad/layer-specific-navigation/+merge/32124 is not going to be a problem for us15:27
salgadojames_w, btw, it'd be great if you could have a look at the cover letter there and tell me what you think15:27
jmlsalgado, maybe your best bet is to ask a losa for the logs?15:28
salgadoindeed, that should work.  thanks jml15:28
james_wsalgado: I think that if we do want xmlrpc to support any existing clients then we likely won't need to change the navigation15:30
james_wsalgado: would it be feasible to have a vostokxmlrpc layer if we needed?#15:31
salgadoI think so15:32
=== deryck is now known as deryck[lunch]
jmlsalgado, how do I look at the apidocs?16:18
salgadojml, apidocs.launchpad.dev16:18
jmlsalgado, and that starts from "make run"?16:18
salgadoyep16:19
jmlis there a way to do a static build of them?16:19
salgadojml, yes, gary has one at https://devpad.canonical.com/~gary/apidoc.launchpad.dev/++apidoc++/static.html16:19
jmlsalgado, do you know how to make one of those?16:20
jmlhmm. it looks much better from the live site.16:22
salgadojml, I think gary pointed something like wget at apidocs.lp.dev/static.html to generate that16:22
jmlheh, although clicking "Book" makes an oops.16:22
jmlsalgado, ok, thanks.16:23
james_wdo I need to do anything special to do LFA.read() in the testsuite?16:25
jmljames_w, maybe be in the librarian layer?16:25
jml(I honestly have no clue)16:25
james_wIt appears to be a problem with something about http_proxy, which is then masked in to an error "raise LookupError, aliasID"16:25
james_wjml: yep, already hit that one16:25
jmljames_w, perhaps you could find out what PGPSignatureNotPreserved in test_uploadprocessor does and copy that16:26
james_wjml: doesn't seem to do anything special. I suspect an environment issue.16:28
jmljames_w, good luck with that. sorry  I couldn't help more.16:29
* jml goes to purchase some consolation chocolate16:29
=== salgado is now known as salgado-lunch
maxbjelmer: Don't forget to 'bzr mark-uploaded' and push16:40
leonardrup-to-date launchpad branch is getting deprecation warning from bzrplugins/builder ("please use 'debian' instead of 'debian_bundle'). anyone know what's up?16:42
=== Ursinha is now known as Ursinha-afk
maxbleonardr: I'll guess that that's been triggered by upgrading to the newer python-debian in the launchpad ppa16:50
james_whmm, no it's nothing to do with http_proxy it seems. It seems like the librarian just doesn't have the file. Maybe there is a commit missing somewhere or something16:51
bigjoolsjames_w: you need to commit16:51
bigjoolsor it doesn't write the file16:51
* bigjools thinks commits are evil in tests :(16:52
james_wthanks bigjools16:55
=== deryck[lunch] is now known as deryck
=== Ursinha-afk is now known as Ursinha
leonardrsalgado, when i integrate the version of lazr.restful with your change into launchpad i get some test failures. can you take al ook?17:09
=== beuno is now known as beuno-lunch
=== salgado-lunch is now known as salgado
salgadoleonardr, sure, send them my way17:21
=== bigjools changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 4 of 10.08, Release Manager: bigjools | PQM is release-critical | firefighting: - | buildbot/pqm has been switched to watching the *lucid* builders | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in irc://irc.freenode.net/#launchpad-reviews | Use http://paste.ubuntu.com/ for pastes
leonardrsalgado, http://paste.ubuntu.com/476022/17:24
leonardrany clues?17:24
* salgado checks17:26
salgadoleonardr, is that the only failure you got?17:27
leonardrsalgado: there were a bunch of failures afterward but they were all caused by spec not being defined17:27
salgadoleonardr, right, so only this test failed, then?17:28
leonardrsalgado: there was also a failure in cache.txt but i don't think that was your fault17:28
salgadoleonardr, apparently that's a bug which is only exposed when we export an entry with no fields/operations.  I should be able to get it fixed quickly17:32
leonardrsalgado: lazr.restful bug? ok17:32
salgadoyes17:32
salgadoleonardr, got http://paste.ubuntu.com/476025/ when running buildout on a new lazr.restful branch.  any idea why?17:37
leonardrsalgado: yeah, benji changed buildout to disallow 'picked' versions of the dependencies. they have to be explicitly named in versions.cfg17:38
leonardri must have had that one installed globally or something, so i missed it17:39
leonardradd distributed = 0.6.14 to versions.cfg in the appropriate place and rerun17:39
=== beuno-lunch is now known as beuno
salgadoleonardr, I'm seeing a failure on webservice-declarations.txt on trunk.  is that known?18:26
salgadoleonardr, and http://paste.ubuntu.com/476043/ has a fix for the problem you encountered when running LP's test suite18:28
=== matsubara is now known as matsubara-lunch
marsrockstar, ping, Tarmac question for you18:40
rockstarmars, pong.  Also, #tarmac if I'm not around.18:41
marsoh, cool18:41
rockstarEr, if I'm ever not around.18:41
leonardrsalgado: give me the test failure?18:43
salgadoleonardr, http://paste.ubuntu.com/476065/19:19
salgadoleonardr, does the fix look ok to you?  would you like me to create a merge-proposal for it?19:20
jmlo/` Mammal, mammal. Their names are called, they raise a paw, the bat, the cat, dolphin and dog, koala bear and hog! o/`19:21
leonardrsalgado, i think start should really be 0, so i don't know what's up19:22
salgadoleonardr, doesn't it fail for you on a trunk branch?19:23
leonardri don't think so, let me try19:23
leonardrsalgado: no, i get no failures19:24
leonardryou are at revno 137?19:25
salgadoyes, 137.  using python2.619:26
leonardrweird19:29
=== matsubara-lunch is now known as matsubara
* salgado starts a new trunk branch from scratch, just in case19:32
jmlsomeone might be interested in reviewing https://code.launchpad.net/~jml/launchpad/readme/+merge/3223819:32
jml(not that I can land it)19:32
salgadoleonardr, it doesn't fail on this branch I started from scratch19:33
salgados/branch/tree19:34
jmlflacoste, you might actually be interested ^^19:34
flacostejml: reviewed19:39
flacostejml: not that i have any comments apart awesome!19:39
jmlflacoste, thanks. I'll land that first thing Tuesday :)19:39
flacostejml: that's today or next week?19:39
jmlwhenever PQM opens.19:39
* rockstar heads to lunch19:40
james_wthanks jml20:43
lifelessmatsubara: I'm here20:55
=== Ursinha is now known as Ursinha-lunch
=== Ursinha-lunch is now known as Ursinha-afk
rockstarIs there a way to tell what user I'm logged in as in the tests?  I'm pretty sure I have the right permissions to get to these attributes, but for some reason the test is saying no.22:12
lifelessgetCurrentInteraction or something22:13
lifelessits the 'interaction' that defines 'who is logged in'22:13
lifelesslook in lp.testing._login22:14
rockstarlifeless, great, thanks.22:14
mwhudsonthere's get_current_principal somewhere in canonical.launchpad.webapp22:15
mwhudsonrockstar: there's also getUtility(ILaunchBag).user22:16
mwhudsonif the two disagree, confusion can certainly result22:16
=== matsubara is now known as matsubara-afk
rockstarmwhudson, yeah, I had your suggestion, and it seems to not be working.22:16
* mwhudson afk22:17
lifelessgrah I remember what I wanted leonardr for22:17
lifelessnope, forgotten again22:18
jmljames_w, any time22:23
=== salgado is now known as salgado-afk
lifelesswhen is the next staging update due ?23:05
=== Ursinha-afk is now known as Ursinha
wgrantlifeless: It looks like one might be in progress now.23:13
wgrantAlthough it hasn't been trying to update regularly since it returned last night...23:13
wgrantSo the break in logging may not be indicative of an in-progress update, but just that someone hasn't switched the cron job on properly.23:14
lifelesslosa ping ^23:20
lifelessnice, edge is looking way better than prod now23:22
lifelessmean 0.37 stddev 0.6223:22
lifelessmean 0.36 stddev 0.9423:22
lifelesswow, Public XML-RPC is terrible23:23
wgrantIs that over all requests?23:23
lifeless8.36 4.4823:23
lifelessmwhudson ^23:24
wgrantWhat's public XML-RPC, except for lp: lookups?23:24
lifelesswgrant: I'm not sure23:24
lifelessbut 8 seconds of db time ain't brilliant23:24
lifelessdb avg stddev23:24
lifeless7.49 2.6123:24
wgrantEw.23:24
lifelessfor that group23:24
lifelesstranslations are also up there23:26
lifeless1.42 1.8923:26
lifelesscompared to the overall app23:26
lifelessproblem pages23:26
lifelessArchive:+copy-packages23:26
lifelessArchive:+delete-packages23:26
lifelessArchive:+index23:26
lifelessArchive:+packages23:26
wgrantI knew +delete-packages would be up there, but i didn't think it was that bad.23:26
wgrantAlso, is there a reason that the OOPS summaries are private?23:26
lifelessBazaarApplication:+index23:26
wgrantDon't they just contain page IDs, not URLs?23:26
lifelesswgrant: they contain urls23:26
lifelessbut we can fix23:26
wgrant:(23:26
lifelessplease file a bug23:26
wgrantAgainst what?23:26
wgrantoops-tools?23:26
lifelessyeah23:28
lifelessBranchMergeProposal:+index23:29
lifelessBranchSet:CollectionResource23:29
lifelessBugTask:+create-question is -terrible-23:29
lifeless11.03 8.9723:29
lifelessonly two hits, but *boy* where they doozies23:30
wgrantI don't know how it's so bad, given that it's normally used on new bugs.23:30
lifelessno, its not23:30
lifelesscan't be given the hit count23:30
wgrantHm.23:30
lifelessBugTask:+distrotask23:30
lifelessBugTask:+editstatus-page23:30
wgrantI've hopefully fixed those.23:30
wgrantWell, that and the heat fix.23:30
lifelessBugTrackerSet:+index wow23:31
lifeless14.63 5.5823:31
wgrantIt's unbatched and going to be selecting lots of tasks, I guess.23:31
lifelessBuilder:+history23:31
lifeless8.59 2.4223:31
wgrantIt probably needs some prejoining for the new schema.23:31
lifelessDistribution:+addquestion23:32
lifelessthats probably search performance, which is fixed23:32
lifelessDistribution:+archivemirrors23:32
lifeless7.76 4.1823:32
lifeless99% in 19 seconds23:32
lifelessbet you its on the lpnet timeout summary23:32
lifelessDistribution:+assignments23:32
lifeless15.98 7.7723:33
lifelessDistribution:+branches 5.44 2.7623:33
lifelessDistribution:+bugs 3.24 2.9823:33
lifelessDistribution:+bugtarget-portlet-bugfilters-stats 6.79 1.6423:34
lifelessDistribution:+bugtarget-portlet-tags-content 6.35 2.0023:34
lifelessDistribution:+cdmirrors23:34
lifelessDistribution:+filebug - again likely search and thus fixed.23:35
lifelessDistribution:+filebug-show-similar ditto23:35
lifelessDistribution:+patches23:35
lifelessDistribution:+ppas23:35
lifelessDistribution:+questions23:36
lifelessDistribution:+search23:36
lifelessDistributionSourcePackage:+addquestion - again, hopefully fixed23:36
lifelessDistributionSourcePackage:+filebug-show-similar ditto23:36
lifelessDistributionSourcePackage:+questions ditto23:37
lifelessDistroArchSeries:+builds 3.50 4.0423:37
lifelessDistroArchSeries:+index 2.39 3.1023:37
lifelessmwhudson: hi23:38
lifeless10:22 < lifeless> mean 0.36 stddev 0.9423:38
lifeless10:23 < lifeless> wow, Public XML-RPC is terrible23:38
lifeless10:23 < wgrant> Is that over all requests?23:38
lifeless10:23 < lifeless> 8.36 4.4823:38
lifelessmwhudson: ^ page performance stats23:38
lifelessDistroSeries:+builds 6.47 4.5023:39
lifelessDistroSeries:+cve 19.64 0.0023:39
mwhudsonlifeless: got a link?23:39
lifelesshttps://devpad.canonical.com/~stub/ppr/lpnet/latest-daily-combined.html23:39
mwhudsonlifeless: i suspect that's actually private xml-rpc stuff23:39
mwhudsongetJobForMachine does a good job of contending with itslef23:40
lifelessDistroSeries:+needs-packaging 12.93 7.6323:40
lifelessDistroSeries:+templates 18.53 0.7323:40
lifelessLibraryFileAlias:StreamOrRedirectLibraryFileAliasView 12.45 9.5523:40
mwhudsonyeah, regex for private xml-rpc looks wrong23:41
lifelessMaloneApplication:+bugs 7.09 3.1923:41
lifelessPerson:+editproposedmembers 12.22 6.9323:41
lifelessits a little worrying how fast I'm getting at eyeballing 99% on this thing23:42
lifelessPerson:+patches 17.61 0.0023:42
lifelessProduct:+filebug-show-similar search again23:43
lifelessProductSet:+project-cloud 6.22 4.3123:43
lifelessProjectGroup:+milestones 4.87 5.9423:43
mwhudsonproject-cloud _really_ should be in memcache23:43
mwhudsonor something23:43
lifelessQuestion:+confirm 4.87 6.7523:43
lifelessQuestion:+edit 6.66 6.8723:44
lifelessmwhudson: we need the _miss_ time to be subsecond23:44
lifelessmwhudson: after that we can talk caching23:44
lifelessif we need to memoise it to make it subsecond we should do that, but it should be persistent, no ?23:44
mwhudsonlifeless: maybe generated daily and stuffed somewhere that the website can access then?23:44
mwhudsondoing it 'in-line' in the appserver is fairly bonkers23:45
lifelessmwhudson: agreed23:45
lifelessQuestion:+makebug 4.61 7.73 - probably search23:45
_mup_Bug #4: Importing finished po doesn't change progressbar <Launchpad Translations:Fix Released by carlos> <Ubuntu:Invalid> <https://launchpad.net/bugs/4>23:45
lifelessRootObject:+recently-changed-branches 6.68 3.0523:45
lifelessRootObject:+recently-registered-branches 5.08 2.3023:45
lifelessTranslationGroup:+index 6.82 5.1023:46
lifeless-fin-23:46
lifelesswe fix those to lower their 99% point, we can lower the timeout some more23:46
thumperlifeless: the branch ones shouldn't be too hard23:51
thumperlifeless: I've not looked at them23:51
lifelessthumper: sure, I'm looking forward now that we've got edge OOPS really under control23:52

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