/srv/irclogs.ubuntu.com/2011/10/12/#launchpad-dev.txt

=== StevenK changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: StevenK | Critical bugs: 269
mwhudsonhm00:43
jelmerhmm indeed!00:44
mwhudsonthere is a LOT of crack in canonical.launchpad.webapp :(00:44
mwhudsonis read only mode officially dead now?  can we just nuke the relevant code from orbit yet?00:46
mwhudsonlifeless: ^ ?00:46
* mwhudson settles for nuking 6 year old crack instead00:46
wgrantmwhudson: There is, yes :(01:06
wgrantmwhudson: We're preserving RO-mode for a few months.01:06
wgrantJust in case.01:06
mwhudsonok01:06
wgrantThe rest of canonical.* is nearly cleaned out, but canonical.launchpad.webapp is particularly bad and mostly untouched.01:06
mwhudsonwgrant: i just pushed a branch called i-dont-believe-for-a-minute-that-steveIsFixingThis01:07
wgrantHeh.01:07
wgrantHey, it's not yet 7 years old.01:08
mwhudsonit was hilariously old and stale _when i started working on launchpad_ though01:09
wgrantYes.01:09
wgrantThere's lots of that :)01:09
wgrantEvery couple of weeks I spend a few hours cleaning up canonical.*... eventually the maintenance squads will do that, I suppose, but it's a very long-term "eventually".01:09
mwhudsonluckily i don't have the constraint of being paid to work on lp :-)01:11
lifelessmwhudson: not quite dead yet01:11
wgrantlifeless: You're not here -- go away.01:11
lifelessmwhudson: but yeah, I just need to tweak mthaddon a bit about it :)01:11
mwhudsonlifeless: ok01:11
lifelesswgrant: I had a 6 hour unexpected medical thing yesterday01:11
lifelesswgrant: so I'm partly here01:11
wgrantAh.01:11
wgrantCarry on, then.01:11
mwhudsonwgrant: if you have a spare minute, can you search for 'thread_locals' in canonical.launchpad.webapp.publication?01:12
mwhudsoni think it's complete crack and don't see at all why it's stored on a thread locals object01:12
mwhudson... unless publications are process global or something...01:12
wgrantUsed by publication and servers. This can't be anything good.01:13
wgrantOh, thread_locals is only publication.01:13
mwhudsonwgrant: i think the one in servers is different01:14
wgrantYes.01:14
mwhudsonand is there because of zope crack rather than old pointless crack01:14
mwhudson(i think)01:14
wgrantYeah.01:14
wgrantI don't think the publication is actually per-request.01:14
mwhudsoni think it is :-)01:15
mwhudsonthe only way i can imagine checking is a print statement though :/01:15
wgrantIt's been several years since I last dealt with this stuff. I forget how it is stuck together.01:16
mwhudsonyeah fair enough01:16
wgrant(this was before LP was open)01:16
mwhudsondon't waste too much time on it01:16
wgrantEwww canonical_url constructs its own request.01:17
wgrantForgot about that bit.01:17
mwhudsonhaha\01:17
mwhudsonyes that is particularly terrible01:17
mwhudson(i found that earlier too)01:17
wgrantHmm, so you're right, the publication is normally per-request.01:19
wgrantBut then why do most of its methods take a request...01:20
lifelessthe word baroque comes to mind01:22
mwhudsonoh my yes01:22
mwhudsoni wish the person who came up with all this was a bit less able to cope with complexity01:23
mwhudsonaaaaaaa01:23
mwhudsonwgrant: i'm not sure publications _are_ request local01:23
mwhudson        publication = self._publication_cache.get(publication_class)01:24
mwhudson        if publication is None:01:24
mwhudson            publication = publication_class(self._db)01:24
mwhudson            self._publication_cache[publication_class] = publication01:24
mwhudson(this is in zope.app.publication.httpfactory)01:24
wgrantmwhudson: But the RequestPublicationFactories take the class as a factory...01:24
wgrantAre they lying?01:24
mwhudson"sort of"01:25
wgrantStuff like this is why I've been focusing more on the layer above. The cruft that integrates with our Zope integration cruft.01:27
wgrantNot our Zope integration cruft itself.01:27
mwhudsonyeah fair enough01:27
wgrantBecause that is messy and awful :(01:27
mwhudsonwgrant: do you want to do the honours? https://code.launchpad.net/~mwhudson/launchpad/i-dont-believe-for-a-minute-that-steveIsFixingThis/+merge/7904701:33
wgrantmwhudson: Done.01:34
mwhudsonwgrant: :-)01:36
StevenKmwhudson: I came across that code the week I started on LP ... it was unsettling01:38
huwshimianyone else getting an oops when visiting https://code.launchpad.net/~launchpad-pqm/launchpad/devel/+activereviews ?01:49
StevenKNotOneError: one() used with more than one result available01:50
StevenKWhee01:50
wgrantThat may be from the staticdiff migration...01:50
wgrantBut I don't see how.01:50
StevenKhuwshimi: https://code.launchpad.net/launchpad-project/+activereviews01:50
wgrantThey've been on the OOPS reports for a couple of weeks.01:50
wgrantBut https://code.launchpad.net/launchpad/+activereviews still works.01:50
StevenKwgrant: You said you didn't agree with Julian's meta-lp-deps change?01:51
wgrantStevenK: Correct. But he hasn't withdrawn it yet.01:51
StevenKI think I agree with you, it's unnecessary01:51
huwshimiwgrant, StevenK: I got that link from: https://code.launchpad.net/~launchpad-pqm/launchpad/devel and then clicking on "56 branches proposed for merging into this one."01:52
StevenKhuwshimi: Bug01:52
wgrantThere may already be a bug for it.01:52
wgrantIt's been on the OOPS reports for ages.01:52
* StevenK waits for wgrant's celeberal LP link to fire up.01:52
mwhudsonit means there are diffs that are linked to by more than one mp?01:53
StevenKcerebral, even01:53
wgrantIt's somewhat concerning that PreviewDiff.branch_merge_proposal is meant to be a single object, but there's apparently no UNIQUE constraint on the table.01:53
wgrantThere are 35 offending diffs.01:55
wgrant33 have two references, 2 have 3.01:56
StevenKBut we dropped them all01:56
wgrantOur changes couldn't have caused this.01:56
StevenKAh01:56
lifeless3 failures. 2 are doctests. -nearly- there.01:57
wgrantlifeless: oops-tools?01:58
lifelessyes01:59
lifelessthen its just purging / getting an ack on bundled code01:59
lifelessand we're done. muahahahahahhahahahahaa01:59
lifelesshahhaa01:59
lifelesshahahah02:00
lifelesshahahahahahaha02:00
lifelessand the errors finally all fit in my terminal scrollback02:01
wgrantStevenK: Actually, I think it may have been the staticdiff dropping that did it :(02:05
StevenKOh?02:06
wgrantThere's an undeclared uniqueness requirement on BranchMergeProposal.preview_diff02:07
wgrantWhereas I believe staticdiffs were meant to be shared if they were between the same revisions.02:07
StevenKThis is upsetting.02:08
wgrantSo we will have converted a single shared staticdiff into a single shared previewdiff.02:08
wgrantWhich is illegal, although permitted by the DB.02:08
StevenKPerhaps we should purge the illegalness and toss up a DB patch to add a UNIQUE constraint02:09
lifelesswgrant: did you and sinzui talk about private N-pillar bug tasks ?02:10
wgrantlifeless: A little, but the call was cut short.02:10
wgrantlifeless: He intends to talk to stakeholders tomorrow about eliminating them.02:11
lifelessack02:12
lifeless1 test02:13
lifelessat the loss of a little test coverage. Sob, don't know how ai shall cope02:14
lifeless(no, I didn't just rm the test ..)02:14
StevenKAh, so you commented it out instead02:15
lifelessI trimmed the sample data rather vigorously02:17
lifelessthe report has a lot less to show now:)02:17
poolielifeless: just for my education, could we cluster bugaffectsuser by user?02:54
poolieto make the paging behaviour better?02:55
pooliei guess the main objection would be if it commonly is queried by bug?02:55
lifelessoffhand - yes02:55
pooliebut i think not, or only to generate the counts02:55
lifelessno, that wouldnt be an objection02:55
poolieoh, why not?02:55
lifelessgenerally indices are what matters02:55
lifelessits only in rare cases (perhaps like this) that the table page order matters02:56
lifelesscurrently there is no clustering02:56
lifelessif you mean 'an alternative cluster would be by bug' - well yes02:57
lifelesspoolie: but clustering is a one-off in psql02:57
poolieyou mean it's not automatically maintained? i read that.02:58
poolieso to try this i could: ask stub to on staging make the per-person index be clustered, and then reorder the table to cluster, and then see if it's faster?02:59
lifelesswell, on the next downtime03:00
lifelessand we'd need to test on staging to see how long it takes, but it should be fast.03:00
poolieright, but we could test it on staging fairly freely?03:00
lifelessthen you'd need to wait for a cold cache, and then you could try03:01
lifelessyes03:01
poolieit wouldn't need a particular downtime window to do it there?03:01
lifelessits ok to tie staging up for a few minutes03:01
poolieobviously the timing is pretty noisy, but if it's worth doing hopefully the effect would stand out from the noise03:03
lifelesspoolie: whats the current query you run? I want to check its plan03:05
poolieit's in bug 86610003:05
_mup_Bug #866100: bug search with affects_me=on times out <affectsmetoo> <bugs> <qa-ok> <timeout> <Launchpad itself:Fix Committed by mbp> < https://launchpad.net/bugs/866100 >03:05
pooliethat's a paste of the actual sql generated by my updated branch03:08
poolieok, so it seems affected_user_count is maintained redundantly (as it should be)03:08
pooliewell, not that it probably matters03:09
lifelesspoolie: so you have a problem03:09
lifelessignore the times for now03:10
lifelesshttp://paste.ubuntu.com/706443/03:10
lifelessdifferent plans for user 2 and user 1603:10
lifelessusing different indices03:10
lifelessclustering by person won't help for user 2 - that plan uses the bug,person index03:11
lifelesswell, won't help - it won't align completely.03:11
lifelessit will mean the backing table data is in one place, but the index pages will still be scattered all over03:11
pooliejust looking at that query i'm a bit surprised03:13
pooliei was mostly working on the 'affecting bugs in a product' but that query is all bugs for a user03:15
pooliewhich is fine03:15
pooliejust thought i pasted for the other one03:15
poolieso why a different plan for different users?03:15
lifelessI've clustered staging and qastaging on bugaffectsperson__person__idx for testing purposes03:15
poolieperhaps because it thinks selecting only bugs affecting user 2 won't reduce it much?03:15
poolieit seems like a poor choice03:16
lifelessit may be. This is where checking the stats targets may influence things03:16
lifelesswe can get more info out of new pg's as well - the explain/analyze stuff got sexy in 9.x03:16
poolieis it on the roadmap for lp to switch to that?03:17
lifelessyes03:18
poolieare the stats going to be reasonably up to date on qas?03:18
lifelessbefore the cluster yes03:19
lifelessI need to updat ethem, one sec03:19
poolieso https://bugs.qastaging.launchpad.net/~gz/+affectingbugs with 42 results, works ok in 2.66s03:20
poolieah, you and i work now too, though perhaps it's just warmed up03:20
pooliebtw did you read of http://www.thumbtack.com/engineering/googlebot-makes-post-requests-via-ajax/03:21
lifelesswin!03:21
lifelesspoolie: yes, its warm03:24
poolieright, and mpt for instance fails once then works03:24
lifelesspoolie: it seems faster when hot, though there are confounding issues (clustering also compresses pages, which reduces bloat, which itself helps with performance - less parsing of data structures)03:24
poolieit seems at the moment to consistently work first go on users with small lists03:25
lifelesspoolie: I would wait and see how your thing goes on prod03:25
pooliehttps://bugs.qastaging.launchpad.net/~silbs/+affectingbugs  :)03:25
pooliehttps://bugs.qastaging.launchpad.net/~sabdfl/+affectingbugs - only 40!03:25
poolieok03:25
lifelessnote that fully *half* of the poor performance on me cold is in bugtask:03:26
lifeless                     ->  Index Scan Backward using bugtask_importance_idx on bugtask  (cost=0.00..153181.30 rows=341880 width=161) (actual time=189.469..46810.549 rows=5993 loops=1)03:26
lifeless                           Filter: ((status = 10) OR (status = ANY ('{15,13,14}'::integer[])) OR (status = 20) OR (status = 21) OR (status = 22) OR (status = 25))03:26
lifeless 46 seconds walking bugtask backwards by importance03:26
pooliewell, that would be very big, right?03:27
lifeless6000 rows03:27
pooliethat's going to be pulling out ~500,000 rows?03:27
poolieoh, why so few?03:27
lifelessLIMIT 8 OFFSET03:27
lifeless003:27
lifelessapparently I have 8 open affecting me bugs in the last 5993 filed bugs03:28
pooliehuh, i wonder how that got in there03:28
lifelessif we raise that 8 (launchpad.dev) to 75 (launchpad)03:28
lifelesswe may see different plans etc03:29
lifelessyeah, limit 75 switches the plan to the same as the original one for user 1603:29
lifelesspg is pretty smart ;)03:29
pooliei'm a bit confused why my code running on dev would have put a 'limit 8' into the query03:30
pooliehow would it know there are 803:30
lifelessthe batch code does a count(*)03:31
lifelessand if < limits to match03:31
lifelessabel's work helps stop this crazy behaviour, but we have to roll it out over each collection individually03:31
pooliewow, i see03:32
lifelessanyhow, just a thing to watch for when copying test plans around :)03:33
poolieso it really seems to me it ought to be using bugaffectsperson__person__idx03:33
lifelessit does for user=2 with limit 75 offset 003:33
poolieeven for you, that should cut down the bugtask table quite a lot03:33
lifelessbut not for limit 8 offset 003:33
lifelessits going to be assessing linear IO costs in there vs random03:34
lifelessI think we need to do some benching and tweaking of these params03:34
poolieok, so, like you suggest i'll just wait for it on prod03:36
poolieand - should we do anything further on clustering, or just if it's passing on prod leave it alone?03:37
lifelessif it works don't touch it03:38
lifeless:)03:38
poolie:) yeah03:38
pooliei have more context to understand abel's mail now, thanks03:39
poolieso if this does time out, one thing i could try is to make that update in the bug list pages03:39
poolieok i might take a break, thanks03:44
wgrant[A303:45
poolie+103:46
=== almaisan-away is now known as al-maisan
lifelesswgrant: you know stderr is meant for non-exceptional stuff :)06:01
lifelesswgrant: per POSIX :)06:01
wgrantlifeless: Meh.06:02
StevenKIt's Launchpad. Everything is non-exceptional because it's all NORMAL. :-(06:03
lifelesswgrant: explicitly even.06:03
lifelessStevenK: actually this is referring to apt-ftparchive06:04
StevenKSigh.06:04
StevenKBring on NMAF06:04
lifelessStevenK: which does progress chatter on stderr (which is ok, but it should have a -q to get it to bare bones)06:04
lifelesswgrant: (and btw, did you file a bug upstream ?)06:04
wgrantlifeless: I didn't. It may be silencable.06:05
wgrant(this is what was already done for the publisher, it just needed to be done for generate-contents-files too)06:05
lifeless  -q    Quiet06:05
StevenK-qq --shut-the-hell-up06:05
lifelessfrom its help :)06:05
nigelbWho's orange team?06:20
nigelbThe bug list mocks up look... WOW06:20
StevenKnigelb: Deryck and the rest of the mafia06:25
nigelbStevenK: heh06:25
nigelbStevenK: I guess Teal is the assasin squad, seeing the amount of code you kill :P06:25
StevenKHahaha06:26
StevenKI shall have to propose that to Curtis06:26
nigelbheh06:26
nigelbStevenK: "The Teal Assasins"06:27
StevenKYes, I was thinking that06:28
* G joins the group "Save the Ducks" and starts protesting :)06:28
StevenKnigelb: "Assassinating bad code, one line at a time."06:28
nigelbStevenK: bwahaha, I <3 it.06:29
nigelbwgrant: ^^06:29
wgrantHeh06:29
StevenKG: You like duck typing?06:29
GStevenK: no, but I happen to like all ducks, Teals included, not keen on the idea of assassinating them :)06:30
StevenKwgrant: globalErrorUtility is defined in errorlog, and not exported :-(06:30
GStevenK: in fact, the server that my irssi connection is located on, is named after the brown teal (Pateke)06:31
wgrantStevenK: You're not meant to use getUtility(IErrorReportingUtility)?06:31
StevenKwgrant: I have no idea :-(06:31
StevenKG: I name my machines after things that can befall them that make them stop working06:32
StevenKG: My mail server is 'mangled', my desktop is 'liquified'06:32
nigelbYou work machine is 'deleted'? :P06:32
Gheh, subconciously all my VPS' have been named after ducks :)06:32
nigelb*your06:33
StevenKnigelb: No, I do my work on liquified06:33
nigelbStevenK: ha :)06:33
StevenKliquified might prove to be true, sadly.06:34
StevenKI think the lone fan needs a clean06:34
GStevenK: you are going to put in water-cooling?06:34
StevenKNo, I'm just commenting that it is running a little too hot at the moment.06:34
wallyworld_anyone tried to create_initialised_view(some_person, name='some_view') and got a LocationError: 'link-display-name-id'?06:39
=== al-maisan is now known as almaisan-away
wgrantBah.07:02
wgrantUnity stole my text editor07:02
wgrantIt is still running, but nowhere to be found.07:02
jtvwgrant: want to take this question?  https://answers.launchpad.net/launchpad/+question/17398507:48
wgrantjtv: Julian should be here in 10, right?07:52
wallyworld_wgrant: what's the easiest way to get a mp on qas that i can play around with?07:58
wgrantwallyworld_: Create one fresh.07:59
wallyworld_ok. i think last time i tried it didn't work but i'll try again07:59
wgrantIt should work OK, but you might need to get the runner run manually if you want a diff.08:00
wallyworld_ah, i think i remember - i never get a diff08:00
wallyworld_what's the runner script called?08:01
wgrantShould be merge-proposal-jobs.py08:01
wallyworld_thanks08:01
jtvwgrant: yes08:02
* StevenK grumbles at the existance of cronscripts/run_jobs.py and cronscripts/process-job-source.py08:03
adeuringgood morning08:07
lifelessbigjools: lp:python-oops-amqp :)08:07
bigjoolsgood morning08:07
jelmerg'morning08:07
bigjools:)08:08
bigjoolslifeless: someone's been busy08:08
lifelessbigjools: things are coming together08:08
lifelessbigjools: I'm going to do a spool-from-disk module for oops-datedir-repo, and then we can use that as the backing store when rabbit is down08:11
lifelessbigjools: at which point, it will be time to land it all in LP trunk :)08:11
bigjoolslifeless: backing store?08:12
lifelessfallback08:12
lifelessif rabbit is awol and an oops is raised, what should happen...08:12
bigjoolsdepends what raises the oops08:12
lifeless(answer: we write it to disk, and we have a separate mini task that picks it up from disk and sends it to amqp when amqp comes back)08:13
bigjoolsoh wait - you're talking about pushing OOPSes down to rabbit?!08:13
jtvdanilos: I think I saw movement from your direction.  Want to review a very small translations change?  https://code.launchpad.net/~jtv/launchpad/bug-872646/+merge/7905308:13
lifelessbigjools: its configurable (just depends on what publishers we setup), but this seems like a sane setup for all our services/scripts to me08:13
lifelessbigjools: yes !08:13
bigjoolslifeless: ah! I thought you mean picking up rabbit problems and filing an oops08:14
lifelessbigjools: no, though that is needed too08:14
lifelessbigjools: that wouldn't get a generic name though :)08:14
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
wallyworld_wgrant: sadly, running the job got rid of the "Updating Diff" message but no diff has been created08:25
wgrantwallyworld_: Are the source and target branches in place?08:26
wallyworld_not sure. the target branch is lp trunk, the source is one i did a few weeks ago08:27
wgrantLP trunk probably isn't there.08:27
rvbawallyworld_: if it's similar to what happens locally, you need to run the script *twice* to get a diff.08:27
wallyworld_rvba: hi! twice? could be, although i suspect it's more due to qas not having the source and/or target branches available08:29
=== danilos changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: StevenK, danilos | Critical bugs: 269
danilosjtv, r=me, as for the expiration period, 6 months is fine (we can certainly go lower, but doesn't really matter imho)08:35
jtvdanilos: that was my thinking too.  Thanks.08:36
jtvThought I might as well grab you as long as I still can.  :)08:36
danilosjtv, heh, yeah, good point, I am also making a point of fixing some of the important translations issues :)08:38
danilosbigjools, hi, do you happen to know if there are actual reasons for +configure-translations page to have builder-related stuff? (see https://translations.launchpad.net/ubuntu/+configure-translations)08:40
jtvdanilos: saw that, including the policy change on approval permissions.  Good news.08:41
jtvdanilos: bigjools & I are otop atm  :-P08:41
danilosjtv, ask him if configuring arm builders is part of translations settings then :P08:41
bigjoolsdanilos: there is no reason at all for those 2 options08:41
danilosbigjools, cool, thanks, I'll remove them from that page08:41
bigjoolsdanilos: ubuntu uses non-virt, everyone else virtual08:41
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
jtvPending team membership requests don't ever expire, do they?09:54
wgrantNo.09:54
jtvShouldn't they?09:54
wgrantWhy?09:55
jtvI'd like to answer that in 2 ways.09:55
StevenK"Here, let me your question with another question." ?09:55
jtv1. Why should they?  → Because if a request hasn't been reviewed after, say, a year, that amounts to “no you can't join.”09:55
jtv2. Why do you ask?  → Because we've got teams with eternally pending membership requests, caused by problem with person merger, that currently can't be got rid of.09:56
jtvThat wasn't so bad, was it?09:56
jtvI know, I know, we should fix person merger.  But that's marked as Low.  We'll never have time for it unless it becomes super-urgent.09:57
jtvIt also won't help people who are affected by this problem already.09:58
=== StevenK changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: danilos | Critical bugs: 269
poolie"here, let me answer your question with unicode glyphs"10:06
jtvpoolie: oh ☣ off10:07
nigelb....10:11
nigelbNever a dull moment in this channel10:11
nigelbjtv: As a team admin, I'd want to set a limit of number of days. If a person isn't approved within that time, they're not getting approved.10:13
nigelb1 year sounds arbitary10:13
nigelbOh, just saw your m/l post. /me will reply to it.10:13
jtvnigelb: thanks for thinking about it though.10:18
nigelb:)10:19
adeuringdanilos: fancy a review of a trivial MP: https://code.launchpad.net/~adeuring/launchpad/feature-flag-for-custom-bug-listings/+merge/79103 ?10:47
danilosadeuring, r=me ;)10:48
adeuringdanilos: thanks :)10:48
Gjtv: btw, I was looking at the person merger, and I might take a stab at it?10:50
StevenKWe have a person merger :-P10:51
jtvG: you mean fixing the bug itself?  That'd be great, but it looks like it could get complicated.10:51
bigjoolsawesome, generate-contents-files is producing 646 oopses a day10:52
jtvFor example: person A is in team X, and person B is in team Y, and team Y is in team X, and you mere A & B.  What happens to each of the TeamParticipations?10:52
jtvWhat happens when A and B are in the same team, but with different statuses?10:52
jtvEtc.10:52
Gand yeah, I agree w/ nigelb that groups should set the expiration period per group, but really, shouldn't the default be more like 4-6 months, anything longer kind of implies an inactive group (or I guess indecision)10:53
=== Guest82578 is now known as jelmer
Gjtv: a valid point, but is there actually any harm for the merged user to be a member in both groups?10:54
nigelbjtv: Perefect interview question ;)10:55
nigelb*perfect (oh the irony)10:55
jtvG: Teams.  I would expect it to be simply impossible; it would probably violate a database constraint.10:55
jtvnigelb: does sound like it, doesn't it?10:55
Gerr yeah teams, sorry10:56
nigelbIt sounds like a fun problem to solve, because its non-trivial.10:56
jtvMeanwhile, person A departs Manchester in a train heading towards London, where person B…10:56
nigelblol10:56
jtvThere can be especially nasty bugs if you delete one record; update another; move on; and later hit a database error when the two changes get flushed to the database in the wrong order.10:56
nigelbah. replication.10:57
Gas far as A & B in the same group w/ different status' shouldn't the higher status be the one kept? After all they'd have that access anyway10:57
Gooooh yeah, replication10:57
jtvnigelb: careful—replication is a different matter altogether.  I'm talking about a different layer of caching, within the ORM itself.10:58
jtvThe replication machinery won't make that mistka.e10:58
jtv*mistake10:58
jtv(speaking of irony)10:58
bigjoolsbug 86024510:59
_mup_Bug #860245: generate-contents-files.py should be a LaunchpadCronScript <qa-ok> <Launchpad itself:Fix Released by wgrant> < https://launchpad.net/bugs/860245 >10:59
bigjoolsthat ^^ is causing 1000+ oops a day10:59
nigelbjtv: Oh right. I didn't realize ther was an ORM layer of caching10:59
jtvbigjools: the bug is, or the fix is?11:00
bigjoolsthe fix11:00
jtvOuch.11:00
bigjoolsthe script logs at WARNING11:00
bigjoolssigh11:00
jtvAh that.11:00
wgrantbigjools, jtv: Fix landed a couple of hours ago.11:00
jtvYou say critical, I say cheap karma.11:00
bigjoolswgrant: ah, good.  What's the bug?  I just filed a dupe11:01
nigelb~>11:01
nigelb~>11:01
wgrantIt was a 5-character fix so I didn't file one :P11:01
bigjools:/11:01
Gjtv: hmmm I certainly get what you are saying, might try and think of a way to counter it11:07
jtvG: looking at the bug again, I'm not even sure if there are TeamParticipations for these particular membership records.  It seems such a simple problem, but…11:08
Gjtv: yeah, I haven't looked at the code, my checked out branch is a few weeks old, so I'm just updating it now11:08
nigelbjtv: It may depend in which directions the accounts are merged wouldn't it?11:09
Gnow if only postgres had a databasediff tool :P11:09
nigelb(I'm guessing this is merging imported automatically created accounts with real ones)11:09
jtvnigelb: probably, too.  Lots of choices to be made.  Sometimes you just have to start coding to find out what the choices are, and then you have to be willing to throw away your code and start over if need be.11:09
nigelbjtv: Or start writing tests :)11:09
jtvG: it's not perfect but you can create two dumps and diff them.11:09
Gjtv: yeah, thats what I was thinking11:10
nigelbG: use meld to do the diffing11:10
jtvnigelb: point taken—but what I said about choices is also about behaviours to test for.  :)11:10
nigelbah. RIght.11:10
Gnigelb: ewwwwww11:10
G(and yes, I've used that before)11:10
nigelbG: It is *good* for diffing launchpad db dumps11:10
nigelbI've used it.11:11
jtvnigelb: did you follow up to my email?  If so, I'm not seeing your reply.11:11
Gnigelb: I'll just stick to diff -y :)11:11
nigelbjtv: not yet. composing and multitasking11:11
jtvAh OK, no worries then.11:11
Gbut yeah, I'm going to have a poke at the underlying bug11:11
jtvG: cool!  There's always the chance that it's not as bad as it seems.11:12
Gjtv: one can only hope :)11:13
jtvWhere there's hope, there's code.11:13
GI'm in a particularly bughunting mood this week11:13
Gjtv: in re: to your second e-mail, what about just a button, "Expire requests over [   ]  [days|weeks|months|years] old11:16
G(and maybe in addition to that, a disabled by default option so it doesn't disrupt anyone)11:17
jtvG: that's one of the worst words in software development: "just."  As in, “why don't you just implement […]” :)11:17
jtvSee, you're already piling on features.  Great stuff, but every idea you add reduces the chances of anyone actually getting around to completing ig.11:17
jtv*it11:18
nigelbUnless you do it yourself.11:19
jtvI don't know why I'm trying to rain on everyone's parade today.  Sorry about that!  I just mean: sometimes the most effective thing to put your creativity towards is how to minimize the change so as to optimize its chances of it getting done.11:19
jtvI've often managed to sabotage myself by making things too pretty.11:20
Gjtv: sorry yeah, I was thinking a way of doing it simply, and then a future way that could implement your main suggestion, with code reuse and not stepping on anyone's toes11:20
jtvThis is going to be a fun thread on the list.  :-)11:20
nigelbheh11:21
=== almaisan-away is now known as al-maisan
nigelbBUt its launchpad, I've seen sensible heads prevail almost always.11:21
jtvIt's not a bad project, really!  But I wasn't being ironic.  I really enjoy seeing people think about this problem already.11:22
nigelbShould. Resist. Temptation. To. Volunteer.11:23
=== gmb is now known as graham
=== graham is now known as Guest86745
=== Guest86745 is now known as gmb
=== beuno is now known as beuno-lunch
deryckMorning, all.13:01
=== Dean is now known as Beret
bigjoolsbenji: I've got the corrupted launchpadlib password thing again (hence get a traceback), can you remind me where to reset it please?13:15
benjibigjools: I don't remember last time very clearly.  It's either in a keyring (Gnome or KDE) or a file in ~/.launchpadlib13:17
benjiif you show me the traceback I can probably narrow it down13:17
bigjoolsbenji: thanks: http://pastebin.ubuntu.com/706700/13:18
bigjoolsbenji: funny thing is that it was working, then suddenly went bad :(13:19
benjibigjools: that's really odd. That should be one of the ~/.launchpadlib directories, probably api.launchpad.net if you're using prod; if you would, tar it up and send it to me (there might be private things in there, so I wouldn't just put it on a bug report) then you can just rm -rf that directory and you'll have to reauthenticate but you should be back in business13:21
bigjoolsbenji: I removed ~/.launchpadlib already... :)13:21
benjipfft13:22
benjiand you're still getting the error?13:22
bigjoolsbenji: AHA, I found it in kwallet13:22
bigjoolsit threw me because it was in the gnome-keyring beforehand but I think oneiric has fixed that bug13:22
* benji tries to remember why in the world we're storing ini-formatted data in a keyring13:22
bigjoolsand how does it get corrupted13:23
benjiwe really need a bug for this (if there isn't one already)13:23
bigjoolsI'll file it13:23
benjiis there any chance you ran two scripts at the same time?13:23
bigjoolsummm don't *think* so13:24
benjiWe handle concurrency so poorly it was the first thing I though of.13:24
bigjoolsbug 87285313:25
_mup_Bug #872853: Crash due to corrupted password in keyring <launchpadlib :Triaged> < https://launchpad.net/bugs/872853 >13:25
bigjoolsthanks for the help benji13:27
benjibigjools: my pleasure; thanks for the bug13:27
bigjoolsbenji: so I am getting consistent corruption on consecutive uses :(13:36
bigjoolshowever the data looks ok in the wallet13:36
benji"looks ok in the wallet"?13:36
benjiwell, at least it's reproducable, that's a start13:37
bigjoolsthe contents of the "password" look ok13:37
bigjoolsderyck: is this bug of interest to you guys, ref. the new bug page? https://bugs.launchpad.net/launchpad/+bug/87284813:46
_mup_Bug #872848: List of remote bug watches is hard to find <ui> <Launchpad itself:New> < https://launchpad.net/bugs/872848 >13:46
* deryck looks13:47
deryckbigjools, no, not for this project.13:47
bigjoolsok thanks13:47
deryckThank you. :)13:49
=== beuno-lunch is now known as beuno
deryckadeuring, http://people.canonical.com/~deryck/new-bugs-form.png14:02
adeuringderyck: thanks14:02
deryckadeuring, I'm making some notes for you too about this.14:02
dobeyhey guys14:03
dobeyanyone have any idea why a private bug would be viewable by someone, but the bug display would not show the task table area for the task, preventing them from changing the status/importance/etc?14:03
Davieybigjools: do you have a moment?14:05
bigjoolsDaviey: OTP14:06
Davieybigjools: ok, thanks14:06
bigjoolswill ping later14:06
dobeyhttp://ubuntuone.com/4Sl9zWfR83MC0x1s0b7hNm <- like this14:06
Davieybigjools: raising a bug, will PM it to you.14:07
Davieybigjools: when you have a moment, https://bugs.launchpad.net/launchpad/+bug/87287014:09
=== al-maisan is now known as almaisan-away
jcsackettdobey: it's a currently in progress bug. (bug 865467). there's a workaround for now in the description.14:40
_mup_Bug #865467: bug task missing from affects table because bug supervisor is not subscribed <disclosure> <regression> <Launchpad itself:In Progress by jcsackett> < https://launchpad.net/bugs/865467 >14:40
dobeyjcsackett: ah, thanks.14:41
jcsackettsinzui: got a few moments to mumble?14:41
=== abentley changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: danilos, abentley | Critical bugs: 269
=== almaisan-away is now known as al-maisan
bigjoolsDaviey: hey, I saw the bug15:19
sinzuijcsackett, sorry, I was in conversation15:19
sinzuijcsackett, I can mumble15:19
bigjoolsthanks for triaging his bug sinzui15:20
jcsackettsinzui: no worries.15:20
nigelbdobey: they don't havve rights for the project perhaps?15:21
nigelbdobey: Oh. that looks weird.15:21
Davieybigjools: yeah, wasn't as bad as i thought it was.  I thought it was odd, because it was a bug i thought i raised :)15:22
bigjoolsindeed15:22
bigjoolsDaviey: I removed the branch link so you can see it now15:22
Davieybigjools: thanks :)15:23
=== al-maisan is now known as almaisan-away
=== deryck is now known as deryck[lunch]
=== danilos changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: abentley | Critical bugs: 269
nigelbheh16:39
nigelbgithub just got a slightly new design16:39
nigelbthe tabs remind me of old launchpad16:39
bigjoolsGitHub - Yesterdays Technology, Tomorrow17:01
=== deryck[lunch] is now known as deryck
=== jcsackett_ is now known as jcsackett
lifelessmoin18:53
mwhudsongrr why didn't permit_timeout_from_features-on-participation-bug-861510 land20:08
mwhudsonNonZeroExitCode: Test process died with exit code 2, but no tests failed.20:10
mwhudsonwhat does this mean?20:10
mwhudsonah Exception: RabbitMQ server is not running.20:11
lifeless-> allergy shot, bbiaf20:26
StevenKsinzui: https://code.launchpad.net/~stevenk/launchpad/soft-oops-on-private-team-disclosure/+merge/7906622:27
sinzuiStevenK, This is how I read my oopses: less `ls /var/tmp//lperr/2011-10-04/* -t1 | sed '1!d'`22:29
sinzuiwallyworld, bug 134222:48
_mup_Bug #1342: Can't delete spurious "Affects" lines (bugtasks) from bug reports <canonical-losa-lp> <lp-bugs> <Launchpad itself:Triaged> < https://launchpad.net/bugs/1342 >22:48
sinzuiI am sure that 4 digit number make you happy22:49
StevenKwgrant: What did you suggest for the feature flag?23:36
wgrantStevenK: disclosure.log_private_team_leaks, perhaps.23:37
pooliehuwshimi: http://www.codinghorror.com/blog/2008/02/the-ultimate-unit-test-failure.html23:42
poolie> "We are not very important because we don't cut code." (A boo and hiss from the audience.)23:42
huwshimipoolie: Interesting. Makes me happy that our feature development has moved to a design first model :)23:44
pooliedid you read that thing about amazon soa?23:45
huwshimipoolie: I don't think so23:45
huwshimipoolie: Link?23:46
pooliejoin canonical-tech :)23:46
pooliehttp://buu700.com/steverant23:47
poolie> Jeff Bezos is an infamous micro-manager. He micro-manages every single pixel of Amazon's retail site. He hired Larry Tesler, Apple's Chief Scientist and probably the very most famous and respected human-computer interaction expert in the entire world, and then ignored every goddamn thing Larry said for three years until Larry finally -- wisely -- left the company. Larry would do these big usability studies and demonstrate beyond any shred23:47
poolie of doubt that nobody can understand that frigging website, but Bezos just couldn't let go of those pixels, all those millions of semantics-packed pixels on the landing page. They were like millions of his own precious children. So they're all still there, and Larry is not.23:47
poolie:)23:47
StevenKBut he's wrong. amazon.com recently changed23:49
StevenK(And IMO, it looks better)23:49
huwshimipoolie: Oh I am actually subscribed. I didn't read that one though23:49
StevenKBecause it isn't a post, but a novel?23:49
StevenKwgrant: Did you have any other issues with my branch aside from 1) The flag name, and 2) the lack of tests?23:50
poolieStevenK: well, he's out of date23:51
poolietheir new stuff, like some of the kindle pages, certainly looks remarkably better23:51
* poolie checks23:51
StevenKThe front page has changed is what I was refering to23:51
wgrantStevenK: Not really. As long as it gives a good traceback and contains the pageid and URL and user and stuff.23:51
StevenKCertainly the top has23:51
StevenKwgrant: Right, excellent. I've fixed the flag name, now to write a test23:52
poolieeven ebay is not quite such a ridiculous mess as it used to be23:53
pooliebut still awfully noisy23:53

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