/srv/irclogs.ubuntu.com/2011/01/31/#launchpad-dev.txt

StevenKRight00:00
lifelessso no builds is a subset of no builds in the last 24 hours00:00
lifelessmvoe the date constraint into th ejoin00:00
lifelessas a > $earliest_build_date_we_would_consider00:00
lifelesseither http://pastebin.ubuntu.com/560426/ or00:02
lifelesshttp://pastebin.ubuntu.com/560428/00:02
lifelessI think 50426 will work though; use that if possible - write tests to be sure00:02
StevenKI think I have enough test cases00:03
lifelessok00:03
* StevenK waits for druzhnaya to actually talk to him00:04
StevenKlifeless: So with 560426, I should put an And() inside the LeftJoin?00:05
wgrantHuh.00:06
wgranthttps://lpstats.canonical.com/graphs/PrivateArchiveTokens/20100201/20110201/00:06
wgrantWhat happened at the end of November?00:06
huwshimilifeless: with your comment on Bug #435779 about changing staging to qastaging it can be done, but will it mean changing the push lines to bzr push lp://qastaging/~your-id/branch-name etc? I'm just looking at the sandbox "What's this?" dialogue: https://launchpad.dev/+help/home-page-staging-help.html00:08
StevenKwgrant: SC, at a guess00:08
wgrantStevenK: That was my thought, but I would have expected that a month or so earlier.00:08
wgrantPerhaps apps only started really appearing in November.00:08
wgranthuwshimi, lifeless: Also, qastaging updates should be fixed before we recommend it.00:09
StevenKwgrant: I can think of someone you can ask. :-)00:09
StevenKlifeless: Storm seems to eat my brackets :-(00:10
lifelesshuwshimi: yes00:12
lifelesswgrant: perfect enemy of good00:12
lifelesswgrant: thats really not a must do to suggest it rather than staging00:12
lifelessStevenK: yes, and AND00:13
huwshimilifeless: Great thanks for that00:13
lifelessStevenK: what brackets is it eating00:13
wgrantlifeless: It's awkward to try things on qastaging when your project probably isn't there.00:13
lifelesswgrant: that applies equally for new projects to both staging & qastaging00:14
lifelesswgrant: its also straight forward to fix00:14
StevenKlifeless: http://pastebin.ubuntu.com/560435/00:15
lifelessStevenK: should be fine00:15
lifelessStevenK: unless pg is bitching?00:15
StevenKExcept it doesn't work :-)00:15
lifelessin what way00:16
StevenKlifeless: My test case is create a recipe, then create two builds for the recipe, one created 24 hours ago, and then other 8, and then call makeDailyBuilds(), which should return []00:18
lifeless...00:19
lifelessStevenK: (and what is it returning)00:21
lifelessStevenK: I'm not doing anything else while I help you00:21
StevenKlifeless: Oh. It returns a new build00:21
lifelesswhich of the two00:22
StevenKNeither of them, a new one00:22
thumperhuwshimi: hi00:22
lifelessStevenK: sounds like you need more visibility into what its doing/seeing00:22
huwshimithumper: Hey there00:22
thumperhuwshimi: do you know where we are supposed to make CSS edits?00:22
thumperhuwshimi: I'm wanting to make the yui3-ieditor-error not be 0.5em00:23
thumpercan't read the freaking error :(00:23
* thumper is supping on a lovely quad-shot flat white in a cafe00:23
thumperlovely00:23
huwshimithumper: most of the css is in one of two files. I'll just grab you the location00:23
thumperhuwshimi: ta00:23
huwshimithumper: Are you adding something new or modifying something?00:24
thumperhuwshimi: I think it is new as I can't find a style locally for it00:24
thumperhuwshimi: does come from combo.css00:24
thumperwhereever that is00:24
james_wyui?00:25
thumperI tried some css.in file... but it didn't end up showing00:25
thumperjames_w: yeah00:25
lifelessStevenK: also, do you need to restrict by archive?00:26
StevenKlifeless: makeDailyBuilds() decides what to do based on the query, if the query returns a recipe when it shouldn't, it will create a build for it00:26
huwshimithumper: I'm not sure of the best way to do it when it's dealing with the YUI stuff.00:27
lifelessStevenK: I get that, but to figure out whats wrong we need more info. 'Transparency'00:27
thumperhuwshimi: so what is the best way?00:27
huwshimithumper: that .in file is the main one, but there are separate files that specifically deal with yui stuff00:27
lifelessStevenK: e.g. perhaps log 'creating new build for recipe %s with prior build %s on %s'00:27
thumperhuwshimi: do I need a special make target to make our css?00:28
huwshimithumper: but they are in the lazr-js build directories and I'm not sure if we can touch them00:28
StevenKlifeless: Sorry about the wrapping: http://pastebin.ubuntu.com/560436/00:28
thumperhuwshimi: I'm sure I can sort something out :)00:28
huwshimifor example there is this file: lazr-js/build/inlineedit/assets/skins/sam/editor-skin.css00:29
huwshimithumper: ^00:29
StevenKlifeless: It's the earlier query where we moved date_created into the JOIN. I'd expect that to return zero rows, not two00:29
huwshimithumper: which references .yui3-ieditor-errors00:30
thumperhuwshimi: yes it does, and it says 0.5em00:31
thumpergrr!!!00:31
huwshimithumper: but if you change that file I'm not sure if it will get overwritten at some point if there is a lazr-js update00:31
huwshimithumper: I don't really know how the lazr stuff works00:31
* thumper thinks....00:31
lifelessStevenK: its returning 2 rows because you've unique data in the select clause00:31
thumperhaha00:31
thumperhuwshimi: the reason it is 0.5em is for the title errors00:32
thumperhuwshimi: if you are editing an h1, then 0.5em is fine00:32
thumperhuwshimi: but editing a multiline box where the text is 12pt00:32
thumperhuwshimi: 0.5em sucks arse00:32
StevenKlifeless: So removing BuildFarmJob.date_created, I still get one row00:32
huwshimithumper: Ah right, yeah that would00:32
thumperhuwshimi: seems like a general fail all round00:33
thumperhuwshimi: where there is an implicit assumption on the text size00:34
lifelessStevenK: add a constraint that date_created is NULL to the where00:34
huwshimihuwshimi: And now you know why text sizing is so difficult with em or %00:35
* huwshimi is talking to myself00:35
huwshimithumper:  And now you know why text sizing is so difficult with em or %00:35
thumperhuwshimi: yup00:36
thumperw00t00:36
thumpermy widget refactoring branch just passed ec2 test00:36
thumperand is being landed \o/00:36
huwshimithumper: so you could add a specific rule for the situations where the font size will be too small00:39
thumperhuwshimi: yeah, I'll be looking at something like that00:40
thumperhuwshimi: I have a cunning plan00:40
StevenKlifeless: Adding BuildFarmJob.date_created == None still has the test failing00:41
thumperhmm....00:41
* thumper bets that webservice_error values aren't inherited00:42
lifelessStevenK: sigh, grumble. (Not at you)00:42
lifelessStevenK: gimme a sec00:42
huwshimithumper: I don't like the sound of this... often when I hear cunning plan it equals "dodgy hack"00:43
thumperhuwshimi: trust me grasshopper :)00:43
huwshimithumper: haha00:44
thumperhuwshimi: what turns our css.in file into a real css file?00:45
huwshimithumper: we have a build script. It will get built every time you run 'make run' or you can rebuild it while the dev server is running by using 'make css_combine'00:46
thumperhuwshimi: ta00:46
* thumper didn't even need to add a new css class00:47
* thumper stabs the code in the face00:49
thumpermy css fix worked00:49
lifelessStevenK: ok00:49
thumperbut not my webservice error annotation to existing exceptions00:49
lifelessStevenK: I'm all yours, lets look harder00:49
huwshimithumper: I don't think I even want to know what you just did00:49
thumperhuwshimi: not rocket science: .lazr-multiline-edit .yui3-ieditor-errors {    font-size: 100%;     }00:50
huwshimithumper: Ah ok that looks ok00:51
StevenKlifeless: I have the test logging, but it doesn't help much, since it's query00:51
thumperhuwshimi: although editing the programming languages of a project when there is an error will render unreadable error text00:52
thumperhuwshimi: as it is a text line editor00:52
thumperhuwshimi: however it does this now00:52
thumperso it isn't new00:52
thumperjust still shit00:52
lifelessStevenK: ok, so, we have 0 > N rows in bfj00:53
StevenKRight00:53
lifelessif we constrain(in the join) any of the relations such that no rows are emitted, the left join means that the spr will be returned00:54
lifelessthis applied to each left join expansion00:54
StevenKHm00:55
StevenKlifeless: This is fine, for the no-builds case00:56
lifelessok01:01
lifelesswe *do* need the right join01:01
lifelessbecause01:01
thumperoh FFS01:01
lifelesswe want to treat those three tables as inner joins01:01
lifelessthis works perfectly for me01:02
lifelessand takes 6ms01:02
StevenKlifeless: Can haz query you used?01:02
lifelessjust pasting01:02
lifelesshttp://pastebin.com/5x6vkZx501:02
lifelesson qsstaging, which has an updatish awn-testing recipe, it excludes it, and includes it when I drop the date back a day01:03
lifelessthe brackets in the join don't matter01:04
lifelessI just had them in from before01:04
StevenKlifeless: So expanding this out to the code: This means that BFJ and PackageBuild change from LeftJoin to Join and the other LeftJoin turns into a RightJoin?01:05
lifelessyes01:05
lifelessand that you need the right join as the outer one01:06
StevenKRightJoin(Join(Join ?01:06
lifelessStevenK: yes, I think so01:06
* StevenK tries it01:07
lifelesswgrant: btw, you need to be more paranoid about what users do01:07
lifelesswgrant: I refer to bug 49864201:07
wgrantlifeless: Uh, I tried it.01:08
wgrantWhich page?01:08
lifelesswgrant: put one space, or carriage return in the description01:08
lifelesswgrant: I used bugs.qastaging.launchpad.net/launchpad/+filebug01:09
wgrantAhh, different bug.01:09
StevenKlifeless: Crumbs, I think that worked.01:09
lifelesswgrant: hmm?01:09
wgrantlifeless: 498642 and two others that I just closed were filed when any error on the bug form caused an OOPS.01:09
wgrantHaving a whitespace-only body is a different thing.01:10
lifelesswgrant: given that I filed 498642, I beg to differ01:10
wgrantI know, but your description doesn't say that :)01:10
lifelesswgrant: anyhow, I've reopened it for you01:10
lifelessand linked in an oops01:10
wgrantI will clarify the description.01:11
wgrantHowever, given the timing, I'm pretty sure this is not the issue you initially reported.01:11
StevenKWe cannot log you on at the moment due to very high levels of usage01:11
StevenKPlease try again later01:11
lifelessStevenK: ?01:11
StevenKDear NAB, you faiol01:11
StevenK*fail01:11
lifelesshah, eep01:11
StevenKlifeless: So I think the query works for the 'we have builds' case, but not the 'no builds' case.01:12
lifelessStevenK: show me the query being generated ?01:13
lifelessoh the order_by is totally unneeded, I was using that for my edification01:13
StevenKlifeless: I figured, which is why I ignored it01:13
StevenKlifeless: http://pastebin.ubuntu.com/560449/01:14
StevenKlifeless: I think it's putting the right join in the wrong place01:15
lifelessindeed01:15
lifelesspaste the python01:15
StevenKhttp://pastebin.ubuntu.com/560450/01:15
* thumper is getting there...01:15
StevenKlifeless: I was going to try Join(Join(RightJoin(01:16
lifelessStevenK: you've got the wrong table in the joins01:16
StevenKI do?01:16
lifelessyes01:17
lifelessyou're inner joining spr and sprb01:17
lifelessyou want to right outer join spr and the other composite table01:17
lifelessI'm just rearranging, one sec01:17
lifelesshttp://pastebin.ubuntu.com/560451/01:18
lifelessmy indenting is still whack, I just did enough to see what was binding to what01:18
StevenKI think mine is worse, but let's see01:20
StevenKlifeless: So I think I get why my code was wrong -- the right join was for *both* BFJ and PackageBuild together, right?01:22
lifelessStevenK: a join joins two 'tables' together01:22
lifelessStevenK: your code was wrong because it inner joined SPR and SPRB togehter.01:23
lifelessStevenK: when what we want is an outer join on SPR + [all the rest]01:23
lifelessI don't know if that makes sense to you01:24
StevenKlifeless: Now we get http://pastebin.ubuntu.com/560452/01:24
StevenKlifeless: If that query looks sane, I'll throw it at the rest of the tests01:25
lifelessStevenK: that looks sane01:25
* StevenK bursts into flames to cool down01:26
StevenKlifeless: That looks like all tests pass, \o/01:28
lifelessexcellent01:28
wgrantlifeless: Do you have a moment to EXPLAIN ANALYZE the top query on https://lp-oops.canonical.com/oops.py/?oopsid=1839G1380?01:29
wgrantIt upsets dogfood greatly; I hope qastaging may survive better.01:29
* thumper sighs01:30
thumpertime to relocate home01:30
wallyworldwhy the sigh?01:31
StevenKArgh, it's getting hotter01:32
StevenKTomorrow is going to be worse :-(01:32
lifelesswgrant: iz terribad01:32
wallyworldwhat temp is it?01:32
wgrantlifeless: Clearly.01:33
lifelesswgrant: jtv has suggested that a union of public + private will perform better01:33
StevenKwallyworld: Currently, 33degC, feels like 3701:33
lifelesswgrant: (because they are typically lopsided)01:33
wgrantlifeless: I've suspected that, yes.01:33
wallyworldyeah, it's humid here too. days like this i miss working in an office :-(01:33
lifelessstub: hey01:33
wgrantlifeless: Ah, it finished on DF... in slightly under 5 minutes.01:34
lifelessstub: are you back on deck ?01:34
stublifeless: yo. back on deck.01:34
lifelesscool01:34
StevenKwgrant: That's better than the last query you got me to run on DF01:34
lifelessI have a crazy idea I'd like to run past you01:34
wgrantStevenK: Shh.01:34
lifelessis it possible to use a plpython(or plsql) function to index on fields in other tables ?01:35
StevenKwgrant: Is it hot down there today too?01:35
wgrantIf so, it would fix just about everything :)01:35
wgrantStevenK: Only meant to be 34 today.01:36
wgrantSo, not really.01:36
StevenKHotter than here01:36
wgrantAh, it was around 40 yesterday.01:36
lifelesswgrant: so, 200 seconds cold01:36
lifeless4.2 seconds hot01:36
wgrantlifeless: 6s on DF, yeah01:36
stublifeless: Yes, but it is ugly and the indexes might lie (because you have to declare the function as stable rather than volatile, and thus the function definition is a lie too)01:36
stublifeless: A joining table might be more appropriate, either denormalizing or moving the columns if they are only used in tandem.01:37
lifelessstub: would they like for reasons other than the referenced data changing ?01:38
lifelessstub: so the specific case I'm thinking of is the one I discussed in last tuesdays perf tuesday mail01:38
wgrantI also have a very similar case, which makes the publisher slow.01:38
stublifeless: Only when the referenced data changes (inserts, deletes, updates depending on what you are indexing).01:39
stublifeless: It will make inserts slow too of course.01:39
lifelessstub: so, perhaps you could have a look at the case I analysed, see the mistakes I made ;). I'm curious what you mean by 'joining table'01:40
lifelessstub: is a cross-table function better or worse than denormalisation01:40
lifelessor is it case-by-case evil ?01:40
stubcross table function can surprise you and shoot you in the foot. If your source data changes (maybe it is stable now, but can you promise about tomorrow?), then you start returning incorrect results. Denormalization is explicit and obvious, can be maintained with triggers, but makes tables wider so more storage and slower to query.01:42
lifelessstub: yeah, thats about what I thought01:43
lifelessstub: the particular case I'm thinking of the fields being referenced are immutable01:43
stublifeless: There was also a bug where index lookups on a function index where still calling the underlying function, so the approach was useless. Hopefully this has been fixed in 8.4 (I last checked around 8.1 or 8.2 I think)01:44
lifelessstub: whee; thats not the case here, but we'd want to test to be sure I think.01:44
lifelesswgrant: analyzing now01:47
wgrantlifeless: Analyzing what?01:48
lifelesshttp://pastebin.com/rx1F4KRE01:48
lifelessyou wanted an explain analyze01:48
wgrantOh, right, yes.01:48
wgrantThanks.01:48
lifelesswgrant: moving product from prejoin to separate all-product query would help too I think01:52
wgrantlifeless: In this case it's all NULL, but yes, it would probably help a little.01:53
lifelesswgrant: it will reduce appserver time01:53
StevenKlifeless: Did you want to actually review https://code.launchpad.net/~stevenk/launchpad/queue-recipes-better/+merge/47358 or shall I add the usual suspects?01:53
lifelesswgrant: 1/2's the query time01:56
lifelessTime: 2318.619 ms01:56
lifelesswgrant: if I remove the product and spn relations01:56
wgrantHuh.01:57
lifelesswgrant: http://pastebin.com/he1NJvxx01:57
stubNow that Open Office has forked, should we be putting resources into supporting their unique translations format, or should we be putting resources into moving Libre Office to a standard translations format?01:58
thumperheh01:58
* thumper goes to work out how to install libre office01:59
lifelessI'd make sure there is a bug upstream01:59
lifelessbut AIUI we have an importer from their format already, don't we?01:59
stubIIRC we do one of mozilla and open office. I think open office.02:02
wgrantWe definitely do Mozilla.02:02
wgrantThat's the XPI stuff.02:02
lifeless=== Top 10 Time Out Counts by Page ID ===02:06
lifeless    Hard / Soft  Page ID02:06
lifeless     365 / 8767  Archive:+index02:06
lifeless      14 /  239  POFile:+translate02:07
lifeless      14 /    4  Cve:+index02:07
lifeless      13 /  305  Distribution:+bugtarget-portlet-bugfilters-stats02:07
lifeless      13 /   24  NullBugTask:+index02:07
lifeless      12 /   12  BugTask:+editstatus-page02:07
lifeless       9 /   30  Distribution:EntryResource:searchTasks02:07
lifelessbah freenode02:07
lifelesshates02:07
lifelessI bet that got filtered02:07
* StevenK prods lifeless so he can go to lunch02:10
lifelessStevenK: oh, sorry02:10
lifelessStevenK: so02:11
lifelessStevenK: there is a daily build archive02:11
lifelessStevenK: but we're not filtering the builds against that. Does that matter?02:11
lifelessStevenK: e.g. if I manually build a recipe into some other ppa/suite/whatever; does that invalidate the results we're getting?02:11
StevenKIf it's the same recipe, it will, but I don't think that's a bad thing02:12
wgrantWe need to restrict the search to the daily build archive.02:13
lifelessStevenK: why would it be a good thing?02:13
StevenKlifeless: Some sets up a daily build, and requests a build manually. The system then shouldn't request another build for that recipe for another 24 hours.02:14
lifelessStevenK: if they do a test build into a different place, why ?02:14
lifelessStevenK: I get it if they build into the same archive02:14
StevenKRight, I get it02:14
thumpergrr!!!02:14
wgrantthumper: What are you trying to break?02:15
StevenKYeah, we can pull Archive into it02:15
thumperwhy can't we have our javascript not crippled02:15
wgrantHeh.02:15
lifelessStevenK: so, this can be a different patch; could you file a bug though so we don't forget ?02:15
* thumper needs to debug some javascript02:15
thumperwhich firebug is normally pretty good at02:16
lifelessactually02:16
lifelesswgrant: care to review this; I will mentor your review02:16
lifelessStevenK: go to lunch02:16
StevenKlifeless: But finish reporting the bug first? :-)02:16
lifelessStevenK: yes02:17
wgrantlifeless: Looking.02:17
StevenKlifeless: bug 71043502:19
StevenKI never get good numbers02:19
thumperanyone know how to non-compress our javascript?02:19
wgrantthumper: deryck recently (probably less than a month ago) adjusted devmode to minify everything into a single file, since YUI otherwise wanted to request 500 JS files.02:28
wgrantTracking down that rev might give you a hint.02:29
* thumper grunts02:29
thumperwgrant: I've emailed the list with the real problem02:29
thumperwgrant: and that is how to debug javascript02:29
lifelessStevenK: when triaging you need to set status as well as importance ;)02:30
wgrantStevenK, lifeless: Reviewed.02:32
StevenKwgrant: Bah, lifeless agreed that could be done later, as long as filed a bug02:33
wgrantI disagree :)02:33
wgrantAlso, I don't think the series issue was brought up.02:33
wgrantBut I wasn't really following your conversation.02:33
StevenKwgrant: thumper and I spoke about this multiple times at the Thunderdome -- if they add another distroseries to an existing recipe, they can either wait or request a manual build -- I don't think it is going to happen very often02:34
wgrantStevenK: I request a test build for Natty to the usual archive.02:35
wgrantThe other series are then skipped the next day, despite being stale.02:35
* wgrant lunches.02:36
huwshimiAnyone available to review this: https://code.launchpad.net/~huwshimi/launchpad/get-started-text-435779/+merge/47958 (for #435779).02:37
StevenKwgrant: The query in question only finds recipes that should be built -- it doesn't care about series.02:37
* StevenK also lunches, finally02:37
=== stub1 is now known as stub
wgrantStevenK: Sure, but it needs to check that all the series have been built.03:08
wgrantStevenK: Or a build for a single series will cause no builds to be created for *any* series.03:09
wgrantmwhudson: Did you get anywhere with that codebrowse auth issue?03:09
wgrantlifeless: They're not already present in the tree.03:10
mwhudsonwgrant: no03:10
wgrantlifeless: We don't unset staleness except in the case of daily builds.03:10
mwhudsonwgrant: didn't really try beyond what i said in the report03:10
wgrantmwhudson: Ah :(03:10
wgrantI guess I will try to reproduce it locally.03:10
mwhudsonthat would be great03:12
wgrantc-i-p funtimes, yay.03:13
* thumper has found a way03:16
StevenKwgrant: Within 24 hours, yes03:17
wgrantWTF :/03:17
wgrantWTF03:17
wgrantc-i-p is just getting more impossible.03:17
wgrantIt now wants to talk to a 10.x.x.x host.03:18
wgrantStevenK: Yes, but it's still a regression.03:18
StevenKwgrant: I think it's one we can live with03:19
wgrantWhy?03:19
wgrantRandom people requesting builds of my recipe should not affect my builds of my recipe.03:19
StevenKRandom people can't write to your archive03:19
wgrantAh, if you do add the archive restriction, sure.03:20
wgrantThen it's not quite so bad.03:20
StevenKwgrant: I'll fix the lint, I think the join is more readable03:20
wgrantStevenK: Were you able to avoid the RightJoin?03:21
StevenKI'll look at the archive and Archive.default_component03:21
thumperwgrant: c-i-p ?03:21
wgrantthumper: canonical-identity-provider03:21
thumperha03:21
thumperah03:21
StevenKwgrant: lifeless and I have rewritten that query about 3 times03:21
wgrantStevenK: Can't you just reverse the order and use a LeftJoin?03:21
wgrantOh good.03:22
wgrantAnd the dev config files are private to ISD.03:22
StevenKwgrant: But why are you trying to avoid RightJoin?03:22
wgrantStevenK: Consistency, mainly.03:23
wgrantNowhere else in the tree uses it.03:23
StevenKwgrant: I'm tempted to leave it, since lifeless and I have spent a while crafting it03:26
StevenKwgrant: In terms of adding archive, I'm worried the tests are naive03:29
StevenKAnd don't set daily_build_archive03:29
wgrantIs this a concern?03:30
StevenKwgrant: It could be03:31
StevenKwgrant: Is http://pastebin.ubuntu.com/560480/ more to your tastes?03:31
wgrantStevenK: Unity doesn't want me to see that.03:32
wgrantBut yes, that looks OK.03:32
StevenKHaha03:32
wgrantAs for the RightJoin, the tests pass if I s/Right/Left and invert the first two arguments.03:32
StevenKAll of them?03:33
wgranttest_sourcepackagerecipebuild03:33
StevenKDrop the build03:33
StevenKThere's one or two pertinent tests in spr03:34
wgrant+ pip install -r ./requirements.txt -f 'https://launchpad.net/lazr.restful/+download?start=21' -f 'https://launchpad.net/lazr.restfulclient/+download?start=9'03:35
StevenKwgrant?03:35
wgrantStevenK: SSO's installation script seems to hardcode batch numbers.03:36
StevenKWhee03:37
wgrantStevenK: Lots of the SPRecipe tests fail because lazr.restful hates Natty, but all the relevant ones look good.03:38
StevenKwgrant: See lifeless' comment on the MP, though03:39
wgrantStevenK: http://pastebin.ubuntu.com/560481/03:39
wgrantAh, hm.03:39
wgrantI don't particularly buy that rationale. But perhaps I misunderstand.03:40
StevenKYou don't think information for a build is split between BFJ, PackageBuild, and SPRecipeBuild?03:41
wgrantI do.03:41
StevenKStill can't bring myself to say SPRB03:42
wgrantBut I have never seen a case where a right outer join is justified. Unless I seriously misunderstand what it is, it can be trivially replaced with a left outer join.03:42
wgrant'we can't left join with it because the condition for restricting interesting builds is to the right of one of the partitions' makes very little sense.03:42
* thumper stabs CSS in the face03:45
huwshimithumper: In a good way?03:46
thumperhuwshimi: I'm finding lots of CSS stuff ups03:46
thumperhuwshimi: go into any bug on qastaging03:47
thumperhuwshimi: and delete the description03:47
thumperhuwshimi: and try to save03:47
thumperhuwshimi: I've worked out how to fix the "always loading" issue03:47
thumperhuwshimi: but the error styling messes up how it looks "a lot"03:47
thumperhuwshimi: for any multi-line editor, the tab gets an off by one error when you edit03:48
thumperhuwshimi: the curved line gets an extra pixel03:48
thumperhuwshimi: the edit box is one pixel too wide03:48
thumper(those are two different off by one errors)03:48
thumperhuwshimi: and I told you about the off by one pixel issue on mouse over03:49
huwshimithumper: ouch03:49
huwshimithumper: oh, now I see what you mean by the error text too03:49
thumperthe "always saving" issue is a lazr-js problem03:49
thumperI'll be submitting a fix for that soonish03:49
thumperbut the styling is really annoying03:50
* thumper fires up a lazr-js branch to mess around in03:50
huwshimithumper: Might add that hover stuff to my queue for this afternoon03:50
thumperhuwshimi: it may well be in lazr-js03:50
thumperhuwshimi: let me look, since I'm there anyway03:51
huwshimithumper: ok sure.03:51
wgranthuwshimi: Yay for eliminating facet colours.04:07
wgrantAlthough it does sort of invalidate our logo.04:07
huwshimiwgrant: Haha. We MUST keep all the colours, the logo says so. Whatever will we do!?04:09
wgrantExactly!04:09
StevenKHm04:13
huwshimiwgrant: Just don't mention that logo thing to anyone else alright! :P04:14
thumperI liked the facet colours04:15
thumper:(04:15
thumperwhat's changed?04:15
thumperhuwshimi: I've fixed two 1px problems04:16
thumpernow looking at the error one04:16
huwshimithumper: Awesome. Nice work.04:19
StevenKwgrant: Attempting to add packagebuild.archive == sprecipe.daily_build_archive isn't working. :-/04:32
wgrantStevenK: Oh?04:34
wgrantWhat does it do?04:34
wgrantAnd where are you putting it?04:34
StevenKIn the join of PackageBuild04:35
wgrantHmm04:36
StevenKAnd it doesn't like it since SPRecipe isn't in the mix yet04:36
lifelesswgrant: that aren't ?04:41
wgrantlifeless: Pardon?04:42
lifelessbah04:42
lifelesswgrant: what defects are not already intree ?04:42
* StevenK kicks AWS and attempts to extract an invoice from its website04:42
lifelesswgrant: also right join is fine, left join would be wrong04:42
wgrantlifeless: The ones I mentioned in the bug: creating a build for any series in any archive will prevent daily builds from being created.04:43
wgrantThis is not the case at the moment.04:43
wgrantlifeless: So you keep saying, but I do not see why.04:43
wgrantCould you explain?04:43
lifelesswgrant: I don't see how it can be the case at the moment04:43
wgrantlifeless: Now you have me confused.04:43
lifelesswgrant: bah, I mean, why isn't the bug present in the tree at the moment04:44
wgrantlifeless: Because it only checks for is_stale. is_stale is set when a change is made to the branch, and unset when a daily build is requested.04:44
wgrantManual builds do not affect the flag.04:44
lifelessok, Isee04:45
wgrantNow, in addition to the flag being set, there must be no builds.04:45
lifelessthen yes, we need to constrain by archive to fix that04:45
lifelesss/\./in the last day./04:45
wgrantRight.04:45
lifelesswgrant: whats the left join that you think works ?04:45
wgrantlifeless: The right join, except with the arguments reversed.04:46
wgrantI pasted a diff somewhere above.04:46
wgranthttp://pastebin.ubuntu.com/560481/04:46
lifelesswgrant: what sql does that compile to ?04:46
wgrantSELECT DISTINCT SourcePackageRecipe.build_daily, SourcePackageRecipe.daily_build_archive, SourcePackageRecipe.date_created, SourcePackageRecipe.date_last_modified, SourcePackageRecipe.description, SourcePackageRecipe.id, SourcePackageRecipe.is_stale, SourcePackageRecipe.name, SourcePackageRecipe.owner, SourcePackageRecipe.registrant FROM SourcePackageRecipe LEFT JOIN (SourcePackageRecipeBuild JOIN PackageBuild ON PackageBuild.id = ...04:48
wgrant... SourcePackageRecipeBuild.package_build JOIN BuildFarmJob ON BuildFarmJob.id = PackageBuild.build_farm_job AND BuildFarmJob.date_created > %s) ON SourcePackageRecipeBuild.recipe = SourcePackageRecipe.id WHERE SourcePackageRecipe.is_stale = %s AND SourcePackageRecipe.build_daily = %s AND BuildFarmJob.date_created IS NULL04:48
wgrantWhich looks fine.04:49
lifelessok, that would be ok04:49
lifelessStevenK: you can switch to that if you want; I don't care. Otoh avoid right join just because it hasn't been used would be noddy04:50
StevenKYou really do like using the word 'noddy' recently, have you been reading the books?04:50
lifelesswhich books?04:51
wgrantlifeless: Avoiding divergence that cannot be explained sounds very reasonable to me.04:51
StevenKlifeless: http://en.wikipedia.org/wiki/Noddy_%28character%2904:51
wallyworldwhy do elephants have big ears?04:51
wgrantThe use of RightJoin confused everyone into thinking it was more complex than it was.04:51
lifelessStevenK: no04:51
wallyworldbecause Noddy wouldn'y pay the ransom HAHAHAHAHA04:51
wgrantWhen a perfectly good LeftJoin worked perfectly fine.04:51
lifelesswgrant: its not complex; a left join with inner table is more complex (need brackets to express it)04:52
StevenKwgrant: A LeftJoin and a RightJoin aren't any more complex than each other?04:52
wgrantStevenK: No, they are identical. But some were arguing that a right join was the only way to do it.04:53
lifelessthat said, I don't care; its entirely irrelevant that right join hasn't been used so far. LP is only beginning its optimisation path.04:53
wgrantlifeless: I'd want the right join parenthesised too, for clarity.04:54
lifelessI'd stay with the right join at this point because its working, is correct, and produces more readable SQL.04:54
wgrantHm?04:54
lifelesswgrant: for that, you need to patch storm04:54
wgrantWhat is unreadable about "table LEFT JOIN (other table JOIN other table ...)"?04:55
wgrantIt expresses the intent more clearly.04:55
wgrantWe want table.04:55
lifelessless readable04:55
wgrantNot (other table JOIN other table ...)04:55
lifelessthis seems like a pointless debate04:55
wgrantIt is.04:55
lifelessfrom a review standpoint, right join does the job and is correct, and no clearer than left04:57
lifelessnor less clear04:57
StevenKlifeless: To be frank -- so the fact that nothing else uses it in the tree is irrelevant?04:58
lifelessindeed04:58
lifelessidentical plans05:00
lifelesswgrant: the nothing-else-uses-it argument is irrelevant because left isn't intrinsically better than right, and there will always be things that happen for the first time.05:01
lifelessviva la difference05:01
wgrantlifeless: Things do happen for the first time, yes. But in this case there was precisely 0 benefit in introducing a new way to do things.05:02
wgrantAnd I believe the left join expresses the intent more clearly.05:02
wgrantSo I argued for that.05:02
lifelesswgrant: why do you think it expresses it more clearly?05:02
StevenKUgh, 33degC05:03
StevenKPerhaps the other side of the apartment is cooler, but I doubt it05:03
wgrantlifeless: Because the left one joins conditions onto the target table, rather than joining the target table onto the conditions.05:03
StevenKwgrant: "Bikeshed"05:03
wgrantDefinitely.05:03
lifelessI agree05:04
wgrantI was not going to argue for it strongly until lifeless stated that a left join would not work.05:04
lifelessFor reviews, we need a massive increase in readability to cover the cost of a discussion05:04
wgrantThen I feared that I had some deep misunderstanding of joins.05:04
lifelesswgrant: I misspoke; I was having fumble-fingers in crafting manual sql05:05
wgrantRight.05:05
lifelessLEFT actually.05:05
wgrantThat is clear now.05:05
wgrantBut it didn't become clear until this argument was well underway :)05:05
lifeless:)05:05
lifelesswgrant: nice catch on bug 57998705:06
lifelesswgrant: are you cruising for oopses to fix ?05:06
wgrantIn other news, SSO has actually succeeded in being harder and more time consuming to install than the Launchpad that it is mean to be an improvement on.05:06
StevenKWhere did our bug bot go?05:06
wgrantlifeless: I'm babysitting c-i-p for now, but plan to look at Archive:+copy-packages seriously next.05:06
lifelesscip ?05:06
lifelesshowso?05:06
wgrantcanonical-identity-provider, so I can debug the private codebrowse issues.05:07
lifeless\o/05:07
lifelesswgrant: O05:07
wgrantSince they hit me a few times a day, and it is sort of getting old.05:07
lifelesswgrant: I've pointed bigjools and sinzui at the 16K oopses from codebrowse;05:07
wgrantlifeless: Yes, but loggerhead.05:08
lifelesswgrant: you do look at /launchpad-project for bugs, right ?05:08
wgrantOccasionally.05:08
lifelessso, partial success \o/05:08
* thumper away cooking05:13
BjornT_lifeless: fwiw, the lp-architecture i was doing wasn't a complete redo. it re-used existing docstring and doctests. i was careful which doctests got included, though, since probably more than 90% of the existing doctest do a bad job at being documentation. it was also meant as a guideline of how to write new documentation.05:24
lifelessBjornT_: kk; some of that nuance got lost in handover05:27
poolielifeless, is lp planning to make a new api version snapshot some time?05:52
pooliei see people are now being advised "just point to /devel" which seems likely to cause the same problems as with beta all over again05:53
lifelesspoolie: yes05:53
lifelesspoolie: for things that they aren't shipping on cd-roms05:53
lifelesswe probably need to get a bit more rigorous about when to freeze things05:54
poolieprobably05:54
poolieeven just freezing whatever's in there every six months could be a start05:54
poolie(i don't know if supporting multiple versions is expensive in the code or something)05:54
wgrantAnd more rigorous about what we freeze.05:54
lifelesshugely05:54
pooliehugely expensive?05:54
lifelessits awfully complex, prevents refactoring, freezes concepts that are mutable05:55
pooliesure05:55
lifelessprone to failure, hard to report on.05:55
poolieit's like our api stability05:55
lifelesspoolie: its worse05:55
poolieoh, why?05:55
lifelesspoolie: because we have to support them all concurrently05:55
pooliehm, kind of05:55
lifelesspoolie: we can't say 'if you want the old api, don't upgrade your package'05:55
pooliei see what you mean, but in practice when people get a new ubuntu release, they get a new bzr05:56
poolieand either bzr or the plugins needs to cope05:56
poolieanyhow05:56
poolieistm that at the moment lp just says "there are no promises about apis"05:56
pooliewhich may actually be the most sensible way to do it05:56
poolieanyhow, it is hadr05:57
pooliemy main concrete suggestion was just to do a snapshot once or twice per year05:57
poolieeven if they're only supported for a year after that05:58
poolietangentially, from max:05:58
poolie> Yes, it's really true - earlier launchpadlib versions only offered you the choice of edge or staging.05:58
wgrantWell, lpnet didn't have the API for ages, because it was in beta.06:00
pooliei know06:01
pooliei just wonder if it would have been better to declare the url, even if it didn't work06:01
pooliemaybe not06:01
pooliewas from https://code.launchpad.net/~maxb/bzr/launchpadlib-service-root-api-compat/+merge/4788506:01
wgrantmwhudson: Naturally, codebrowse auth is completely reliable locally with a local c-i-p.06:06
wgrantHmm.06:08
wgrantIt's a bit of a wild guess, but I wonder if only one of the login.launchpad.net IPs is visible from wherever runs codebrowse.06:09
lifelessso06:09
lifelesslp had the crazy thing of 'beta means a different cluster' which had all sorts of negatives06:09
lifelessI would have done it differently06:09
lifelessbut its history: no second guessing06:10
wgrants/would //06:10
lifelesswe're doing it differently now06:10
wgrantlifeless: Who can check firewall rules?06:11
lifelesslosa + gsa I believe06:11
spmwell gsa only actually.06:12
wgrantpoolie: Oh, ugh, just read that MP.06:27
wgrantThat's really awful.06:27
poolielifeless/lp hackers, congratulations on your timeout reduction!06:27
lifelesspoolie: thanks06:32
lifeless(on behalf of the folk that did all the work)06:33
lifelessbwah, no stub06:51
lifelessspm: what LPCONFIG / dbuser does the garbo run under?06:52
spmprod for 106:53
spmgarbo_daily & garbo_hourly for 206:53
lifelessspm: you can do permission changes live, right ?06:55
spmwith extremely good reasons for, maybe. depends.06:56
lifelessso yes, great.06:56
lifelessspm: do we run security.py --incremental on nodowntime deploys yet?06:57
spmnot that I'm aware of. that'd require a manual intervention on the db servers06:58
lifelessspm: shouldn't need to be manual.06:58
lifelessI'll ask stub to RT up whats needed.06:58
spmoh god yes it should.06:58
lifelessspm: why?06:58
pooliei got a "Your message was rejected" mail in response to my mp comment07:26
pooliei guess this is because a list is subcribed, perhaps launchpad-bugs07:26
lifelessyes07:27
lifelessgrrr07:28
lifelessany reviewers around ?08:14
=== stub1 is now known as stub
lifeless\o/08:21
lifelesshttps://code.launchpad.net/~lifeless/launchpad/bugtask+index/+merge/4796908:21
lifelessstub: ^ if you're around, I can has review?08:21
stubk08:22
stubInternet is still sucking :-P08:24
LPCIBotProject devel build (404): FAILURE in 6 hr 54 min: https://hudson.wedontsleep.org/job/devel/404/08:24
lifelesswell, thats bangkok isn't it ? :)08:25
stubAt least I have the excuse of living in the 3rd world.08:25
wgrantHah.08:34
wgrantc-i-p boog.08:34
lifelesswgrant: you've made progress ?08:35
wgrantlifeless: I can reproduce it locally and see why it's doing what it's doing.08:35
wgrantNow I need to go and read the spec :(08:35
lifelessstub: how long will it take to add an index to BugMessage.index08:37
stublifeless: Any reason why indexMessages rewrites .index on all BugMessages, even if it is already set?08:38
lifelessstub: its simpler than checking that all the unallocated ones have been allocated by the same algorithm08:39
lifelessstub: e.g. if someone deletes a BugMessage it will handle that08:39
stubThere is already one on (bug, index)...08:39
lifelessstub: yeah, but the garbo needs to find all with index is NULL08:39
lifelessstub: for a few months while we let the garbo build the per bug indices08:40
stub6.5 seconds on staging for just an index on BugMessage.index08:41
stublifeless: I thought one of the points of this column was to keep stable message indexes?08:44
lifelessstub: it is; needs to be phased in08:45
stubShouldn't take months. I would have thought fairly quick even with the current index (I think it will get used once a sizable percentage of the rows are filled, even if it isn't the optimal index).08:46
lifelessstub: phase 1 - get the index approximately up to date; phase 2 - appservers / mail processing starts writing BugMessage.index too; phase 3 field mandatory garbo job removed; phase 4 start querying from the index08:46
adeuringgood morning08:47
lifelessstub: looks to do a seqscan at the moment; we can wait for doing an index on bm.index specifically08:47
stubIt will do a seqscan until it is more efficient to use an index, which would mean a pretty high percentage of the rows have been updated. Until then, it is faster to do seqscan than use an index.08:50
lifelessstub: indeed, and thats fine; I'm not sure that there *is* an index for it to use.08:51
lifelessstub: because the (bug, index) index isn't selective on index unless bug is being considered (which it isn't for the populate case)08:52
bigjoolsmorning08:56
stublpmain_staging=# explain select bugmessage.id from bugmessage where index is null limit 50;08:56
stub                                                  QUERY PLAN08:56
stub---------------------------------------------------------------------------------------------------------------08:56
stub Limit  (cost=0.00..2.03 rows=50 width=4)08:56
stub   ->  Index Scan using bugmessage__bug__index__key on bugmessage  (cost=0.00..149895.69 rows=3700397 width=4)08:56
stub         Index Cond: (index IS NULL)08:56
stub(3 rows)08:56
lifelessstub: *blink*08:57
lifelessstub: that shows a seq scan fo rme08:58
lifelesson staging08:58
lifelessoh if you turn seq scan off it will force an index; doesn't mean its a good one :)08:58
lifelessstub: I suggest we sit on the need for an index until this is running live08:59
lifelessstub: and we can see how its going08:59
stubI think they introduced that around 8.3 - before it could only use the index if you where selecting on the left most columns.08:59
stublifeless: You need to explicitly disable sequential scans (set enable_seqscan to false)09:01
lifelessyeah09:01
stubI can create the index live if we want, or we can add one in a db patch it we also open a bug stating it to be removed09:02
lifelessstub: indeed09:02
lifelessstub: either way I think deferring it till we have the garbo live makes sense, do you ?09:02
stubyes09:03
stubDo we still have an anal XXX policy  or did we drop that?09:03
stubHehe... anal XXX09:03
stubSee what Google thinks of our IRC logs now.09:04
bigjoolsthanks stub, I just lost a mouthful of coffee over my desk09:04
lifelessstub: nothing in https://dev.launchpad.net/PythonStyleGuide  about xxx :P09:05
lifelessstub: even if we have something, I would argue that this one is going to last 4 months tops till the migration is complete.09:05
lifelessthen the garbo job goes away09:06
stubSure. Just wondering if it will trigger any XXX reporting tools someone is running that expects a bug number in there.09:06
lifelessoh no09:07
lifelessthey are stale09:07
mrevellHi09:07
stublifeless: reviewed. A few niggly bits, most likely irrelevant if this code is going away in your stage 4.09:13
wgrantlifeless: See my last comment in bug #676372.09:14
wgrantI think we should just disable stateful association for now.09:14
lifelesswgrant: I don't know what that means09:14
lifelessstub: thanks09:14
wgrantlifeless: Yay OpenID.09:15
wgrantWho knows OpenID?09:15
stubI used to09:15
lifelessstub: I don't want have to deal with db constraint issues if someone plays silly buggers in the db between now and phase 4 - thats why I'm making them al the same09:15
lifelessstub: do you see an issue with that ?09:15
lifelessstub: separately, we don't have a bug yet for the separate phases; I don't feel much need to precreate them. Do you?09:16
stubIts to make sure the task doesn't get lost or forgotten.09:17
lifelessstub: it won't have that affect though :)09:17
lifelessstub: 6000 items - anything > 1000 down has been effectively lost already09:18
stubI do like todos or XXXs to link to the relevant discussion so if some person trips over them in 2 years time it is clear it is tech debt.09:18
stubReferencing Bug #704446 is appropriate09:20
lifelesssure, I can do that (though thats not a future bug, thats the current bug :))09:21
stubAnyone know about wireless boosting? I'm getting interference and moving the base station is going to be a pain.09:24
lifelessyou can use iwconfig to set power levels09:25
lifelessyou could try a different channel09:25
lifelessor a second ap09:25
bigjoolsnew channel is best bet09:25
stubLooks like I'm at max. I already rebooted this morning and got a new channel.09:28
lifelesshow does reboot <-> new channel ?09:28
bigjoolsmultiple APs?09:29
stubSecond AP might be best. Biggest problem is no power on the stairs.09:29
stublifeless: Its set to auto, so it detects what channel looks cleanest. Of course, what is cleanest on the ground floor isn't necessarily what I get on this side of the house on the 3rd floor.09:30
bigjoolsstub: did you see the last couple of comments on the MP my for debversion changes?09:30
stubbigjools: Yes. I was about to test an updated DB patch before lifeless distracted me with his review.09:30
bigjoolsstub: great09:31
stubbigjools: I'm preparing a branch based on yours anyway09:31
bigjoolsall the tests pass apart from the db restore one09:31
lifelessbigjools: I commented on that; I'm pretty sure its just trusted.sql you need to fiddle09:32
bigjoolsI said that from the start but apparently I needed to put the change in the patch file ...09:34
lifelessbigjools: you need both09:34
lifelessbigjools: trusted for new dbs, patch to load it in prod09:34
bigjools /o\09:34
* bigjools -> otp09:35
lifelessbigjools: back in england?09:35
bigjoolsyarp09:35
stublifeless, bigjools: I think I'll run it manually on production and staging, and add it to the baseline for devs (launchpad-2208-00-0.sql)09:39
lifelesswheee 1727 sql statements09:49
bigjoolsstub: you're talking about my patch?09:51
stubbigjools: The debversion.sql stuff, yes.09:51
bigjoolsah ok09:52
bigjoolsnot the other stuff09:52
bigjoolsstub: the other stuff takes 4h on dogfood, can you see a way of speeding it up?  The SPRs take only a few minutes, the rest is the BPRs :/09:52
stubGah... need that debversion package installed on staging.09:53
stubhttp://paste.ubuntu.com/560548/ is the optimized version, and it will go a lot faster with suitable RAM (and workmem setting)09:54
stubBut we need an empirical test09:54
lifelessgnight09:55
bigjoolsstub: huh, didn't think changing types would work09:58
bigjoolsnn lifeless09:58
stubbigjools: It probably won't speed things up though - might save a few table scans but that isn't much compared to rewriting all the rows.09:58
bigjoolsI suspect rebuilding the index is the big part09:59
bigjoolsstub: so did you figure out how to include the contrib's sql without pasting it to the patch file?10:04
bigjoolsor are you just literally running it manually?10:04
stubbigjools: I'm currently testing manually. I will include it inline in the baseline .sql script (which will be exactly how it will be next time I dump the production schema to create a new baseline .sql).10:05
bigjoolsstub: cool - so are you going to land the patch as well?  If so I'll remove it from my branch (I have other code changes dependent on it)10:06
stubbigjools: If you remove stuff from your branch, that will cause conflicts with my branch.10:07
bigjoolsstub: you're confusing me10:07
stubI've branched your branch. When I have sorted my end out, including what to do with contrib/debversion.sql I can land it or you can merge it back into your branch.10:08
bigjoolsok cool10:08
stubI think these timings are not going to be happy and this is going to be a sucky two or three part process :-(10:09
bigjoolsyes10:11
stub7 minutes just for spr, not including building the new index.10:12
bigjoolsI don't see how we can upgrade any of it without a load of extra downtime10:15
bigjoolsBPR will take an hour at least10:15
stubOk. There are some active jobs running, but I don't think they will affect things that radically.10:19
jmlhowdy folks10:26
stubbigjools: huh. or maybe not.10:26
bigjoolsstub: que?10:26
bigjoolsmorning jml10:27
stubbpr took 13 minutes10:27
stub(setting work_mem to 3GB might be the win there)10:27
bigjoolsstub: to change the  column type or regenerate the index?10:27
stubChange the column type10:27
bigjoolstell me when the index is done :)10:28
jmlusing a different computer & OS today :\10:28
stubbigjools: Indexes took < 2mins to build.10:28
bigjools!!!10:28
stubSetting a high work_mem means indexes get done in ram rather than temporary files10:29
bigjoolsawesome10:30
stubSo, is this good enough?10:30
* jml continues experimenting w/ IRC clients10:30
bigjoolsif we're going to be within budget, yesw10:30
stubbigjools: http://paste.ubuntu.com/560560/ has the timings10:31
* stub tries to remember what the budget is atm10:32
bigjools1h total but not sure what else we have10:32
stubbugger all after the epic I suspect10:32
bigjoolsthose figures are on staging, how different to prod is that?10:33
stubYer - just dropping a column from blueprintnotification10:33
bigjoolslooking good anuway10:33
stubAdd 50% for production because it has 3 nodes rather than stagings two, and you get a conservative timing (conservative because the production hardware is much faster)10:34
stuboh... I just ran that on a single node.10:35
stubSo triple10:35
stubI think we just squeeze in10:35
bigjools22 mins * 3 then?10:35
bigjoolsminus hardware advantage10:35
bigjoolsthat is a squeeze10:36
jmlahh, that's better10:36
jmlnever been able to use Pidgin / Adium for IRC.10:37
stubbigjools: And the fact staging was busy at the time I did the timing.10:38
bigjoolsright10:38
bigjoolsjml: are you being traitorous today? :)10:38
jmlbigjools: kind of10:38
jmlbigjools: my laptop is a bit buggy atm due to running natty upgrades. Now I'm using my other computer, which isn't running Ubuntu (although not for lack of trying)10:40
stubwork_mem != maintenance_work_mem10:47
jmlI have a feeling we're not in Kansas anymore10:54
jml-bash: make: command not found10:54
jml-bash: make: command not found10:54
jml-bash: make: command not found10:54
wgrantAf10:55
wgrantEr.10:55
wgrantAre you trying to run Launchpad on OS X again?10:55
jmlwgrant: no, not at all.10:55
jmlwgrant: and also, I don't recall trying before, unless it was four years ago10:55
wgrantHmm, must have been someone else.10:56
jmlwgrant: I had a Macbook when I started until about Oct 2008, but I'm pretty sure I dual booted into Linux for Launchpad development. the OS X partition was just for WoW.10:57
jmlin fact, IIRC, it was missing several core system files. There wasn't much room on that partition, and I had to get rid of *something*10:58
bigjoolsstub: FYI I had to apply this patch to get database upgrading working on DF:  http://pastebin.ubuntu.com/560565/11:03
stubbigjools: So it only works at the moment if the cwd is database/schema ?11:06
bigjoolsstub: it worked previously from anywhere, dunno why it stopped working11:07
bigjoolswallyworld: attaboy :)11:07
wallyworldbigjools:  context? my email?11:08
bigjoolswallyworld: yep11:08
wallyworldthat's the way i've always approached such things :-)11:08
gmbDoes anyone know if there's a way to get launchpadlib to stop trying to interact with the Gnome keyring? It always fails if you're in a screen session or accessing the machine remotely.11:11
wgrantI hack the keyring egg.11:12
wgrantThere's a function in there that tries to import the GNOME keyring stuff. I adjust it to always fail.11:12
gmbwgrant: Well, I was hoping for something other than "HULK CRUSH", but that works.11:13
* maxb lols at HULK CRASH11:16
maxbon a bus, so quietly :-)11:16
bigjoolsgmb: set a config file11:17
gmbbigjools: Can you be a bit more specific?11:17
bigjoolsyes, gimme some, was just looking it up11:17
gmbCool, thanks.11:17
bigjoolsgmb: http://pypi.python.org/pypi/keyring#customize-your-keyring-by-config-file11:22
gmbbigjools: Ah, thanks.11:22
bigjoolsuse the file backend11:23
stubbigjools: lp:~stub/launchpad/debversion-denormalise11:23
gmbRight.11:23
bigjoolsstub: ta11:24
bigjoolsstub: so I need to put the contrib sql in trusted.sql now to make local stuff work....?11:39
bigjoolstest_testSampledata still fails anyway11:44
=== mrevell is now known as mrevell-lunch
deryckMorning, all.12:24
StevenKwgrant: https://bugs.launchpad.net/launchpad/+bug/710578 looks like what you were investigating12:26
_mup_Bug #710578: Not able to see contents of private branch <Launchpad itself:New> < https://launchpad.net/bugs/710578 >12:26
stubbigjools: Nothing needs to go in trusted.sql12:41
bigjoolsstub: ok, how do we fix test_testSampledata?12:41
stubbigjools: Works for me with a freshly built database12:56
bigjools:/12:57
bigjoolsI just did a make schema and tried it and .... fail12:57
stubDoh... wrong tree12:58
* bigjools keeps sanity - temporarily12:59
=== mrevell-lunch is now known as mrevell
stubbigjools: Looks like a PostgreSQL bug13:14
stubpg_restore --clean is dropping the type, then functions with parameters of that type (which fails, because the type no longer exists)13:15
=== Ursinha is now known as Ursinha-lunch
bacmrevell: ping13:43
mrevellHi bac13:43
bigjoolsstub: awesome13:45
bigjoolsstub: can we work around it?13:46
=== salgado is now known as salgado-lunch
stubbigjools: Bug #5857 upstream at http://archives.postgresql.org/pgsql-bugs/2011-01/msg00247.php13:59
_mup_Bug #5857: Give clue to scope of changes when linking to changelogs <feature> <lp-soyuz> <Launchpad itself:Fix Released by cprov> < https://launchpad.net/bugs/5857 >13:59
stubbigjools: work around will be annoying - rather than use clean, we need to create an empty database and restore into that without --clean14:00
bigjoolsyay :/14:00
stub(so race conditions on database creation and tear down to deal with)14:01
bigjoolsstub: what is that test actually testing?  As in, where is that restore stuff used?  Is it just tests?14:02
jtvgary_poster: got a minute to help me out with a question about twisted?14:03
jmlhow would you go about telling people about expected mail volume when they "structurally" subscribe to something?14:03
gary_posterjtv, I can try14:03
gary_posterjml, history14:03
jtvgary_poster: voice might help… can we mumble or skype?14:03
jmlgary_poster: is that history in the db?14:03
gary_posterjtv, actually, no, I can't. :-) I have tonsillitis14:04
jtvOh!  That's not fun.14:04
gary_posterno :-/14:04
jtvHope that gets better soon.14:04
gary_posterthank you14:04
jtvOn a sidenote, it's an affliction I pointedly fail to recommend for distant sprints.14:05
gary_posterjml, at a hand-wavy level, at least, yes: most of the things we are interested in filtering on for bugs appear to be visible when you view a bug14:06
gary_poster(status changes, and so on)14:06
gary_posterbut it would be a manual thing14:06
jmlgary_poster: manual how?14:06
jmljtv: #twisted is often helpful, fwiw.14:06
jtvThanks.  I'm looking to parallelize something, and wondering whether twisted is worth it.14:07
gary_posterjml, manual is the wrong term.  um, expensive14:07
stubbigjools: when we load the sampledata, all the constraints are disabled - including foreign key constraints. So if you edit the sampledata manually, you can end up with corruption.14:07
jmlgary_poster: ahh, I see.14:07
gary_posterunless we did code to make it less so, probably involving cacheing statistics14:07
jmlgary_poster: was just thinking that it might be a good way to mitigate the social concerns of subscription14:08
stubbigjools: foreign key references pointing to non-existent rows in the database. This has happened in the past, thus the test.14:08
bigjoolsok14:08
jml"You will get around 500 emails a day if you do this"14:08
bigjoolsjtv: using twisted on the publisher?!14:09
bigjoolsnonono14:09
jmlhmm.14:09
jtvbigjools: just thought I'd explore how stupid an idea it was before suggesting it. ☺  What's the reason?14:10
bigjoolsjtv: way too hard for a quick fix14:10
jmlactually, that could be quite complex if you start taking a user's existing mail into account.14:10
bigjoolsjtv: and it'll need to Popen the a-f process anyway14:10
bigjoolstwisted won't give us any net win unless we need to block on external stuff14:11
bigjoolsit's still single threaded14:11
gary_posterjml, yeah, I can see it. bdmurray also suggested, as I expect you saw. I'd say first step to explore feasibility would be to talk to gmb or deryck and see if they had any obvious "no no no, this is way expensive."  If there were no solid answers then, I wouldn't feel comfortable estimating without commissioning some kind of exploratory spike14:12
jmlgary_poster: I reckon we should do a timeboxed spike. e.g. give someone a day to do a proof-of-concept14:12
jmlgary_poster: which is to say, that sounds like a sensible plan :)14:13
gary_poster:-)14:13
gary_postercool14:13
jmlgary_poster: the LEP looks good, btw. Only unsure about one thing...14:14
jmlgary_poster: bdmurray says that he wants to get mail for all High & Critical bugs on Ubuntu. It seems that the "all bugs on Ubuntu" condition is met, but I can't tell if the "High & Critical" bit is part of the LEP or not.14:14
gary_posterjtv, I agree with bigjools that integrating Twisted into our Zope process is probably not a good quick fix, if that is what you mean.  I have tried to get some people excited about making the "new" Twisted wsgi support allow for a WSGI result to be modified by postprocessing within Twisted but that is not hear now, nor have we integrated it.14:15
jtvbigjools: I'm all for doing it directly and easily, since I'm lazy.  But I wouldn't want people to come back later and say "why, why, WHY didn't we do this in twisted?"  I'm not all _that_ familiar with the thing.14:15
bigjoolsjtv: twisted is the wrong thing to use here, so don't worry about that14:16
jtvRelieved to hear it.14:16
jtvPopen it stays then.14:16
bigjoolsjtv: popen the a-f processes, wait, profit :)14:16
gary_posterjml, great, thanks.  "High & Critical" are importances, so we can filter on them14:16
gary_poster("Only subscribe to notifications that happen on bugs that have any of one or more selected importances." in Must)14:16
jmlahh yes14:17
jmlI see it now.14:17
jmlgary_poster: cool. I'll give it a look over again & then send an email for the public record.14:19
gary_postersigh, why do I misspell thing with homophones that I know perfectly well are incorrect when I am typing quickly?  s/that is not hear/that is not here/14:19
gary_posterawesome, thanks jml14:19
cr3heads up folks, I just registered a project with proprietary license: certify-hudson14:20
jmlgary_poster: I don't know, but one day I would love to read a study on typing mistakes made by highly proficient typists.14:21
gary_posterheh, that would be interesting :-)14:21
henningeabentley: https://lpstats.canonical.com/graphs/TranslationMessage/20100201/20110201/14:25
stubjtv: http://paste.ubuntu.com/560623/ is surprisingly doable, although there might be non-messages that still trigger emails and it doesn't take into account email batching (but better to over estimate than under)14:27
jtvstub: did you mean to tell someone else?14:27
jtvI'm a bit ENOCONTEXT on this.14:28
stubjml: ^^^14:28
jmloh hi :)14:28
jmlstub: ooh, nice.14:29
jmlstub: isn't ~650ms a bit long though?14:29
stub2.5 secs for ubuntu, so certainly not in the web ui. But we can build caches maybe.14:30
stub(11380 message rows in the last week...)14:30
jcsackettany chance someone can review https://code.launchpad.net/~jcsackett/launchpad/assertion-error-697294/+merge/4791114:31
stubbigjools: I'm tempted to say disable the test and open a bug saying it is disabled and referencing the upstream bug.14:32
bigjoolsstub: if we have to take unreasonable workarounds, that sounds ok but when would we be likely to get a fix?14:33
jmlstub: fair enough. we would probably only want rough numbers anyway.14:34
=== Ursinha-lunch is now known as Ursinha
bacderyck: i just noticed the bug tag entry widget on qastaging is not using JS.  known?14:40
LPCIBotYippie, build fixed!14:40
LPCIBotProject devel build (405): FIXED in 6 hr 16 min: https://hudson.wedontsleep.org/job/devel/405/14:40
LPCIBot* Launchpad Patch Queue Manager: [r=lifeless][ui=none][bug=710360] Add a config schema section for14:40
LPCIBotgina to import wheezy.14:40
LPCIBot* Launchpad Patch Queue Manager: [r=stevenk,14:40
LPCIBotthumper][ui=sinzui][bug=334336] Extend recent revision listing on the14:40
LPCIBotbranch index page to show additional information for each revision,14:40
LPCIBotincluding the branch merged and any associated bugs for that branch.14:40
bigjools6 hours?  *weep*14:41
gary_posterjml, mbp gave two LEP ideas in his reply on the thread that I think are worth your review.  Since you are about to give an official blessing, this might be the last good chance, at least for a while.14:42
gary_posterI've put up the ideas here, with my comments14:42
gary_posterhttp://typewith.me/Y9qOZdZ6Kn14:42
gary_posterhis idea is in "original" and I'm "Gary" ;-)14:42
deryckbac, for a bug page?14:44
bacderyck: yep14:44
deryckbac, no, not known to me.  And not sure what might have changed to cause this.14:45
bacderyck: can you reproduce it14:46
derycklet me see....14:46
deryckbac, works for me14:48
bachmm14:48
deryckbac, I tried Firefox on Ubuntu.  What browser you using?14:49
bacderyck: safari.  trying ff now14:49
deryckbac, I can try Safari too14:50
=== Ursinha is now known as Ursinha-sick
bigjoolswhy would a code.l.n URL be running queries to get bugtasks?14:51
bigjoolsah nm14:52
deryckbac, works for me on safari too14:52
bacderyck: on qastaging i see i was logged in using a test, unprivileged account14:53
deryckah14:53
bacwhen logged in as myself it works14:53
deryckgotcha14:53
bacstill unright14:53
deryckbac, I didn't realize we prevented tagging by unprivileged users14:53
bacwe don't.  it takes you to the +edit page where it can be done14:53
bacderyck: so i was able to add a tag, just didn't get the JS widget14:55
deryckhmmm, ok.  That stills seem wrong.  The js is expecting something to make that action inline, which it doesn't find with no-priv users.14:56
allenaphenninge: Fancy a review? https://code.launchpad.net/~allenap/launchpad/bugs-with-blueprints-bug-707103/+merge/4786615:05
leonardrhenninge et al: i have a translations-related question15:10
leonardri need to know if there are any objects published in the web service but not in the website15:10
stubbigjools: I've pushed my branch with that test fixed.15:25
bigjoolsstub: thanks15:25
=== leonardr_ is now known as leonardr
leonardrit looks like structural subscriptions are published through the web service but not the website. can anyone confirm?15:26
* leonardr has confirmed to his own satisfaction15:28
allenapleonardr: I think the closest you can get is /<product>/+subscribe or /~<user>/+structural-subscriptions (but the latter is not linked to from anywhere yet).15:30
leonardrformer soyuz people: in addition to the artifacts we talked about on wednesday, it looks like IArchiveDependency is published on the web service but not on the web site. is this right?15:33
bigjoolsleonardr: we can see dependencies in the UI15:33
leonardrbigjools: i made a request to http://launchpad.dev/~cprov/+archive/ppa/+dependency/1 and got this error:15:34
bigjoolsfor example , https://launchpad.net/~julian-edwards/+archive/testing/+edit-dependencies15:34
leonardrNotFound: Object: <ArchiveDependency at 0x1100ba90>, name: u'index.html'15:34
leonardrbigjools: i'm talking about a link to one specific dependency15:34
bigjoolsoh, ISWYM15:34
bigjoolsno, they don't exist15:34
leonardrthere's no reason why the canonical_url of every dependency couldn't be +edit-dependencies, but for now i will omit it from web_link15:35
bigjoolsok15:35
bigjoolswhere are you blacklisting those?15:35
leonardrbigjools:15:37
leonardrclass IArchiveDependency(Interface):15:37
leonardr    """ArchiveDependency interface."""15:37
leonardr    export_as_webservice_entry(publish_web_link=False)15:37
bigjoolsah great, so there's no surprise if we add a UI page later15:38
leonardrright15:42
leonardrbigjools: IBinaryPackagePublishingHistory also seems to have no working web link, is that right?15:48
bigjoolsleonardr: yup15:48
leonardrbigjools: but a build job does?15:49
leonardrhttp://launchpad.../~cprov/+archive/ppa/+buildjob/2615:49
leonardr(it seems to work, i'm just sanity checking)15:49
deryckhenninge, I assigned bug 710591 and added it to the kanban board.  Just so you know.15:51
bigjoolsleonardr: yeah that's relatively new, it was IBuild but we redirect that now15:51
henningederyck: cheers15:54
leonardrbigjools: PackageUpload also has no web link?15:56
bigjoolsleonardr: it doesn't15:56
leonardrmaybe i should just ask you about all of these instead of testing them manually15:56
bigjoolsheh15:56
bigjoolsthat would mean I need to remember them15:57
leonardrbigjools: the only 2 that seem to be left are distro arch series (which i believe has a web link)15:58
bigjoolsit does15:58
leonardrand "source package publishing" (not sure what the name of the interface is, not sure if it has a webl ink)15:58
bigjoolsit doesn't15:58
bigjoolssourcepackagepublishinghistory15:58
=== salgado-lunch is now known as salgado
jmlis sinzui still powerless?16:04
allenaphenninge: Do you have time to review a branch of mine? https://code.launchpad.net/~allenap/launchpad/bugs-with-blueprints-bug-707103/+merge/4786616:04
allenapHe forgot to pick up his superpower from dragnob at the end of the Thunderdome.16:05
=== beuno is now known as beuno-lunch
jmlallenap: that's unfortunate.16:10
bigjoolshe's been behaving oddly, perhaps it's just red kryptonite16:10
allenapjml: That he forgot the superpower, or my attempt at humour? :)16:10
jmlallenap: that he forgot the superpower.16:11
leonardrformer bugs people: it looks like there is no web url for a bug subscription or a bug nomination. is this right?16:46
=== deryck is now known as deryck[lunch]
=== beuno-lunch is now known as beuno
jcsackettbac, any chance i can trouble you for a review? https://code.launchpad.net/~jcsackett/launchpad/assertion-error-69729417:06
bigjoolsjml: hi, got 5 mins to help with a twisted test please?17:28
leonardrsimilar question for registry: does a distribution source package have a web url? it looks like not17:40
bigjoolsleonardr: yes it does17:40
leonardrhmm...17:40
bigjoolsubuntu/+source/package17:41
leonardrbigjools: ok, maybe i'm getting a 404 here because the distribution is private?17:41
leonardri'll try again with admin_browser17:41
leonardrbigjools: if you say it has a web url i'll go along with it, but look at stories/webservice/xx-person.txt, around line 69017:44
leonardrsupposedly the web_url is http://launchpad.dev/distribution327800/+source/fooix17:44
=== henninge changed the topic of #launchpad-dev to: Topic for #launchpad-dev: https:/​/​dev.launchpad.net/​ | PQM is open | firefighting: - | On call reviewer: henninge | https://code.launchpad.net/launchpad-project/+activereviews
leonardrbut when i GET that i get a 404 because distribution327800 doesn't exist. any idea why?17:45
henningeallenap: looking now17:45
bigjoolsleonardr: in xx-person.txt?17:45
leonardrbigjools: yes, lib/lp/registry/stories/webservice/xx-person.txt17:46
leonardrthe call to getBugSubscriberPackages17:46
bigjoolsok17:46
bigjoolsleonardr: I've no idea why.... but the URL looks fine though17:47
leonardrok, i'll leave it as is for now17:47
jcsackettleonardr: does your webservice test set up everything the same was as in xx-person? that distribution looks like it was made on the fly for the test.17:47
jcsacketts/same was/same way/17:48
leonardrjcsackett: i added code to xx-person.txt, so it runs right after that code17:48
jcsackettleonardr: ah. that *is* weird.17:48
* jcsackett looks closer.17:50
jcsackettleonardr: you've already tried with admin? the only thing i can think of offhand is your conjecture about it being private.17:52
=== salgado_ is now known as salgado
leonardrjcsackett: yes, same result with admin. the distro itself is allegedly not there17:52
jcsackettleonardr: yeah, i just pdb'd in that test and tried to find fooix in a distribution set. nothing doing--bad hack in the setup, maybe.17:55
leonardrjcsackett: do you know if a product release file should have a web link? i have it being the same as the web service link, and a link like this doesn't work:17:59
leonardrhttp://launchpad.dev/firefox/trunk/0.9.2/+file/firefox_0.9.2.orig.tar17:59
leonardrer, let me cut out the trunk and try again17:59
leonardrno, that trunk should be there18:01
jcsackettleonardr: only link for those files i know of is http://launchpad.dev/firefox/trunk/0.9.2/+download/firefox_0.9.2.orig.ta18:02
jcsacketti'm not sure that's the sort of link you want.18:02
leonardrjcsackett: maybe a project release file isn't the sort of thing that needs a distinct 'web link'?18:03
leonardrwhat would you get if you hit that link? you'd download the file, right?18:03
jcsackettleonardr: yeah.18:03
jcsackettaside from web ui, wget is perhaps the only reasonable thing to be hitting it. :-P18:04
leonardrand self_link would give you the file anyway, so it doesn't need a web_link too18:05
=== deryck[lunch] is now known as deryck
jcsacketthenninge: are you still on call reviewer?18:11
henningejcsackett: yes18:12
jcsackettgot time for another (and possibly one teeny one after that)?18:12
jcsacketthttps://code.launchpad.net/~jcsackett/launchpad/assertion-error-697294/+merge/4791118:12
jcsacketthenninge^18:12
henningejcsackett: sure18:14
jcsacketthenninge: thanks! i'll ping you with the second one in a moment (it's one line change + test)18:14
lifelessmornink18:25
jelmerhi lifeless18:25
=== lifeless changed the topic of #launchpad-dev to: Performance Tuesday | https:/​/​dev.launchpad.net/​ | PQM is open | firefighting: - | On call reviewer: henninge | https://code.launchpad.net/launchpad-project/+activereviews
jcsacketthenninge: the seconde mp. https://code.launchpad.net/~jcsackett/launchpad/tags-portlet-708693/+merge/4802918:37
jcsacketti'll leave you alone now. thanks. :-)18:37
jcsackettlifeless: have some time to chat about bug 702620? we've been leaving each other comments on it and the MP. i thought actually talking would be good. :-P18:40
_mup_Bug #702620: Can't delete branches from the API that can be deleted from the web UI <api> <code-integration> <oops> <Launchpad itself:In Progress by jcsackett> < https://launchpad.net/bugs/702620 >18:40
lifelessjcsackett: hi18:41
lifelessjcsackett: I collared sinzui last week18:41
lifelessI think sinzui then filed a bug about the use case being unsatisfied18:41
jcsackettlifeless: ah, so then i can go ahead and land that branch as a fix against that bug?18:41
lifelessyes18:41
jcsackettfantastic. :-)18:41
lifelesssorry for causing friction18:42
sinzuiI have not files the bug yet...18:42
jcsackettlifeless: no, not at all. it was a reasonable question.18:42
lifelesssinzui: are you going to, or would you like me to?18:42
lifelesssinzui: (or would you like no such bug :P)18:43
sinzuiMy self-esteem is near empty because I have not landed a branch in a week. I have been plagued by natty and power troubles18:43
* sinzui needs a fortress of solitude to work18:43
lifelesssinzui: \o/18:43
bacjcsackett: you still need a review?18:43
lifelesssinzui: me too, I started a branch last tuesday that I landed last night18:43
lifelesssinzui: so exactly one week end to end18:44
jcsackettbac: no, henninge is OCR and i have eaten his time. :-)18:44
jcsackettthanks tho.18:44
jcsackettsinzui: did you sort kernel issues today?18:44
sinzuilifeless: I agree there should be a bug. The core issue is that there is no single place for a user to know what are the deps on an object, and how to remove them. Fixing this is beneficial to Lp engineers as well as external API users18:44
sinzuiI lost grub18:45
lifelesswheeee18:45
sinzuiBooting from a usb sent me in a near spiral back to the bad grub18:45
jcsackettman, EST green squad has been plagued.18:45
jcsackettsinzui, you're good now? or still just limping along?18:46
sinzuiI think I will refuse updates for a week or so. I need to establish a rhythm to complete my branches18:46
sinzuijcsackett: My computer is at 100% I think. I just need to keep the distractions away for 5 days to recover my balance18:47
jcsackettsinzui: dig. i will cease distracting you, and good luck. :-)18:48
lifelessjml: could you perhaps ask matsubara to eyeball https://bugs.launchpad.net/oops-tools/+bug/710831 ?18:53
_mup_Bug #710831: duplicate query detection not handling Bugtask Queries in OOPS-1857O1288 <OOPS Tools:Triaged> < https://launchpad.net/bugs/710831 >18:53
lifelessflacoste: what did we agree our downtime budget would be?19:06
flacostelifeless: 90 minutes AFAIKR19:08
flacostelifeless: that's end-to-end19:08
flacosteor total downtime19:08
flacosteso we have to remove the constants from it19:08
flacosteto get the DB upgrade budget19:08
lifelesshey19:10
lifelessso we should get librarian and loggerhead page renders into the PPR19:10
lifelesswhat do you think ?19:10
henningeallenap, jcsackett: Please look at my reviews.19:17
jcsacketthenninge: thanks. i've replied on the MP.19:37
lifelesshenninge: are you still around ?19:41
henningelifeless: yes19:41
lifelesshenninge: btw we have login_celebrity, or the sampledata constants19:41
lifelesshenninge: so IIRC you know a bit about translations?19:41
henningelifeless: I do ;-)19:41
lifelesshenninge: I wonder if you could triage bug 70789519:42
_mup_Bug #707895: LP - translation problem - inexisting terms shown as untranslated  <Launchpad itself:New> < https://launchpad.net/bugs/707895 >19:42
* henninge looks19:42
lifelessI can't tell if this is situation normal or fallout from recife19:42
lifelessor something else19:42
henningelifeless: it's a duplicate of bug 373269. I'll mark it as such.19:48
_mup_Bug #373269: Message sharing and POFile statistics <lp-translations> <message-sharing> <Launchpad itself:Triaged> < https://launchpad.net/bugs/373269 >19:48
lifelesshenninge: awesome thanks19:49
lifelessstatik: sorry, missed my reminder19:51
=== henninge changed the topic of #launchpad-dev to: Performance Tuesday | https:/​/​dev.launchpad.net/​ | PQM is open | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
henningejcsackett: r=me19:55
jcsacketthenninge: thanks!19:56
=== salgado is now known as salgado-afk
=== gary_poster is now known as gary-sick
leonardri'd love a review of https://code.launchpad.net/~leonardr/lazr.restful/web-link/+merge/4805220:47
deryckhenninge, ping.  how goes the fix for overriding upstream translations?20:52
henningederyck: it won't be done today, sorry, but it seems to tie in with the groundwork I was doing.20:53
henningefor the feature20:53
henningeat least this fix does.20:53
lifelessjames_w: did you mean to forward francis announcement to lp-dev ?20:56
james_wlifeless, nope20:56
james_wlinaro-dev20:56
lifeless:P20:56
mwhudsonmorning20:56
mwhudson(finally)20:57
deryckhenninge, ok, well that's nice at least.  Do you have an eta for a fix?20:57
henningederyck: since I am not here tomorrow it will be on Wednesday. I will try to get something up for review by tonight.20:58
wgrantmwhudson: How much do you know about codebrowse OpenID?21:01
mwhudsonwgrant: i guess i knew a bit once21:01
deryckhenninge, ok.  if you can't get something up for review, then send us a hand off email.  One of us can pick it up tomorrow.21:02
henningeok21:02
deryckhenninge, thanks!21:03
wgrantmwhudson: I wonder if you have any thoughts on my last comment in bug #676372.21:03
_mup_Bug #676372: "Server denied check_authentication" from bazaar.launchpad.net private branch since 11926 deployed <lp-foundations> <regression> <Launchpad itself:Triaged> < https://launchpad.net/bugs/676372 >21:03
jmlhuwshimi: ok to have our call a bit early?21:04
jmllifeless: will do21:04
huwshimijml: Sure. When do you want to do it?21:04
jmlhuwshimi: now, if possible.21:04
mwhudsonwgrant: ah yes, i guess using a MemoryStore should be a bit of a giveaway21:05
huwshimijml: Can you give me two min?21:05
jmlhuwshimi: sure.21:05
jmlhuwshimi: just skype me when you're ready21:05
huwshimijml: Thanks21:05
derycklater on, everyone!21:06
wgrantmwhudson: Do we disable association entirely, or use SQLite?21:08
StevenKwgrant: Did you see my pointer about a possible dupe?21:08
mwhudsonwgrant: what are the consequences of disabling the association entirely?21:08
wgrantmwhudson: One extra HTTP request from the server to SSO per authentication attempt.21:09
wgrantSo, nothing.21:09
mwhudsonwgrant: seems least effort21:10
wgrantStevenK: Yeah, thanks.21:10
mwhudsonwgrant: i guess i can review that branch rather easily21:25
wgrantmwhudson: I haven't started yet, but I'll do it shortly.21:25
mwhudsoncool21:26
lifelesssinzui: hi; bug 710547 - what would i look for in his mbox ?21:31
_mup_Bug #710547: Answers not accepting e-mails correctly <Launchpad itself:New> < https://launchpad.net/bugs/710547 >21:31
sinzuilifeless: I look at his reply and I cannot see why Lp has nothing more that the quoted part.21:32
lifelessso, iz bug?21:33
sinzuilifeless: I think next steps are to look at the production db, read the parsing rules or rendering rules to see what Lp thinks the message is and how to render it21:33
sinzuilifeless: I am not certain if Lp or the message is at fault21:34
lifelesssinzui: sure; but something is wrong ;) I'm going to mark it triaged21:35
sinzuiAnd if you discover that evo made a bad message or the user inserted an bad character you will mark it invalid21:36
sinzuiI think the bug is incomplete because I have never heard of message corruption as described in the bug, and there are enough messages in entering Lp to demonstrate Answers app and Message handling is working21:37
lifelesssinzui: it should be incomplete if we want more data from david21:38
lifelesssinzui: otherwise it will expire21:38
sinzuino21:38
sinzuiit is incomplete if we do not now if it is a bug21:38
StevenKlifeless: Ping me when you're free -- I'd like to deal with that join today, but I need to call my bank.21:38
lifelesssinzui: this seems incompatible with bug expiry21:38
sinzuiIf we wanted more information, then users and engineers would be switching bug status all the time, which is not what we intend21:39
sinzuimpt has even cited the ambiguity of incomplete that causes users to think incomplete means "want information".21:39
lifelesssinzui: but how do you explain bug expiry then ?21:40
sinzuiThere bug/feature cannot be resolved because it cannot be understood or reproduced. But that is beside the point. I do not know there is a bug. I do not that triaged means I have enough information to work on the issue. I certainly do not21:41
lifelesssinzui: thats not what triaged means though :)21:42
lifelesssinzui: triaged means 'importance assigned'21:42
sinzuiIt does21:42
sinzuireally it DOES21:42
jmlthumper: ping21:42
thumperjml: hey21:42
jmlthumper: up for a quick chat?21:42
thumpersure21:42
thumpermumble?21:42
jmlthumper: sure21:42
sinzuitriaged means someone understands the issue and correctly judge the priority.21:42
sinzuiLp could know triaged without and ENUM. If an LP engineer sets a priority. It is triaged. The problem is that Engineers come and go, so we do not trust the implicit nature of triaged21:44
lifelesssinzui: sorry for going quiet, I'm otp with flacoste21:48
lifelesssinzui: ok, I'm off the phone21:51
leonardrthumper, StevenK et al: https://code.launchpad.net/~leonardr/launchpad/web-link/+merge/47258, https://code.launchpad.net/~leonardr/lazr.restful/web-link/+merge/4805221:51
lifelesssinzui: so, if something is not *known* to be a bug, but the next step is an engineers, what status should it have?21:51
lifelesssinzui: it cannot have incomplete or it will expire.21:51
sinzuilifeless: We have 60 days to understand this21:52
lifelesssinzui: but a poor queue to look at21:52
lifelesssinzui: and any stall will result in expiry; this is undesirable.21:52
sinzuilifeless: It will not expire if the bug is assigned to an engineer to triage it21:53
lifelesssinzui: I'm ok with saying 'if someone is looking at it but not sure they will claim the bug'21:53
lifelesssinzui: we don't currently say that21:54
lifelesssinzui: would you like us to say & do that?21:54
sinzuiClaim? Do you mean the engineer cannot see he has a bug assigned? Engineers must unassign bugs that they are not committed to take to the next status because that causes users to think something is happening.21:56
lifelesssinzui: claim/manager assigns are equivalent in terms of discussing the process21:56
lifelesssinzui: I suspect I am, at best, confused here. Perhaps we could switch to voice, or start over, or something.21:57
sinzuiI do not permit my team members to have a lot of bugs. I think holding on to a bug that will not be fixed in a month leads to terrible miscommunications with the team, our stakeholders and our users21:57
lifelesssinzui: I want to make sure that this report doesn't get expired when *we* were the folk that needed to look further.21:58
sinzuiI reguarlly unassign bugs that are not demonstrated to be progressing.21:58
lifelesssinzui: I don't think leaving it incomplete and subject to expiry is sensible21:58
sinzuilifeless: I really do that the bug, and email in my browser, but It cannot understand the issue at this moment, and I have a an 7 day-old branch. I need to move my branch before I can move the question21:59
lifelesssinzui: ok; I'll get out of your hair.21:59
lifelesssinzui: I think there is something to discuss more, another time.22:00
gerbilschoolIf I replace 'devel' with 'stable' in bzr --no-plugins cat http://bazaar.launchpad.net/~launchpad-pqm/launchpad/devel/utilities/rocketfuel-setup > rocketfuel-setup, will this download and run launchpad stable, instead of developement?22:03
lifelessno22:03
lifelessyou need to start with devel, once you have that you can switch to stable (which is only a couple of days older)22:04
gerbilschoolI see, how then do I switch to stable? (I can't login on devel)22:04
sinzuigerbilschool: stable is not stable like desktop software. there are not releases because Lp is always in development22:05
gerbilschoolI understand, thanks a lot!22:06
lifelessNo, you really dont :(22:06
poolielifeless, :-D22:11
lifelessgerbilschool: what do you want to achieve?22:15
StevenKlifeless: I have this feeling that gerbilschool is trying to log in to a local instance using their production credentials22:21
lifelessStevenK: who knows22:21
lifelessStevenK: you pinged22:21
lifelessStevenK: my stack is clean now, I'm looking for perf tuesday bugs and to help folk that need help22:21
gerbilschoollifeless: sorry for the delay (I was forced to reboot)22:21
lifelessgerbilschool: no problem22:22
gerbilschoollifeless: I want to see if I can get a 'working' launchpad instance on my machine,22:22
sinzuigerbilschool: you may have...22:22
StevenKlifeless: Indeed. I'd like to fix this join to also check that PackageBuild.archive == SPRecipe.daily_build_archive, but that causes an issues since SPRecipe isn't in the mix when we're adding the PackageBuild join.22:22
lifelessStevenK: hmm22:23
StevenKlifeless: What I just thought about was I could do this in the ON section when we join in SPRecipe22:24
gerbilschoolsinzui: I followed the instructions at dev.launchpad.net, which were very clear and worked, except that if I tried to access the login screen, I got a launchpad 'Oops' screen22:24
sinzuigerbilschool: Lp does not support account management/login/passowords. It uses OpenID. We test Lp either by logging in as users in sample data (test@canonical.com:test) or using tool (utilities/make-lp-user)22:24
lifelessStevenK: this is another modelling glitch :(22:24
gerbilschoolsinzui: I tried to login, but got this mystery error as soon as I clicked 'login/register'22:26
StevenKgerbilschool: Are you able to pastebin the error?22:26
wgrantlifeless: How is it a modelling glitch?22:28
lifelesswgrant: builds in general fall into the data space of daily builds22:29
StevenKlifeless: http://pastebin.ubuntu.com/560759/22:30
StevenKlifeless: diff at the top, generated SQL at the bottom22:30
wgrantlifeless: How would you model it?22:30
wgrantlifeless: Daily builds are builds too.22:31
lifelessStevenK: and what goes wrong?22:34
lifelesswgrant: yes they are22:34
sinzuiwgrant, huwshimi, jcsackett: mumble?22:34
lifelesswgrant: but we're not explicitly recording daily build22:34
lifelesswgrant: we're saying we can infer it22:34
lifelesswgrant: which is more complex22:34
jcsackettsinzui: anytime. think i got a burst of static from you a moment ago.22:34
wgrantlifeless: Right.22:35
StevenKlifeless: Nothing, I wanted you to eyeball the SQL if it looks sane and I'm joining it in the right way22:35
lifelesswgrant: one way would be to record the nature of the build22:35
wgrantlifeless: Although we also want to skip a daily build if there was a recent manual build with the daily parameters.22:36
lifelessStevenK: I think its fine; it looks good to me; do your tests concur?22:36
lifelesswgrant: according to another bug there is no way to do that22:36
StevenKlifeless: All the tests I've run so far pass -- just writing another22:36
lifelesswgrant: the auto builds are sufficiently special22:36
gerbilschoolStevenK: I'm now being redirected to  'testopenid.dev' rather than 'launchpad.dev/+login'.  testopenid.dev works and I am now logged in.22:40
gerbilschoolStevenK: launchpad.dev/+login is redirecting to openid as well, so I cannot pastebin the error. Thanks for all the support!22:42
wgrantjcsackett: Could you move your approved cards into QA/Landing? Development is now overfull.22:44
wgrantThanks.22:44
jcsackettwgrant: yeah; i'm not terribly comfortable doing that b/c they're not actually landing till after ec2 lets them, but close enough i suppose.22:45
wgrantAlso, Deployment/Ready tends to get overfull pretty easily...22:45
wgrantsinzui: Why is there a limit on that?22:45
lifelesswgrant: WIP22:45
wgrantlifeless: Hm?22:46
lifelesswgrant: the same reason there is a limit on any lane having a backlog there usually correlates to high latency and churn22:46
wgrantIn this case we have a limit of 6, and 5 cards that are waiting for a DB deploy.22:46
sinzuiwgrant: lifeless: we can easily exceed a low limit when there state staging changes22:46
lifelesswgrant: ah22:47
jcsackettsinzui: forgot in standup; i also started and will soon be landing bug 70869322:47
_mup_Bug #708693: LocationError: 'tags_cloud_data' on project bugs' page <lp-bugs> <oops> <Launchpad itself:In Progress by jcsackett> < https://launchpad.net/bugs/708693 >22:47
sinzuiI think the older boards had no limit or it was set to something like 4 x count(team members)22:47
wgrantStevenK: What's happening with your recipe merge thing?22:48
sinzuijcsackett: locationError is also a traversal error, which is what I think you describe in your comment22:48
jcsackettsinzui: yes.22:48
wgrantTALES catches lots of things and reraises them as LocationErrors.22:49
StevenKwgrant: I'll be looking it at after I'm done with the queueing branch22:49
wgrantStevenK: Great, thanks.22:49
wgrantStevenK: Impending Debian release -> gina config schema change :(22:49
StevenKwgrant: I've pushed my changes for queue-recipes-better22:57
StevenKwgrant: *hint*22:57
wgrantStevenK: k, looking.22:59
lifelessmwhudson: ping23:00
lifelessmwhudson: the branch mapping script; does it do xmlrpc or db access itself ?23:00
wgrantStevenK: Your RightJoin still offends me, but I'll let it slide. Apart from that it looks fine, except for the indentation of the second line of the new condition.23:02
StevenKwgrant: How would you prefer the indentation to look?23:02
wgrantStevenK: I believe the second line is meant to be one level further in. Let's see if I can find a reference for that.23:02
lifelesswgrant: no, its correct23:03
StevenKwgrant: TBH, it looks like the And() that's a few lines above it23:03
lifelesswgrant: even if it wasn't, its clear enough :)23:04
wgrantlifeless: Eeh, I think it looks too much like there are three conjuncts, but OK.23:04
lifelesswgrant: if you have a better layout, just give StevenK a diff23:04
lifelesswgrant: standards mean bollux in this sort of thing23:05
wgrantI know. But in this case it actually made it slightly less readable.23:05
lifelesswgrant: right, so hand StevenK a diff and we can move on :)23:06
StevenKwgrant: Is http://pastebin.ubuntu.com/560772/ better?23:11
mwhudsonlifeless: db23:11
lifelessmwhudson: https://bugs.launchpad.net/launchpad/+bug/433888/comments/11 - what do dyou think?23:12
_mup_Bug #433888: Branch path mapping exceeding threshold regularly <canonical-losa-lp> <lp-code> <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/433888 >23:12
mwhudsonlifeless: yes, that makes sense23:23
mwhudsonthe 10 second problem is a theoretical thing though, and not what the bug is really about23:23
lifelessmwhudson: actually, losas are seeing very long responses up in it23:24
lifelessmwhudson: but what is the bug really about then ?23:24
mwhudsonlifeless: the limit that triggers the nagios check is 12.5 milliseconds23:24
lifelessmwhudson: yes23:25
lifelessmwhudson: and we're seeing what, 600 a day, or 1% ?23:25
lifelessmwhudson: alternatively we could set a db limit of 25ms or something23:26
mwhudsonlifeless: to step back23:26
mwhudsonthere is "the horrible edge case" i talked about23:26
mwhudsonadding the 500ms timeout will alleviate that worry23:26
mwhudsonbut i don't think this has actually ever happened23:27
lifelessmwhudson: they seem to say is has23:27
lifelessmwhudson: *it*23:27
lifelessmwhudson: up in the comments23:27
mwhudsonthe description of the bug is that a the nagios check that responses take longer than 12.5 ms, maybe 10 times a week23:28
lifelessyes23:28
mwhudsonlifeless: are you talking about the https://bugs.launchpad.net/launchpad/+bug/433888/comments/9 comment?23:28
_mup_Bug #433888: Branch path mapping exceeding threshold regularly <canonical-losa-lp> <lp-code> <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/433888 >23:28
mwhudsoni think that's only talking about the nagios check tripping23:28
spmit is. it's a constant source of low grade "false alarms" - which is bad. as we get in the habit of ignoring them.23:29
mwhudsonlifeless: i'll file another bug about getting the 500ms timeout in place and leave this one in peace to deal with the nagios check issue23:35
lifelessmwhudson: sure23:35
lifelessmwhudson: note that the description includes mention of 10 second lookups23:35
mwhudsonoh right23:36
mwhudsonspm: can i get you to look again at that?  are you still seeing timeouts in the nagios alerts?23:36
spmmwhudson: I believe so; let me see if I can get some science to bear here23:37
spmmwhudson: ew. yes. around 9 a day on average.23:42
spmgiven how infrequently nagios checks. that's a lot.23:42
mwhudsonspm: 9 *timeouts* a day?23:42
spmyarp.23:42
mwhudsonas in, no response after 10 s23:42
mwhudsonwow23:42
mwhudsoni'm amazed our users aren't at the gates with pitchforks23:43
spmOh I see. hang a sec. I may be misreading the data.23:43
spmthese are critical events per the check. not necessarilly timeouts.23:43
mwhudsonah23:43
mwhudsonthat's less worrisome23:43
mwhudson(though obviously still not great)23:43
spmyeah. these don't often result in an sms - need 3 in a row; but they do add a constant irregular stream of noise.23:44
spmthere's no obvious pattern I can see either. over the past 31 days, pretty even all day long.23:45
StevenKthumper: You mentioned something on the stand-up call yesterday that would be useful to rename branches and recipes that conflict. Can you remind me?23:47
sinzuithumper: ping23:47
=== Ursinha-sick is now known as Ursinha-afk
sinzuithumper: unping23:54
* mwhudson does some log foodling23:56
mwhudsonof the last nearly 200k lookups that hit the db, about 150 exceeded the 0.0125ms threshold23:56
lifelessmwhudson: we probably only need 99th percentile @ 12.5ms23:56
mwhudsoner23:56
mwhudsonlifeless: what do you mean exactly?  that 99% complete < 12.5ms ?23:57
lifelessyes23:57
lifelessthe odd outlier is tolerable23:57
lifelessits sustained failure to reply in < 12.5ms that will mess us up23:57
mwhudsonwell, we're already at 99.9% of that it seems23:58
mwhudsonalthough this measurement doesn't include backlog23:58
lifelesssadl23:58
lifelesssadly23:58
mwhudsonyeah23:58
wgrantmwhudson: https://code.launchpad.net/~wgrant/launchpad/bug-676372-codebrowse-openid/+merge/48086, if you could.23:59
wgrantQA is going to be just about impossible, but it works locally against c-i-p, which is a start.23:59
lifeless\o/23:59

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