/srv/irclogs.ubuntu.com/2011/02/21/#launchpad-dev.txt

lifelesschanges to shipit itself? via PQM I believe00:01
wgrantI mean reviewer-wise.00:01
wgrantSince it's ISD.00:01
lifelessdunno00:02
lifelessis there even a project/00:02
wgrantThere is.00:02
wgrantThat's where the branch lives.00:02
jelmer_wgrant: last time I changed it I just proposed a merge in Launchpad and then pinged somebody in ISD (Anthony Lenton I believe) about it.00:02
jelmer_wgrant: He reviewed and took care of landing my changes.00:02
wgrant:(00:02
wgrantThanks.00:02
jmllifeless: I'd be interested in disagreeing with you about that some time.00:02
jmllifeless: but not now.00:03
lifelessjml: about what? [ambiguous that]00:10
jmllifeless: moving devscripts out of tree00:10
jmlgood night!00:10
wgrantlifeless: Also, you could export id in the interface rather than using rSP.00:11
huwshimijml: Night00:11
lifelessjml: gnight00:11
wgrantNight jml.00:11
lifelesswgrant: err, the ids are exported00:12
lifelesswgrant: they get wrapped, because thats what security proxies do00:12
lifelessthen sqlvalues goes boom00:12
wgrantlifeless: Huh? ints are not proxied.00:12
wgrantIf it's on the interface it should be fine :/00:12
lifelesslists of ints are00:12
wgrantOh, right, all_distro_archive_ids.00:13
lifelessoh man00:21
lifelesslaunchpad_dev=# SELECT COUNT(*) FROM BugTask JOIN Bug ON BugTask.bug = Bug.id WHERE Bug.id = BugTask.bug AND ((BugTask.status = 10) OR (BugTask.status = 15) OR (BugTask.status = 20) OR (BugTask.status = 21) OR (BugTask.status = 22) OR (BugTask.status = 25)) AND BugTask.milestone = 14 AND Bug.duplicateof is NULL;00:22
lifeless200:22
lifelesslaunchpad_dev=# SELECT COUNT(distinct bugtask.bug) FROM BugTask JOIN Bug ON BugTask.bug = Bug.id WHERE Bug.id = BugTask.bug AND ((BugTask.status = 10) OR (BugTask.status = 15) OR (BugTask.status = 20) OR (BugTask.status = 21) OR (BugTask.status = 22) OR (BugTask.status = 25)) AND BugTask.milestone = 14 AND Bug.duplicateof is NULL;00:22
lifeless100:22
lifelessour production milestone bug counts are a little inflated00:22
lifelessgive you one guess why00:23
lifelessI'm going to go beat my head against a wall for a few minutes00:24
wgrantHmm.00:26
wgrantlibrariangc creates dozens of cursors.00:26
wgrantCan anyone see a good reason to keep that?00:26
lifelessI'd check with stub00:27
wgrantI can see no benefit over passing a single one around, instead of the connection that it currently passes.00:27
wgrantk00:27
lifelessanyone remember where the storm expr for Distinct is00:28
wgrant.config(distinct=True) isn't good enough?00:28
wgrantAh, you want that second query?00:28
lifelesswell00:28
lifelessI'm not going to fix the current for loop00:28
lifelessbut countBugs also has the same defect00:29
lifelessit just isn't showing it in the current code path because its constrained to only consider series tasks00:29
lifelessthe reason conjoined masters mess things up is because they have /two/ tasks00:29
lifelessrather than rendering as two tasks but actually having one.00:29
wgrantRight.00:29
lifelesssigh, we definitely need two queries.00:38
lifelessmmm00:38
lifelessunless, I group by - bingo00:38
lifelessmmm00:39
lifelessno00:39
lifelessour compiler just isn't good enough, and I think we'll get enough benefit for now with two queries00:39
lifelessright, thats another second or so off of bug searching in ubuntu01:10
lifeless+ more accurate counts01:10
wgrantExcellent.01:10
lifeless[should be marginally cheaper too]01:10
lifelesswe have laze evaluation of milestones too01:10
lifelessgoing to look at that in a minute01:10
lifelessI can has review number two? https://code.launchpad.net/~lifeless/launchpad/bug-717394/+merge/5054101:14
lifelesspoolie: hi, I will be in syd evening of the 4th,5th and through early avo 6th.01:16
StevenKlifeless: \o/01:16
pooliehi lifeless01:17
pooliegreat! i'll be here too01:17
wgrantlifeless: milestones are targets now?01:17
lifelesswgrant: for bug search, yes01:18
wgrant:(01:18
poolie98-            group_on + (Count(BugTask.bugID),), [], None, params).result_set01:18
poolie99+            group_on + (SQL("COUNT(Distinct BugTask.bug)"),), [], None, params).result_set01:18
poolieit seems like a storm bug if that's any faster01:18
pooliebut it is?01:18
lifelesspoolie: how  would it be a storm bug?01:19
lifelesswgrant: I can take that out if it doesn't make sense01:19
pooliedoes it generate different sql? only becaues of the 'distinct' constraint?01:20
wgrantlifeless: It doesn't seem to be used and doesn't comply with the definition of 'bug target' everywhere else.01:20
lifelesswgrant: it just made sense at the time; I guess rather than setTarget a better name would be 'constrainBy'01:20
wgrantRight.01:20
lifelesswgrant: its used in browser/bugtarget.py01:20
lifelesspoolie: yes, different sql01:21
poolielifeless, i'm just curious what it does differently01:21
lifelessSELECT COUNT(*) FROM BugTask -> SELECT COUNT(distinct bugtask.bug)01:21
lifelesserm01:21
lifelessSELECT COUNT(bugtask.bug) FROM BugTask -> SELECT COUNT(distinct bugtask.bug)01:21
lifeless^ thats the change01:21
poolieand that's faster in psql?01:22
lifelessslightly smaller intermediary table01:23
lifelessthe big win is using the countBugs function rather than doing a loop in python01:23
pooliesure01:23
pooliethere's no way to say 'distinct' in storm?01:23
lifelessdoing a distinct forces a sort01:23
lifelessbut so does grouping01:23
lifelessso in this case it just lets it return less data internally before the aggregation01:24
lifelesspoolie: you can define an Expr for it01:24
lifelessbut it likes to put () around things01:24
lifelessand COUNT((Distinct BugTask.bug)) isn't valid SQL01:24
lifelesss/it/storm/01:24
wgrantStorm will do distinct, but not in a group by.01:25
wgrantOh.01:25
wgrantI misread.01:26
wgrantBut still, no way to do that in Storm right now.01:26
pooliei wonder if lp should ban branch renames until more of the bugs related to it are fixed01:26
poolieeg https://answers.launchpad.net/launchpad/+question/14616501:26
wgrantIs there more than one bug?01:27
poolierenaming branches that are stacked upon causes troubel01:27
wgrantThat is the only real bug that I know around renaming.01:27
poolierenaming branches causes confusing errors in a bunch of cases01:27
lifelesswgrant: IIRC recipes decided to not link to branches01:30
lifelesswgrant: because modelling recipes was too hard01:30
lifelessor something01:30
wgrantlifeless: False.01:31
wgrantSee SourcePackageRecipeDataInstruction.branch01:31
wgrantI think we need a SourcePackageRecipeDataInstructionPartToken, or something like that.01:32
lifelesswgrant: interesting01:32
lifelesswgrant: so why did that guys branch start barfing? or is it a stacking issue01:32
wgrantlifeless: Stacking.01:32
wgrantSo, I am all for banning renames of stacked-on branches.01:32
wgrantBecause it causes a lot of trouble.01:32
lifelessI think thats appropriate01:33
lifelessbut not a desirable constraint per se01:33
wgrantSure.01:33
wgrantBut it *will* break things.01:33
wgrantSo we might as well ban it until it's fixed.01:33
spiv+101:33
* spiv blinks. Isn't "product" a deprecated term?01:35
wgrantYes.01:35
wgrantIs this on +newrecipe?01:35
spivwgrant: no, on clicking the ajaxy bug task affects to reassign something from bzr to bzr-loom01:35
wgrantAh.01:36
spivThanks; I'll file/find a bug.01:36
wgrantA new one was introduced recently (bug #714536)01:36
_mup_Bug #714536: Branch:+new-recipe related branches listing has formatting issues <recipe> <trivial> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/714536 >01:36
wgrantI don't know a bug for yours.01:36
thumperspiv: yes01:39
thumperspiv: there is a bug already01:39
thumperspiv: bug 71453401:39
_mup_Bug #714534: Branch:+new-recipe refers to "product series" <recipe> <trivial> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/714534 >01:40
spivJust filed https://bugs.launchpad.net/launchpad/+bug/72241201:42
_mup_Bug #722412: Changing project of bug task prompts to change/search "product" <Launchpad itself:New> < https://launchpad.net/bugs/722412 >01:42
spivthumper: hmm, that bug to my eyes doesn't seem obviously the same01:42
thumperspiv: ah... differrent one01:42
spivthumper: unless it is meant as a global s/product/project/ bug?01:42
thumperspiv, no it wasn't01:42
thumperspiv: just my misunderstanding of your bug01:43
wgrantlifeless: https://code.launchpad.net/~wgrant/launchpad/use-script-isolation-arg/+merge/5054301:43
spivthumper: Heh, I'm guessing you've been working on recipes a lot lately, because I didn't mention them at all :)01:44
thumperspiv: perhaps it was wgrant mentioning it in passing interleaved with your messages :)01:44
spivthumper: he also guessed recipes were involved... I'm detecting a pattern!01:46
thumperI fixed the bug page as part of some recipe work01:46
thumperbut I didn't notice the product term used01:46
* thumper is a little confused01:49
thumperlifeless: are you familiar with the DocTestMatches matcher?01:50
thumperlifeless: nm01:52
lifelessyes01:53
lifelessI wrotes it01:53
thumperthe whole point of using the DocTestMatches was to have it normalize the whitespace.  A little frustrating that I have to pass in the flag01:53
lifelesswhen I wrote it I wasn't sure what sensible defaults would be01:54
lifelessif we were to put the flag on by default01:54
lifelessI think we'd need a way to turn it off too01:54
lifelessbut we could change the default, or you could use functools.partial to make a version that has the flag supplied for all your tests01:54
thumperhmm...01:55
wgrantlifeless: Thanks.01:56
lifelessthumper: idioms that work in functional environments will work well with matches01:57
* thumper off for school run01:57
lifelessthumper: its a very similar environment01:57
lifelessok, that was too easy.02:00
lifelessif I put a method 'getPillar' on I*Series and I*[things that also have series variants]02:03
lifelesswhat would you expect it to do?02:03
wgrantIsn't there a .parent or similar to do that?02:03
lifelessah, but IProduct.getPillar() -> self02:04
lifelesspossibly I want IPillar(thing)02:04
lifelessdo we have that already02:04
lifeless?02:04
wgrantWe have IRootContext or similar, which does that.02:04
wgrantBut it's probably not a good idea to reuse it.02:05
lifelessanother review plox https://code.launchpad.net/~lifeless/launchpad/bug-717394-2/+merge/5054502:05
poolieo/ spiv02:05
* spiv waves02:06
lifelesswgrant: if you look at my new branch you can see it would be rather more pithy and clear02:11
lifelesswgrant: I don't know how often we do this02:11
* lifeless headdesks02:15
lifelesslib/lp/registry/model/distribution.py02:15
wgrantlifeless: Sure, I would support an IPillar. Take stuff out IRootContext.02:15
lifelessline 724 - __getitem__02:15
wgrantWow.02:15
wgrantOTOH it does save queries.02:16
wgrantHm, except not.02:16
wgrantBut Distribution.series is cached, so yes, it does save queries.02:16
wgrantSlightly.02:16
pooliehuwshimi, does https://bugs.launchpad.net/launchpad/+bug/722419 ring any bells?02:16
_mup_Bug #722419: bug title edit buttons go under portlets, can't be clicked <bugs> <css> <regression> <Launchpad itself:Triaged> < https://launchpad.net/bugs/722419 >02:16
lifelessit triggers the query I'm seeing02:17
huwshimipoolie: I can reproduce it if that's what you mean?02:17
lifelesswhether it saves queries or not is a little dicy at this point02:17
lifelessI'm not sure thats a regression, its been like that since ajaxification02:18
huwshimipoolie: Oh actually that's a dupe02:20
pooliehuwshimi, i guess i was politely asking "i wonder if you broke it" :-)02:21
wgrantlifeless: I like Distribution._sort_key02:21
poolienot really a big deal02:21
huwshimipoolie: haha, ok. No I didn't. It's actually been like that for ages. It has to do with how big your browser window is02:22
poolieyes02:24
lifelesswgrant: facedesk02:24
huwshimipoolie: Have you changed your res or browser size recently?02:24
huwshimipoolie: Like in the last week :P02:24
lifelesswgrant: you'll love 72242102:24
lifelessbug 722421 that is02:25
_mup_Bug #722421: lib/lp/bugs/model/bug.py _known_viewers causes per-row lookups on public bugs in bug searches. <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/722421 >02:25
wgrantIt's also wrong.02:26
lifelessargh02:27
lifelesswgrant: no, its not02:27
lifelessbac broke the optimisaiton02:27
wgrantlifeless: Pillar owners cannot always see bugs...02:27
lifelesseither way02:27
lifelesswhether its correct to do so or not02:28
lifelessthe defect is real02:28
wgrantAlso some of the manipulations of that cached property seem to be a little screwed.02:28
wgrant            # The bugtask is unassigned, so clear the _known_viewer cached02:28
wgrant            # property for the bug.02:28
wgrant            get_property_cache(self.bug)._known_viewers = set()02:28
lifelessrev 12156.8.2002:28
lifelessthe clearing is conservative02:28
wgrantThat's not clearing it.02:28
wgrantThat's *emptying* it.02:28
lifelessindeed02:28
lifelessso02:28
lifelessthe branch to set assignee as a viewer as broken02:29
lifelessbug 70242902:29
_mup_Bug #702429: Pillar owners and private bug visibility <Launchpad itself:Triaged> < https://launchpad.net/bugs/702429 >02:29
lifelesswgrant: however the contract for it is that it can be an empty set and is added to02:30
lifelesswgrant: so del() would be equally glitchy02:30
wgrantYes, but it would at least crash instead of being wrong.02:31
lifelesswgrant: its not wrong02:31
lifelesswgrant: if a user is not in the set the rest of the 'can see' code triggers and it will repopulate02:31
wgrantAh, I see.02:31
lifelessthis is fallout from folk still learning about how eager loading and late evaluation interact02:32
lifelessanother 75 queries a page removed02:32
wgrantAssuming each pillar is distinct.02:33
wgrantWhich will happen approximately never.02:33
lifelesswhat was also buggy02:34
lifelesswas the missing TP lookup02:34
lifelesswgrant: uhm, no, it requeries the *bugtasks* per bug02:35
lifelesswgrant: so you don't need distint pillars, you just need multiple bugs02:35
wgrantOh.02:35
wgrantNice.02:35
wgrantI didn't actually read the bug past the summary, FWIW.02:35
wgrantI am looking to see if there is a sensible way to put tracebacks in the OOPS format.02:36
wgrantI suspect not.02:36
lifelessthere isn't02:36
lifelessI'm kicking off a multi-team requirements list for oops tools02:37
lifelessgive it a couple of days and I should have their needs and be able to write it up for public consumption02:37
wgrantGreat.02:37
wgrantFor now I guess I'll just write invalid OOPSes locally...02:37
huwshimipoolie: that bug is a dupe of #692291 which was reported in December. I'02:40
_mup_Bug #692291: Impossible to modify the title of the report <css> <javascript> <lp-bugs> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/692291 >02:40
huwshimipoolie: I'll mark yours as a dupe. Feel free to elevate the existing bug if you feel the need02:41
pooliehuwshimi, i don't think i changed my screen resolution recently02:52
pooliehm, i did tweak fontconfig to use the ubuntu mono beta font02:52
poolieit's possible that changed the layout02:52
pooliemy bug title was better :)02:55
pooliewhere do people get these things02:55
huwshimipoolie: Yes, your description was probably better too02:56
huwshimipoolie: welcome to the problem of using a combination of relative and fixed sizing :)02:57
wgrantlifeless: It looks like the problematic change was actually a little earlier... 12126.4.102:59
wgrantI don't know why 12156.8.20 seems to have that change too...02:59
huwshimipoolie: Although the mono font doesn't look like it should have affected that02:59
lifelessit was meant to be reverted according to the bug bac filed02:59
lifelessI wonder if someone remerged it in accidentally02:59
wgrantTHe diff in the MP shows it being changed, not restored or removed.03:00
wgrantOdd.03:00
pooliemaybe i just noticed it today03:00
wgrantOh yeah, github's branch browser is nice. We should totally have one that doesn't suck.03:03
wgrantlifeless: Hmm. The SQL statement value substitution has broken duplicate statement detection completely.03:06
wgrantThat's a bit sad.03:06
wgrantI think.03:06
wgrantOr maybe this view just does lots of raw SQL.03:06
lifelesswgrant: python strings send to python-pgsql are u"foo" - this threw lpoops off for a few days03:08
lifelessbut it should be fixed now03:08
lifelesswhats ths oops03:08
lifelessah03:09
lifelessmilestones also trigger lazy evaluation on bug searches03:09
wgrantHuh.03:13
wgrantIn OOPS-1878QS4 I see lots of queries for people who are message owners... but those comments came out of memcache.03:14
lifelessthe bind variables stuff captures at our layer, not what the serialised form of real sql would be03:14
lifelessif yo usee what I mean03:14
lifelesswgrant: makes sense03:15
wgrantWhy?03:15
lifelesswgrant: memcache is incompatible with eager loading03:15
wgrantSure.03:15
wgrantBut this is a separate query for each message.03:15
lifelesshmm03:15
lifelessyes03:15
wgrantWhich means something is accessing message.owner.03:15
lifelessright03:15
wgrantSomething other than the message view.03:15
lifelesspermission checks03:15
wgrantOn a message?03:15
wgrantMessages have no security.03:15
lifelessread get_visible_messages03:15
wgrantwut03:16
* wgrant needs a sharper desk.03:16
lifelessnow you see why I was like \o/ when I got shit working03:16
wgrantAre you burning that, or should I?03:18
lifelesswgrant: I took it out of the key path for performance03:18
lifelesswgrant: by ignoring it for range query purposes03:19
lifelesswgrant: we need to push it down to the db, delete things that we don't want, etc.03:19
lifelesswgrant: are you seeing VPC calls ?03:19
lifelesswgrant: if so, the getMessagesForView eager loading may be incorrect03:20
wgrantlifeless: There are also VPC calls, which I was about to look into.03:21
wgrantThere are also another 60 person queries unaccounted for, even for anonymous requests.03:21
wgrantI'm trying to track those down.03:21
lifelesscool03:22
lifelessanother review plox https://code.launchpad.net/~lifeless/launchpad/bug-717394-4/+merge/5054804:26
* StevenK grumbles at tal04:44
StevenKIt works for one case, but not the other? :-(04:45
StevenKthumper: Still around?04:49
lifelesshmm04:55
lifeless504:55
lifelessbranches today04:55
wgrantNot bad.04:56
lifelessShould I do more ?04:56
wgrantYes.04:56
wgrantAlways.04:56
lifelessit is nice to be doing stuff04:56
StevenKlifeless: Can haz a little TAL help?05:00
lifelesssure05:00
lifelesshow do you like it ?05:01
StevenKlifeless: I can pastebin a diff and a traceback?05:01
lifelesssure05:01
lifelesswgrant: ahha, I think I know why the subscriptions are needed to do bug pages05:02
lifeless  File "/home/robertc/launchpad/lp-branches/working/lib/canonical/launchpad/webapp/menu.py", line 262, in _buildLink05:02
lifeless    linkdata = method()05:02
lifeless  File "/home/robertc/launchpad/lp-branches/working/lib/lp/bugs/browser/structuralsubscription.py", line 338, in subscribe05:02
lifeless    if sst.userHasBugSubscriptions(self.user):05:03
StevenKlifeless: Just had a thought, let me try something05:03
wgrantHah.05:03
StevenKlifeless: Right, I have it working, but not how I want05:11
lifelessgarh fail05:12
lifelessthe vocabulary to change bug targets05:13
lifelesstype 'launchpad' in there05:13
StevenKlifeless: http://pastebin.ubuntu.com/569920/05:13
StevenKlifeless: Looking at the page in my browser, I get: "Built by recipe generic-string548131 for Person-name548129" which is brilliant, but I'd like the recipe to be a link, and it isn't.05:13
lifelessStevenK: and what do you want it to do?05:13
lifelessyou don't want tal:replace05:14
StevenKlifeless: And given this is first time ever touching tal, I suspect I'm missing something fundamental05:14
lifelessreplace replaces a tag by something05:14
lifelesse.g. structure, a string or a context05:14
lifelessyou want to set the href05:14
lifelesse.g.05:15
lifelesstal:attributes="href context/bug/duplicateof/fmt:url">bug05:15
lifeless             #<span tal:replace="context/bug/duplicateof/id">42</span></a>05:15
lifelessbah05:15
lifeless<a05:15
lifelessbefore that05:15
StevenKRight05:15
StevenKlifeless: Excellent, thanks05:18
lifelesscool05:18
lifelesswgrant: https://bugs.launchpad.net/launchpad/+bug/722455 may entertain you, amidst more headbanging05:18
_mup_Bug #722455: bug task target selector widget cannot be used to select 'launchpad' <regression> <Launchpad itself:Triaged> < https://launchpad.net/bugs/722455 >05:18
wgrantlifeless: Oh, that's even more awesome than last time I tried.05:19
StevenKlifeless: It does the same thing for 'launchpad-project' too05:20
lifelesswin05:20
lifelessthough launchpad-project can't have bugs, it would be nice to list all the elements of it there05:20
StevenKwgrant: Did you see https://bugs.launchpad.net/launchpad/+bug/722344 ?05:21
_mup_Bug #722344: PPA traversal assumes distribution is ubuntu <Launchpad itself:New> < https://launchpad.net/bugs/722344 >05:21
wgrantStevenK: Yes.05:21
wgrantLet's design URLs without the distribution in them! It's going to be awesome!05:21
StevenKAnd no wails of dispair. Awesome.05:21
lifelessok05:22
lifelesswhy does bugtask need the main archive and archive admin person as json05:22
wgrantHah.05:23
lifelesshowever05:23
lifelessI've now audited distro bug search05:23
wgrantI didn't realise we pracached the context as JSON.05:23
lifelessthat might explain the what of it. Tho not the why05:24
StevenKlifeless: http://people.canonical.com/~stevenk/built-by-recipe.png05:32
lifelessStevenK: that looks pretty nice, but why is the word 'for' in ?blue?05:33
StevenKlifeless: The whole thing is one link to the recipe05:34
lifelessI wouldn't link the 'for' or person name then05:34
StevenKRight05:34
lifelessI think folk would expect the person to be a link to the person, if anything05:34
StevenKOkay, fixed05:35
StevenKlifeless: Just wanted your thoughts before I put together an MP and beg for a UI review05:35
lifelessStevenK: de nada05:36
StevenK(My first, surprisingly)05:36
wgrantUI review? Surely you jest.05:36
StevenKwgrant: I have your manager on the phone, he wants a word.05:36
StevenK:-P05:37
wgrantTALES, please stop swallowing every exception under the sun with LocationError...05:37
StevenKwgrant: Ah yes, I've been hitting that today too05:38
wgrantIt even swallows NameErrors.05:38
wgrantThat I did not expect.05:38
StevenK"Feature"05:38
wgrantI bet it would swallow SyntaxErrors if they weren't fatal to compilation...05:39
StevenKwgrant: Try it and raise one05:39
lifelessStevenK: whats the milestone for ?05:41
StevenKlifeless: Which milestone?05:42
lifelessthe one you set on the launchpad selection bug05:42
StevenKIf it was 722455 that was by accident05:42
lifelessindeed, it is05:43
StevenKwgrant already fixed05:43
lifelesswell05:43
lifelesswgrant: why the milestone?05:43
StevenKHaha05:43
wgrantAssuming StevenK's assignment to the milestone indicated urgency, 11.04 was clearly a mistake.05:43
wgrantFor that is some time away.05:43
lifelessah05:43
lifelessso milestones aren't part of our what to work on workflow05:44
StevenKFalse assumption, sadly05:44
lifelessI really need something that will flash my browser window when an SSL handshake occurs05:44
wgrantThe added latency isn't enough of a stab in the face?05:45
lifelessI'm in NZ05:46
lifelessand we have other queue points05:47
lifelessso it can be hard to be /sure/05:47
lifelessstub: good morning!05:47
lifelessstub: you're down as asiapac OCR for mondays.05:47
stubyo05:47
stubI am?05:47
lifelessstub: so I'm going to pounce on you now:05:47
StevenKRead as: "I have latency to everything, except if it's hosted in my house."05:47
lifelessapparently05:47
lifelesshttps://code.launchpad.net/~lifeless/launchpad/bug-636158/+merge/5053405:47
lifelesshttps://code.launchpad.net/~lifeless/launchpad/bug-717394/+merge/5054105:48
lifelesshttps://code.launchpad.net/~lifeless/launchpad/bug-717394-2/+merge/5054505:48
stubI never entered the program, and in general spoke out against it. I've never been OCR :)05:48
lifelesshttps://code.launchpad.net/~lifeless/launchpad/bug-717394-4/+merge/5054805:48
stubOh... OCR... different acronym. Yes05:48
lifelessstub: https://dev.launchpad.net/ReviewerSchedule is where I found this, if you need to change it05:48
lifelessstub: anyhow, I can has some reviews?05:48
stubNah... just too early to deal with TLAs05:48
stubYes, I am OCR :)05:49
lifelesscool05:51
lifelessI think I have ubuntu context bug searches down to a constant number - 40 queries (contrast with 118 on lpnet)05:53
lifelesshmm06:03
lifelesswe need more qa06:03
wgrantOh?06:07
wgrantWe do, but do you have a specific example?06:07
lifelesswe're only half qaed06:08
lifelessalso06:08
lifelesscan you check my deployment request for other gotchas in your feature flag changing patch06:08
wgrantAh, I'm blocking on a LOSA for mine :(06:09
wgrantlifeless: Doesn't the value need to be ''?06:10
lifelesswgrant: it gets stripped06:10
wgrantOh, handy.06:10
lifelesslong as there is a trailing space it will be good06:10
lifelessI'm /pretty/ sure06:10
wgrantLet's see.06:11
lifelessflag, scope, priority_str, value = re.split('[ \t]+', line, 3)06:11
wgrantIndeed.06:11
wgrantSo it all looks good.06:12
lifelessstub: btw, mthaddon says that apache can be told to use one haproxy as failover06:25
lifelessso we don't need to chain the haproxies at al06:25
stubyay.06:25
lifelesswgrant: ping06:59
wgrantlifeless: Hi.07:03
lifeless-> other07:11
lifelessoh I love getting ISE's from wiki.u.c07:15
thumperhttps://code.launchpad.net/~thumper/launchpad/choosing-recipe-name/+merge/50530 anyone... anyone...08:15
thumpernot that I'll be around to respond...08:15
wgrantstub: Hi.08:19
stubyo08:19
wgrantstub: I started destroying Zopeless yesterday. I got rid of it from most scripts and got all passing their tests except librariangc.08:20
wgrantIt passes around a connection internally and creates dozens of cursors from it.08:20
wgrantAnd its tests use this fact to maintain parallel transactions.08:20
wgrantThis doesn't work so well when everything is using the global transaction manager.08:21
stubI don't recall doing that but I guess I must have :)08:22
wgrantI think I can sensibly collapse it into one cursor and transaction.08:22
wgrantBut I was wondering if there was a reason I should not.08:22
stubCan we just steal the connection from Storm internals instead of Zopeless internals?08:22
stubIf the tests pass, it is fine.08:23
stubOh...08:23
stubwgrant: Each step looks like it commits at the end already. But changing this to use transaction.commit() and Storm's internal connection fails?08:25
wgrantThe tests seem very crufty and are possibly already not testing what they should, since the transaction lifetimes are identical and implicit begin is on globally.08:25
wgrantstub: It's not that it fails. It's that I'm scared I'm missing a reason for this strangeness.08:26
StevenKwgrant: How big is that diff, out of interest?08:28
wgrantStevenK: The first step (which I'm about to re-EC2) removes use of specialised Zopeless features from scripts. It's 400 lines.08:29
wgrantThe big diff is going to be in making the tests work on the non-ZTM.08:30
wgrantThe second branch is renaming Zopeless mail and detaching it from ZTM. Then another branch introduces a new database configuration thing and shifts scripts onto that.08:31
wgrantThen I just need test helpers to replace switchDbUser.08:31
wgrantAnd that will be done.08:31
wgrantBecause production code doesn't use it any more.08:31
wgrant*cough* buildd-manager08:31
wgrantI was surprised at how few test failures there were after replacing initZopeless and ZTM with 10 lines...08:32
=== almaisan-away is now known as al-maisan
stubwgrant: The whole process runs serially, so there won't be odd fallout. If it is wierd, it is because it is some of the oldest code in our codebase.08:33
lifelessstub: btw, for your interest - https://code.launchpad.net/~lifeless/launchpad/rabbit/+merge/50488 - failed on ec2, but the diagnostics were insufficient08:33
stubThe test might be crufty, but they have good coverage.08:34
wgrantstub: Right, but some comments in the tests suggest that it is trying to check its transaction usage.08:34
wgrantBut that is already false.08:34
wgrantSo I'm not loosening them any further.08:34
stubwgrant: Which tests are these? I don't see it.08:35
wgrantstub: ftests/test_gc.py08:36
wgrantIt does lots of explicit begins and aborts while saying "merge_duplicates should have committed"08:36
wgrantIt may just be explaining that it is expected, or it may be explaining that the following lines verify that. I can't really see how, but I am going to be paranoid about something like this :)08:37
stubThat is a comment why the following ztm dance is needed I think (I don't think that was me - I always use implicit begins)08:37
wgrantRight.08:38
wgrantThanks.08:38
stubOther transaction stuff seems to be to deliberately break things, leaving disk and db inconsistent. Most of these have already been switched to using transaction.abort()08:39
adeuringgood morning08:50
lifelessstub: thanks for the reviews09:01
bigjoolsmorning09:14
henningeHi wallyworld!09:17
wallyworldhi there09:17
henningewallyworld: someting changed in your branch, the link to create a recipe is gone.09:17
henningewallyworld: do you know where it went? I guess that is from something you merged?09:17
wallyworldhenninge: the build now branch?09:18
henningeyes09:18
henningeI go to https://code.launchpad.dev/~vcs-imports/evolution/main09:18
wallyworldi'll check the code - it's possible. tim also checked in stuff which touched the same pt file09:18
wallyworldand there were conflicts09:19
henningeand it used to have a "Related source package recipes" section in r12389 but that is fone now.09:19
wallyworldso perhaps i made a mistake dealing with those09:19
henninges/fone/gone/09:19
wallyworldgive me 1/2 an hour or so - i've got to get the kids to bed :-)09:19
mrevellHello09:21
henningewallyworld: sure ;-)09:22
henningeHi mrevell ;)09:22
jmlgood morning09:54
henningeHi jtv!10:01
henningejtv: how many more mornings at this time UTC?10:01
jtvhi henninge… just this week10:01
wallyworldhenninge: i think i remember what happened - tim landed a branch which put all recipe stuff behind a feature flag10:05
wallyworldyou need to do this: insert into FeatureFlag (flag, priority, scope, value) values ('code.recipes_enabled', 1, 'default', 'o10:05
wallyworldn')10:06
henningewallyworld: I figured something like that ;-)10:06
henningelet me try10:06
wallyworldok10:06
henningewallyworld: looks perfect! r=me (ui) ;-)10:14
wallyworldhenninge: \o/ thanks!10:15
henningewallyworld: the MP is timing out for me atm.10:31
henningeI will add the approval later.10:32
wallyworldhenninge: np. launchpad has been slooooow for me today too10:32
bigjoolssomething is horribly borked in the DB10:32
wallyworldhenninge: thanks for all the effort you put into reviewing it10:32
wgranthenninge: Which URL timed out?10:32
wallyworldbigjools: is borked the technical term for fucked?10:32
bigjoolswallyworld: fucked *is* the technical term10:33
wallyworld:-)10:33
jtvit's spelled b0rked10:36
jtvhenninge, danilos: did you see the problem with the wiserearth zh_cn stats?10:36
henningenope10:36
danilosjtv, I didn't10:36
jtvReporting 95.x% translated, whereas in reality it's just under half.10:37
jtvI wonder if maybe we're just adding up rosettacount and currentcount in the display.10:37
jtvYes, we are.10:40
henningewgrant: looks like any mp10:41
jtvdanilos, henninge: rosettastats is still computing translatedCount as currentCount + rosettaCount.  Do you concur that that is wrong in the recife world?10:41
jtvOr is it the interpretation of currentCount that's wrong maybe?10:41
danilosjtv, currentCount should be translations that are active in both ubuntu and upstream10:42
danilosjtv, with that, it should still be correct10:42
jtvdanilos: then it looks as if we're probably computing the wrong thing10:43
danilosjtv, calculation of currentCount might be wrong10:43
jtvwe never updated the interface docstring for currentCount.  It basically says "current translations."  :(10:43
jtvWell, "current upstream."10:43
danilosjtv, oh, it was incorrect for ages then :)10:43
jtvNo surprise with RS!10:44
jtvI mean RosettaStats, not Serbia.10:44
danilosjtv, yeah, basically, we need to do away with RosettaStats, as we all know :)10:45
danilosjtv, the mapping on ITranslatedLanguage.translation_statistics (or something) should clarify it all10:45
danilosjtv, TranslatedCount.recalculateCounts() transforms RosettaStats counts to useful counts, fwiw10:46
danilosjtv, RosettaStats meaning of "current" was always "synced with upstream"10:46
jtvYes10:46
jtvUnfortunately the documentation remained confused all over the place10:47
danilosjtv, right; so, it's likely that TranslatedLanguage (uhm, not TranslatedCount :) needs to be updated to be side-aware10:47
jtvTranslatedLanguageMixin still takes about "imported" messages10:47
danilosjtv, and others10:48
danilosjtv, yeah, that seems to be the problem10:48
wgranthenninge: Thanks, that helped to track the issue down.10:48
lifelessstub: update to the query: http://bazaar.launchpad.net/~lifeless/launchpad/bug-636158/revision/1241510:49
jtvdanilos: it's the actual pofile.currentcount that seems to be wrong.10:49
jtvso not a TL problem10:49
danilosjtv, :(10:49
danilosjtv, that means that updateStatistics is wrong10:49
jtvyes10:49
danilosjtv, current count is the only one not based on an actual POFile:+translate filter, iirc10:50
jtvdanilos: that's a long time ago—we (I, I'm afraid) rewrote to compute basically everything in one query.10:50
danilosjtv, oh10:51
danilosjtv, well, then you probably know much more about it than I do :)10:51
jtvyar10:51
jtvdanilos, one thing you do know better probably: do we still run the full stats update runs?10:52
jtvISTR you stopped them at some point10:52
jtvAnd this is data that hasn't changed in a while…10:52
danilosjtv, yeah, the daily ones are not working because of DBLoopTuner craziness10:52
danilosjtv, but weekly ones run on Thu evenings or something10:52
jtvso what about the weekly ones?10:52
jtv:/10:52
lifelessstub: can you update your vote please (assuming the new query makes you happy ;))10:53
jtvdanilos: the stats query selects…10:53
jtv                    (Other.id = Current.id) AS same_on_both_sides10:53
jtvso the intention is certainly right10:53
danilosjtv, you can always confirm that in10:53
danilosjtv, ...crontabs10:53
jtvdanilos: yes, but having some painful wrist trouble, trying to minimize movement10:53
danilosjtv, you probably had hard time mapping to rosetta stats from sane values: I am pretty sure it's not even a bijection10:55
jtvdanilos: why would it have to be?10:55
danilosjtv, because when it isn't, it means that in some cases you can't even get a correct value back10:56
jtvdanilos: think I have it10:59
jtvrosettacount includes both "translated differently" and "translated this side only"10:59
jtvbut no10:59
jtvthat wouldn't affect currentcount11:00
jtvDamn, it's empty TMs.  :(11:13
jtvThey're shared upstream/ubuntu, but "not translated on the other side"11:13
=== jtv is now known as jtv-eat
=== danilos is now known as danilo-food
=== al-maisan is now known as almaisan-away
=== henninge_ is now known as henninge
wgrantjml: Did you get a response to your PQM submission?11:27
jmlwgrant: which one?11:27
jmlwgrant: more-canonical-cleanups got rejected because of testfix11:27
wgrantAhh, so we are testfix.11:27
jmlwith that new-fangled less-useful email that PQM sends these days.11:27
wgrantI keep getting no response to my shipit branches.11:27
wgrantPerhaps that is relevant.11:27
wgrantForced.11:28
bigjoolsdo we have a "right" way of removing the hundreds of old eggs/dependencies?11:32
jmlbigjools: perhaps doc/buildout.txt has the answer?11:35
=== henninge changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: henninge | https://code.launchpad.net/launchpad-project/+activereviews
bigjoolsreal documentation!11:36
bigjoolsunfortunately it doesn't say11:37
bigjoolsI suspect this is like the linux kernel package problem11:37
bigjoolsI have 21 of them installed here :/11:38
jmlbigjools: yeah, doc/buildout.txt is one of the more useful technical docs in the tree11:38
stublifeless: Not seeing the new diff in the mp :-(11:38
wgrantstub: mizuho was broked... it's possible the diff update job failed.11:38
bigjoolsjml: it is11:38
=== danilo-food is now known as danilo
wgrantIt turns out that PQM's response to an invisible branch is nothing.11:54
wgrantExcellent.11:54
jmlit's not the most polished of tools.11:57
=== jtv-eat is now known as jtv
=== almaisan-away is now known as al-maisan
=== Ursinha-afk is now known as Ursinha
=== mrevell is now known as mrevell-lunch
daniloallenap, hi, got a minute perhaps?13:30
jtvReviewer wanted!  https://code.launchpad.net/~jtv/launchpad/bug-722568/+merge/5059313:46
=== mrevell-lunch is now known as mrevell
jtvHmm strange error from bzr lp-propose:13:48
jtvERROR: Too many attempts to read from the player!13:48
henningeadeuring: Hi14:13
adeuringmoin henninge!14:14
henningeadeuring: wanna do a stand-up call?14:14
adeuringhenninge: , sure let's do it. I have a small question about a factory method14:14
jmlgary is not here :\14:22
jmlhm.14:29
jmlPresident's Day14:30
beunogary's the president now?14:35
danilos:)14:42
daniloshenninge, hey, I see you are OCR, and I am fighting a zope permissions problem14:42
daniloshenninge, and I remember you knowing a lot about those :)14:43
jtvStill need a reviewer!  https://code.launchpad.net/~jtv/launchpad/bug-722568/+merge/5059314:50
jtvhenninge:            ^^^^^^^^^^   from when you were at lunch probably14:52
henningejtv: oh, missed that.14:53
jtvhenninge: you weren't connected at the time14:53
henningejtv: I am working on another review but I can take yours next.14:54
jtvgreat, thanks14:54
henningedanilos: what is the question?14:54
daniloshenninge, I figured it out, thanks :)15:01
=== beuno is now known as beuno-lunch
henningeadeuring: Please have a look if this affects your current work in any way: https://code.launchpad.net/~jtv/launchpad/bug-722568/+merge/5059315:33
adeuringhenninge: yeah,  Ithanks, I've seen it. jtv spotted an issue I hadn't yet15:34
jtvadeuring: you're also working on stats?15:34
adeuringjtv: bug 68813015:34
_mup_Bug #688130: Statistics clean-ups and extra tests <lp-translations> <upstream-translations-sharing> <Launchpad itself:In Progress by adeuring> < https://launchpad.net/bugs/688130 >15:34
jtv"Test for empty messages"… that's something my branch does15:35
jtv"Treat incomplete messages as untranslated" will be affected.15:36
adeuringright15:36
daniloshenninge, will you be able to fit in https://code.launchpad.net/~danilo/launchpad/bug-722626/+merge/50618 as well soon? (it is very short branch)15:37
henningedanilos: No.15:37
henninge:-P15:37
=== matsubara is now known as matsubara-lunch
danilos:(15:37
henningedanilos: let me look first ... ;-)15:38
daniloshenninge, 98 lines of diff according to "wc -l", so, pleaaaseee15:38
henningedanilos: why is it depending on a branch that has no mp?15:39
daniloshenninge, my overeager pipelining15:39
daniloshenninge, nothing in that branch15:39
henningeah!15:40
henningedanilos: I will look at it as soon as I am done with jtv's branch.15:40
daniloshenninge, this bug was uncovered while trying to land a different branch15:40
daniloshenninge, thanks15:40
henningejtv: abentley recently added a "side" parameter to makePOFile, did you know that?15:44
henningeThis way it is easier to create messages on the other side.15:45
jtvhenninge: ah yes, I saw that… did I neglect to use it?15:45
jtvYou mean, create an extra POFile and then create a current message in that?15:45
henningejtv: exactly but I am not sure it is worth it15:46
jtvIt does seem a bit roundabout.15:47
henningejtv: remind me how COALESCE works, please.15:47
* henninge goes rtfm15:47
henningejtv: r=me15:52
jtvthanks!15:52
jtvheh… no proof-of-read?  :)15:52
jtvtsk15:52
=== salgado is now known as salgado-lunch
henningedanilos: I am pretty sure that using check_permision in security.py is broken16:10
henningebecause check_permission assuems a user and that might (theoretically I admit) not be the same as is requested by checkAuthenticated16:10
henningeso you might end up checking permissions for the wrong user ... theoretically.16:11
* henninge wants to fix LP security so badly!16:11
daniloshenninge, well, what would you propose to be used instead?16:13
daniloshenninge, (not to mention that it's already used elsewhere in security.py)16:13
henningeyes, I feared you where going to ask that ...16:13
henningeThat is no excuse! :-P16:14
henningedanilos: Maybe you cannot do anything different (easily) but you have to admit that it is broken.16:14
henningecheckAuthenticated asks for a specific user which is ignored.16:15
daniloshenninge, heh, well, it's broken but it's convenient16:15
* henninge looks closer16:15
daniloshenninge, the right approach for my particular problem would be to check all target types (IProduct, IProductSeries, IDistribution, ...) and use their own checkers instead16:16
daniloshenninge, and doing it that way is even uglier and even more broken imo16:16
henningeyes, I can see that16:17
henningedanilos: r=me16:33
daniloshenninge, thanks16:34
daniloshenninge, I did learn about IPersonRoles playing with security.py right now (by having to use user.person to pass in :)16:37
daniloshenninge, also, only now I realize your point about check_permission not having a user parameter16:38
daniloshenninge, I am a bit more worried right now16:38
henningedanilos: check_permission goes through to zope.security.checkPermission which in term uses the "current interaction"16:39
henningeif no other is passed in.16:39
daniloshenninge, yeah, I realize that16:39
henningeI am not sure how likely it might be that "user" is differnt from the "principal" in the current interaction.16:40
=== beuno-lunch is now known as beuno
henninges/in term/in turn/ ... JFTR16:46
bigjoolsjml: if I wanted to force the ftp scenario in the test_poppy tests, how would I do that?16:49
jmlbigjools: looking.16:50
bigjoolsjml: thanks.  the best I could think of was to include "ftp" as the test match but that doesn't exclude sftp... I was hoping there would be a magic matcher for scenarios16:50
jmlmy machine is slow today.16:52
jml23s to start the database16:52
jmlbigjools: you need to match the parenthesis16:52
bigjoolsah ok so it is part of the test name16:53
bigjoolsthanks16:53
jmlyeah.16:53
bigjoolsjml: you and StevenK did a great job of writing new tests for the older FTP stuff - I can just replace the setup phase - trivial - and run them!16:53
jmlThere are some subtleties there, tests have at least three things that could be called "name",16:54
jmlbigjools: glad to hear it :)16:54
bigjoolsI just changed 2 lines to use a different fixture!16:54
bigjoolsjml: unfortunately I think the test runner hates parentheses :/16:56
bigjoolsno tests matched16:57
jmlbigjools: try this: ./bin/test -cvv test_poppy '\(ftp\)'16:57
bigjoolsah escape16:57
jmlit's a regex.16:57
bigjoolsnow I really do have problems16:58
=== jkakar_ is now known as jkakar
jmlbigjools: :)17:04
bigjoolsjml: one more thing - were you involved with the actual tests in that file?17:04
bigjoolsI'm trying to work out the rather opaque "self.assertEqual(os.stat(wanted_path).st_mode, 0102674)"17:05
jmlbigjools: I *think* I was, but I don't remember.17:05
bigjoolssince it fails now :)17:05
bigjoolsbut that is such a magic number I've no idea what it's trying to test :/17:05
jmlbigjools: Don't know off the top of my head. I'd look up os.stat documentation for the constants and start making some educated guesses.17:06
bigjoolsyeah I was going to head there - just wondered if you could save time :)17:06
jmlhttps://code.launchpad.net/~jml/launchpad/list-ec2-test-runs-721784/+merge/50537 might interest some folk17:07
* jml has to dash off17:07
jmlg'night all.17:07
bigjoolsnn jml17:07
jmlbe back later to talk to Aussies17:07
=== henninge changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
=== matsubara-lunch is now known as matsubara
=== didrocks1 is now known as didrocks
=== al-maisan is now known as almaisan-away
=== salgado-lunch is now known as salgado
lifelesshi18:01
jtvhi lifeless!18:02
jtvsay, would it be okay with you to set a much longer timeout for the approval form for translations import queue entries?  It's blocking queue review.18:03
lifelesswhats the page id18:03
jtvTranslationImportQueueEntry:+index18:05
lifelesshmm, thats interesting18:06
lifelessaccording to the histogram on  https://devpad.canonical.com/~lpqateam/ppr/lpnet/latest-daily-pageids.html18:06
lifelessits not had any requests near the timeout18:07
lifelessthough of course, thats probably showing the weekend18:07
lifelesshow long do you think it needs?18:07
jtvThis is a page only a handful of people can access, so you won't be seeing many timeouts—especially during the weekends.18:08
jtvI'm taking a wild stab at 30 seconds for now.  Terrible, I know.18:09
lifelesswe can't set it to that18:09
lifeless(note, not 'I don't want to' : cannot)18:09
jtvRight, I noticed that—why not?18:09
lifelesshaproxy will shutdown a request with a total in-dc queue time of 30 seconds18:10
lifelessso will apache18:10
lifelessha proxy currently has 1second +- 0.5 seconds queuing on most requests afaict through adhoc measurement18:10
lifelesssetting anything to > 28 seconds has a high probability of running into the 30 second time on either of apache or haproxy18:11
jtvOkay… so how about 25 seconds?18:11
lifelessthat said, this page worked when we had a 15 second timeout, no ?18:11
jtvNot to sure of that.18:11
jtvYou see, the work that this form does hasn't been getting done for a while.18:12
jtvWe're in the process of fixing that.18:12
lifelessah18:12
lifelessok - add a request to LPS to set it to 20 seconds18:12
lifelesslets see if thats sufficient18:12
lifelessI'm +1 on that18:12
jtvWe can also fix the code to be faster, but a bit of goodness will have to be sacrificed until we can work something out with rabbit or somesuch.18:12
jtvThanks.18:12
lifelesslooking at the oops18:13
jtvIn any case it'll allow me to get _more_ done, and that's something.18:13
lifelessit has 600ms of query repeated 19 times18:13
jtvYou'll see a lot of repetition in the oops; not something that can be batched very easily.18:13
lifelessthe plan will be the key18:13
bigjoolsnight all18:13
jtvnight bigjools!18:14
lifelessif its getting into scans, doing a larger query may be no slower18:14
jtvIt's not a matter of slower so much as of complexity.18:14
jtvThis query, believe it or not, is already pretty well-optimized compared to what we used to have.18:14
lifelessyou say in the bug that its statistics18:14
jtvIt is, yes.18:15
lifelessI thought a background job did that already?18:15
jtvYes, but it's slow.18:15
jtvBut I am indeed thinking of just not calculating them in this scenario.18:15
lifelessdoes that matter for approval ?18:15
jtvAfter all, since the end user isn't hitting this form, there's no expectation of an interactive update.18:15
jtvThere is also already an accepted situation where the template is empty until the import happens.18:16
jtvAnd *blink* when that happens, the statistics need to be recomputed anyway.18:16
jtvIn fact they are, IIRC.18:16
jtvI don't see any point to calculating them at this particular point!18:17
jtvWhy don't I just go fix that…18:19
lifelesscool18:20
lifelessbtw18:20
lifelesswhen I add an additional language to the query18:20
lifelessit stays at 300ms18:20
lifelesswith the same plan18:20
lifelessof course this is on qastaging, so may be useless for production prediction18:20
lifeless...and I didn't finish the conversion. bah.18:21
jtvMay well be different there, yes, though you're getting a similar time and that suggests it may be a similar plan.18:21
jtvConversion?18:21
lifelessadding group by, and = -> IN ()18:22
lifelessjtv: I've added it to the bug, in the offchance that its helpful18:24
jtvthanks lifeless—though AFAICS we can just eliminate this use-case and then only template imports will need to do this calculation in bulk.18:25
lifelessI think thats better still :)18:25
jtvThere may still be a few interactive cases though that may run several of these, so who knows.18:26
lifelesswe can look at their performance when we get timeout protection on backend services18:26
* jtv looks forward to that day in trepidation18:26
lifelessheh18:26
lifelesswe need it - rogue backends regularly cause frontend timeouts at the moment18:26
lifelesseven with tunable loop18:27
jtvAnd I beheld the sixth terrible horseman, and his shirt said "Internal Server Error"18:27
lifeless:(18:27
lifelesswhat site ?18:27
jtvJust a general observation.18:27
jtvlifeless: btw the postgres-R presentation at FOSDEM was impressive—but alas not production-ready yet.18:28
lifelesshttp://www.fosdem.org/2011/schedule/event/clustered_databases ?18:29
jtvOptimistic multi-master… it felt a lot like distributed 2PC18:29
lifelesswas it taped?18:29
jtvYes, and I think it was taped.  If you find a recording, you may recognize the voice of the heckler in the front.18:30
lifeless:)18:30
lifelessuhm18:30
lifelessdoes it partition as well?18:30
lifelesswhat we need for scaling is either much less bulk/historical data (gives us a lower coefficient per user-year)18:30
jtvI don't think it does that, no.18:31
lifelessor the ability to scale everything horizontal - lets us choose an good price-point per machine and add machines18:31
jtvAlthough if disk space isn't the issue, I suppose one could get similar effects by implementing some kind of affinity layer on top.18:31
lifelessscaling horizontally requires capping the local data per node in some fashion18:32
jtvTry to get locality for caches through clever load distribution.18:32
lifeless(e.g. a nfs backend that can be raided across many servers - meep!)18:32
jtvaaiggh!18:32
elmo..18:32
lifelessnow that I've made your eyes bleed18:32
elmolifeless: did you just suggest nfs in the context of DB servers?18:32
jtvit was him!  it was him!18:33
jtvI didn't do anything!18:33
lifelesselmo: Not in any serious sense18:33
jtvMaybe with sqlite—I hear nfs is really good with locks18:33
lifelessthat would be a win18:33
jtvAnyway, as long as we're blue-skying, we already have slaves, so I don't see a huge difference with multi-master when it comes to resource allocation.18:34
lifelessso -xc is referenced in the slides as doing partitioning18:35
jtvI was just saying it mightn't even matter so much how much is on each disk, as long as you could limit how much needs to be in memory on a given node.18:35
jtvNot limit actually—more like guide.18:36
lifelessjtv: our cluster isn't symmetric: the load isn't evenly balanced atm, though multimaster might help with that substantially, the master and slave machines are not equivalently sized18:36
lifelesselmo: so what are you guys sprinting on - puppet ?18:40
jtvlifeless: postgres-R has no problem with that, with the obvious exception (which someone insisted on lament^H^H^H^Hdiscussing at length) of increased lock contention.18:40
elmolifeless: i'm not there, so I'm at best an idle spectator, but it's just our bi-annual sprint - puppet is one of the focuses this time though, yeah18:41
lifelesselmo: cool18:42
lifelessjtv: speaking of rabbit, I tried to land an incremental step towards it in the weekend but it failed on ec2; I haven't dug into why, yet.18:43
jtvlifeless: I wish I'd gotten around to looking into it…  but this is something that we've long, long wanted message queues for.18:44
jtvIt'll let us lift these queries out of interactive transactions and be more aggressive about recalculating.18:44
lifelessyou can use the regular task system today18:45
lifelessor put in some energy towards rabbit18:45
lifeless:)18:45
jtvI wonder if the existing task system would get us to the desired response time of "a few seconds" though.18:49
lifelessif you can't do it in a 13 second web request18:52
lifelessthen a task / queue system won't do it either ;)18:52
lifelessjames_w: what project are your soup matchers in ?19:12
lifelessah found it19:13
Ursinhabug 71106419:40
_mup_Bug #711064: POFile:+translate timeouts <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/711064 >19:40
=== matsubara is now known as matsubara-afk
lifelessUrsinha: >19:48
lifelessUrsinha: ?19:48
Ursinhalifeless, seeking help of the bot to get the bug link19:49
lifelessah :)19:52
* thumper relocates to somewhere with coffee to hand20:09
jtvNo OCR?20:09
jtvReviewer wanted!  https://code.launchpad.net/~jtv/launchpad/bug-719267/+merge/5065120:09
jtvIt's small.20:10
jtvVery small.20:10
jtvthanks once more lifeless!20:27
lifelessjtv: no worries20:32
lifelessjtv: hey20:32
lifelessdo you know why +needs-packaging does pofile lookups ?20:32
lifelessbug 72279420:32
_mup_Bug #722794: DistroSeries:+needs-packaging timeouts <dba> <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/722794 >20:32
jtvlifeless: priority computation IIRC20:33
jtvThere's some kind of rating system that includes a wide variety of factors… sinzui will know the details.20:33
jtvAs so often in line.20:33
jtvlife.20:33
lifelessthanks20:33
=== jtv is now known as jtv-afk
flacostelifeless: call?21:01
flacostelifeless: https://lpstats.canonical.com/graphs/LPProjectCriticalBurndown/21:03
flacostehttps://lpstats.canonical.com/graphs/LPProjectBugsClosed/21:04
flacostehttps://lpstats.canonical.com/graphs/LPProjectCriticalFixed/21:04
wallyworldthumper: we having standup?21:04
thumperaye21:04
StevenKhttp://people.canonical.com/~stevenk/built-by-recipe.png21:21
huwshimiMorning21:32
jmlhuwshimi: hi21:32
jmlhuwshimi: will brb.21:33
huwshimijml: Sure21:33
* StevenK grumbles at the lack of UI reviewers in this timezone21:39
StevenKAnd no, I'm not volunteering. :-P21:39
* jml in back21:39
flacostelifeless: https://lpstats.canonical.com/graphs/PPR/20100222/20110222/21:42
lifeless631202621:43
lifeless2.7821:43
lifelessflacoste: https://lpstats.canonical.com/graphs/PPR/20110208/20110215/21:47
pooliehi flacoste21:54
flacostehi poolie21:54
flacostepoolie want to chat earlier?21:54
poolielifeless, teddy, just thinking about flags for controlling dkim21:54
pooliei think a per-email-domain scope may be yagni for now21:54
pooliewe can add one when there's a second thing controlled by email21:54
pooliedoes thta make sense to you?21:54
poolieflacoste, sure, give me a few minutes to get set up21:55
lifelesspoolie: how would you do it today then?21:55
pooliejust a flag that gives a space-separated list of trusted domains21:56
pooliejust wondering if is this enlightened laziness or the regular kind21:57
lifelessit might be a bit awkward for dealing with concurrent updates21:57
lifelessa row-per-thing would be easier (once we stop regenerating all the rules)21:57
lifelesspoolie: so I think a per email scope would be quite beneficial22:01
poolieok22:08
lifelessjml: welcome back22:21
lifelessjml: looked at the testtools thing yet ?22:21
lifelessthumper: hi; did you know about soupmatchers?22:21
thumperlifeless: yes22:21
lifelessthumper: needed something different again ?22:21
thumpersomewhat22:21
* thumper has head down right now22:21
jmllifeless: no, going to after this call.22:22
lifelessthumper: I'd like us to not have generic matchers in the lp tree - they should be in testtools, or in soupmatchers etc - just to keep our code base focused22:22
lifelessthumper: gl with your head downing22:22
thumperI agree in principle22:23
lifeless(there is a but there, isn't there?)22:27
=== salgado is now known as salgado-afk
jmlsatisfice!22:43
jmllifeless: No, I haven't sadly. I don't really get time for much discretionary hacking on Mondays.22:46
jmllifeless: I'll probably be able to take a look tomorrow. Right now am too knackered to be of any use.22:46
lifelessjml: sleep well22:47
wgrantNight jml.22:48
jmlg'night22:49
lifelesswgrant: hey22:53
lifelesswgrant: what timeout are you beating up on today?22:54
=== lifeless changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
wgrantlifeless: Finishing tracking down all the Person queries.22:54
wgrantI've fixed the comment ones. But there are still lots from permission checks.22:54
lifelessbugtask:+index?22:55
wgrantYes.22:55
lifelesscool22:55
wgrantBug #1 has ~140 Person queries, which means 100 aren't from comments :(22:55
_mup_Bug #1: Microsoft has a majority market share <iso-testing> <ubuntu> <Clubdistro:Confirmed> <Computer Science Ubuntu:Invalid by compscibuntu-bugs> <EasyPeasy Overview:Invalid by ramvi> <GNOME Screensaver:Won't Fix> <Ichthux:Invalid by raphink> <JAK LINUX:Invalid> <The Linux OS Project:In Progress> <metacity:In Progress> <OpenOffice:In Progress by lh-maviya> <Tabuntu:Invalid by tinarussell> <Tivion:Invalid by shakaran> <Tv-Player:New> <Ubuntu:I22:55
lifelesswgrant: activities perhaps22:56
wgrantPossibly.22:56
wgrantWe'll find out soon.22:56
wgrantYou?22:57
lifelessworking on the test fixes ec2 found for me last night23:09
lifelesswaiting for stub to discuss the bug search query change23:09
wgrantAha23:11
lifelessoh23:19
lifelessand writing leps23:19
wgrantFor?23:20
lifelessoops23:22
lifelessparallel testing23:22
poolielifeless, so istm the incoming mail processor needs to be able to establish a flag scope from something like a context manager23:24
pooliewhich is eminently possible, but there is no infrastructure at the moment23:24
lifelessbug 717394 should get through ec2 this time23:24
_mup_Bug #717394: Distribution:+bugs timeouts <qa-ok> <timeout> <Launchpad itself:In Progress by lifeless> < https://launchpad.net/bugs/717394 >23:24
poolieall of them work from global state23:24
pooliei'm thinking something like23:24
pooliewith feature_scopes(MailFromDomain(domain)): ....23:24
lifelesspoolie: as I understand the caching, you'll want to push the existing controller completely to the side23:25
lifelesspoolie: anyhow, it sounds fie23:26
lifeless*fine*23:26
poolieit does have to deal with caching23:27
pooliehaving seen some of the bugs people hit, i think having multiple controllers around may not be such a good idea23:27
lifelesswow23:56
lifelessmassive quake23:56
lifelessinternet is up23:56
lifelessphones & cell towers down23:56
spivlifeless: hooray for internet23:57

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