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

wgrantlifeless: How old is staging's DB?00:57
wgrant(I need to get a rough idea of the publications demolished by bug #653382)01:00
_mup_Bug #653382: BinaryPackagePublishingHistory._getOtherPublications fails to restrict the distroseries context <Soyuz:In Progress by wgrant> <https://launchpad.net/bugs/653382>01:00
lifelesswgrant: I'm not sure01:09
wgrantIt appears to be from the 16th.01:11
wgrantlifeless: Could you please run http://paste.ubuntu.com/505395/?01:13
wgrant(hm, it has a shiny new theme)01:13
lifelesswgrant: terrible query01:23
lifelesswgrant: not exists is probably better than count(*) == 0;01:23
wgrantlifeless: Fair point.01:24
lifelessalso its probably flattenable into a single query rather than correlated subquery01:25
lifelesswhich will tend to be much faster01:25
wgrantHow could I flatten that?01:25
lifelessusing group by?01:26
wgrantOh, true.01:26
lifelessor possibly01:27
lifelessjust use a left outer where bpph.id is NULL01:27
lifelessbut I'd have to actually think to suggest more01:27
lifelesswgrant: its going to be a while, the query is expressed poorly I think.01:32
lifelesswgrant: by a while, I mean its running and has been for 10 minutes01:33
lifelessI'll be back in a bit01:36
nigelb2501:44
wgrantlifeless: Yeah, 3am SQL isn't optimal, as it turns out.01:45
wgranthttp://paste.ubuntu.com/505410/ removes the subquery, and gets rid of one of the BPPH scans.01:47
wgrantAnd is generally a whole lot less hostile.01:47
wgrantBut it will still probably take a while, given what it's doing.01:50
wgrantI could reduce the dataset to publications superseded since the bug was introduced, but I know there have been similar bugs in the past, so I'd like to see that there is no older broken data too.01:51
wgranthttp://paste.ubuntu.com/505415/01:57
lifeless 12374402:10
lifeless(1 row)02:10
lifelessTime: 768829.442 ms02:10
lifelessthats using 'not exists (select binarypackagepublishinghistory.id ...02:10
wgrantHm, that's a few.02:10
lifeless505415 is running now02:11
wgrantThanks.02:11
wgrantEr, 505415 doesn't have a COUNT, so it's going to give a crapload of output.02:13
lifelesswhen it finishes :P02:16
lifelessI'll hit END02:16
lifelesswgrant: the 505415 query is odd02:18
wgrantHowso?02:18
lifelesswgrant: if you want 'no other_bpph' then use join, not left join02:18
lifelessand drop the having COUNT02:18
wgrantEr. Won't a JOIN against something that doesn't exist result in... nothing?02:19
lifelessright, so those rows are skipped.02:19
lifelessthink sets02:19
lifelessnot procedure02:19
lifeless3662 rows02:21
wgrantHmm. I wonder what the other 120000 are.02:22
lifelessmwhudson: 'test' passed ec2, of course testfix then fcked us.02:23
mwhudsonlifeless: \o/, at least a little bit02:23
lifelessyeah02:23
lifelesswill bomb them in at EOD02:24
wgrantlifeless: How would you rewrite that query to not left join? I want the IDs, so joining against an empty set is not going to help me much.02:25
lifelessI'd start by writing out in english what I want02:26
lifelessI'm not clear what you want02:26
lifelessthe two versions I've seen are doing different things. (thus the different results)02:27
wgrantI want to find superseded binary publications where the dominant build has no publications in that context.02:28
wgrant(context == (archive, distroarchseries, pocket))02:28
wgrantEr, (archive, distroseries, pocket) for this particular case.02:29
lifelessso 'superseded but nothing superseding it' ?02:29
wgrantRight.02:29
wgrantWe record the build that supersedes each publication.02:30
lifelessso02:30
lifelessto first address the left join/join lemma02:30
lifelessif I have two tables02:30
lifelessSUPERSEDED SUPERSEDES02:31
lifeless(imaginary)02:31
lifelesswith supereseded.id == supersedes.superseded_id02:31
lifelessthen ED JOIN ES group by ED.id having count(ES.id) == 002:32
lifelessis equivalent to02:32
lifelessED LEFT JOIN ES group by ed.id02:32
lifelessbah02:32
lifelessgot the LEFT in the wrong example02:32
lifelessthen ED LEFT JOIN ES group by ED.id having count(ES.id) == 002:32
lifelessis equivalent to02:33
lifelessED JOIN ES group by ed.id02:33
wgrantWon't ED JOIN ES return the opposite of what we want?02:33
lifelessoh right02:33
wgrantIt's the same as HAVING COUNT(ES.id) > 002:33
lifelessleft join where ed.id is NULL02:34
wgrantI guess that might work.02:34
lifelessnow, one question is whether ES is better correlated or not; if we can make it very fast to satisfy for a given ED02:35
lifelesswgrant: I meanT Left join where es.ID IS null02:35
wgrantRight, that makes more sense than JOIN.02:36
* rockstar slaps buildout02:37
lifelessnow one issue here02:37
lifelessthere is what, 100 times as many ED as ES02:37
lifelessso it might be better to start with dominant builds02:37
lifelessand for each dominant build return: content, publication, (a) superseded build02:38
lifelesswhich should look at 1% of the data we're considering today, no ?02:39
lifelessawol for a bit02:39
lifelessbbiab02:40
wgrantlifeless: Where did you pull the 100 figure from?02:43
wgrantI guess starting at BPB might be a little smaller, but we would still need to select every single superseded BPPH.02:44
wgrantES's intersection with ED is massive.02:44
lifelesswgrant: well, gimme a query to get stats02:44
lifelesswgrant: we'll see what my ass looks like02:45
wgrantIt's not clear what the stats should be.02:45
wgrantIt's also not clear why we're trying to optimise a query that will hopefully only be run once :P02:45
michaelh1yao, could you put LP: 653316 on your list please?02:56
* michaelh1 types on the wrong channel02:56
rockstarwallyworld__, how's things?03:21
wallyworld__rockstar: pretty quiet. everyone's away03:21
wallyworld__i'm having "fun" with YUI03:22
rockstarwallyworld__, me too!03:23
wallyworld__:-)03:23
rockstarwallyworld__, it's quite possible my fun will be breaking yours.  :)03:23
rockstarwallyworld__, are you working on the thing you and I talked about last week?03:23
wallyworld__yeah, got the endpoint all set up. just having fun figuring out the YUI object model so I can get the info I need from client side and send it to the server03:24
wallyworld__rockstar: i just got a call from my son who is sick at school. i have to duck out briefly to pick him up03:24
rockstarwallyworld__, okay.  I just wanted to make sure you had someone around with thumper out this week.03:26
=== Ursinha is now known as Ursinha-afk
lifelesswgrant: several reasons:04:28
lifeless - if the data model doesn't support this sort of query, we're going to be doing it more than once, eventually.04:28
lifeless - e.g. in the garbo. And 10 minute queries are flat bad [in the absence of dedicated data mining clusters]04:29
lifeless - You're not going to want to fix up the prod data? We can't sensibly run a 10 minute query on lpprod04:29
wgrantTrue.04:34
lifelesshmm04:38
wgrantlifeless: How long did 505415 take on staging?04:51
lifeless600941.564 ms05:21
lifelessstatik: don't cringe at the ui, but - https://edge.launchpad.net/+feature-rules05:23
lifelessstatik: thats our 'takes effect immediately' config system, up and live05:24
lifelessstatik: we can also use it to drive A/B tests and similar experiments05:24
* jtv peeks as well05:24
wgrantlifeless: Hmm. Not fantastic. But it'd probably be faster on a production slave, and we do already have some regular multi-minute queries (on the master, no less).05:25
lifelesswgrant: please file bugs for all those queries that you know of.05:25
lifelesswgrant: any query over 5 seconds is a bug.05:25
wgrant(although I know how to optimise those queries down to a few seconds, I haven't got around to doing it yet)05:25
wgrantThey're in the publisher.05:25
lifelesswgrant: any *write* query over 1 second is a bug.05:25
lifelesswgrant: doesn't matter.05:25
lifelesswgrant: I should say, any write transaction, from the first update/insert/delete through to commit, taking more than 1 second, is a bug.05:26
wgrantRight.05:26
statikawesome05:26
wgrantThe publisher is itself pretty much a bug. We all know that.05:26
statikhey jtv! how about a phone call?05:26
lifelesswgrant: I like having bugs if *someone* knows there is a problem.05:26
jtvstatik!  Not sleeping yet?05:26
* jtv scrambles around for headsets05:26
statikjtv: nosir, i hung around specially for you05:27
jtv:)05:27
* jtv takes leisurely sip of coffee05:27
lifelesswgrant: so, please file them?05:28
lifelesswgrant: if you get pushback, I'll go to bat over their existing.05:28
wgrantI suppose I might be able to use that same optimisation in the repair query.05:35
wgrantMm, no, not really.05:36
wgrantIt makes too many assumptions that are now broken.05:36
=== almaisan-away is now known as al-maisan
lifelessstub: https://lpbuildbot.canonical.com/builders/prod_lp/builds/120/steps/shell_7/logs/summary06:35
lifelessstub: thats a prod-lp run, the same passed ec2 earlier06:36
lifelessstub: I'm wondering if its a python/twisted version issue?06:36
stublifeless: No such file lib/lp/services/scripts/tests/cronscripts.ini06:38
stublifeless: That is a relative path, so a current working directory issue06:38
lifeless*blink*06:39
stubNo idea how it got through ec2 though if that is really the case\06:39
lifelessstub: I landed the CP using ec2land06:39
lifelessstub: its 50 or so revs that have all passed qc06:39
lifelesshttps://code.edge.launchpad.net/~lifeless/launchpad/cp/+merge/3734506:40
stublifeless: maybe a isolation/test ordering issue with an earlier test changing the cwd?06:41
lifelessstub: could be; maybe BaseLayer should check that cwd hasn't been fucked with06:41
lifelessin bzrlib we ensure its not messed up in the base class, *and* we don't use chdir except in very controlled circumstances (because its not nice as a library to use it :P)06:42
stubIt does already :-/06:42
lifeless><06:42
lifelessmwhudson: wow, something chomped on the encoding in that mail06:43
stubDoes that file still exist in the branch that failed?06:43
lifelessits production-devel06:44
lifelesschecking06:44
lifelessstub: yes06:45
lifelessbzr ls lib/lp/services/scripts/tests06:46
lifelesslib/lp/services/scripts/tests/__init__.py06:46
lifelesslib/lp/services/scripts/tests/cronscripts.ini06:46
lifeless...06:46
stubCan add the cwd to the error if that file isn't found to check my initial theory (although I still can't see how it would be possible, it is my best guess).06:47
lifelessit could be a dict order thing between python versions06:47
lifelesscausing the layers to be grouped in a different order.06:47
lifelessstub: alternatively, where are we at in terms of getting to python 2.6 everywhere? [db server upgrades]06:48
lifelessforwarded you the ec2run results for the branch06:49
stubWe have done hackberry, we have chokecherry, wildcherry, poha and plantain to go. As far as Python 2.6 everywhere, the important one is wildcherry06:49
lifelesswhats the eta on wildcherry?06:49
lifelessI've never heard of poha and plaintain :(06:49
stubI was planning to do it after chokecherry, but there is nothing stopping us doing it next now I think about it.06:50
stubpoha and plantain are the SSO database servers.06:50
lifelessah kk06:50
lifelessstub: rs=me if you wanted to land something to debug this, but I think upgraded bb to python2.6 for prod_lp is probably best, if we can get wildcherry done.06:57
lifelessstub: its past EOD for me, so I'll only be sporadically around now.06:57
lifeless(you'd need to send it straight to production-devel)07:04
jtvlifeless: you wouldn't happen to know where the branch scanner does its get_r[ow]_server() and start_server(), would you?07:34
jtvand hi, btw :)07:34
* jtv now sees the eod note07:34
noodles775Hi jtv1, is there one particular view in translations that displays multiple selectable items for form processing which you'd recommend looking at? I want to compare with teh way we do it for copy/delete packages in case there are better examples.08:45
noodles775Specifically, creating a vocabulary based on the current view's search terms...08:45
danilosnoodles775, we've got some stuff like that, but none of that is, as you put it, "recommended to look at" :)08:46
noodles775heh, OK. Thanks danilos.08:46
danilosnoodles775, looking at import queue stuff is of that type (lp.translations.model.translationimportqueueentry and on from there)08:47
* noodles775 looks08:47
adeuringgood morning08:48
jtv1noodles775: whatever you do, don't look at our languages list.  :)08:48
=== jtv1 is now known as jtv
jtvhi adeuring08:48
adeuringhi jtv!08:49
noodles775danilos, jtv: OK, it looks like you guys similarly use a VocabularyFactory when its dependent on the context object, ah, but you pass the view into __init__, that's what I was looking for. Thanks!08:50
noodles775Morning adeuring, bigjools08:51
adeuringhi noodles775!08:51
jtvdanilos: uh-oh, that sounds like he may imitate something we did.  Should we stop him?08:51
bigjoolsmorning all08:51
jtvmorning bigjools!08:52
danilosjtv, heh, in general yes, but let's run an experiment and see where it takes him :)08:52
danilosbigjools, morning08:52
noodles775jtv: heh, afaics, it's the most zope-like way to do it (using a vocabulary factory which is evaluated when the view is initiated etc.08:52
jtvdanilos: good point… this way he gets the blame or we get the credit08:52
noodles775lol08:52
jtvTake.08:52
jtvDid I say "get" the credit?08:53
jtvmwhudson: do you know if getting, starting, and stopping servers as returned by get_ro_server() is something we can do very frequently?08:54
gmbhurrah for code that fixes things for vague and (to me) confusing reasons.09:00
lifelessjtv: hi, 'sup ?09:01
jtvlifeless: hi, I _think_ I found the answer more or less the second you answered.09:01
lifelesshah, kk09:01
jtvI was trying to figure out whether a transport or server (I'm not sure of the terminology) for lp-internal:/// branch URLs was running when the branch scanner triggers a particular kind of work.09:02
bigjoolslifeless: hi09:02
lifelessbigjools: evening!09:02
bigjoolslifeless: did you fix prod_lp by any chance?09:02
lifelessthe builder yes; the build decided to fail on some of stubs new stuff; looks like a test that is doing chdir or something09:03
lifelesswe *think* upgrading the builder to py 2.6 will fix it (because the cp passed ec2)09:03
bigjoolslifeless: I've been trying to get a CP done for a week now, this is crazy.  I am going to do a cowboy instead.09:03
lifelessbigjools: have you landed the revision ?09:03
bigjoolsyes09:03
lifelessthen it should be deployable09:03
bigjoolsfrom prod-devel?09:04
lifelesswe can deploy from any branch09:04
bigjoolsok09:04
lifelessif the rev is specified09:04
bigjoolslemme find it09:04
lifelessbut, I thought your stuff hit prod-stable last week09:04
lifelessrev 9777 in prod-stable09:04
lifelessisn't that your thing?09:05
bigjoolsno09:05
bigjools9779 in devel09:05
lifelessoh, 9778 and 977909:05
bigjoolsyeah, 9779 had the oops isolation fix in it to see if that helped09:06
bigjoolsthat fix is critical for the platform team09:06
lifelessgot a link to a failure from last week?09:06
lifelessdid you land your cp's via ec2? [If so that implies real seriously annoying fuckage in the hardy builder]09:06
bigjoolslifeless: https://lpbuildbot.canonical.com/builders/prod_lp/builds/119/steps/shell_7/logs/summary09:07
bigjoolsno, withoyt09:07
bigjoolswithout09:07
lifelessahhh09:07
bigjoolsI don't use ec209:07
lifelessI -hate- the openid glue on buildbot09:07
mrevellMorning09:08
lifelessthat does look like the oops issue doesn't it09:09
bigjoolsaye09:09
lifelessbigjools: so my branch included your stuff and passed ec209:09
* bigjools brb09:09
lifelessbigjools: but i'd -really- like it if we consistently use ec2 when landing stuff on production-stable09:09
lifelessbigjools: anyhow09:09
lifelessbigjools: I'm +1 on a cowboy of your revisions (e.g. deploy from prod-devel rev 9779)09:10
lifelessbigjools: stub: is working on wildcherry now I think.09:10
lifelessI'll send mail then off again.09:10
wgrantbigjools: Feel like some DB surgery?09:10
stubeh?09:10
lifelessstub: well, 'you' meaning you're coordinating, no ?09:11
bigjoolslifeless: I've never used ec2, and I'm not about to start :)09:13
bigjoolswgrant: wassup?09:14
lifelessbigjools: that sounds unhelpful and negative09:14
bigjoolslifeless: what?09:14
lifelessbigjools: but its after 9pm, so I'm going to ignore it and go unstrap more boxes09:14
bigjoolsthat's a particularly unhelpful comment yourself09:14
lifelessblah it is09:14
lifelesssorry09:14
wgrantbigjools: See https://edge.launchpad.net/ubuntu/lucid/i386/python-imaging-doc -- ignoring the new Proposed publication, spot the issue.09:14
lifelessso, ec2test gives us important guarantees for bottleneck branhces09:15
bigjoolslifeless: I run the test suite locally, always have done.09:15
lifelessbigjools: so one of the things that ec2 does is run in a consistent clean state each time; do you arrange that locally as well?09:15
bigjoolslifeless: yes09:16
lifelessbigjools: I'm fine with folk running the test suite locally, it just seems particularly hard to make local match 'what buildbot does'09:16
lifelesshell its hard to even make buildbot match buildbot at the moment.09:16
bigjoolslifeless: if nobody ran it locally (there's 2 of us) then you'd not see local issues either09:16
lifelessbigjools: I think you should ignore my previous snarky comment; am very tired, been battling a sinus infection all week, terrible beds at the hotel in sydney, and *yawn*09:17
lifelessbigjools: -sorry-09:17
bigjoolswgrant: groan09:17
bigjoolslifeless: no worries, it's not good to work when tired eh? :)09:17
wgrantbigjools: Yes. My fault, due to unobvious Storm quirks plus shitty old tests which missed it. Bug #653382.09:17
_mup_Bug #653382: BinaryPackagePublishingHistory._getOtherPublications fails to restrict the distroseries context <Soyuz:In Progress by wgrant> <https://launchpad.net/bugs/653382>09:18
wgrantEasy enough to fix, fortunately.09:18
lifelessbigjools: I wasn't ;) I wandered past and saw a ping... then you pinged as well ;)09:18
bigjoolsah yes I saw that09:18
bigjoolslifeless: ok :)  thanks for the +1 on the cowboy anyway09:18
bigjoolswgrant: how many packages are affected?09:19
wgrantbigjools: lifeless ran a query for me on staging (which has data from 3ish weeks ago), and there were around 3000 publications. I'm not sure if the query was perfect, nor how many of those were in the primary archive.09:20
wgrantFor those in the primary archive we just need to set them back to Published, and unset datesuperseded and supersededby, since they'll all be in Release.09:21
wgrantAnd there should be just about no PPA publications affected, since the use cases there are different.09:21
bigjoolsthis is .... not good09:22
wgrant... yes.09:22
bigjoolscan you show me the query please?09:22
wgranthttp://paste.ubuntu.com/505415/09:22
wgrant(the code rolled out on 2010-08-11 or so)09:23
wgrantIt finds publications superseded by a build that's not published in the context.09:23
bigjoolswhat about deletions?09:24
bigjoolsthat'll pick up valid deletions09:24
wgrantIt won't.09:24
wgrantDeletion doesn't set supersededby.09:24
bigjoolsaha09:24
bigjoolsumm has death row reaped these?09:25
wgrantWhen I discovered this on Saturday, I initially thought that mass expiration last week would have killed lots of binaries that were hit by this. But it turns out that it wouldn't have.09:25
wgrantNo.09:25
wgrantBecause the dominator doesn't run over frozen pockets.09:26
wgrantSo they're Superseded, but have not been scheduled for removal.09:26
bigjoolsthat's lucky :)09:26
wgrantIf they were deathrow candidates, we would have noticed almost immediately that something was wrong.09:26
bigjoolswhat about maverick though?09:26
wgrantRelease pocket changes can only happen in maverick.09:27
wgrantSo it doesn't matter that they leak into maverick through this bug, because they were performed in maverick anyway.09:27
wgrantSo only frozen release pockets (and possibly some PPAs, but that's probably tiny) are affected.09:28
bigjoolsah maverick only has a release pocket at the moment09:28
wgrantThe query still respected pockets.09:28
wgrantMaverick has -proposed too.09:28
bigjoolsreally? so why didn't the dominator kill maverick's packages then?09:29
wgrantIt did!09:29
wgrantBut they were meant to be killed.09:29
bigjoolstrue09:29
wgrantAll of the problematic dominations were meant to remove things from maverick, since that's the only place they can happen.09:30
bigjoolslet's get the code fix in before doing this then09:31
wgrantI think this is about the fourth time this code has broken :/09:31
wgrantCertainly, yes.09:31
wgrantWas just letting you know the details.09:31
bigjoolswgrant: thanks09:32
bigjoolsthe dominator code scares me :)09:32
wgrantIt is a bit like that.09:32
wgrantThis was only noticed when a lucid-proposed upload landed in NEW, which strongly suggests that nothing bad made it further than the DB.09:38
jmlhello09:40
bigjoolsmorning jml09:51
jmlbigjools: good morning.09:53
jmlWhat merriment and hijinx are in store for me today, I wonder.09:58
* wgrant lures jml back to engineering.09:58
jmlI suspect I've got more hiring than engineering to be doing.09:59
wgrantThere seems to have been a bit of that lately.09:59
jmlit never seems to stop10:02
wgrantbigjools: Thanks.10:14
bigjoolsnp10:15
bigjoolswgrant: I'm trying to figure out if we can make your query faster10:17
wgrantbigjools: So was I.10:17
bigjoolsmaybe a subselect?10:18
wgrantIt's possible we could use an optimisation like the one in Dominator.judgeAndDominate/10:18
wgrantWhat sort of subselect?10:18
wgrantMy initial version had a NOT EXISTS subselect, and was even slower.10:18
bigjoolsurgh10:18
bigjoolsmaybe stub has some time to help :)10:19
wgrantbigjools: Does the query look otherwise correct?10:20
bigjoolswgrant: it's hard for me to tell, to be frank10:20
wgrantHeh, yes.10:20
bigjoolsthe left join is confusing me10:20
bigjoolsand it doesn't help that my sql is shite10:20
wgrantThe subselect was a bit more obvious.10:21
wgrantBut I'm taking each publication and left joining any publications of the supersededby build in the original publication's context.10:22
wgrantThen finding those that have no publications.10:22
jtv1danilos: just to let you know, the bzr plugin does what we expect (even more so than other API stuff): uses production xmlrpc on production, edge xmlprc on edge, and staging xmlrpc on staging.11:18
danilosjtv1, ok, cool, thanks for checking11:19
jmlbigjools: has demand for PPA builds dropped or is jelmer's improvement really as awesome as the graphs make it look?11:23
bigjoolsjml: the latter11:23
wgrantIt could easily have increased throughput 300%.11:23
bigjoolsbear in mind that we used to spend up to around 20 minutes blocking on uploads per scan...11:23
bigjoolsit's the most awesome change on soyuz I've seen in 3 years11:24
jmlwgrant: I've only really been looking at queue length. it's much shorter, which presumably means that people are getting what they want much faster.11:24
jmlbigjools: yeah. it's amazing.11:25
wgrantIt will be interesting to see how it copes in a couple of days when all the builders disappear.11:25
jmlbigjools: also shows that sabdfl was probably right to refuse more hardware11:25
bigjoolsjml: once we get this change done that we're working on too, then it'll be more awesomererererer than anything11:25
bigjoolsjml: totally11:25
bigjoolswe always knew utilisation was crap11:25
jmlalthough, as wgrant says, we'll find out if we need more *dedicated* hardware fairly soon.11:26
bigjoolsyip11:26
wgrantSo the graphs all look healthy? My occasional /builders checks have had the queues pretty much constantly empty.11:28
jmlwgrant: if bigjools doesn't mind, I'll post a public screenshot.11:28
bigjoolsjml: I was going to blog about it11:28
bigjoolsmeant to do it Friday and forgot11:28
jmlbigjools: I reckon it's definitely blog-worthy.11:29
wgrantI have seen a couple of reports of builds stuck in Uploading, though.11:29
bigjoolsjml: if you want to paste something for wgrant that's ok11:29
bigjoolswgrant: yeah, known issue, it's when they fail to upload11:29
wgrantAh, k.11:29
wgrantApart from that, it seems to have gone incredibly smoothly.11:30
bigjoolsit had 2 months of dogfooding :)11:30
jmlwgrant: http://people.canonical.com/~jml/Active-Builders.png11:32
jmlwgrant: we changed the way the green bit was calculated on the 30th11:33
wgrantjml: It was originally the total?11:33
jmlyeah.11:33
bigjoolsthe graphing app is a little restrictive11:33
wgrantThat certainly looks blog-worthy.11:34
jmlbigjools: I spent a few minutes doing some research the other day. Looks like the only decent web-based graphing app is hosted in a google data center.11:34
bigjoolsheh11:35
wgrantAlthough the graph would be more impressive if the old data was corrected, so the reduction in utilisation was more obvious.11:36
wgrantHmm. I suppose this also means that we'll be able to do rebuilds without destroying the world for two weeks?11:37
bigjoolsthe important bit is the queue length11:37
wgrantIt is.11:37
bigjoolswe want as much utilisation as possible11:37
bigjoolsrebuilds will certainly be better!11:37
bigjoolsyay for codebounce being down11:37
jmlbigjools: that seems a non sequitur11:38
* bigjools has secateurs and is not afraid to use them11:38
jmlbigjools: if you wanted as much utilization as possible, then the important thing would be the red bit – not seeing any green.11:38
bigjoolsjml: yes - however, the current graph will never do that since the builders are not marked as building until the files are dispatched11:39
bigjoolsthat'll change when we release the stuff we did11:39
wgrantHow well does your new thing survive restarts?11:40
jmlbigjools: right, but that means that the queue length is *not* the important part.11:40
bigjoolsjml: it was, but as we get better at utilisation, I agree11:41
jmlbigjools: well, I happen to only care about increased utilization insofar as it reduces the wait time for our users.11:42
wgrantI can't say I trust tuolumne's data, though... how is the maximum number of active builders not integral?11:42
wgrantjml: But wait time is better estimated by queue size, as bigjools says.11:42
bigjoolsjml: yes - but remember the graph works off the data in the DB - so although we are making great utilisation of the builders now, the graph is incorrect.11:42
jmlwgrant: yeah, I know. that's what I'm getting at: wait time is the important thing; queue length is a good proxy measure; statements about utilization do not follow from this11:44
jmle.g. we can easily increase utilization by reducing the number of builders11:45
wgrantjml: Oh, right. Misread, sorry.11:47
deryckMorning, all.12:01
jmlbrb. network issues.12:04
stubAnyone still on Lucid? I'm longer able to build Launchpad on my Lucid desktop and am still sorting Maverick issues on my laptop.12:05
wgrantWhat does it whinge about?12:06
stub    ImportError: cannot import name SAFE_INSTRUCTIONS12:06
wgrantupdate-sourcecode12:06
wgrantYour bzr-builder is out of date.12:06
stubOk. Not sure how I got that out of sync.12:08
wgrantWhat's the Maverick trouble? Not Launchpad-specific?12:08
stubNo, other stuff. Now I've tracked down and reported the continual Firefox crashes I should be ok but haven't tried for a few days.12:09
bigjoolshttp://blog.launchpad.net/cool-new-stuff/more-build-farm-improvements12:16
bigjoolsjml: the graph description is wrong :)12:17
wgrantbigjools: Is that a challenge to the community to make the build farm collapse under the load of more daily builds?12:17
jmlbigjools: was it Shakespeare who once said "Then fix it, dear Henry"12:18
bigjoolsummm :)12:18
stubSo its trying to import from bzrlib.plugins.builder.recipe, and my egg doesn't have plugins/builder, and I've rebuilt it too.12:34
wgrantstub: Egg? You mean tree?12:34
wgrantOh.12:35
wgrantThere should be a sourcecode/bzr-builder symlink.12:35
wgrantIs there not?12:35
bigjoolsjml: did you get a chance to look at my b-m changes?12:35
stubwgrant: Its a directory. Is it a symlink in your tree?12:35
wgrantstub: It is a symlink.12:36
stubAhh... probably old cruft stopping update-sourcecode from doing its thang12:36
stubDunno how bzr-builder and bzr-hg got that way - it isn't *that* old.12:37
jmlbigjools: no, I didn't. I'll take a look now after I finish reading through sinzui's privacy mails12:37
bigjoolsjml: ok cheers. I want to try and keep coding while I have momentum.12:38
jmlalso, I'd just like to note for the record that even though I am incredibly bad at doing push-ups, I am trying.12:38
jmloff to grab a bite. back soon.12:38
bigjoolsgood plan12:39
wgrantbigjools: Did you get anywhere with making my query suck less?13:09
jmlbigjools: it's still builderslave-resume?13:11
wgrantI looked at the size of the diff and ran away.13:12
jmlyeah. it's a big, scary branch.13:15
wgrantThe size makes it scary, the changes make it scary, and the part of the system that it touches makes it scary.13:16
jmlyes.13:17
jmlUsing saved parent location: bzr://stinkpad.local/builderslave-resume/13:17
jmlthat's not going to work13:17
wgrantjml: Ooh, we're getting a web designery person?13:19
jmlwgrant: yes.13:19
wgrantExcellent news.13:20
jmlvisual design + CSS/JS/HTML13:20
wgrantPerfect.13:20
jmlhttp://webapps.ubuntu.com/employment/canonical_LPSWD/13:20
jmlstill interviewing.13:20
bigjoolswgrant: bi13:45
bigjoolssigh13:45
bigjoolswgrant: no13:45
bigjoolsjml: yes13:45
marsbigjools, ping, did your cherrypick from Friday get through prod_lp?13:49
bigjoolsmars: no13:49
marsbigjools, :(13:50
bigjoolsquite :/13:50
bigjoolssee lifeless's email to the list13:50
marsbigjools, anything I can do to help?  Is prod_lp even viable right now?13:50
marsyes, I saw that.  But I don't think there is anything for me to do then besides trying to pull the py2.6 code out myself13:52
bigjoolsmars: I've not really been following it closely, I've asked for a cowboy until it's fixed13:52
marsmakes sense13:52
marsman, that failure in prod_lp is scary13:57
* jml finally gets around to filing a bzr bug from the worcestershire sprint14:06
bigjoolssaucy14:15
jmlhruh14:17
jcsackettdanilos: ping.14:18
danilosjcsackett, hi14:18
wgrantbigjools: So, you're landing my domination branch?14:19
bigjoolsyes14:19
jcsackettdanilos: just saw your comment on the bug 652256 (about configuring translations from front page via action menu).14:19
_mup_Bug #652256: Cannot configure translations from translations front page <bridging-the-gap> <Launchpad Translations:In Progress by jcsackett> <https://launchpad.net/bugs/652256>14:19
wgrantGreat.14:19
wgrantI shall depart for the evening, then.14:19
jmlstupid crappy buggy java crap.14:19
bigjoolss/crappy buggy//14:20
danilosjcsackett, right, it seems we are working towards a similar thing from a different direction :)14:20
danilosjcsackett, granted, we've been a bit stuck on this14:20
noodles775Night wgrant14:20
jmlactually, it's threads.14:20
jcsackettdanilos: really, i think the focus of the bug i'm no is the configuration of the using launchpad enum; i'm happy to avoid treading on toes re: permissions.14:20
jcsackettdanilos: when you refer to action menus, you mean the sidebar menus we see on some applications, like answers (e.g. the menu for gdp: https://answers.edge.launchpad.net/gdp)14:22
danilosjcsackett, right, I am not sure what the scope is, and it'd probably be best to discuss this in a call which includes Curtis as well14:22
jcsackettdanilos: agreed; just getting my information in a line right now as i figure out my day. :-)14:22
danilosjcsackett, yeah for "action menus"14:22
jcsackettdanilos: so the intent is to not use those? i was under the impression those were the current preferred way.14:22
danilosjcsackett, heh, I don't know, when we did the initial 3.0 design ~15 ago we said that we are going to avoid them, which is why those translation pages have none14:23
danilosjcsackett, we later agreed to have them "where we must", but we already had a sufficiently good solution for translations pages so we didn't have to use them14:24
jcsackettdanilos: okay. curtis and i have a meeting in 5 (which he will hopefully be online for). i'll bring this up with him and we'll try and get back to you in 35 or so. that work?14:24
danilosjcsackett, sure, though I should be on another call at about that time14:25
jcsackettdanilos: ok. what timezone are you (or when do you EOD) so i can make sure we get back to you in a timely fashion?14:25
danilosjcsackett, heh, I am UTC+2, and I'll probably stick around for another 1h30mins14:25
jcsackettdanilos: dig. thanks!14:26
danilossomebody at the door, brb14:26
jmlbigjools: you could separate out the change to logger. (it needs at least a comment and maybe a test and then it could land)14:29
bigjoolsjml: yeah14:30
jmlbigjools: doing this to handleTimeout makes it a bit simpler: http://pastebin.ubuntu.com/505740/14:35
deryckso are we in testfix until the python 2.6 issues sinzui referred to in reply to a couple broken build emails.14:44
deryckhmmm, ok, so the lucid builders are green.14:46
bigjoolsjml: yes thanks - it was a bit of old factoring I'd not got around to yet, thanks for the reminder :)14:46
jmlbigjools: so much deleted code :)15:01
bigjoolsjml: \o/15:01
bigjoolsjml: it's basically all the recording slave stuff15:01
bigjoolsthe b-m is looking quite simple again15:01
deryckI need a team lead to sign off on my script to disable bug expiry option and notify users we'll be re-enabling this.15:05
deryckmaybe bigjools or sinzui could help here? ^^15:06
=== al-maisan is now known as almaisan-away
jmlbigjools: I've sent you an email with the remainder of my thoughts for now.15:06
deryckjml, could I get your sign off on my re-enable bug expiry notification script?  You looked once before for email clarity.15:22
deryckNow just need sign off for running on staging then lpnet.15:22
jmlderyck: where can I find it?15:23
deryckjml, http://pastebin.ubuntu.com/505754/15:23
deryckjml, or lp:~deryck/+junk/lpjunk15:24
jmlderyck: the script looks sound to me. I'm a bit nervous about the queries, since the last time I approved something like this, I was highly mistaken.15:37
deryckjml, nervous that they'll take forever?15:39
jmlderyck: nervous that they'll spam everyone / do the wrong thing15:39
jmlderyck: I guess the debug options are a good check on that.15:39
deryckjml, that's why I have the verbose/report options.  I'm going to check the data before sending email.15:39
deryckjml, so I can claim your approval for staging at least?  And ping back after I have the data in hand?15:40
jmlderyck: deffo15:40
deryckcool, thanks!15:40
jmlc.l.webapp.testing.verifyObject is ridiculous.15:45
=== deryck is now known as deryck[lunch]
cr3noodles775: hi there, did you write lp_dynamic_dom_updater.js?16:15
noodles775cr3: yeah, a long time ago.16:16
noodles775cr3: what are you wanting to do? (I'm not sure how useful that module is generally)16:17
cr3noodles775: question for you: under what circumstances will will the actual_interval be halved? I don't quite see how this could ever be true on line 319: if (new_actual_interval >= config_interval) {16:17
* noodles775 looks16:17
cr3noodles775: as far as I can see, that will only ever be true in the event the actual_interval is doubled16:21
noodles775cr3: If there are a few xhr requests that take a long time, line 308 will double the interval used between requests each time. ..16:21
noodles775:)16:21
cr3noodles775: so, perhaps my misunderstanding is that I was expecting the dynamic updater to also potentially decrease request interval16:21
cr3noodles775: however, I now see the interval will never be lower than the config interval, only potentially higher16:22
noodles775cr3: yes, it will, but looking at that code, it will never be l....16:22
noodles775Yes.16:22
cr3noodles775: is that the intended behavior?16:22
noodles775cr3: Yes - why would you want it to go below the interval which you configured?16:22
cr3noodles775: because more is better :) but I can appreciate the motivation, thanks for the explanation though16:23
noodles775cr3: np. Maybe you've got a different use-case. When I wrote that, it was after we'd had lots of people with the same page open hitting the server every 5 seconds (or whatever we had configured). We were only interested in reducing load on the server if it's not responding as expected, not increasing the frequency which we'd already decided was sufficient for page updates.16:25
cr3noodles775: yeah, sounds perfectly reasonable and I'll actually change my use case to that :)16:25
bigjoolsjml: thanks, making some changes as you suggest, they all look good.16:37
=== Ursinha-afk is now known as Ursinha
=== matsubara is now known as matsubara-lunch
=== deryck[lunch] is now known as deryck
=== salgado is now known as salgado-lunch
=== gary_poster is now known as gary-lunch
=== benji is now known as benji-lunch
=== matsubara-lunch is now known as matsubara
jmlg'night all.18:16
jmlwill be back a bit later to talk to the kiwis18:16
=== salgado-lunch is now known as salgado
=== gary-lunch is now known as gary_poster
=== benji-lunch is now known as benji
lifelessmoin18:53
lifelessabentley: https://devpad.canonical.com/~lpqateam/qa_reports/deployment-stable.html hi; could you perhaps QA bug 61395819:06
_mup_Bug #613958: upload failure emails should include the upload log <qa-needstesting> <recipe> <Launchpad Bazaar Integration:Fix Committed by abentley> <https://launchpad.net/bugs/613958>19:06
lifeless?19:06
abentleylifeless: maybe.  I keep hitting failure modes like staging restores and buildfarm weirdness.19:07
lifelessugh19:07
lifelessabentley: whats needed to be confident in deploying it ?19:08
lifeless(given that qa-ok really means 'ok to release with it')19:08
abentleylifeless: I don't know.  I only think about qa-ok meaning that "behaves as intended".19:09
lifelessgary_poster: is https://code.edge.launchpad.net/~stub/launchpad/production/+merge/37482 on the way to pqm or does it need someone to do that? I'm happy to do the legwork...19:09
abentleylifeless: I don't think there's a test for deployability that I could do that would be much simpler than testing that it behaves as expected.19:10
lifelesskk19:10
lifelessanything I can do to help us check that?19:10
abentleylifeless: I don't think so.19:11
lifelessok; I'd like to do more continuous-ish deployment drops this week, so if there is anything I can do to help please let me know.19:13
gary_posterlifeless: sorry, was talking to mars about status.  stub's branch was rejected when stub submitted it.  I don't know why it was rejected, so I just retried it, and PQM is just now getting to it.  (https://pqm.launchpad.net/).19:36
gary_postermars and I think that it will not address at least one of the five errors, the one from ec2 test.  mars is going to get a 2.5 version running and will report back our status on those five failures as soon as he knows.19:36
gary_posterI'm going to switch to launchpad-ops for some questions to losas about this.19:36
lifelesskk19:39
lifelessfooding, brb19:39
=== almaisan-away is now known as al-maisan
sinzuiHas anyone gotten spam from jscrambler? I think they harvested names. I cannot find any suspects in our two-week-old staging db20:00
gary_postermars, stub's branch made it through pqm.  any news on test failures?20:12
marspulling prod-devel onto the laptop now20:12
gary_posterok20:12
gary_posterabentley: you pointed foundations at https://bugs.edge.launchpad.net/launchpad-code/+bug/644788 but I don't know what aspect of foundations is involved.  Does the librarian serve that file?  Or is the lack of an oops id the foundations problem you identified?  Depending on what is going on, that might or might not be unexpected.20:33
_mup_Bug #644788: error fetching large diff "There was a problem fetching the contents of this file." <Launchpad Bazaar Integration:Triaged> <Launchpad Foundations:New> <https://launchpad.net/bugs/644788>20:33
=== gary_poster is now known as gary-brb
=== matsubara is now known as matsubara-afk
abentleygary-brb: can't it be both?20:43
=== gary-brb is now known as gary_poster
gary_posterabentley: both what?20:59
abentleygary_poster: the librarian is failing to serve the file, and failing to give an oops.21:00
lifelessflacoste: hi; I have a call in my calendar now, with you.21:03
gary_posterabentley: ah, ok.  I'll update the bug with that then.  does that have anything to do with the librarian token stuff Robert did--I mean, might it be addressed by this?21:03
gary_posterlifeless, I didn't understand your concern about lucid_lp_production--do you agree that I can make an RT about this and ask flacoste to give it a high priority?21:04
gary_posterWe may want to get rid of it, but we're not getting rid of it this instance21:04
gary_posterinstant I mean21:04
lifelessgary_poster: of course, RT away.21:04
gary_postercool thanks21:05
lifelessgary_poster: I 100% agree it needs fixing ;)21:06
gary_posterheh ok21:07
=== lifeless changed the topic of #launchpad-dev to: Performance Tuesday! | Launchpad Development Channel | Week 2 of 10.10 | PQM is open for business | firefighting: - | https:/​/​dev.launchpad.net/​ | Get the code: https:/​/​dev.launchpad.net/​Getting
flacostehi lifeless21:09
lifelessflacoste: hiya21:09
flacostelifeless: luckily, it's also on my calendar! let's skype21:09
marsgary_poster, stub's branch did not fix the ec2 errors21:11
gary_postermars, any of them?21:11
marsit did fix at least one of the others21:11
marsgoing through now21:11
gary_posteroh I see21:11
gary_posterok21:11
lifelessflacoste: http://wiki.postgresql.org/wiki/Postgres-XC21:15
lifelessflacoste: https://edge.launchpad.net/+feature-rules21:27
marsgary_poster, I can reproduce the prod_lp ec2 test failure locally, am working on a fix now21:29
gary_postermars, great.  Everything else is addressed?21:30
mars(locally, as in maverick + py2.6)21:30
marsyes, everything else is fixed by stub's branch21:30
gary_posterawesome.  Oh, you mean that ec2 test tests fail in maverick/py 2.6, mars?21:30
marsyep - weird21:31
gary_posterhm21:31
gary_postervery21:31
marson devel: $ bin/test devscripts.ec2test.tests.test_remote -t test_email_body_is_format_result21:31
gary_posterOK, I'll make a reply to stub's reply.  Thank you.21:31
=== al-maisan is now known as almaisan-away
abentleygary_poster: We proxy the librarian because we need to control access in case it's a private merge proposal.21:33
gary_posterabentley, so lifeless' token work would address this, right?21:33
jmllifeless: ping21:35
abentleygary_poster: doesn't lifeless' token work address all cases where we proxy?21:35
lifelessjml: otp21:35
jmllifeless: ok. let me know when you're off & available for a call.21:35
gary_posterI believe so, yes, abentley, but I was hoping for confirmation from you that you thought that approach would work for the code team's use case.21:36
abentleygary_poster: We're using the standard approach for serving files at a URL.  I don't know enough details about lifeless token approach to know whether it would work for us.21:38
gary_posterfair enough.  thanks abentley21:38
lifelessgary_poster: the code teams use case involves parsing the librarian content in the appserver, for now.21:40
lifelessgary_poster: if its MP's21:40
gary_posterlifeless: oh. :-(21:41
lifelessI've raised this with tim as a possible thing to evolve in the future.21:41
abentleygary_poster: however, that isn't the use case shown in the bug.21:42
gary_posterlifeless: I'll record this in the bug comment then.  It sounds like Tim, you, and somebody on Foundations should figure out a way to make the librarian able to do everything over in the librarian21:42
gary_posterabentley: oh, sigh.  trying to do too many things at once21:42
abentleylifeless: the use case in the bug is just retrieving the raw bytes of the diff.21:43
lifelessabentley: ah, I see21:44
abentleylifeless: using this url: https://code.edge.launchpad.net/~jameinel/launchpad/lp-service/+merge/35877/+preview-diff/+files/preview.diff21:44
lifelessgary_poster: abentley: this is a dupe of adeurings bug I think21:44
* gary_poster would be happy to hear that21:44
lifelessthis particular case will be helped by the token stuff21:44
gary_postercool21:45
wallyworldmorning22:04
wallyworldrockstar, abently - ready for standup when you are22:05
rockstarwallyworld, great.22:05
rockstarabentley, skype?22:09
gary_postersinzui: would love your comment/thoughts on adding a check for bare excepts in our linter, https://bugs.edge.launchpad.net/launchpad-foundations/+bug/63632522:12
lifelessjml: ready in a few22:12
_mup_Bug #636325: please add a commit ratchet for bare excepts <Launchpad Foundations:Triaged> <https://launchpad.net/bugs/636325>22:12
jmllifeless: ok.22:13
gary_posterrunning away, back soon.22:13
marsalright! we have a fix for prod_lp22:22
wgrantNonZeroExitCode: Test process died with exit code 2, but no tests failed.22:23
wgrantThanks, ec2, I love you too.22:23
benjiheh22:27
jamjml: since I see you here, when is the next lp db-devel rollout? (I have a patch based on db-devel accidentally, and I want to get it cleaned up, but don't want to pull in the next cycle's changes and have it delayed that much longer)22:28
lifelessjml: 13th or so22:29
lifelessjam: ^22:29
jamlifeless: thanks22:29
jambtw, *I* find your performance emails interesting to read22:29
lifelessjam: cool, thanks ;)22:29
=== salgado is now known as salgado-afk
marslifeless, would you be willing to review this prod_lp fix?  I need to sign off soon, possibly before gary_poster returns: https://code.edge.launchpad.net/~mars/launchpad/fix-ec2test-on-production-devel/+merge/3752622:34
lifelessseems plausible22:35
marslifeless, thanks22:38
gary_postermars, do you ned me to shepherd this through?22:41
gary_posterand thank you22:41
marsgary_poster, please - lp-land is busted on the system I'm using :(22:41
gary_postermars, ack, will do.22:41
marsthank you.  gary_poster, I need to sign off now.  talk to you tomorrow22:42
gary_posterbye mars22:42
wgrantCan someone please re-ec2 lp:~wgrant/launchpad/bug-629921-packages-empty-filter? The last run died spuriously.22:49
wgrantStevenK: When you're around, can I convince you to look at some PPA publisher logs for me?22:56
wgrantStevenK: unping.23:13
lifelessgary_poster: hi23:24
gary_posterlifeless: hey, will be leaving in 60 secs23:24
lifelessgrah :P23:24
gary_postersorry :-/23:24
lifelessI wanted to talk about 'definition of critical' and its relation to bugs.23:24
gary_posterfair enough23:25
gary_postertomorrow?23:25
lifelesssure23:25
gary_postercool.  ttyl.23:25
lifelessno panic, I just suspect we have wiki pages to edit and fix up etc23:25
gary_postercool23:25
wgrantlifeless: Could you ec2 https://code.edge.launchpad.net/~wgrant/launchpad/bug-629921-packages-empty-filter/+merge/37339?23:42
lifelesswgrant: looks like henninge is landing it ?23:48
wgrantlifeless: ec2 got angry and exploded.23:49
wgrantNonZeroExitCode: Test process died with exit code 2, but no tests failed.23:49
wgrantThe other one went through fine.23:49
lifelesssending it23:49
wgrantThanks.23:49
pooliehi lifeless, wgrant23:57
wgrantMorning poolie.23:58
lifelesshi poolie23:59

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