/srv/irclogs.ubuntu.com/2010/07/21/#launchpad-dev.txt

bryceh:-)00:00
nigelbIts beautiful!00:00
nigelbAlso, there is this space "&commit= Send Upstream"00:00
nigelbit should not exist I think, so the commit button would change to Send upstream?00:01
nigelbok, tested.  No.00:01
nigelbAnyway its the most awesome thing I've seen.  If LP does this by default, we'd all hug you :)00:02
brycehI think that's fine, that value isn't actually used by bugzilla00:02
nigelbYeah, I just noticed00:02
brycehwell, it may be a while before LP does this by default, but I'll be working on it.  meanwhile the cgi is going to be available for folks00:04
brycehI'll be interested in seeing how much use it gets00:04
brycehI'd also be interested in hearing about tangible time savings.  I calculated after spending one day forwarding bugs without this tool, vs. one day forwarding bugs with it, I was able to send 3 times as many bugs upstream in a given period of time00:06
brycehthe main constraint for me in achieving an even better ratio was having to manually copy over the attachments00:07
brycehnigelb, thanks for finding that bug.  embarrassing!00:09
brycehclearly I need to write some tests00:09
nigelbheh00:10
nigelbanother advantage when you have a tool like this, people don't go, "Oh, I'll forward it later"00:10
brycehnigelb, did you install the greasemonkey script?00:10
nigelbthey'll just.  "hey, it'll take only 10 minutes, why not do it"00:10
brycehyep00:10
nigelbNope, I did it manually.00:11
nigelb(this is work computer, can't mess with it :D)00:11
brycehmm, if/when you can install that gm script, you'll find it REALLY makes it fun and easy to upstream bugs00:12
nigelbOh!00:12
nigelbhow tough would it be to make it available for gnome bugzilla too?00:14
brycehit should work with gnome bugzilla already00:14
brycehI only tested on a couple bugs though so am not 100% sure00:14
nigelbgnome has more people forwarding since the apps are mostly in user space00:14
brycehbut I put the support for GNOME in last week.  I'd love to get verification that it works00:14
brycehyep00:14
brycehit should work for gnome packages that have exactly the same name in launchpad and in gnome bugzilla00:15
brycehwhich afaik should cover most packages00:16
nigelbwhere in the lp branch is the code?00:16
brycehit's in the scripts directory00:16
nigelbits a very nifty script :)00:18
brycehthanks, yeah I've gotten a lot of good out of it, and looking forward to it being handy for others00:19
brycehnigelb, let me know if you test it on a gnome bug00:19
nigelbI will as soon as I can find the time.  gotta start working :)00:22
brycehnigelb, cheers :-)00:22
=== Ursinha-nom is now known as Ursinha
Ursinhalifeless, missed your request -- "partial" oops summaries, as we call, are regenerated every hour03:18
=== Ursinha is now known as Ursinha-afk
lifelessUrsinha-afk: thanks04:26
lifelessspm: can you time the statement in https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1662O772 ? - the 17 second one, on a slave, and on prod, please?04:41
spmsure04:41
lifelessif its slow, grab an explain analyze too :)04:42
spmwow. that's... inconsistent.04:42
spmenter query into cmd line; hit enter; runs, completes. uparrow+enter; repeat.04:43
lifeless.04:43
lifeless.04:43
lifeless.04:43
spm1.7s, 13.1s, 0.6s, 1.004:43
lifelesswe might want to fix this04:44
spmwtf (where) did  13.1 come from!!!04:44
lifelesswas that on a slave or main ?04:44
spmmain04:44
spmwhat makes that 13.1s even more interesting, i'd have thought the query was still within postgres caching. ie it should be zomg fast.04:45
lifelessso04:45
lifelessguesses: load, index fail, index lock contention04:45
spmcache fail...04:45
lifelessif we're under that much pressure, sure.04:45
lifelesswe're seeing the oops 180 times a week04:46
spmload, unlikely - load average: 8.31, 7.91, 8.14 <== which is pretty low for wildc04:46
* lifeless mutters about perspective04:46
spmnote the 'unlikely' qualifier. :-)04:46
lifelesshow many cores does it have?04:47
spmwhen you'd had dual 650Mhz CPU proxy firewalls on a 'normal' load of 50-80; still working at 450...04:47
spm1604:47
lifelessok, so thats still 8 db threads or similar not executing for a full second04:48
lifelessits not actually great04:48
lifelesslater we will have to go into the performance knee for wildc04:48
lifelessright now, we already know that backsup cause an oops spike :P04:49
spm? I thought load was a (rough) measure at the end of a 'tick' of what's executing right now; regardless of how much of the tick they've had? imbw....04:49
spmie it avergaes out to a vague approximation.04:49
lifelessits blocked ready-to-run processes04:49
lifelesshttp://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages - not telling you to suck eggs, but I've quickly scanned it and its a clear explanation04:50
spmheh, I suspect we're using different words to describe the same thing. :-)04:50
spmta04:50
lifelessok anyhow04:52
lifelessone thread at a time04:52
spm:-)04:52
lifelesscan you see if it does that slow pattern on a slave04:52
spmhuh, I was almost going to say o it doesn't, but persistence paid off. most (~ 10 runs ish) were sub 0.3s, 1 x 1.0, 1x 4.5.04:54
spms/ o / no /04:54
lifelessok04:54
spm8 cores, load average: 1.01, 1.18, 1.1504:54
lifelesscan you get an explain analyse of it slow in both cases ?04:54
spmOooer. it changed!04:55
spmwow. I didn't notice. it changed twice. https://pastebin.canonical.com/34873/04:57
spmactually... i think it was different on every run. repasting the entire test04:57
spmhttps://pastebin.canonical.com/34874/04:58
lifeless*boom*04:58
spmyeah. something is *really* screwy, based on my DB understandings if the explain plan can be changed so dramatically like that. I thought these things were cached for high seconds to low minutes for precisely this sort of thing.05:00
spmhttps://pastebin.canonical.com/34875/ to complete the set, wildcherry showed similar behaviour05:00
lifelessah05:01
spmactually I quite distinctly do recall faffing around with Oracle... 10g istr and forcibly getting it to regen plans 'offline' as it were to maximise the speed of certain queries05:01
lifelessits a damned view05:02
lifelessomfg05:02
lifelessexcuse me05:02
spmno perfectly understandable :-)05:02
lifeless\d publishedpackage :P05:02
spmIt is pretty unthinkable that'd I've used oracle and actually like it. ;-)05:02
* spm takes a few deep breaths05:03
wgrantOh god, publishedpackage?05:04
wgrantKill it.05:04
spmoh not too bad. only 12 joins.05:04
wgrantThe *cache table* is being slow?05:04
lifelessin the fast one is its a nested loop05:04
lifelesspg doesn't hve materialized views does it?05:04
spmunknown to me05:04
lifelessdon't think so05:04
wgrantYou can emulate them using triggers, but it doesn't do them itself, no05:05
lifelessso the fast case loops on binarypackagename_name_key on binarypackagename05:05
lifelessthe slow case Seq Scan on buildfarmjob  (cost=0.00..54641.45 rows=1799245 width=12) (actual time=0.019..1470.653 rows=1799572 loops=1)05:06
lifelessand it gets worse from there05:06
wgrantThat table has only been around for a couple of months.05:06
wgrantSo the query probably hasn't been looked at in this form before.05:06
lifelessI need to review this, I smell OOD rather than table layout optimisation05:07
lifelessI saw a similar thing last night05:07
lifelessspm: so I'm guessing slight statistics variation -> boom05:08
spmlifeless: I guess, but... I'm kinda left wondering why plans aren't locked in stone more; if they even can be.05:09
lifelessspm: do I have sql access to staging, to poke at the tables a bit ?05:11
spmperhaps comparing oranges with mandarin's; in oracle land - as I recall it; you'd have a generic query plan with placeholders for the values. there's a specific name, but time and memory fades. the idea being that you just replace the bits you care about; the plan itself is indentical; so you win big on lots of repititions by not doing the analyze phase(s)05:11
spmlifeless: perhaps r/o? if not, I can create now and retroactively ask francis for you to have same.05:11
lifelessspm: whatever bjorn had?05:12
spmI have 99.99999% no doubt he'll be fine with that.05:12
spmeveryone except losas and stub has r/o05:12
lifelessI'm sure that will be fine05:12
spmrephrase, everyone *with access* has r/o05:12
lifelessif its ever not, well, efuture05:12
lifelesswgrant: so why do you say to delete hte view?05:44
wgrantlifeless: I was wrong. I was thinking it was one of the cache tables.05:45
wgrantBut it's not; it's just a view.05:46
lifeless10 million rows in bpph05:53
lifelessI can has delete?05:53
wgrantYou can has indices.05:53
lifelessmeh05:53
lifelessI has indices.05:53
lifelessI wants delete.05:53
lifelessalso fti needs some serious love05:54
wgrantDeleting history makes me sad.05:54
wgrantWhat's the FTI on?05:54
lifelesswgrant: keeping stuff isn't free05:55
lifelessand even logn perf hurts after a while05:55
wgrantlifeless: Says he who developed a DVCS which preserves all history :P05:55
lifelessits all about use cases05:55
lifelessactually, I want a good history edit mechanism - I wrote that up a year back or so05:56
* wgrant still needs someone to land a branch.06:00
lifelessspm: are you able to do iostat/cpu on staging for a query for me?06:19
lifelesswgrant: whats the mp06:20
wgrantlifeless: One of the ones you reviewed a couple of days ago.06:22
* wgrant hunts.06:22
wgranthttps://code.edge.launchpad.net/~wgrant/launchpad/refactor-_dominateBinary/+merge/2966706:22
lifelessoh, I might need a newer tree06:22
lifelesswe'll see06:22
mwhudsonherh06:23
mwhudsonlp.registry.windmill.tests.test_person_picker.TesPersonPickerWidget.test_person_picker_widget is failing in my branch06:23
mwhudsonnice test class name!06:24
lifelesswgrant: its mid kickoff06:26
wgrantlifeless: Thanks.06:26
lifelesslosa ping06:26
mwhudsonhow do you debug a failing windmill test?06:35
lifelessWITH A SHOTGUN06:35
lifelesswgrant: its in flight06:39
wgrantlifeless: Even better.06:39
wgrantIt *is* the right branch?06:40
wgrantLast night it wasn't.06:40
lifelessi just cp'd your link06:40
mwhudsonlifeless: it seems "run it until it passes" works :(06:41
wgrantmwhudson: My policy is "run until it passes. if it still doesn't pass, ignore it, because I didn't break it"06:42
spmlifeless: sure, on staging DB server as in?06:47
lifelessyes06:52
lifelessthe qyry is06:53
lifeless\timing06:53
lifelessSELECT COUNT(CASE WHEN Bug.fti @@ ftq('sphinx') THEN TRUE ELSE null END) FROM Bug, BugTask WHERE BugTask.bug = Bug.id AND BugTask.distribution = 1;06:53
spmlifeless: I forgot to time() it; but ~ 10ish seconds. https://pastebin.canonical.com/34879/ for the vmstat06:56
lifeless\timing is your friend :)06:57
spmaye... :-/06:57
spm2nd run - just shy of 9 secs06:58
lifelessok07:00
lifelessa fucktonne of IO07:00
lifelessspm: can you check whether lucene, solr & pylucene are available in the DC, in the event we were to want to use them.07:00
spmare they debug type programs? servers?07:01
spmah the first is the search engine?07:01
lifelessyes07:03
lifelessone stack07:03
spmlifeless: looks like, not really. some possibly defaultish libraries; but I'd suggest backporting would be needed.07:03
lifelessrmadison was hopefyul07:04
mwhudsoni know the divmod folks became extremely angry with lucene07:07
mwhudsonseveral years ago now, mind07:07
lifelessspm: it appears to be in universe, to me07:11
spmlifeless: that would be my lack of experience with dealing with packages then07:13
lifelesshahahha07:13
spmor possibly we don't enable universe on the servers...07:13
lifelessspm: whats our policy on stuff in univers07:13
lifelesse07:13
spmactually I can see the solr stuff, I sit corrected.07:14
spmheh, lalala me. universe is fine.07:14
lifelessspm: how hard am I hammering the server ?07:15
spm100% on one cpu only07:16
lifeless\o/07:16
lifelessselect * from stat('select fti from Bug') order by ndoc desc, nentry desc,word limit 10;07:16
lifelesshow many cpus are there ?07:16
spm8 cores07:16
spmonly 32g of ram, so i'd expect more io than prod07:17
spmwhee that local run is evil you've made me do. also 100%07:17
spm0.0% wait state tho07:18
lifelessspm: I'd like to try reindexing bug.fti on staging.07:39
lifelessspm: how do we go about this?07:39
spmdepends on how intrusive a reindex you mean? if you just mean 'reindex table blah', that's pretty easy.07:40
lifelessspm: or should I do that on dogfood07:40
lifelessspm: we need to drop the bug_fti index and make a new gin one07:40
lifelesssomething like07:40
spmI'd suggest dogfood in the first instance to get an idea of timing07:40
mwhudsonlifeless: when did test_suite() stop being necessary in launchpad tests?07:40
mwhudson(also yay!)07:40
lifelessmwhudson: I don't know, but jtv tested and current zope.testing doesn't seem to need it.07:41
spmlifeless: it'd also be my personal recommendation to run any reindexing past stub07:41
lifelessspm: how do I get access to dogfood ?07:41
mwhudsonmaybe zope.testing grew a new feature then07:41
spmlifeless: if you don't have already? via RT07:41
lifelessspm: I've spoken to stub about the fti stuff; its  basically untuned - he expressed frustration at not having had time to just sit down and zen it07:41
=== almaisan-away is now known as al-maisan
spmheh07:42
lifelessmwhudson: hell, it may be needed still - remove it and check :)07:42
mwhudsonlifeless: i did07:42
* spm can picture stub doing the OOOOOmmmmm thing before a DB layout diagram07:42
wgrantspm: dogfood is *completely* useless for timing.07:43
wgrantYou know what sort of hardware it's on, right?07:43
lifelessso the thing is07:44
lifelesswe have a fast-insert slow-query fti index07:44
spmwgrant: I'm think of more an 'minutes vs hours vs days' idea07:44
lifelessthere is an alternative index07:44
spmnot 17.65 minutes.07:44
lifelessthe gin index07:44
wgrantspm: dogfood cannot always give a reasonable answer over those three.07:44
lifelessanyhow this isn't urgent07:44
spmhaha07:44
lifelessI'm just starting to qualify simple-complex answers in this space07:44
wgrantRecall that a DB restore took two weeks a few months ago.07:44
wgrantAnd the primary publisher takes several hours.07:45
mwhudsonlifeless: this talk of gin indexes rings faint bells, i think we already use them for something...07:45
mwhudsonor tried07:45
mwhudsonstill if you talked to stub you're likely much more up to date than me :)07:46
=== al-maisan is now known as almaisan-away
lifelessmwhudson: yes :)08:01
wgrantlifeless: Are Forbbiddens logged?08:11
wgrant /builders is 403ing sometimes.08:11
lifelessshould be08:11
lifelessI don't know if they raise oopses08:11
mwhudsonthey aren't logged as oopses when you're logged in, i think08:12
wgrantmwhudson: So we can't debug them?08:12
wgrantAwesome.08:13
lifelesswgrant: thats not entirely true08:13
mwhudsonwgrant: i may have been lying there08:13
poolielifeless, jam and i looked at the memcached graphs last night08:13
mwhudsonwgrant: i think bigjools knows the problem though08:13
poolieas i suppoe you already have before08:13
mwhudsonwgrant: it's private builds, unsurprisingly08:13
pooliethey seem clearly size-limited08:13
wgrantmwhudson: He suspects private teams.08:13
lifelesswgrant: however, I encourage you, in the theme of improvign things, to add trace logs for this08:13
poolieand hitting only about 20% of the time08:13
lifelessyeah08:14
wgrantmwhudson: But I can't see any private builds, so I shouldn't see any private teams.08:14
lifelessI don't really have memcache on my radar atm08:14
poolieso caching more things is likely to make the cache perform worse :)08:14
lifelessits a tool we're not ready for08:14
wgrantIt's already overused.08:14
wgrantCaching things that should not be cached.08:14
pooliei know08:14
lifelesslpmain_staging=> SELECT COUNT(CASE WHEN Bug.fti @@ ftq('sphinx') THEN TRUE ELSE null END) FROM Bug, BugTask WHERE BugTask.bug = Bug.id AND BugTask.distribution = 1;08:14
lifeless count08:14
pooliei was thinking of letting it be refreshed from the browser by cache-control08:14
lifeless-------08:14
lifeless    4008:14
lifeless(1 row)08:14
lifelessTime: 7659.528 ms08:14
lifelesslpmain_staging=> SELECT COUNT(*) from Bug, bugtask  where bug.fti @@ ftq('sphinx') and BugTask.bug = Bug.id AND BugTask.distribution = 1;08:15
lifeless count08:15
pooliei now feel we should add a switch to jut turn it off, and see if the oops rate changes08:15
lifeless-------08:15
lifeless    4008:15
lifeless(1 row)08:15
lifelessTime: 526.478 ms08:15
lifelesswe can just turn it off08:15
lifelessand no, not pastbinning that :P08:15
lifeless*thats* easy08:15
wgrantpoolie: There is lots of stuff that should be cached.08:15
wgrantpoolie: But it's not the stuff that's cached at the moment.08:15
mwhudsonlifeless: those times are, um, different08:16
wgrantlifeless: What's the difference in the plan?08:16
poolielifeless, so tbf there are a lot of cache effects on the db server08:16
lifelesswgrant: give you a single guess08:16
poolierunning two queries one after the other and seeing the second is faster does not necessarily prove anything08:16
poolie(in my limited experience)08:17
pooliei agree the second looks more sensible08:17
lifelessof course08:17
lifelessI've run 10 of each08:17
spmrunning 4 and having the 4th run an order of magnitude slower tho....08:17
lifelessbut thats a lot more noisy ;)08:17
* mwhudson gets some 503s and 504s from the apache frontend :(08:17
poolieah :) and it's consistent? fairy nuf08:17
lifelesssometimes the slow one is worse08:17
spmhttps://pastebin.canonical.com/34874/ <== for mindblowing enjoyment08:18
lifelessok, so edge deployment just failed to migrate smoothly ?08:18
lifelessmwhudson: please file a bug08:18
mwhudsonit's working now08:18
spmedge was just updating08:18
lifelessyes08:18
mwhudsonah08:18
lifelessthis is a bug08:18
lifelesswe should fix it, we're going to be doing this *much* more often08:18
lifelessmwhudson: please file it ;)08:19
mwhudsonlifeless: ok08:19
* mwhudson waits to see if the bug search times out...08:19
spmshort of automatically adjusting the 'load balancing' away from each server and waiting for all existing connections to same to timeout, there will be glitches for some folks?08:20
lifelessspm: thats exactly what we should be doing08:20
wgrantHm. Is there no way to see all of a project's branches?08:20
lifelesscode.lp.net/project08:20
wgrantNo.08:20
wgrantIt's batched.08:21
wgrantBut without a navigator.08:21
wgrantSo it only shows the first n.08:21
mwhudsonlifeless: https://bugs.edge.launchpad.net/launchpad-foundations/+bug/60806508:21
_mup_Bug #608065: get occasional 503s and 504s from apache frontend when edge is updating <rollout-reliability> <Launchpad Foundations:New> <https://launchpad.net/bugs/608065>08:21
lifeless_huh_08:21
wgrantAh!08:21
wgrant+branches is batched and has a navigator.08:21
wgrantBut isn't linked from anywhere.08:21
lifelessouch08:21
wgrantmwhudson: Do you know why this is so?08:22
* mwhudson afks08:22
mwhudsonwgrant: no08:22
pooliewgrant, use an api08:22
poolie:/08:22
wgrantpoolie: There's UI. It's just got no links to it.08:23
lifelesswgrant: you may find https://bugs.edge.launchpad.net/malone/+bug/607776 interesting08:23
_mup_Bug #607776: +filebug-show-similar FTI query timeouts <oops> <timeout> <Launchpad Bugs:Triaged> <https://launchpad.net/bugs/607776>08:23
pooliethen how does it smell? :)08:23
wgrant'Seq Scan on bugtask'08:24
wgrantWTF08:24
lifelessyes08:24
lifelesscase statement fail08:24
poolielifeless, why would you even write such a query?08:25
lifelessORM08:25
lifelessor confusion08:25
poolieis there some innocuous stortm thing that produces it?08:25
lifelessI don't know; the question is how long it will take to find and fix them all08:25
* poolie wonders if storm should sometimes generate Warnings08:25
wgrantlifeless: Well, if we take the timeout down to 1s, they should all become fairly clear :P08:26
lifelesswgrant: I want to get the timeout to 5s08:26
wgrantI really love that you are actually concerned about speed, BTW.08:26
lifeless1 would be ok if we generally completed in 0.1s08:26
wgrantIt is something that has been missing from LP for... well... 5 years now.08:26
lifelessmmm08:27
lifelessAll I'm offering is a detailed view08:27
poolieistm storm could also warn about 1=208:27
poolienot sure if it's worth it08:27
lifelessthe whole team has cared and been fixing stuff08:27
lifelessits important not to forget that08:27
poolieyeah it's really inspiring how much the atmosphere was different last week to previously08:28
wgrantTrue.08:28
lifelessif I am lucky enough to have some experience solving performance issues and dealing with interlocking pessimisations - its because I've created my fair share!08:28
wgrantHaha.08:28
spmdamn. that's an admission and a half. /me takes a copy for later blackmail potential ;-)08:30
wgrantlifeless: Are you doing DB reviews now in Björn's place?08:31
lifelessyes08:31
lifelesstwo votes, stub & I08:32
lifelesswe've agreed that with one vote it can progress to the tree08:32
lifelesstwo votes for deployment08:32
wgrantAh, handy.08:32
wgrantrockstar: Hm, what's particularly difficult about fixing the factory? I saw it broke quite a few tests (which was why i didn't fix it then and there), but nothing that looked terribly hard to fix.08:36
lifelessmwhudson: I'm not going to get to your review - sorry, I'd love to:) - I'll try to drop a couple of thoughts in it today though.08:36
rockstarwgrant, most of our tests are wrong...08:36
wgrantHah.08:37
wgrantAwesome.08:37
rockstarwgrant, so the tests that aren't breaking are the worst.08:37
rockstarwgrant, it's not "hard" per ce, just tedious, and probably not the best use of my time currently.08:37
wgrantYep.08:37
rockstarwgrant, there are all sorts of hidden constraints inside soyuz that aren't really documented that I didn't know, and that we're not really exercising in tests anywhere.08:39
wgrantrockstar: lalala not part of Soyuz any more lalala08:40
lifelesswgrant: you're not?08:40
wgrantlifeless: The code isn't.08:40
lifelesssoyuz.add(wgrant)08:40
lifeless:P08:40
wgrantlp.buildmaster's owned by everyone now :P08:40
rockstarwgrant, for instance, the build farm gets DOSed if you submit a build that isn't against a distroseries that isn't part of the ubuntu distro.08:40
lifelesswgrant: all code is owned by everyone anyway, in principle.08:40
lifelessI'd like to see more application of that principle :)08:41
wgrantrockstar: Hm, because they have no chroots?08:41
wgrantOr is there something else?08:41
lifelessbad error handling logic08:41
lifelessAIUI08:41
mwhudsonlifeless: fairy nuff08:42
wgrantWell, of course, it's ex-Soyuz code.08:42
rockstarlifeless, probably a little bit of everything.08:42
lifelesswhats the easiest way to join the dots from a page id to code08:43
wgrantI guess which app it's likely to reside in, then grep the app's browser/configure.zcml.08:43
rockstarlifeless, this is another question I had when I first started working on Launchpad that would have been immensely helpful in my ramp up.08:43
wgrantThere must be a better way.08:43
lifelesswhy does Distribution:+filebug need to know SELECT COUNT(*) FROM Bug, BugTask WHERE BugTask.bug = Bug.id AND BugTask.distribution = 1 AND (1=1) ?08:44
=== almaisan-away is now known as al-maisan
lifelessso next ramp up question08:51
lifelesslib/lp/bugs/templates/bugtarget-filebug-search.pt calls into +filebug with id filebug-search-form08:52
lifelesswhat maps that back to a new template / api call ?08:52
lifelessgrep only finds a js file08:52
wgrantThe dupefinder is JS.08:52
lifelessok08:53
lifelessso its setting up a call into a js function08:53
rockstarlifeless, yes.08:53
lifelesswhich then calls an api to do the deed08:53
rockstarlifeless, we use the term "api" very liberally, but yes.08:54
lifelessit makes a call to something that isn't formatted in tal :)08:54
rockstarlifeless, yes.08:54
rockstarREST api, model api...08:54
lifelessok, its a self post08:54
lifelessto the same template with a query08:55
lifelessnow... what maps *that* is my next connector to join08:55
wgrantlifeless: Must be in FileBugGuidedView somewhere. I suspect it's inherited from FilebugShowSimilarBugsView.08:57
wgrant(yay, consistent capitalisation...)08:58
wgrantWhat's the query?08:58
lifelesswgrant: hmm?09:08
lifelesswgrant: sorry, I've clearly confused you09:08
lifelessI'm working on the filebug timeouts09:08
lifelesswe're using fti inefficiently09:08
lifelessI've spawned enough bugs to keep everyone busy for a few days, time to pitch in and help09:09
lifelessalso09:09
lifelessvolunteer needed to do a i18n patch for lp09:09
wgrantlifeless: lib/lp/bugs/model/bugtask.py, findSimilar09:10
wgrant(not findSimilarBugs)09:10
wgrantHm.09:10
wgrantHasn't i18n been rejected a few times?09:10
lifelesswgrant: so dots do you join to get to that09:10
wgrantI thought it was very much unwanted.09:10
lifelesswgrant: I thought it was 'too hard'09:10
lifelesswgrant: We have massive i18n in answers09:10
rockstarETOOMANYTASKSTOOLITTLEDEVELOPERS09:10
wgrantlifeless: Uh, well, I looked at FileBugGuidedView, and saw that it didn't have that functionality. But there's a very suspicious base class: FilebugShowSimilarBugsView09:11
wgrantThat calls findSimilar.09:11
wgrantlifeless: So: guesswork.09:11
lifelesswhat took you to FileBugGuidedView ?09:11
lifelesswgrant: and whats calling into findSimilar09:12
lifelessthere are other nuts queries involved09:12
rockstarlifeless, I'm happy to show you how I connect the dots.09:12
wgrantlifeless: FilebugShowSimilarBugsView calls findSimilar.09:12
rockstarBut also, there's ++oops++ to see some of the callins.09:13
wgrantI found FileBugGuidedView by checking lib/lp/bugs/browser/configure.zcml09:13
lifelessok09:13
lifelessI think thats about my new-info buffer for now09:13
lifelesswgrant: did you have a db patch ?09:17
wgrantlifeless: Yeah. But the MP doesn't have a description quite yet.09:17
* wgrant is just cleaning it up.09:17
rockstarwgrant, do you know how to get the tests to tell me all the queries a test is running?09:28
wgrantrockstar: I just use the postgres log.09:28
wgrantlifeless: Review requested.09:35
lifelessurl me up09:37
wgrantlifeless: https://code.edge.launchpad.net/~wgrant/launchpad/link-uploaded-ddebs/+merge/2966909:37
lifelesswhat does binarypackagerelease represent09:40
wgrantA Debian binary package.09:41
wgrantie. a .deb09:41
wgrantOr a .udeb09:41
wgrantOr now a .ddeb09:41
lifelessman, we have terrible names09:41
wgrantYou just noticed?09:41
wgrantWould you like a DistroArchSeriesBinaryPackageRelease, which is of course short for DistributionArchitectureSeriesBinaryPackageRelease?09:41
wgrantWe have one of those.09:41
rockstarlifeless, those clever landscape devs already wrote a tool to do what we were talking about.09:42
lifeless\o/09:42
lifelessis it open sourced yet ?09:43
lifelesswgrant: oh, I know. I was just compelled to comment09:44
lifelessits like a class called IntegerInstance09:44
rockstarlifeless, https://pastebin.canonical.com/34889/09:44
lifelessjml just deleted something along those lines09:44
lifelesscheck annotate of our tracers module; he may have been over enthusiastic09:45
lifelessanyhow the thing needed is glue <-> scripts09:45
lifelessmeep09:51
lifelessonce it drops out of cache fti is -realllllllllly- slow09:51
wgrantEven once stub attacks it with his magic wand?09:51
lifelessa wizzards staff has a knob on the end09:52
wgrantShh.09:52
lifelesslpmain_staging=> explain analyze SELECT COUNT(CASE WHEN Bug.fti @@ ftq('sphinx') THEN TRUE ELSE null END) FROM Bug, BugTask WHERE BugTask.bug = Bug.id AND BugTask.distribution = 1;09:52
lifeless(8 rows)09:52
lifelessTime: 109213.606 ms09:52
wgrantwhat.09:52
lifelesslpmain_staging=> select count(*) from bug, bugtask where Bug.id = BugTask.bug AND BugTask.distribution = 1 AND Bug.fti @@ ftq('sphinx');09:53
wgrantTried the query that has a less awful plan?09:53
lifeless Time: 54666.999 ms09:53
wgrantOw.09:53
lifelessstill09:53
lifelessbetter is, well, better.09:53
wgrantBut still utterly awful.09:53
lifelessshrug09:53
lifelessone step at a time09:53
rockstarDoes launchpad_ftest have a different permission file than database/schema/security.cfg09:55
lifelessmake schema to reset it09:55
lifelessftest is built when you do make schema09:56
lifelessand thus only gets permissions built at that point09:56
wgrantrockstar: security.py is run only on launchpad_empty, so it should be the same.09:56
lifelessor whatever :P09:56
rockstarlifeless, that's what I suspected, but it doesn't seem to be working.09:56
rockstarlaunchpad_ftest is also created when the tests run, according to the postgres logs.09:56
lifelessyeah, I had the names wrong09:57
wgrantlaunchpad_empty is copied to launchpad_ftest_template09:57
lifelessits been a while09:57
wgrantlaunchpad_ftest_template has the sampledata loaded into it.09:57
lifelessI remembered the shape :P09:57
wgrantThen the testrunner copies launchpad_ftest_template to launchpad_ftest freshly for every test.09:57
wgrantNo permission resetting is done after launchpad_empty, AFAIK.09:57
wgrant(if it was, tests would take a minute or two to set up...)09:59
rockstarThey already take a minute or two to set up.10:02
wgrantEach test takes a second or so.10:03
wgrantThe initial setup of the test suite around 10 seconds, here.10:03
wgrantDo you use LP_PERSISTENT_TEST_SERVICES?10:04
lifelessgarh10:04
lifelessstab stab10:04
lifelessterrible idea.10:04
wgrantIt saves time :)10:04
rockstarwgrant, I do.10:04
wgrantLots of time.10:04
wgrantAlmost makes TDD plausible.10:04
lifelessits curing the symptom10:05
lifelessbut adding more root causes.10:05
rockstarlifeless, +110:09
rockstar"Why am I starting up a librarian when my tests don't need one"10:10
=== daniloff is now known as danilos
wgrantYeah, can we please do away with layers?10:12
bigjoolsgood morning10:12
wgrantEvening bigjools.10:13
bigjoolsg'day wgrant10:13
rockstarlifeless, does this look okay for that branch you reviewed already? http://pastebin.ubuntu.com/466891/10:15
wgrantbigjools: When you have a moment, can you glance at https://code.edge.launchpad.net/~wgrant/launchpad/link-uploaded-ddebs/+merge/29669 and tell me if you object strongly to its approach?10:16
bigjoolslooking10:18
lifelessrockstar: yes10:18
bigjoolswgrant: good approach, just a few comments10:23
bigjoolswgrant: unit tests please, not tests in doctests10:23
bigjoolswgrant: also consider factoring out your new code so you can write unit tests for it10:24
bigjoolsRunning the upload processor in tests is something I want to reduce, not increase ;)10:24
bigjoolswgrant: finally, my alarm bells go off very strongly when I see removeSecurityProxy being used in code10:26
wgrantbigjools: Fair point.10:26
wgrantIn my defense, it's a reasonably large test to rewrite, and I revived this branch from October last year. I'll probably replace nascentupload-ddebs.txt in a separate branch.10:26
bigjoolsok10:26
wgrantAnd yes, I strongly considered factoring that out.10:26
bigjoolsyou should XXX it and file a bug plz10:27
wgrantBut it means a significant restructure, so... maybe for another branch.10:27
bigjoolsthat's fine10:27
bigjoolsthanks for fixing ddebs!10:27
wgrantI want Soyuz cleaned up too, don't worry.10:27
wgrantHow can I avoid the rSP use?10:27
bigjoolswhy is it needed?10:28
wgrantBPRs are traditionally immutable.10:28
wgrantBut I need to set debug_package on some of them, after I have created them all.10:28
wgrantI guess I could create all the ddebs first, then the debs. Hmm.10:29
bigjoolswhere does the bpr come from?10:29
bigjoolsas in, what creates the storm obj?10:29
wgrantThe set of uploaded BPRs is created. I then create links between some of them.10:29
wgrantUm.10:30
wgrantI forget.10:30
* wgrant finds.10:30
bigjoolsif it ultimately comes from getUtility then it's security wrapped10:30
bigjoolsbut this all runs zopeless, so I don't understand why rSP is needed10:30
lifelessare my feet ok there?10:30
wgrantIt's Build.createBinaryPackageRelease, so it's wrapped.10:31
wgrantbigjools: It still uses PermissiveSecurityPolicy.10:31
wgrantZopeless is not Zopeless.10:31
lifelessrockstar: are my feet ok there?10:31
rockstarlifeless, yup.10:31
bigjoolsI realise - but I thought that since you're not actually logged in, it can't apply security10:32
wgrantPermissiveSecurityPolicy still cares about permissions. It's just that all permissions are implicitly held.10:32
bigjoolsother than interface checks10:32
bigjoolsexactly10:32
wgrantAnd nobody has permission to write to BPR.10:32
bigjoolsso, why is it grumbling about that10:32
bigjoolsah10:32
bigjoolsthat would explain it10:32
bigjoolscan you create the ddeb first then, and put it in the createBinaryPackageRelease params?10:33
wgrantI remember considering that when I wrote the code late last year... let's see if I can remember why I discarded that idea.10:33
bigjoolsok10:33
lifelessstub: hai!10:36
lifelessstub: I have some info on fti for you10:36
lifelessstub: are you home or in transit ?10:36
stublifeless: home10:37
lifelessso, the CASE approach used in nl_search takes about 10 times longer to do a search than a count(*)10:37
lifelessseparately from considering whether doing an estimate + a search is worth it vs just doing a ranked search10:38
lifelessstub: are there some tests for nl_search I can build on ?10:38
stubI don't know - that was all bug team work. I only know it vaguely.10:39
lifelessok10:39
lifelessuhm10:39
lifelessI will hunt bjorns10:39
rockstarHuh, I can't remember the reasoning for making people the base parent in recipe traversal.10:40
rockstarWhatever it is, my mind has been changed and I think that's crackful.10:41
wgrantThe form should at least inform users that the recipe names are global.10:41
rockstarwgrant, it does now.10:42
wgrantAh.10:42
rockstarWell, it does when you try and re-use a name.10:42
rockstarThe problem is that I want more than one recipe named "daily" ...10:42
wgrantI often try to call a recipe 'trunk'.10:42
wgrantRight.10:42
rockstarIt should have also traversed to project or sourcepackage10:43
rockstar"Paul Hummer's daily recipe" is silly10:44
wgrantWhat happened to ~wgrant/launchpad/+recipe/daily?10:44
rockstarBasically it means that I'm going to invent my own namespace.10:45
wgrantI thought the initial proposal was something like that.10:45
rockstarwgrant, yeah, but there was some reason for not doing it.10:45
rockstar(I'm saying that now that abentley and I have implemented it, that reason is shit)10:46
wgrantHaha.10:47
lifelessok10:48
lifelessso bugs -> db -> stub -> bjorn -> flacoste10:49
lifelessbut I now have enough confidence in the issue: deleting painful code.10:49
rockstarbigjools, could you maybe give me some hints here: https://bugs.edge.launchpad.net/launchpad-code/+bug/59161810:50
_mup_Bug #591618: Result of SPRBuild assumes distro build <recipe> <Launchpad Bazaar Integration:Incomplete by rockstar> <https://launchpad.net/bugs/591618>10:50
bigjoolsrockstar: gimme some time, I'm fighting canonicaladmin10:50
rockstarbigjools, it will take AGES to defeat canonicaladmin though!10:54
bigjoolsrockstar: this is just the battle, for the war, totally10:54
rockstar:)10:54
danilosadiroiban, jtv, woohoo, +templates works on edge (rendered https://translations.edge.launchpad.net/ubuntu/lucid/+templates in 6.52s)10:58
jtvdanilos: yay!10:58
jtvdanilos: that's with figuring out the menu links just once for the entire page?11:00
jtvHmm.... it just timed out for me.11:00
adiroibandanilos: sometimes I get a time out on Ubuntu11:01
adiroibanopenobjects-addons is 0.6s11:01
danilosadiroiban, jtv: yeah, we still have it time-out occasionally because of the rendering times, but still, it worked for me :)11:01
daniloskarmic consistently times out for me but it does have a lot more templates on there11:02
jtvI got one loaded!11:03
jtvOn the 3rd attempt though.11:04
jtvThe mouse-over effect doesn't seem to be working... maybe one of the extra files failed to load.11:04
danilosjtv, adiroiban: I guess we'll either have to fix rendering time (I talked to gary_poster and he mentioned switching to a faster TAL-rendering library chameleon as an option)11:05
danilosjtv, adiroiban: or batch it :)11:05
bigjoolsok rockstar let's check out your branch11:13
rockstarbigjools, it's just a bug, but I have a test in there that I can't get to act like production.11:13
rockstarbigjools, noodles is also sitting right next to me, and so I was going to ask him.11:13
bigjoolsrockstar: I think what should happen is that canonical_url should return None for a package built in a PPA11:14
bigjoolsand then you can change the template code to not link it11:14
rockstarbigjools, yes, I know this.11:14
rockstarbigjools, the problem is that I can't reproduce this in a tests.11:14
bigjoolsok11:14
rockstarbigjools, so I'm wondering where the formatter is so I can see why it's not linking it in my test.11:15
bigjools        release = self.factory.makeSourcePackageRelease(11:15
bigjools            source_package_recipe_build=None)11:15
bigjools        release.source_package_recipe_build = build11:15
bigjoolswhy 2 lines?11:15
bigjoolstransaction.commit() - urg :)11:15
rockstarbigjools, good question.11:15
bigjoolswhy do you need to commit?11:15
bigjoolsrockstar: so I think you also need to assert in that test that the build's archive is a PPA11:16
rockstarbigjools, that test is the result of late afternoon hacking, and trying whatever I can to make it work.11:16
bigjoolsok11:16
bigjoolsdoes makeRecipeBuild() default to a PPA?11:17
rockstarI think it takes the default archive.11:18
bigjoolsI'd add the assertion in the test11:18
rockstarbigjools, where is the formatter?  I was thinking I would find it after I got the test working, because it wasn't clear.11:19
bigjoolsrockstar: what formatter?11:19
rockstarThe SourcePackageReleaseFormatter in tales.py didn't seem to be it.11:19
rockstarbigjools, the tal formatter for a source package release11:20
bigjoolsthere isn't one11:20
rockstarbigjools, huh?  Then how is it getting linked?11:20
* rockstar cries11:20
bigjoolsdoes the template do it?11:20
bigjoolsanyway, your test is asserting the wrong thing isn't it?11:21
rockstarbigjools, no, it passes it to fmt:link11:21
bigjoolsok11:21
rockstarbigjools, no, it's asserting that it's plain text, not linked.11:21
bigjoolsit's still wrong11:21
rockstarAnd it SHOULD be failing, but it's not.11:21
bigjoolsit's not a distribtion package11:21
bigjoolsso you're asserting that the current state of affairs is correct11:21
bigjoolswhich of course it always is :)11:21
bigjoolsfmt:link just does canonical_url on the object11:22
rockstarbigjools, so are you saying we should take the whole thing out?  Don't even show a release?11:22
bigjoolsit should say "Package X in PPA blah"11:22
bigjoolsor something11:23
poolieis there any other lib.lp.service module that sets a good example for code or test style?11:23
rockstarbigjools, yes, and I'm saying "Where is the code that names out that template?"11:23
bigjoolsis there a real example I can see?11:23
bigjoolsI dunno, it's one of yours isn't it?  +recipe page?11:23
rockstarbigjools, https://code.edge.launchpad.net/~rockstar/+recipe/daily/+build/34811:24
bigjoolsok let's take a looksee11:24
bigjoolsah I see11:25
bigjoolsrockstar: junk the whole section11:25
rockstarbigjools, the template is just using existing code.  I believe abentley even just abstracted the original build index.11:25
rockstarbigjools, really?!11:25
bigjoolsyes, it doesn't make any sense for a PPA build11:25
bigjoolsthere's no package page on PPAs11:25
rockstarbigjools, it's a good thing you're in a different country, because I REALLY wanna kiss you right now.11:25
bigjoolslol11:25
bigjoolsso "Result:" and the line below it - blow them away11:26
bigjoolsor if you're in a kissing mood, just blow them11:26
rockstarbigjools, could you comment on the bug with something like that?11:26
bigjoolssure11:26
rockstar...and I'll happily just kill it.11:26
bigjoolsrockstar: the binary builds are plenty good enough to detail what was built11:28
rockstarbigjools, I agree.11:32
poolielifeless, igc says 'congrats'11:36
lifelesspoolie: thanks! - tell him best wishes !11:38
lifelesshttps://code.edge.launchpad.net/~lifeless/launchpad/malone/+merge/30507 if anyone is interested :)11:48
barrybigjools: hi.  on my ppa package details page i occasionally see (Newer version available).  is this information available in the api?11:54
=== al-maisan is now known as almaisan-away
lifelessbarry: yes11:56
barrylifeless: is this the superseded stuff in the build records?11:56
lifelessnah, its a reference to the suite in ubuntu11:57
barrylifeless: okay, thanks. i'll try to find it ;)11:59
bigjoolsI think it's only on the UI actually12:00
gary_posterdanilo: re chameleon: fwiw, in my measurements last year it saved an average of 15% from page times.  not too shabby, but not a silver bullet.  in the big picture, for common pages, network and SSL and client-side issues dwarf app-server times; and for most OOPSes we have, db time dwarfs rendering times.  but chameleon should help somewhat.  It would probably be more of a benefit for big honking pages like the on12:00
gary_postertalking about.12:00
gary_posterprobably was truncated: "but chameleon should help somewhat.  It would probably be more of a benefit for big honking pages like the one you were talking about."12:01
barrybigjools: ah.  what i'm trying to do is script auto-rebuilds for packages in the ppa that are now out of date.  basically: search to find them, apt-get source, dch -i, build -S, dput12:01
bigjoolsbarry: ummm, why are you duplicating builds in Ubuntu?12:02
bigjoolsor are there extra local changes?12:03
barrybigjools: they are builds of packages that build-dep on python-all and python-dev-all.  i build them in the ppa to pick up python 2.712:03
wgrantAnd to destroy the build farm for 1.5 weeks :)12:03
bigjoolsexactly12:03
barrywgrant: not any more :)12:04
bigjoolsif you want to do rebuilds, you should use a rebuild archive12:04
bigjoolsor your good name is going to be mud :)12:04
barrybigjools: i really *don't* want to rebuild vast numbers of packages.  only about 150 of them12:04
barrybigjools: your flaw is assuming i ever had a good name12:04
bigjoolsbarry: ah ok so you're rebuilding packages where its build deps changed?12:05
bigjoolsbarry: ok, s/mud/muddier/ :)12:05
barrybigjools: yeah :)12:05
barrybigjools: but as updates get thrown in the archive, i have to essentially re-sync them, but i think you can't do that (or can you?)12:05
bigjoolsrockstar: err sorry I changed your bug status, it said "incomplete" on my browser, honest :)12:06
bigjoolswe could do with collision detection there12:06
barrybigjools: otherwise, apt-get update && apt-get upgrade will pick up the newer, non-py27 versions instead of the py27-built versions i want from my ppa12:06
deryckMorning, all.12:06
bigjoolsbarry: you can copy from Ubuntu into your PPA very easily using the API12:07
barrybigjools: syncSources?12:07
bigjoolsbarry: you can pin on your PPA too12:07
bigjoolsand syncSources, yes12:07
barrybigjools: yeah, i could do that12:07
bigjoolspinning would be better12:08
bigjoolsfewer rebuilds ;)12:08
barrybigjools: <cough>more (efficient) buildds</cough> :)12:08
bigjoolsin progress ;)12:09
barrybigjools: :)12:09
bigjoolsjelmer and myself are making buildd-manager changes that will rock the world12:09
barrybigjools: i'd love to hear more!  but it's lunch time so i'll come back and ask12:09
gary_posterbarry: I've been seeing if I could get buildout tests to pass with 2.7.  is there a known issue for Python 2.7 that output from both spawn and subprocess is...held, for some reason?12:12
gary_posterFor example, given hacked code like this http://pastebin.ubuntu.com/466949/ (and I've hacked to use both spawn and subprocess in tests), including that half second sleep, I get failures like this: http://pastebin.ubuntu.com/466950/ .12:12
gary_poster(IOW, the "An error occurred..." should be printed below the output from the subprocess call, but is not).12:12
gary_posterSo, known?  I'm about to give up.12:12
gary_poster(2.4, 2.5, 2.6 don't behave this way)12:13
wgrantbigjools: removeSecurityProxy call gone.12:22
bigjoolswoo12:22
wgrantI shuffled things around a bit, creating the ddebs first and a couple of other bits and pieces.12:22
bigjoolsargh, I am finding it impossible to read email quicker than it arrives today12:24
bigjoolsdeath to email from machines12:24
bigjoolsemail is for people fer chrissake12:24
bigjoolslifeless: I've got another candidate to use for Rabbit if it's close to being implemented12:27
lifelessbigjools: it needs someone to put a layer together + lazr-config schema entry for it12:32
lifelessbigjools: at that point we have all the bits in place to iterate.12:33
bigjoolscool12:33
bigjoolslifeless: I want to put the new distroseries opening code (initialise-from-parent) on it12:33
bigjoolsSteve is working on making it a Job12:33
wgrantWhatever happened to CHR?12:33
deryckwgrant, it's still happening, but I think some confusion in the change to the new approach and new days has slipped coverage lately.12:36
deryckwgrant, it's Edwin's day today, but he's not around yet.12:37
bigjoolsderyck: when someone updates a bug status, do you detect collisions? (with a second person updating it)12:38
deryckbigjools, no.  we just have the latter one overwrite the first attempt.12:39
bigjoolsderyck: do you have bugs about that?  If not I think I should file one :)12:41
lifelessmtaylor: hi12:41
lifelessbah12:41
lifelessmthaddon: hi12:41
lifelessmthaddon: could you do me a small favour? on staging, up the timeout to 20 seconds, I want to test a theory about whats going on here.12:42
deryckbigjools, there is a "show edits in real time" bug, which is basically the same, but perhaps your issue is a bit more specific?12:42
bigjoolsderyck: I changed a status from incomplete to triaged, but because I had not loaded the page recently I didn't see that someone else had changed it from incomplete to in-progress12:43
bigjoolsso I override his change12:43
bigjoolsseems like we could simply check the status we're changing from and see if the status on the bug now is still the same12:44
deryckhmmm, yeah, I think that could use a new bug.  That's a simpler change than real time edits and would bring value now.12:45
lifelessderyck: bigjools: landscape has a jobs system too which they say they use for ajax notifications12:46
bigjoolslifeless: yeah I replied to their thread12:46
lifelessits slightly different in concept to ours12:46
lifelesscool12:46
bigjoolsit sounds great12:46
lifelessI'm pulling on this thread12:46
bigjoolsderyck: ok I'll file a bug for you, cheers12:46
deryckyeah, it does sound nice.  That would make real time edit notifications possible, I believe.12:46
lifelessyeah12:47
deryckbigjools, thanks.12:47
lifelessseparate to mid flight detection12:47
deryckright12:47
bigjoolsderyck: BTW my mental picture of you has now shifted unassailably to one where you're playing Dominion and sledging your opponents12:47
deryckheh12:48
deryckI perhaps was a bit too relaxed at the epic.  I normally hide that part of myself.  :-)12:48
deryckgaming brings out the worst in me.12:49
bigjoolsderyck: lol12:49
bigjoolsyeah me too - I hardly play any more.  I got asked by neighbours once to stop swearing so loudly.  I've since moved to somewhere where I don't have close neighbours.12:50
deryckheh.  I can relate.12:50
bigjoolsThat's Counterstrike for you ...12:50
bigjoolsfood time12:56
=== almaisan-away is now known as al-maisan
lifelesslosa ping13:06
mthaddonlifeless: hi13:16
lifelessmthaddon: hi13:16
lifelessmthaddon: I was wondering if you could raise the timeout on staging temporarily, I want to get a full trace of what this does13:17
lifelessthat slow query, once its not fighting disk - 300ms13:17
mthaddonlifeless: done13:19
lifeless\o/13:19
lifelesstry this13:19
lifelessgo to13:19
lifelesshttps://bugs.staging.launchpad.net/ubuntu/+filebug13:19
lifelessput in a search13:19
lifelessclick next13:20
lifelesseveryone^13:20
mthaddonlifeless: I increased the softtimeout as well - should I have left that as is?13:20
wgrantWoahJSbug.13:20
wgrantOh, no, Chromium bug.13:20
lifelessmthaddon: no, thats fine13:21
lifelessmthaddon: the main thing was to get enough headroom to see how it performs on this slower hardware13:21
lifelessI am getting 2-3 second searches13:21
barrygary_poster: no bug or change that i know of :/13:21
lifelessmpt: ^ what do you think?13:23
lifelessderyck: ^ you too, and I think I'll have enough confidence to say we should give this a spin13:24
mptlifeless, I tried "Internet doesn't work on Broadcom". It returned decent results (though I have no idea what they're missing), but took 25 seconds.13:24
derycklifeless, sorry, me too what?  Search at ubuntu filebug on staging?13:25
lifelessmpt: ok; please try again13:25
lifelessderyck: yeah13:25
mtaylorlifeless: ola13:25
lifelessmpt: the search index appears to be very big, so not all fitting in memory on staging, which is tiny13:25
mpt"wobbly windows flicker": ~8 seconds, decent results13:26
rockstarlifeless, where are you physically?13:26
lifelessrockstar: in my room for the moment13:26
lifelessI'll be down shortly13:26
rockstarlifeless, ack.13:26
* rockstar will be glad to go back to his desk tomorrow13:26
lifelessderyck: so this is a replacement pre-filter for bug searching13:27
lifelessderyck: I haven't audited the full stack, but if we feel this is decent we might want to CP it to prod13:27
derycklifeless, yeah, pretty snappy response for me.  2-3 seconds on normal searches.  Lots of words returns in 5-6 seconds for me.13:27
lifelessderyck: does it feel comparable to prod for you, or better ?13:27
lifeless[ignoring hardware]13:27
derycklifeless, better actually.13:28
lifelessok13:28
lifelessI shall do the do13:28
lifelessmthaddon: thanks, I'm finished with staging as a test env for this.13:28
mthaddonk13:29
mpt"install eclipse get unmet dependencies error": 13 seconds, and doesn't return bug 603656 at all.13:29
* rockstar wonders how to capture mpt in a test13:29
lifelessmpt: does it on production ?13:29
mptgnarrrrgh13:31
mptlifeless, I can't test on production without leaving the beta testers team. On edge, the same search gives me a timeout.13:32
lifelessmpt: click the 'do not redirect me button'13:32
mptoh of course13:32
lifelessmpt: if there isn't one, please (har har) file a bug because we should still show that even in a new ajax world13:32
mptI don't see that button any more13:32
mptIt's supposed to be on http://launchpad.net/ right?13:33
lifelessmmm13:33
lifelessI thought so13:33
deryckmpt, lifeless -- I believe it's a link in the footer now.13:33
wgrantmpt: It's only shown on edge, and it's at the bottom.13:33
wgrantAnd it's not on the front page.13:33
mptThe footer for me is "© 2004-2010 Canonical Ltd.  •  Terms of use  •  Contact Launchpad Support  •  System status  •  Take our survey!"13:33
mptand on edge, "© 2004-2010 Canonical Ltd.  •  Terms of use  •  Contact Launchpad Support  •  System status  •  Take our survey!  •  r11179 beta site"13:33
mptoh, not on the front page13:34
wgrantRight.13:34
wgrantThat would be too obvious :)13:34
mptThe footer doesn't change on other pages for me13:34
lifelessmpt: on the bug filing page13:34
mptoh, wait, THAT footer13:35
lifelessbottom right, green13:35
wgrantIt's in the non-footer footer.13:35
wgrantRight.13:35
lifelessthis is special :(13:35
mptThe blue one as opposed to the white one13:35
* mtaylor remembers days when he did web programming...13:35
lifelesstimes out on prod for me too13:36
mpttimeout for me too13:36
lifelessso13:36
lifelessprod does not show it either13:36
gary_posterack, barry, thanks for looking13:37
lifelessmpt: thank you very much for playing with it; unless you say 'its a disaster' I'm going to move forward to get it on edge asap13:38
mptIt's not a disaster13:38
mptafaict13:38
lifelessderyck: your opinion?13:38
barrygary_poster: np.  i'd be interested if you track it down to a bug in python13:39
rockstarlifeless, deryck's opinion may or may not involve comparisons to Windows 7, so tread carefully.13:39
derycklifeless, I say move forward on it.  If timeouts don't happen on staging, we should be better on edge/prod too.13:39
deryckyes, if it's better than windows 7 bitches, I'm all in!13:39
gary_posterheh13:39
gary_posterbarry: cool. I dunno if I'll take it that far, but we'll see13:40
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Ursinha-brb
=== flacoste_afk is now known as flacoste
lifelesswhen do we set things 'fix committed' ?14:29
lifeless... do we set them to that ?14:29
rinzelifeless: When the change lands but hasn't been deployed14:30
rinzelifeless: Scripts will set them for us though14:30
wgrantbigjools: Did you get around to the PPA log parser thing you were looking at a couple of weeks ago.14:32
bigjoolswgrant: not yet, sorry.  The code and config is all in though, we just need to turn it on14:35
wgrantbigjools: Even the row-limiting config?14:36
bigjoolsyes14:37
wgrantExcellent.14:43
bigjoolslife would be so much easier if I could block new bugs on soyuz14:44
lifelesstell you what14:44
lifelessship code with less bugs, less bugs will be filed ;)14:45
bigjoolsOr I can use Jedi mind tricks.  These aren't the bugs you're looking for.14:47
* bigjools waves hand14:47
wgrantDo the Jedi mind tricks involve LOSAs and DELETE FROM bugtask?14:48
lifelessno14:49
lifeless:)14:49
bigjoolsuh what?  Sorry, my mind had drifted to Princess Leia and 'that' outfit14:49
lifelessa danish on each ear14:50
* mthaddon was picturing bacon on Leia's ears...14:50
* bigjools just spurted a mouthful of coffee14:51
lifelessrotfl14:52
bigjoolsmthaddon: I didn't know Jono was in Star Wars14:53
mtaylorlifeless: really need one more bug status man14:54
mtaylorlifeless: fix committed, fix merged and fix released...14:54
mtaylorjust saying14:54
lifelessmeh14:54
mtaylorthree different things, important to three different sets of people14:54
lifelessless actually14:54
lifelessoverly precise is not always good14:55
lifelesscommitted where, merged where, released where.14:55
mtaylorindeed14:55
lifelessreally, we want 'done in context' and many contexts: more flexible, more power, nuke bugtasks too14:55
mtaylorfor that matter - what the hell does "committed" mean14:55
* lifeless handwaves furiously about stuff in deryck's domain14:55
* deryck welcomes domain intrusion and hand-wavery14:56
mtaylorI just want to know: a) when there's a tree claiming to fix it on launchpad somewhere- when that has hit trunk, and when that has hit a "release"14:56
mtaylorhrm14:56
mtaylorI should have injected the b and the c there14:56
mtaylorimagine them14:57
lifelesssure14:57
lifelesssee, that fits my model better :P14:57
mtaylorgood14:57
lifelessflacoste: btw, I'm changing how answers search works :P14:59
flacostelifeless: ok, why?15:02
lifelessbecause its the cause of about 8 seconds overhead on searching bug dups15:04
lifelessits doing work that the fti index should do15:04
lifelesscausing a scan of every bug, ever, in the context of the search15:04
lifelessflacoste: the change shouldn't be very visible to users, based on some brief testing we did on staging.15:05
lifelessflacoste: but if we do need to change the ranking we should do that at the tsearch2 layer15:05
flacosteinteresting15:06
flacostehow a search within answers cause an 8 seconds overhead on search bug dups?15:07
lifelessthe nl_search code15:07
lifelesscommon code path15:07
lifelessits also causing timeouts in answers15:07
lifelessflacoste: https://code.edge.launchpad.net/~lifeless/launchpad/malone/+merge/30507 - the old code is kept so we can really easily reenable if we don't like this.15:08
flacostelifeless: ok, the quality of results will decrease significantly15:13
flacostebut let the user determine that15:13
flacostethe slow algorithm is based on MySQL implementation of full text search15:13
lifelessflacoste: I'd like to iterate and make it better15:13
lifelessyeah15:13
flacostewhich gives very good result15:13
flacosteplain tsearch2 search sucks15:14
lifelessso what it does to use is due to not using their entire implementation15:14
lifelesss/use/us/15:14
flacostewhich is fast :-)15:14
lifelesswe end up scanning every object in the context, across the board.15:14
lifelesswhich is a lot of work15:14
lifeless- 8 seconds on ubuntu, and growing: for a *single* term15:14
lifelesswhen we have multiple terms, its worse.15:14
lifelessbecause we're consulting the fti vector per-row15:15
lifelessper-term15:15
lifelessthis is why multi term searches time out more than single term searches15:15
lifelessI am proposing this as a band aid15:15
lifelessget us some headroom15:15
flacostethat's fine15:15
lifelessand we'll either use tsearch2 better, or drop in an entirely dedicated search engine15:16
lifelessgreat, thanks.15:16
lifelessthe replacement query, FWIW, is ~ 500ms on staging15:16
lifeless(once disk IO is excluded)15:17
flacosteand maybe tsearch2 ranking has gotten better over the year15:17
lifelessstub says we haven't tuned it at all15:17
lifelessyou're meant to write your own rank function anyhow15:17
lifelessflacoste: thanks; I'm going to focus on the landscape/server guys now for a bit15:18
deryckgary_poster, ping15:36
gary_posterderyck: pong15:36
jmllifeless, not sure whether the 'tracer' discussion above got resolved15:50
jmllifeless, there's code similar to what's in https://pastebin.canonical.com/34889/ in lp/testing/__init__.py, iirc.15:50
leonardrpoolie, iirc you said yesterday you were okay with the current implementation of https://code.edge.launchpad.net/~leonardr/launchpadlib/improve-workflow/+merge/29849. if that's true, can you mark as approved? otherwise, comment with the change you want me to make16:07
lifelessjml: neither am I :)16:10
jmllifeless, ok.16:11
=== Ursinha-brb is now known as Ursinha
lifelessderyck: ping - bug 60093416:21
_mup_Bug #600934: BugSubscription table need a constraint to prevent people being subscribed twice to the same bug <story-better-bug-notification> <Launchpad Bugs:Won't Fix by brian-murray> <https://launchpad.net/bugs/600934>16:21
derycklifeless, yup.  know it well.  wasn't sure if we should have marked it won't fix, but haven't got back to it today yet.16:22
lifelessderyck: seems to me that merging people should merge their subs too, no ?16:23
lifelessthe merge code is approachable; wearing my maintainablity / data hygiene hat - this is totally something we should fix16:24
derycklifeless, agree.  But this wasn't was Brian was looking into, and sinzui seemed to suggest this was difficult to fix.16:25
lifelesswe wrote the code in the first place :)16:26
sinzuilifeless, I have argued fixing merge for more than a year. The work is *always* considered out of scope16:26
lifelesssinzui: we're agreed then that we should fix it.16:27
lifelesssinzui: thats plenty for me; I know how scheduling works. If its considered really tricky, I'll happily mentor someone on it.16:27
sinzuiNo one agrees it it is worth one cycle16:27
lifelessits worth a couple of days, tops.16:27
derycksinzui, where does this code live in the tree?16:28
lifelessless ~/Desktop/Downloads/signature.asc16:28
lifelessbah16:28
sinzuiI have a script I am considering for a garbo job. to cleanup some of the data /after/ a merge. But the correct solution (and certainly assumed by brian's change) is to make merge an out of proc task that has a chance to succeed. eg, to take 27 patient tries to complete a merge of ~barry16:29
lifelesssinzui: are we hitting write contention ?16:30
lifelessmerge should be an out of webapp thing *anyway*16:30
lifelessthe whole merge operation, I mean.16:30
sinzuideryck, person merge...but keep in mind. We want to start new features, but we seem to be working on performance instead.16:30
lifelesssinzui: in the eyes of our stakeholders, performance is as much a feature as anything else.16:30
sinzuilifeless, There is too much work to do in a merge to happen in a single request.16:31
lifelesssinzui: ack - agreed. Thus my comment that it shouldn't be done in the webapp transaction *anyway*16:31
sinzuilifeless: I think everyone needs agree with what my team is working on, privacy, timeouts, or merge.16:31
lifelesssinzui: I'm happy to consider the bug in question medium or even low priority16:32
lifelesssinzui: I have no view on its urgency16:32
derycklifeless, sinzui -- so if we want the constraint bug kept around to track this, I'm fine, but I think it needs fixing up to generally represent this issue.16:32
lifelessderyck: sounds good to me16:33
deryckI also do think it's out of scope for our current subscription work, and would call it low priority for the bugs team, compared to everything else.16:33
lifelesssinzui: we have the team leads call this evening and perhaps we can refine what we're doing in that call16:33
MTecknologySo... auto-fill for tags.. That's an awesome feature that never crossed my mind.16:34
sinzuiThe bugs are reported every release, the questions are reasked. One issue is number 8 in bug heat: and then there is my old blueprint that gives a broader view of the issues: https://blueprints.edge.launchpad.net/launchpad-registry/+spec/cleansing-deactivated-accounts16:34
lifelesssinzui: what does 8 in heat mean - is that high ?16:34
sinzuiIt is the 8th item in heat16:34
lifelessok16:35
sinzuikarma bugs collectively dominate registry heat16:35
poolieleonardr, do it!16:48
lifelessflacoste: what is the mechanism for the call in 2 hours ?17:04
bigjoolslifeless: Francis' conf line17:07
=== beuno is now known as beuno-lunch
* bigjools shoots and scores, new buildd-manager working on dogfood working like a champ17:28
bigjoolsjml: don't suppose you fancy reviewing it do you?  I fear someone else would vomit at the horrendous twisted hacks.17:29
=== deryck is now known as deryck[lunch]
jmlbigjools, sure, but I won't get around to it today17:42
jmlbigjools, my mind feels like stale custard17:42
bigjoolsjml: I wasn't expecting you to - thanks very much.  Maybe we can mumble over it later this week.17:42
=== al-maisan is now known as almaisan-away
bigjoolsjml: there's some dodgy tests that you might be able to help me make nicer17:43
* jml afk17:45
pooliejam, rockstar, hi, want to meet for dinner?18:25
rockstarpoolie, as long as I don't have to wait much longer.18:26
* rockstar is starvin' Marvin.18:26
poolieready now if you are18:26
rockstarpoolie, lemme pack up then.18:26
pooliei'd like to go to the place on the plaza near here18:26
pooliethe google reviews are good18:26
jampoolie: certainly18:26
rockstarpoolie, sure, as long as it's fast.18:26
pooliekk :)18:27
poolieCOME ON! WE HAVE A 5 SECOND TIME OUT!18:27
jampoolie: see you in the lobby in about 5min18:28
pooliegreat18:28
=== deryck[lunch] is now known as deryck
=== beuno-lunch is now known as beuno
danilosanyone remembers where's the documentation for those query counting functions (or at least what they are) that thumper introduced a while back?18:43
thumperdanilos: assertQueryCount I think18:49
danilosthumper, thanks (damn missing -i option on my grepping exercise)18:50
danilosthumper, though, I still can't find it being used anywhere18:51
thumperdanilos: I'm pretty sure it is used in some code tests18:52
danilosthumper, that's what I was grepping, I guess it's just a long day18:53
thumperdanilos: assertStatementCount18:53
thumpersorry18:53
danilosthumper, right, just as I found it inside __init__.py of lib/lp/testing :)18:53
danilosthumper, np, we should probably move jtv's old query counter for +translate page to this as well18:55
thumperyup18:55
danilosthumper, or well, maybe not because that one counts them for the entire request being rendered18:56
rockstarthumper, hi!19:33
m4n1shanyone here can help me with setting up launchpad?20:00
lifeless!ask20:00
m4n1shi tried "make schema"20:01
lifelessm4n1sh: just ask away, asking for a dedicated helper usually doesn't work in public channels ;)20:01
m4n1shMissing ./download-cache.20:01
m4n1shDevelopers: please run utilities/link-external-sourcecode.20:01
m4n1shmake: *** [download-cache] Error 120:01
lifelesshave you followed the wiki pages on setting it up20:01
m4n1shon running https://dev.launchpad.net/Running20:01
m4n1shthis page? right?20:01
lifelessthats the second one20:01
lifelessGetting is the first one20:01
m4n1shi got the edgde code20:02
m4n1shnot devel20:02
m4n1sh*edge20:02
lifelesswe don't use the edge code20:02
lifelesswe work on devel20:02
lifelessplease follow the 'getting' wiki page, you've skipped a lot of steps20:02
m4n1shoh crap20:03
m4n1shi missed so much20:03
m4n1shlifeless, thanks for pointing it out20:03
lifelessnp20:04
lifelessthumper: hi20:16
lifelessthumper: uhm, salgado I think it was, was mentioning that the branch listing page is still having trouble with things with lots of bugs linked, or something20:16
lifelessits a little freaky to have windmill opening browser windows in my host os when running tests in my vm20:18
lifelessjust saying20:18
thumperlifeless: file a bug with an oops id and I can check it out20:23
lifelessthumper: I told him just that :)20:37
=== adiroiban is now known as Ow2
lifelessrockstar: up still ?20:45
rockstarlifeless, yes.20:51
lifeless#lp-reviews, if you have time20:52
benjianyone ever run into a pylint warning that can't be silenced?  I added a # pylint: disable-msg=E022121:28
benji...and it's still complaining.21:28
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
lifelessI'm off to bed22:08
lifelessgnight22:08
benjinight22:08
flacostepoolie: i think you picked the bad branch to merge into, as your diff is huge22:11
pooliei know!22:11
flacostepoolie: that's on https://code.launchpad.net/~mbp/launchpad/flags/+merge/3058022:11
poolielifeless has just pointed that out22:11
lifelessjust think22:11
pooliei know :)22:11
pooliei actually realized myself22:11
lifelessthis *won't happen* anymore in about 6 weeks22:11
lifelessor less.22:11
* lifeless is really gone.22:11
poolienever mind the length, feel the quality!22:12
benjiheh22:12
poolieuh is this continuing fallout from people renaming branches?22:15
pooliedb-devel seems to be gone22:15
maxbpoolie: gone?22:24
wgrantHmm.23:18
* wgrant wonders why ShipIt hasn't been split out yet.23:18
wgrantEven if ISD can't be bothered rewriting it, it could surely just run on a separate DB with an old, static version of LP...23:19
benjiwgrant: it would help me if it were split out; I could fix two or three LP bugs by deleting data that LP doesn't use but ShipIt does23:19
wgrantThen we could destroy Account, and safely remove stuff without having to check in history if ShipIt used it.23:20
* rinze waves to wgrant and benji23:21
wgrantMorning rinze.23:22
mwhudsonwgrant: just lack of tuits i think23:30
wgrantWhen is the Lucid upgrade happening?23:47
wgrantAnd is there any OCR happening this week, or should I seek out another reviewer?23:48
=== Ursinha is now known as Ursinha-dinner
rinzewgrant: What sort of review do you need/23:51
rinzeI mean, what kind of branch23:51
rinze?23:52
wgrantrinze: It's a nascentupload branch. https://code.edge.launchpad.net/~wgrant/launchpad/link-uploaded-ddebs/+merge/2966923:52
wgrantbigjools has already approved the direction.23:52
rinzewgrant: If nobody has done a review before European morning I'll do one.23:54
wgrantrinze: Thanks, that would be great.23:55
wgrantI have a whole stack of other branches on top of this one that I'd like to get landed this cycle.23:55

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