StevenKRargh, the lack of tab completion for bzr mv is really really annoying00:02
wgrantStevenK: It's pushed, anyway.00:03
StevenKwgrant: I've already commited and pushed my revision, so like you said to me last night: Way ahead of you.00:03
StevenKI wish lp-open worked with piped branches00:05
nigelbtest failuer.00:05
nigelband I don't even know whats going wrong.00:08
lifelesswell, what happened ? :)00:09
StevenKnigelb: You missed a bit00:10
StevenKcolumn "statusexplanation" does not exist\nLINE 11:         SELECT statusexplanation FROM BugTask\n ...00:10
nigelbMy devel landing missed something?00:10
StevenKLooks like00:11
StevenKnigelb: How did you search for it?00:11
nigelbgrep inside lib/lp I think.00:12
lifelessI see it in oops.py and oops_prune.py00:12
lifelessgrep lib, not lib/lp00:12
StevenKAnd look into bzr grep00:12
nigelbNow I have to land something to devel00:12
lifelessor . in fact, for complete coverage.00:12
StevenKIt is AWESOME00:12
nigelband then re-land00:12
lifelessbzr grep ++00:12
StevenKnigelb: lib/canonical/launchpad/scripts/ftests/test_oops_prune.py, lib/canonical/launchpad/scripts/oops.py and lib/lp/bugs/stories/bugs/xx-bug-activity.txt00:13
nigelbthe last one I think is fine.00:13
StevenKnigelb: Since your earlier work has landed, this must be a seperate branch00:13
nigelbanother incremental landing for the same bug?00:13
StevenKnigelb: You're learning, it happens00:14
nigelbThat doesn't mean I'm happy about it :)00:14
lifelessStevenK: https://code.launchpad.net/~stevenk/launchpad/denorm-bspph-model/+merge/75093 has db and model code mixed - is that intentional ?00:15
StevenKI missed the pre-req branch, I've resubmitted it00:15
lifelessah cool00:15
StevenKDamn pipes :-P00:15
nigelbHrm, what do I do for this query? http://paste.ubuntu.com/687983/00:16
nigelbremove the select and where?00:16
StevenKDrop lines 10-1200:16
StevenKUNION ALL00:16
StevenK        SELECT statusexplanation FROM BugTask00:16
StevenK        WHERE statusexplanation %(posix_oops_match)s00:16
=== wgrant changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | On call reviewer: wgrant | Critical bugs: 263 - 0:[########*** stack smashing detected ***: ./lp terminated
nigelbOh, excellent. Reviewer on duty earlier.00:31
nigelb*earlier than I expected.00:31
LPCIBotProject devel build #1,062: STILL FAILING in 1 hr 3 min: https://lpci.wedontsleep.org/job/devel/1062/00:33
wgrantThat is suboptimal.00:34
wgrantStevenK, lifeless: Do we want to revert stub's rev, or expedite the pgbouncer fix and see if it helps?00:34
nigelbwgrant: Was there thoughts of removing opinion?00:34
nigelb(I should have asked "Whats your opinion on removing opinion")00:35
wgrantIt should never have existed.00:35
wgrantIt was meant to be removed once the experiment failed, but that never happened.00:35
nigelbExcellent. Shall I proceed to destory that as well?00:36
wgrantNeeds discussion.00:36
wgrantAnd migration.00:36
wgrantWhich is why it shouldn't have been added.00:36
nigelbA bug with status "Opinion" perhaps? :)00:36
wgrantIt was pointless, and fixing it is expensive.00:36
nigelbExpensive in terms of downtime?00:36
nigelbOr in terms of plan effort.00:36
wgrantThat's easy.00:36
wgrantPlan effort, mainly.00:37
nigelbHrm. How hard?00:37
wgrantThe Bugs squad no longer exists.00:37
wgrantSo they aren't around to abort the experiment.00:37
wgrantlifeless: Can we abort the experiment? :)00:37
nigelbLets declare Teal as bugs squad and declare it aborted? :P00:37
lifelesslast I heard there was a final signoff needed00:38
lifelesswhich jml may or may not have done before he stepped down00:38
nigelbThat kind of effort.00:38
lifelessI think its currently in limbo, but there isn't a lot of point rushing it when IssueTracker is just around the corner00:38
wgrant... he says as a feature is extended to 10 months00:39
lifelesswgrant: whats this about pgbouncer?00:39
lifelesshttp://ec2-204-236-255-184.compute-1.amazonaws.com/ is running my 0.0.5 upgrade atm00:39
wgrantlifeless: With stub's librarian<->pgbouncer interaction tests, jenkins no longer works.00:39
wgrantlifeless: It's unclear if buildbot works.00:39
wgrantWe'll find out soon,00:39
lifelesswgrant: do they fail locally ?00:39
wgrantBut I now consider Jenkins failures to be fatal.00:39
wgrantlifeless: https://lpci.wedontsleep.org/job/devel/1062/console00:40
wgrantIt passes locally.00:41
wallyworld_lifeless: if you are able to +1 my db-devel mp in the next 1/2 hour, i can make the next bb run :-)00:42
wgrantIt needs to be sooner than that.00:42
wgrant15 minutes will be pushing it, even.00:43
wgrantbuildbot's estimates sort of suck.00:43
wgrantIt would not surprise me if it finished in less than 5.00:43
wallyworld_that's not nice :-(00:45
nigelbOperation timed out.00:48
wgrantwallyworld_: And it's done.00:49
wgrantFinished 00:48:4300:49
wgrant10:43:43 < wgrant> It would not surprise me if it finished in less than 5.00:49
nigelbHow the..00:49
wallyworld_wgrant = nostrodamous00:50
StevenKbuildbot's estimates suck.00:50
StevenKJenkins tend to work out the time much better.00:50
wallyworld_i know that now :-(00:50
StevenKAnd buildbot will "forget" the time if a build fails00:50
wallyworld_i wish we could move to jenkins00:50
lifelessbah. iwlagn --fail--00:51
lifelesswgrant: do they fail locally ?00:51
wgrantlifeless: No.00:51
wgrantIt'll be in buildbot in a couple of hours.00:51
lifelessI can lp-land the 0.0.5 upgrade if you want00:51
StevenKlifeless: Can haz db review for two branches so they can hopefully be deployed tonight as part of FDT?00:51
wgrantlifeless: That might be handy.00:52
wgrantlifeless: It looks safe to me...00:52
lifelessStevenK: urls ? [note that we only do one change per fdt. So you can't get in anyhow]00:52
wgrantlifeless: We have a week of patches queued already.00:52
StevenKhttps://code.launchpad.net/~stevenk/launchpad/denorm-bspph-indices/+merge/75094 is mine00:52
wgrantAnd we deployed 7 on Friday without trouble.00:52
lifelessI know we did.00:53
flacostewallyworld_: RT #4335200:53
_mup_Bug #43352: ipp jobs not purged; purging causes 100% cpu usage <cupsys (Ubuntu):Fix Released> <gnome-cups-manager (Ubuntu):Invalid> < https://launchpad.net/bugs/43352 >00:53
wgrantStevenK: Anyway, you're too late for today.00:53
lifelessok, lp-land on its way00:53
wgrantStevenK: buildbot has started already.00:53
wgrantNo it hasn't.00:53
lifelesswgrant: the point of one patch at a time is recoverability and diagnosis. Risk mitigation.00:53
lifelesswgrant: its nice that folk are keen.00:53
wgrantBecause lucid_lp was broken, there was no merge.00:53
wgrantwallyworld_: You can still get your patch in if you want.00:54
lifelesswgrant: but, doing batching won't make this -better-00:54
StevenKlifeless: This is half joking -- but we want to go faster and you're trying to slow us down.00:54
lifelessStevenK: those are not FDT safe.00:54
StevenKThey aren't?00:54
lifelessStevenK: they are hot changes.00:55
lifelessStevenK: I want to make change *safe* and *frequent*00:55
StevenKSo I can just ask stub to add the indexes for me?00:55
wallyworld_flacoste: ah thanks00:55
lifelesscan't be done during a backup or other long transaction00:55
StevenKI'll talk to stub when he surfaces00:56
StevenKNow to see if I can reorder this pipeline00:56
nigelbStevenK: He surfaced a few hours back.00:56
wgrantHe was probably just still up.00:56
lifelessStevenK: anyhow, as the guy that got buyin and resourcing for fast downtime, I think I can can say I've made a huge improvement to 'going faster' :)00:56
wgrantGiven he appeared right after FDT last night.00:56
nigelbHe said "Cause I woke up at 3pm of course. What a silly question!"00:57
StevenKHm, can't reorder pipes00:57
wgrantlifeless: Thanks, jenkins is building with your pgbouncer fix.00:58
wgrantStevenK: You have to do it manually.00:58
wgrantEdit the branch.conf of each.00:58
StevenKI'll just delete the pipe00:58
nigelbwgrant: Can haz review? https://code.launchpad.net/~nigelbabu/launchpad/the-return-of-destory-statusexplanation-88545/+merge/7509900:58
wgrantnigelb: Hm, how did it land with those references still there?00:59
wgrantOh, right.00:59
wgrantI understand now.00:59
nigelbEntirely different places.00:59
nigelbwgrant: err needs the incremental flag01:00
wgrantnigelb: I see you fixed some lint... do you feel like fixing the last three?01:00
wgrant(two long lines, one unused variable)01:01
nigelbone unused variable is false positive01:01
nigelbits used in SQL query01:01
wgrantAh, and it uses local() to get it in?01:02
nigelbwant me to change that?01:03
wgrantLet me see.01:03
wgrantSince that's the only var, yeah.01:03
wgrantMight as well fix it.01:03
wgrantAlso fix the two long lines while you're there.01:03
wgrantOne of which is the regex.01:04
wgrantThis stuff doesn't get touched frequently, so it's nice to get rid of the lint when it is.01:04
nigelbclose the quotes, use \, and start quotes in new line?01:04
wgrantI'd use parens instead of \01:04
wgrantfoo = (01:04
wgrant    "barfewfwefwQ"01:04
wgrant    "efwfwefwfw")01:05
StevenKPerl! s///x01:05
StevenK /x allows comments and whitespace *inside* regexs01:05
StevenKYes, yes.01:06
StevenKGo way, I know regular expressions.01:06
StevenKg not needed, you're only replacing once01:06
StevenKwgrant: If you're free, https://code.launchpad.net/~stevenk/launchpad/denorm-bspph-model/+merge/7510001:12
wgrantStevenK: Doesn't that depend on the hot index?01:12
wgrantYou say it can land anyway, but doesn't it include the patch?01:13
StevenKIt doesn't any more01:13
wgrantAh, no prereq any more.01:13
StevenKAnd it doesn't need the index, no, it just adds the columns to the model01:13
wgrantYeah, but I thought that was the branch I saw earlier with the DB patch.01:13
wgrantThat you said needed a prereq.01:13
StevenKYes, I was fighting with pipes01:13
StevenKAnd then lifeless said the patch is unsuitable and so I resubmitted the MP again01:14
StevenK"This time, for reals"01:14
lifelessStevenK: erm, its not a FDT patch; it was fine in all other regards.01:14
StevenKWhat other kind of patch do we have!?01:14
nigelbwgrant: suggestions on "description='https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1Foo666'"01:14
lifelessStevenK: hot db patches and code patches.01:15
nigelbits inside the sql query01:15
wgrant    'https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1Foo666'01:15
wgrantIs that sufficient?01:15
wgrantOtherwise use || to concat.01:15
lifelessStevenK: https://dev.launchpad.net/PolicyAndProcess/DatabaseSchemaChangesProcess#Hot_Patches01:15
nigelbwgrant: Is this fine? http://paste.ubuntu.com/688008/01:16
GStevenK: I'm not needed? ;)  (really wish awaylog gave context)01:16
wgrantnigelb: If that's short enough, yep.01:16
lifelessStevenK: and https://wiki.canonical.com/Launchpad/PolicyandProcess/ProductionChange#Hot_database_patches01:16
nigelbwgrant: Updated MP.01:18
StevenKlifeless: That's what I said -- I was going to talk to stub about the indexes when he surfaces01:18
lifelessStevenK: you still need to land the patch though01:18
lifelessStevenK: I guess all I'm saying is that your patch wasn't *bad*, it just *wasn't FDT relevant*01:18
wgrantnigelb: You are now lint-clean?01:18
nigelbPasted on MP description as well.01:19
lifelessStevenK: and I suspect I gave the wrong impression before01:19
lifelessStevenK: so I want to fix that up01:19
nigelbWhat the... every other lint I read has barry as author/co-author.01:19
wgrantlint, PEP, same thing :P01:20
lifelesshe is the flufl01:20
wgrantBut yeah, barry is fairly Python.01:20
StevenKlifeless: I didn't say bad, I said unsuitable01:21
wgrantnigelb: Looks good, thanks.01:21
lifelessStevenK: ok, if we're copacetic, cool. Sorry for the sidebar :)01:21
wgrantnigelb: Shall I land it?01:21
nigelbwgrant: yes, please :)01:21
StevenKwgrant: With --incremental01:21
nigelbI only noticed last week that Barry co-authored PEP8. I've read that a zillion times and never noticed!01:22
nigelbOk, now I can go sleep without something left to do.01:23
wgrantNight nigelb.01:23
nigelbIts 7 am, but yeah. Laters.01:24
lifelessnigelb: uhm. Sustainable patches please ;)01:24
nigelblifeless: Huh?01:24
lifelessnigelb: You Need To Sleep.01:25
nigelbWhat did I write unsustainable?01:25
wgrantnigelb: If you're not gone yet, care to set a commit message?01:25
wallyworld_lifeless: sorry to nag - if you are able to +1 my db-devel mp i can land it before something else triggers bb :-)01:25
nigelblifeless: I was up till 4 for work, then I got test failure email, and then sat and fixed :)01:25
lifelesswallyworld_: I prefer to let stub review them all as much as possible01:26
wallyworld_ok. np01:26
nigelbwgrant: What's the official word on that? Some reviewers like me setting the commit message, otheres do it themselves.01:26
lifelesswallyworld_: your patch will be several days away anyway, due to folk dogpiling in so excitedly ;)01:26
lifelesswallyworld_: which is nice.01:26
wgrantnigelb: They're just being nice.01:26
wgrantnigelb: Generally the author sets it.01:27
nigelbOh. /me notes for future.01:27
lifelesswallyworld_: and may make the one-patch-per policy get revisited.01:27
nigelbI'm in queue for a db patch as well :D01:27
wallyworld_lifeless: you you are enforcing that atm01:27
wallyworld_sounds a bit rigid01:27
lifelesswallyworld_: FTR - https://dev.launchpad.net/Database/LivePatching01:27
nigelb(they landed 7 patches the other day. wgrant was plotting 3 tomorrow :P)01:27
nigelbOr was it 2)01:28
StevenKThey can't land in the same run01:28
lifelesswallyworld_: bah, wrong link01:28
Gnigelb: from reading the ML wasn't the 7 an exception to try and catch up?01:28
wgrantnigelb: Instance is starting.01:28
wgrantnigelb: Now go away.01:28
lifelesswallyworld_: on https://dev.launchpad.net/PolicyAndProcess/DatabaseSchemaChangesProcess#Making_a_database_patch it has discussion about adding columns and performance01:28
* nigelb goes away.01:29
lifelesswallyworld_: the reason for one at a time is to avoid multiple zomg's.01:29
lifelesswallyworld_: db schema changes are -the- most risky routine thing we can do.01:29
wallyworld_sure, but if there are a few totally orthogonal changes....01:29
wallyworld_these could be done together01:30
lifelessthey could01:30
lifelessif we want to risk multiple disparate fallouts all at once.01:30
wgrantOtherwise people will just conspire to do more things in one patch.01:30
wgranteg. I'm dropping 36 tables in one patch instead of 36.01:30
lifelesswhich is fine01:30
lifelessits one conceptual thing.01:30
StevenKwgrant: Otherwise we'd need to jump to 2209 :-P01:30
lifelessfolk aren't going to be silly.01:30
lifelessthere is precisely one DBA.01:30
wgrantlifeless: Right, they're going to be sensible and work around a silly restriction :P01:31
lifelessspeaking bluntly, if we have a shitstorm, there is only one person that will be fixing it. I don't want us to -ever- have 2 shitstorms and one person working on them.01:31
wallyworld_lifeless: btw, i did read that wiki page on adding columns but then saw previous patches adding not null columns and figured it must have been a "soft" policy01:31
lifelesswallyworld_: it is soft 'Similarly, new columns must default NULL unless the data size is extraordinarily small. '01:32
lifelesswallyworld_: Branch is not extraordinarily small :)01:32
lifelesswgrant: if folk batch inappropriately, I will veto their changes.01:32
lifelesswgrant: and stomp very hard.01:32
lifelesswgrant: there is a fundamental cultural change we *will* make.01:32
wallyworld_fair point. i can't recall the example i saw, but i could have sworn it was for a lrgish table01:32
lifelesswallyworld_: if it was more than 6 weeks ago it was before FDT.01:33
wallyworld_ah that makes sense01:33
lifelesswgrant: the payoff for this change is a more reliable process and that means we can execute more often.01:33
lifelesswgrant: we have a -long- way to go to prove that we can be trusted to execute changes rapidly. Until we have things that make it more risky, are well, silly risks to take.01:34
lifelesswgrant: before FDT we were doing *6* schema changes a month.01:35
lifelesswgrant: even with 2-step changes, 12 a month is well below the capacity we could do if we had to and still be doing one-per.01:35
lifelesswgrant: so arguing that batching is important right now seems specious and to be ignoring the very real risk tradeoffs that the new process is designed around.01:36
lifelesscan you make an affirmative argument for why we should accept the increased risk that batching brings *right now*01:37
wgrantI don't believe there is significant credible risk in batching some kinds of patches.01:38
lifelesshow good would you say our risk assessment for schema patches is?01:38
wgrantIn terms of performance? Terrible. In terms of blowing up? Pretty good.01:39
lifelesslike, if we bet 1000 dollars on the patch being sideeffect free, per patch, how often would we payout [have a patch with undesirable side effects] ?01:39
wgrantWhen have we had problems recently, apart from bugsummary fun?01:39
lifelessIf we deploy something that causes grief, we need to roll it back at the next slot - or even sooner if its really bad. That means a pipeline stall on *all* db patches [so we're not compounding the error]01:40
lifelesswgrant: we've blown up a number of collections with indices that caused sideeffects in other queries01:41
lifelessadd to this that we have a number of 24 hour cycles01:44
lifelessoops reports01:44
lifelessapi scripts in cron01:44
lifelessits hard to tell if we've borked something without giving it some time to settle in.01:44
lifelesswe need to fix all of this stuff01:44
lifelessdrive the intervals down01:44
lifelessget more responsive.01:44
lifelesseverything we batch gets in the way of driving the lead-time lower01:45
lifelessso, we're not batching here. Unless a -really really really- compelling argument that we *want* to batch, in everything, is made.01:45
wgrantHow about that we're not going to be driving down intervals for at least 18 months?01:45
wgrantSo we're going to have few opportunities for optimisation until then.01:46
wgrant(unless you do it all single-handedly)01:47
wgrantWe are at 263 criticals, and no crisis has been declared.01:48
wgrantWe are not going to be improving anything apart from criticals for a *very* *long* *time*.01:48
lifelessfrancis is analysing that01:50
lifelessfdt is one example of driving down intervals01:50
wgrantRight, but I think it needs more of a declaration of crisis than an analysis.01:50
lifelessSo I wouldn't say single handed driving things down.01:50
wgrantFDT wasn't single-handed? It was entirely Technical Architecture.01:51
lifelessBut all the SOA stuff - oops with rabbit etc - are all dovetailing into more responsiveness in our systems01:51
lifelessred are working on rabbit01:51
lifelessthats support for this01:51
lifelesswe have the test suite stuff enqueue for this year01:52
lifeless30m test runs or thereabouts01:52
lifelessokok, 60m.01:52
wgrantI am impressed with your vision for these improvements.02:00
wgrantBut I present exhibit A.02:00
wgrantEveryone seems to be ignoring the fact that we are probably never going to exhaust the queue.02:01
wgrantAll progress is predicated on that happening.02:01
wgrantIt's been clear for at least a month, and probably 3.5 months, that a crisis needed to be declared.02:02
pooliewgrant, so do you think there should be less feature work and more critical bug work, or ...?02:02
wgrantI don't know.02:02
wgrantBut the current situation is dire.02:02
wgrantAnd it is steadily getting even worse.02:02
wgrantWhat we're doing now is not working.02:03
wgrantAt. All.02:03
lifelessthe trend is a problem02:03
wgrantEven more amusingly, the squad that was unassigned at exactly the time the downward trend stopped will remain on feature work until probably April.02:04
lifelessthats why francis is analysing to determine the source of the criticals.02:04
lifelessAre we breaking things too often?02:04
lifelessare we still finding debt that meets the policy rules?02:04
lifelessuntil we have that breakdown, there isn't any change that is sensible to take - we need data.02:04
lifelessthis is a crucial thing for us.02:04
wgrantWell, when are we likely to have results?02:05
lifelessI don't know.02:05
lifelessI forgot to ask him today.02:06
lifelessas an example though - if the problem is that we're creating more criticals.02:06
wgrantWe have more than 25% more criticals than when the problem first becams eclear.02:06
lifelessmore folk working on criticals might just increase the rate at which we break things.02:06
Gmost of the criticals seem to be timeout/db related right? (just my observation, don't know if I'm right or not)02:08
wgrantAll is lost, so I am going to have lunch.02:08
wgrantlifeless: your pgbouncer fix worked, btw.02:13
lifelessthats good02:15
lifelesswgrant: care to note that in one of the bugs? (so we learn from our mistakes ;P)02:16
wgrantlifeless: Commented on bug #84840002:18
_mup_Bug #848400: fixture shares fd's with testrunner process, will cause test hangs and worse. <Python PGBouncer:Fix Released by lifeless> < https://launchpad.net/bugs/848400 >02:18
lifelessjamesh: around ?02:34
lifelessgot time to talk storm ?02:35
lifelessjamu and I weren't sure if we needed to rollback my landing02:35
lifelessor to tweak, etc02:35
jameshI don't think it is worth rolling back: it is new code that isn't being used anywhere, so we may as well build on top of it02:36
lifelessI replied to your review02:37
lifeless(and thanks for that)02:37
jameshso, paramstyle was a reference to the DB-API spec: "pyformat" is the style used by psycopg2 with "%s" as a marker02:37
jameshand qmark is the style used by sqlite with "?" as a marker02:37
lifelessI haven't read that spec02:37
lifelesshow is something like "column LIKE '%s' AND column2=%s" handled where the LIKE clause is actually a suffix search, not a substitution02:38
jameshthe degenerate case that would cause problems would be something like connection.execute(u"SELECT ? = '%s'", (u"foo",))02:38
jameshon a backend using the qmark paramstyle, the interpolation would fail in the tracer.  Of course, it would fail earlier on a pyformat paramstyle backend though.02:39
lifelessone way to handle it would be a try:except: around the interpolation with a fallback of outputting something more like debug does.02:39
lifelessor just the plain statement.02:40
jameshfyi: you might find the startswith(), endswith() and contains_string() sql expression methods in Storm handle most of the LIKE clauses you have pretty well02:40
lifelessjamesh: I think we use them in various places02:41
lifelessdo they compile to "column LIKE %s" , (u"%suffix",) ?02:42
jameshfor the quoted '%' case for a LIKE expression, the if you're using a pyformat paramstyle backend, you'd usually have to escape the percent sign (one of the reasons some people dislike pyformat)02:42
lifeless\%s ?02:43
jameshgar.  "%s"02:43
jameshxchat seems to be eating the double percent sign :(02:43
lifeless %%s ?02:43
lifelessso, what should we test ?02:44
jameshStorm's startswith(), etc methods change the glob characters to ones that don't look like a pyformat interpolation sequence02:45
jameshIf you have an unescaped "%" character, I don't think psycopg will be particularly happy anyway.02:46
lifelessI'm not aware enough of storms needs to predict the missing tests / changes.02:47
lifelesswhat I copied over is working live in LP with the pg backend.02:47
jamesh>>> cursor.execute("SELECT %s = '%'", ('%',))02:47
jameshTraceback (most recent call last):02:47
jamesh  File "<stdin>", line 1, in <module>02:47
jameshIndexError: tuple index out of range02:47
lifelessif I understand correctly you're saying there isn't an issue02:49
lifelessbecause something that would break the tracer will break pscyopg too02:49
jameshthere probably isn't an issue for psycopg2 and other pyformat backends02:49
jameshpeople could pass queries through that will cause problems on qmark backends02:50
lifelessbecause we don't escape existing %s's on qmark lookups ?02:50
jameshright.  At the point where the tracer is running, the query will be in the adapter's preferred format, so we wouldn't expect '%' interpolation at that point02:51
lifelessjamesh: but the quoted_statement re sub should fix that02:52
jameshI guess the code should look something like: (a) if connection.param_mark == '?', double all percent signs and convert param marks to '%s'02:52
jamesh(b) if param_mark is '%s', don't alter the query string at all02:52
jameshif param_mark is something else again, panic :)02:53
lifelessah, we preserve %s's02:53
lifelesshow about02:53
lifelessif param_mark is not %s: double all percent signs, otherwise double all non-%s % signs.02:53
lifelessthen convert marks to %s02:54
StevenKwgrant: Please take back your "Lies." comment: http://pastebin.ubuntu.com/688053/02:54
jameshI don't think you should need to do anything to the '%' signs if param_mark is '%s'02:54
lifelessian broke LP with that assumption.02:54
lifelessit was a fun day of broken buildbot.02:54
jameshif the non-interpolated '%' signs haven't been escaped, then they will fail when passed to the database adapter anyway02:55
lifelessapparently we have something somewhere that manages this02:55
wgrantStevenK: Oh?02:59
* StevenK waits for wgrant to read the pastebin03:00
wgrantI read the pastebin.03:00
wgrantI see a SourcePackageName declared as an integer.03:00
lifelessjamesh: what about the other thing03:01
lifelessjamesh: the control api03:01
jameshlifeless: the part I cringed at was exposing the threading.local() object as part of the public API to the tracer03:02
StevenKwgrant: ALTER TABLE SourcePackagePublishingHistory ADD COLUMN sourcepackagename INTEGER REFERENCES SourcePackageName03:02
lifelessjamesh: yes, I explained the things that led me to doing that.03:03
wgrantStevenK: I'm not sure what the DB has to do with this.03:03
lifelessjamesh: and a possible alternative, but it seems rather like yagni to me. I'm willing to do it if needed03:03
wgrantStevenK: SourcePackagePublishingHistory.sourcepackagename is not an integer, so why is ISourcePackagePublishingHistory['sourcepackagename'] an Int?03:03
StevenKwgrant: Oh, I've declared it wrong in the model?03:04
wgrantIn the interface.03:04
wgrantThe code I quoted!03:04
StevenKAttribute() and Int() are the wrong way around.03:05
wgrantYou know, the only two types in the code I quoted :)03:05
StevenKSorry, I read it as "You have sourcepackagename in BPPH and vice versa"03:05
lifelessjamesh: http://paste.ubuntu.com/688059/ for the quoting thing.03:08
jameshlifeless: the timeline_factory argument or an abstract get_timeline() method method would be my preferred APIs.  Do you have example code of how you'd use the class in Launchpad as it is currently written though?03:09
lifelessjamesh: adapter.set_request_started03:09
lifelessjamesh: the version of this tracer in LP knows about the 'current request', so it calls 'get_request_timeline'03:10
lifelessjamesh: which could drop straight into a timeline_factory parameter.03:10
jameshlifeless: re. the paste, I still think you should be able to get by without munging the statement in the connection.param_mark == '%s' case03:10
lifelessjamesh: you can't because "%%" % () -> "%"03:11
lifelessjamesh: but we want "%%" to be shown as  "%%"03:11
jameshlifeless: why?03:11
lifelessjamesh: the munging is to *preserve* the %'s.03:11
jameshlifeless: they aren't preserved in the statement executed by the DB03:11
lifelessthey match what folk see when they look at the code though, which was a strong consideration.03:12
lifelessI could go either way.03:12
lifelessI'm convinced its a presentation thing.03:12
lifelessit also happens to ensure its safe to format, but thats incidental.03:13
jameshmy point earlier was that if it isn't safe to format, then it is going to fail when passed to the adapter anyway ...03:13
lifelessjamesh: so I changed to the thread locals() because it seemed to me that that is the common need03:13
lifelessjamesh: right, I got that, but wouldn't it be better fo rhte adapter to be the thing raising the error ?03:14
lifelessjamesh: lets users avoid confusion about what is wrong03:14
jameshlifeless: if that is a concern, I would consider including a code path that handles errors from the interpolation step.03:15
lifelessjamesh: if you prefer a factory, I'll change it to want a factory, that happens to fit closer to LP because it already *has* such a factory; it will mean more glue in the wsgi case though.03:15
lifelessactually it has a factory which needs a guard because of other bugs.03:17
lifelessbut meh, its shallow either way.03:17
jameshhere's how psycopg2 handles the percent sign:03:17
jamesh>>> cursor.mogrify("SELECT %s LIKE 'foo%'", [u'foobar'])03:17
jamesh"SELECT E'foobar' LIKE 'foo%'"03:17
jameshgar.  imagine there is a double percent sign in the LIKE clause03:18
lifelesson the >>> or the " starting lines ?03:18
jameshthe first line03:18
jameshmogrify() is a psycopg2 specific API for invoking its interpolation code03:19
lifelessjamesh: ok, so what now? I'm getting lost ;)03:23
jameshlifeless: okay.  I think your paste looks like a good improvement, but (1) I'd prefer not to munge the statement in the pyformat backend case and (2) I think the actual interpolation stage should check for TypeError and use some other place holder string in that case.03:26
jtvwgrant: see anything new in debian domination?  Our challenge for today is to get it to re-publish an SPR.03:26
wgrantjtv: It looks OK, and we know that it handles the republishing case OK from my archivepublisher testing.03:27
wgrantWe could retest that with gina if we really want to, though.03:27
lifelessjamesh: do we need to defend against unreprable variables ?03:27
lifelessjamesh: to-database shold be sane, no ?03:27
jameshlifeless: I think we can depend on to_database() being sane: it gets called outside of the tracer in this code path anyway.03:28
jtvwgrant: hmm…  intra-release domination is the same thing for gina domination and publisher domination, so yes, we can take that as validation.03:29
wgrantjtv: So, any reason not to deploy it and watch the world burn?03:29
jtvThe world won't burn.  For that, I need to add that commit first.03:30
jameshnot sure about repr().  The existing DebugTracer grabs the repr() of the values and hasn't been a pain point so far (although it isn't using to_database())03:30
jameshso it might be worth leaving it as is, and see how it works03:30
wgrantjtv: Shall we deploy up to 13913, then?03:31
jtvLet me look that up.03:31
wgrantHmm, we should really get past 13917 today.03:32
wgrantBut 13914 is a feature-flagged blocker.03:32
poolielifeless, can we have another go at bug 660264 now haproxy is live?03:32
lifelessjamesh: typeerror - http://paste.ubuntu.com/688065/03:32
_mup_Bug #660264: bzr+ssh on launchpad should fork, not exec <lp-code> <Launchpad itself:In Progress by jameinel> < https://launchpad.net/bugs/660264 >03:32
lifelessjamesh: I'd like to leave the %% handling on postgresql alone for now03:32
lifelessjamesh: get everything migrated and consolidated, then revisit.03:33
jameshlifeless: fair enough.  The second paste looks good.03:33
lifelesspoolie: no, we need those two bugs I escalated with you addressed first.03:33
pooliesmooth reconnect etc03:33
jtvwgrant: 13913 is doable for me, although obviously I'd like to get that commit in with the rest.  Can we treat cocoplum as if it were NDT now?03:33
lifelesspoolie: haproxy is only half-live, we're not actually in nodowntime mode yet.03:33
lifelesspoolie: yes, those.03:33
wgrantjtv: gina isn't on cocoplum03:34
lifelessjamesh: so, you're really against the threadinfo thing ? [/me asks with a vague hope :P] - it just seems like -all- the factories folk will write will be identical.03:35
jtvwgrant: where then?  And is it NDT?03:35
wgrantjtv: iron, and yes.03:35
* jtv shuffles cards03:35
* jtv eagerly waits for wgrant's message notification bubble to get out of the crucial spot where he needs to see.03:35
jtvBubble bursts.03:35
wgrantjtv: what was that?03:36
wgrantjtv: I didn't quite hear you03:36
wgrantjtv: Could you please repeat?03:36
wgrantjtv: Please?03:36
jtvThat's okay, I no longer need to see that precise spot.03:36
jtvBut it's gratifying to see you go to all that wasted effort.03:36
jtvwgrant: what's that?03:37
jtvI didn't quite hear you03:37
pooliewhat does 'half-live' mean?03:40
poolieit's in place but it doesn't fail over?03:40
lifelessthe project isn't complete03:40
lifeless(because we can't deploy to it regularly, which was the goal)03:41
lifelessthats a worry03:44
lifeless    Hard / Soft  Page ID03:44
lifeless     902 /  227  ScopedCollection:CollectionResource:#message-page-resource03:44
lifeless     870 /   21  Product:+bugtarget-portlet-bugfilters-stats03:44
lifeless     820 /  158  BugTask:+index03:44
lifeless     766 /  240  Distribution:EntryResource:searchTasks03:44
lifeless     291 /    0  Distribution:+bugtarget-portlet-bugfilters-stats03:45
lifeless     288 /    0  Person:EntryResource:searchTasks03:45
lifeless     211 /   24  MaloneApplication:+bugs03:45
wgrantlifeless: Indeed. I've wondered if the journal rollup isn't happening or something.03:46
wgrantlifeless: I saw a new garbo job fly past this morning.03:46
lifelessjamesh: http://paste.ubuntu.com/688073/03:55
lifeless select count(*) from bugsummaryjournal;03:59
lifeless count03:59
lifeless   87503:59
lifelesswgrant: ^03:59
StevenKwgrant: Have another look at https://code.launchpad.net/~stevenk/launchpad/denorm-bspph-model/+merge/75100 ?03:59
wgrantlifeless: Well, there goes that :/04:02
wgrantWhat could it be, then.04:02
wgrantStevenK: What about the other places that create [SB]PPH?04:04
wgrantStevenK: I think there are some more.04:04
wgrantStevenK: Although I tried to unify most of them, some slipped through.04:04
wgrantAlso, readonly=False?04:04
wgrantWhile it's not exposed through the API now/yet, that seems like a bad start :)04:04
jameshlifeless: that does look like a better API to me.  If we do find everyone is passing the same timeline_factory implementation in later on, perhaps we can revisit it.04:05
StevenKwgrant: I thought it was only new{Source,Binary}Publication :-(04:07
wgrantStevenK: That's the aim.04:07
wgrantStevenK: But it's not there yet.04:07
wgrantStevenK: Also, at least publishBinaries has a batch interface that doesn't involve instantiating the class.04:08
lifelessjamesh: ^04:08
jameshlifeless: saw it.  I'll review it in a sec.04:08
wallyworld_lifeless: is there a way in storm to hook into an object lifecycle such that i can access any dirty properties' old and new values when a db update is done?04:11
lifelessuhm, probably at least two. Why?04:11
wallyworld_lifeless: i want to trigger a db update if someone changes a particular property and then saves the object04:13
lifelesswouldn't a regular property be sufficient ?04:13
wallyworld_i could hook into an IObjectModifiedEvent i suppose, but i'd rather do it with just storm04:14
lifelessjust foo = property(...)04:14
wallyworld_that would work. i was wanting to not do any db work until the flush. but i could set a flag and hook into the storm flush event04:16
lifelessperhaps some specifics would help the discussion04:16
lifelessI'm struggling to understand the constraints04:16
StevenKwallyworld_: Er?04:17
StevenKwallyworld_: Isn't that what triggers are for?04:17
wallyworld_when a branch has it's stacked_on branch changed or it's private property changed, i need to update the branch table to set transitively_private for other branches that may be affected04:17
lifelessthat sounds like a trigger case to me04:18
wallyworld_ok. for some reason i thought we preferred to avoid trigegrs04:18
lifelessrunning sql *just-before-a-flush* is going to be -fuuuun-04:18
lifelesswallyworld_: I loath and fear triggers, but they are the right solution to this sort of thing while we use pgsql.04:19
wallyworld_i share your view, hence trying to finf a non-trigger solution04:19
lifelesswallyworld_: if we were using e.g. cassandra, the whole way the problem is approach would be different04:19
wallyworld_any pointers to where we define and set up triggers for other things?04:20
lifelessthough that really wants to DIAF04:20
lifelessI would just do it as a regular patch I think, at least to start with.04:20
Gwgrant: in my efforts to pick off some of the trivial fixes so you guys can focus on the criticals... with reference to bug 763820, would the text "with the Ubuntu keyserver" be better than "with an Ubuntu keyserver" iirc there is only one right?04:21
_mup_Bug #763820: double "with" on +editpgpkeys <trivial> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/763820 >04:21
wgrantG: Indeed, that sounds better.04:23
wallyworld_lifeless: the patch needs to be in db-devel? and have it's own patch number and all that?04:23
lifelesswallyworld_: yes, most definitely.04:23
Gnot to mention, it should've been a not an, but thats by the point since you agree with the :)04:23
wallyworld_cool. thanks04:23
wgrantG: "an Ubuntu" is correct, not "a Ubuntu"...04:24
Gwgrant: you don't say "an United Nations <something>" you say "a United Nations <something>" because it flows better (just looked it up)04:24
wgrantG: Sure.04:24
wgrantBut the U is not the same.04:24
wgrantNot yoo-boon-too04:25
pooliei bet some people do say "an United"04:25
pooliemaybe not incorrectly04:25
* wgrant blames the US04:25
wgrantIt is incorrect, I'm pretty sure.04:25
Gyep, lets just blame the US for everything :)04:26
StevenKHULK SMASH04:26
wgrantYou conflicted with stub's new garbo?04:26
StevenKNo, this is still the model changes04:26
Gwgrant: you may have a point (w/ pronounciation)04:26
StevenKBut I'll probably have to cope with that too04:26
* StevenK gets a rope.04:27
StevenKfor i in $(find lib/canonical/launchpad/mail | tac) ; do bzr resolve $i ; done04:29
StevenKAnd that solves one problem04:29
Gwow `make run` is much faster now04:30
* StevenK waits for bzr pump04:31
StevenKwgrant: And again?04:44
wgrantLet's see.04:45
Gwgrant: there you go, MR for you https://code.launchpad.net/~dev-nigelj/launchpad/bug-763820/+merge/75111 has to be the most trivial in a while04:49
StevenKG: *MP*04:50
StevenKMerge *Proposal*04:50
GStevenK: I realized that after I said it04:50
GStevenK: my mind is about 10 miles away from my body atm :)04:50
StevenKUp, down, north, south, west or east?04:51
wgrantStevenK: You didn't get publishBinaries?04:51
StevenKwgrant: I did a grep04:51
GStevenK: somewhat South East04:51
StevenKbzr grep "BinaryPackagePublishingHistory\(" | grep -v makeBinaryPackagePublishingHistory04:51
wgrantStevenK: Like I said, it does a bulk inset.04:52
StevenKRargh, annoying04:52
wgrantRather, but it's the only way to not have terrible performance.04:52
* StevenK waits for sync-pipeline some more04:53
StevenKG: By the way, if you haven't used bzr grep, you should -- it is love.04:53
GStevenK: what is bzr grep when you meet it in the street?04:54
G(still new to bzr, but I like it)04:54
StevenKG: It runs grep over versioned files04:55
StevenKG: It's useful for the Launchpad tree, since we have that whole annoying lib/lp versus lib/canonical split04:55
Gahhh I just normally do "grep -r <something> lib/lp" :)04:55
pooliebzr grep is faster, ignores non-versioned files, can search history04:56
StevenKG: If you search just lib/lp, you will miss stuff. As nigelb found out this morning.04:56
StevenKG: Hence my service announcement. :-)04:56
StevenKbzr grep doesn't support -c :-(04:58
Gpoolie: you got me at faster ;)05:02
Gwhere do I get it from? ;)05:02
Gshould've guessed :)05:02
wgrantOr apt-get install bzr-grep05:02
wgrantOn >= maverick, IIRC05:02
StevenKcd .bazaar/plugins && bzr branch lp:bzr-grep grep05:02
Gwgrant: thanks05:03
StevenKSince bzr can't deal with plugin directories that contain a -05:03
* G prefers packaged stuff :)05:03
poolienot packaged?05:03
* StevenK prods wgrant for more review love.05:04
Gpoolie: it's packaged for Natty, because after wgrant's pointer I just aptitude install'ed it :)05:04
wgrantStevenK: What about gina for SPPH? Or does it use newSourcePublication?05:05
StevenKwgrant: It uses newSP05:05
wgrantG: Also approved. Want me to land it?05:06
Gwgrant: might as well, thanks :)05:06
wgrantCould you set a commit message on the MP, please?05:07
LPCIBotYippie, build fixed!05:07
LPCIBotProject devel build #1,063: FIXED in 4 hr 10 min: https://lpci.wedontsleep.org/job/devel/1063/05:07
StevenKsteven@liquified:~/launchpad/lp-branches/no-more-lazr-utils% for i in $(bzr grep -l canonical.lazr.utils) ; do sed 's/canonical.lazr.utils/lazr.restful.utils/' < $i | sponge $i ; done05:08
StevenKsteven@liquified:~/launchpad/lp-branches/no-more-lazr-utils% bzr di | wc -l05:08
* StevenK hides05:08
Gwgrant: set05:08
Gwgrant: at some point can you take a look at https://bugs.launchpad.net/launchpad/+bug/306569/comments/2 as well and give me your thoughts?  (I'm also now wondering if an AJAXy +help/foo page would also do the job instead of links to the wiki etc05:10
_mup_Bug #306569: Link to https://help.launchpad.net/Code from project branch listing page <lp-code> <trivial> <ui> <Launchpad itself:In Progress by dev-nigelj> < https://launchpad.net/bugs/306569 >05:10
StevenKwgrant: lazr imports are the same level as zope and so on right?05:11
wgrantStevenK: Yes.05:11
mwhudsonStevenK: you might be interested in sed -i :-)05:14
StevenKmwhudson: But then I can't use the awesomeness that is sponge!05:14
mwhudsonStevenK: admittedly, i had to look up what sponge does05:14
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
StevenKBah, MPs needs a link to bug link05:27
StevenKwgrant: https://code.launchpad.net/~stevenk/launchpad/no-more-lazr-utils/+merge/7511705:30
wgrantStevenK: r=me05:37
pooliepsycopg2.OperationalError: fe_sendauth: no password supplied - halp?05:45
* ajmitch saw some mention of needing ipv6 address in pg_hba.conf for that05:46
wgrantYeah, see one of my recent posts to launchpad-dev05:47
wgrantOr rerun launchpad-database-setup05:48
ajmitch host    all         all         ::1/128           trust05:48
pooliewgrant, how can i actually get your rabbitfixture fix active?06:04
pooliejust put a checkout of that branch on my path?06:04
wgrantpoolie: It should be merged now.. let me check.06:04
wgrant13906 Launchpad Patch Queue Manager2011-09-09 [merge] [r=gary][bug=845658] Upgrade rabbitfixture to be oneiric-friendly06:05
wgrantDapper has too many architectures.06:24
lifelessjamesh: ok, so now we need to glue this to wski.07:08
jameshlifeless: yeah.  I wonder what the best way to slice things would be?  A WSGI middleware that simply introduced a timeline object into the environment, and another one that configured the storm tracer based on that timeline and updated oops.context might work07:18
jameshcould do a single one if you'd never want to use the timeline module without oops and storm07:18
lifelessI think I'd start with a single one and refactor if we change our mind07:22
lifelessI can't recall if I've pulled the timeline formatting stuff out of LP yet or not07:22
lifeless(it is what generates the db_statements key in the oops07:23
lifelessI'll look at that on thursday.07:23
lifelesswhere should this wsgi module live07:23
lifelessits storm + oops + wsgi specific07:23
jameshso, do you stick the timeline in the oops context and rely on an on_create hook to format db_statements for the report?07:23
lifelessbecause the oops itself has to be bson serializable07:24
jameshright.  Was just wondering if you did the formatting prior to generating the report07:24
lifelessnah, its lazy07:25
lifelessso just-in-time, and no formatting if no report07:25
lifelessI think the formatter can live in timeline itself07:25
lifelessas it doesn't need to import oops by default07:26
lifelessfor packaging it can 'enhances: python-oops'07:26
jameshI wouldn't be opposed to making it a sub-package of storm, but it could also be its own module07:27
jamesh[I assume you don't want this in python-oops-wsgi]07:28
lifelessright, I don't :)07:28
lifeless(because storm is the extending thing here - there can be many orms that need oops-wsgi glue, but only one oops-wsgi for now)07:28
wgrantzomg, p-d-r didn't crash on DF07:28
rvbawgrant: Hi, could you please update DF for me? (And BTW, thanks for the review, I'll address your concerns shortly)07:33
wgrantrvba: Did you see I QAed your resolved difference thing?07:33
wgrant(on qastaging)07:33
rvbawgrant: yes I did.  Thank you for that.07:34
wgrantI've got p-d-r running on DF now, so it'd be nice if I didn't have to update.07:34
wgrantBut if you do need it, I can.07:34
rvbawgrant: no worries, I'll do that later today.07:34
wgrantit should be done in ~1.5 hours.07:34
adeuringgood morning07:49
=== vila is now known as babune
=== babune is now known as vila
jmlwgrant: sure08:21
StevenKNow part 2 of demolishment can land?08:47
wgrantStevenK: Yup.09:09
rvbaStevenK: Hi. The confirmation overlay stuff has landed. I'm here to help if you need me for some dirty Javascript stuff ;)09:12
LPCIBotProject devel build #1,064: FAILURE in 4 hr 9 min: https://lpci.wedontsleep.org/job/devel/1064/09:17
lifelesswgrant: oh hai09:22
lifelesswgrant: still reviewing ?09:22
wgrantlifeless: If necessary.09:22
lifelesswgrant: if so, gpgfixtures review request is up09:22
wgrantWith pleasure.09:22
wgrantIs it?09:23
lifelessI think I have enough now that on thursday I'll be integrating it with LP, and with gpgverifyd09:23
wgrantI don't see it.09:23
wgrant*For* gpgfixtures?09:23
wgrantNot quite so exciting, but it'll do.09:23
wgrantStill no MP diff...09:26
wgrantBut no scriptactivity whinging yet.09:26
StevenKrvba: I've pushed my branch up: lp:~stevenk/launchpad/private-bug-unsubscribe-confirm09:31
StevenKrvba: If you bzr di -r submit: you can see what I've done, and where I've tried to add ConfirmationOverlay -- a helpful hint for that bit would be most welcome.09:32
rvbaStevenK: looking.09:33
jmlI'm trying to patch lazr.restfulclient09:33
jmlIn the absence of hacking instructions, I'm running bootstrap then buildout09:33
jmlBut buildout fails09:33
jmlError: Couldn't find a distribution for 'lazr.restful==0.16.0'.09:33
wgrantlifeless: assertNotEqual(None, [...])?09:34
wgrantlifeless: Shouldn't it be assertIsNot?09:34
stuballenap: In what circumstances will _loads get a byte string?09:34
stuballenap: re: your Storm MP09:34
StevenKrvba: It's 7:35pm here, so I'll be in and out09:35
allenapstub: Not sure :) Just being cautious because of weirdness in simplejson/json.09:35
pooliejml, wow good luck09:35
stuballenap: Right. I suspect you only need to force it it the _dumps(). The _loads() worries me as you are hardcoding UTF-8, which is incorrect.09:36
jmlpoolie: thanks.09:36
jml*someone* has to do it :)09:36
rvbaStevenK: okay. I'll send you an email with comments ...09:36
pooliei don't know about that, but i did run in to confusion caused by its pth file09:36
poolieit seems hard to run it from source if you also have the package installed09:36
rvbaStevenK: but I'm surprised that you don't even pass a submit_fn function to ConfirmationOverlay.09:36
allenapstub: From what I can remember, that's what json.loads() assumes given a byte string containing non-ASCII characters.09:37
lifelesswgrant: thats a shrug thing09:37
lifelesswgrant: they are equivalent09:37
allenapstub: I'm happy to remove the _loads() stuff though; I only need the _dumps() fix.09:37
stuballenap: If you do find byte strings being passed into _loads(), we need to know where they are coming from to confirm they are indeed UTF-8 (or what encoding, eg. if they are coming from a DB storing stuff in cp125209:37
lifelesswgrant: (in this case)09:38
rvbaStevenK: can you just give me an idea about how I can test this?09:38
lifelessstub: evening09:38
lifelessstub: Sorry about the shenanigans around pgbouncer09:38
stuballenap: If the tests pass, I think that would be best. I'll mention this with the rest of the review.09:38
allenapstub: So, perhaps there should be an assertion in there, that value is unicode?09:38
lifelessjml: you need a buildout cache09:38
lifelessjml: or to specify to buildout that it can run online09:39
lifelessjml: there is a shared cache like the lp one, for lazr libraries.09:39
jmllifeless: it was downloading all of the other things slowly enough that I thought it was online09:39
stuballenap: Fine with me.09:39
lifelessjml: hmm, perhaps it is then.09:39
allenapstub: Cool, thanks.09:39
lifelessjml: if so, is 0.16.0 still on pypi09:39
wgrantjelmer: Anything special about your import-colocated-branches branch?09:40
stublifeless: No worries. I'd be interested in what jenkins saw. I doubt the stdout/stderr issue would be at fault, but perhaps the socket open caused problems in that environment?09:40
wgrantjelmer: It is not making the MP diff generator happy.09:40
wgrantAt all.09:40
jmllifeless: umm, where exactly?09:40
lifelessstub: StevenK can hook you up with the hanging that happened09:40
stubStevenK: You have a pastebin of anything interesting?09:40
lifelessjml: http://pypi.python.org/pypi/lazr.restful09:41
jmllifeless: I don't see any download links there09:41
lifelessthere is a link to lp's +download page there09:41
jmllifeless: and buildout can figure out to download the tarball from there?09:42
lifelesswho knows09:42
lifelessI don't :)09:42
stubCan we switch to jenkins yet? Supporting both buildbot and jenkins envs seems a pain as they seem to flake out in different ways.09:42
lifelessstub: parallel test project may be a good time to switch09:42
stubAny blockers apart from time?09:42
lifelessI'm told IS are now actually running jenkins instances for other departments, so that hurdle is past.09:43
jelmerwgrant: Hmm, not that I'm aware of09:43
lifelessno blockers that I'm aware of; just need tuits to migrate processes across09:43
lifelessstub: hey, so great work on fastdowntime09:43
stubYup. The second 90%09:43
wgrantlifeless: It needs to run in the DC, and not on an unsupported cloud.09:43
gmbwgrant: I'm going to assume that you're no longer OCRing.09:45
wgrantjelmer: Hm, and now it's recovered.09:45
stubwgrant: We can cannibalise the buildbot env if we want. Its just time and losa/dev coordination.09:45
gmb(For the purposes of the /topic)09:45
wgrantgmb: I was just about to remove myself.09:45
=== gmb changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | On call reviewer: gmb | Critical bugs: 263 - 0:[########*** stack smashing detected ***: ./lp terminated
stublifeless: Ta. Seems to be working as planned.09:46
wgrantstub: http://www.postgresql.org/about/featuredetail/feature.213 looks handy.09:46
wgrantstub: Is that what we needed for branchrevision?09:46
stubwgrant: yes.09:46
StevenKrvba: The easiest way to test it is to create a local user by using make-lp-user, and then create a private bug in a harness with the owner as the user you created. Then browse to the bug, log in as yourself, hit Edit bug mail, and then the unsubscribe link.09:46
wgrantstub: You may be interested to know that we had similar lag spikes both times this week.09:46
wgrantFrom :25-29 or so.09:47
wgrantI think it's karma finishing.09:47
StevenKstub: You wanted to know about the indexes I needed?09:47
rvbaStevenK: okay, thanks.09:47
lifelessis this week ubuntu beta or next?09:47
StevenKlifeless: Beta 1 is already out, dude.09:47
stubwgrant: Yup. I expect it somewhat. Did the last run have the lag high water mark set to 60 seconds?09:47
lifelessstub: not 1.09:47
lifelessStevenK: not 1.09:47
StevenKFail :-P09:47
wgrantBeta 2 is the 22nd09:48
wgrantSo next week.09:48
StevenKlifeless: Look at the ReleaseSchedule? :-P09:48
wgrantstub: I'm not sure; I didn't see numbers.09:48
StevenKrvba: I'm surprised that made any sense :-P09:48
lifelessactually https://dev.launchpad.net/DowntimeDeploymentSchedule is what I needed09:48
lifelesswe have a multi-day no-fdt period during ubuntu release weeks09:48
stubSo I'd love if there is a push button make-virtual-lp-dev-environment script for when I switch to Oneric, and it is an opertunity to get everyone into identical dev environments.09:49
rvbaStevenK: ;)09:49
lifelessstub: the lxc stuff is pretty close to that.09:49
StevenKstub: Oh, Jenkins -- https://lpci.wedontsleep.org/job/devel/lastFailedBuild/consoleText09:50
cjwatsonwgrant: care to give https://launchpad.net/~mvo/+archive/apt-ftparchive-lucid/+packages a spin?09:50
lifelessstub: for FDT going forward - I would like us to be very strict one-patch-at-a-time for the next few weeks.09:50
stublifeless: agreed09:50
StevenKstub: I wanted to get the indexes in http://bazaar.launchpad.net/~stevenk/launchpad/denorm-bspph-indices/view/head:/database/schema/patch-2208-87-1.sql applied to prod, what do you think?09:50
lifelessstub: prove our reliability and get some feeling for how things behave.09:50
lifelessstub: cool, thanks!09:51
jelmerwgrant: it has a prerequisite which was already merged, perhaps that's confusing it?09:51
stubStevenK: Fine.09:51
jelmerwgrant: I got two "Launchpad internal failure" emails, which I couldn't explain. Would those perhaps be related?09:51
lifelessok, gnight everyone - see you thursday.09:51
jmllifeless: g'night09:51
stubStevenK: Is there somewhere to log the live patch requests? I forget.09:51
wgrantjelmer: Do they have OOPS IDs?09:51
wgrantlifeless: Night!09:51
* jml downloads a likely looking tarball and stuffs it into a cache09:51
stublifeless: o709:51
StevenKstub: So I should craft a script and prod a friendly LOSA?09:52
wgrantjml: I wonder if 0.16.0 has migrated off the first +download batch, so buildout can't see it any more.09:52
jmlwgrant: that occurred to me also09:52
StevenKstub: Which worked out *so* well for me last time :-(09:52
stubStevenK: Nah, me or the losas do that. I'll get to it later, but if there is somewhere to log them then there is less of a chance of it being lost :)09:52
jelmerwgrant: yep, OOPS-2082MPJ309:52
StevenKstub: I'll give you a friendly prod in a few hours for an update?09:53
lifelessStevenK: losa explicitly won't do these09:53
lifelessStevenK: they want it automated before they touch it.09:53
stubStevenK: This is all new processes so we expect issues.09:53
jmlso, ./bin/test is supposed to work after buildout has run successfully, right?09:54
wgrantcjwatson: Looks good.09:55
wgrantcjwatson: Doesn't hang, at least.09:55
StevenKrvba: You've managed to get into a testable position?09:55
wgrantCan't really give it a real test until it's on DF.09:55
stublifeless: So a minor screwup happened when a series of scripts were put together and losa run, but the first one failed (setting a statement timeout for concurrent index rebuilds is borked). I think I need to explicitly sign off scripts to be run by losas for a while until we work out the edge cases and everyone is comfortable.09:55
rvbaStevenK: I'm just reading the code now.09:56
StevenKstub: That sounds like a good plan.09:56
rvbaStevenK: I reckon what you want to do is now exactly what ConfirmationOverlay was originally designed for.09:57
rvbaStevenK: the only required parameter right now is a 'button' and AFAIK you won't be providing one.09:59
lifelessStevenK: StevenK makes sense to me09:59
lifelessstub: makes sense to me10:00
rvbaStevenK: I think I can modify the ConfirmationOverlay a little bit more and then all you will have to do is something like this http://paste.ubuntu.com/688208/10:01
StevenKrvba: Ah, you need to make button optional?10:04
jmlSo if lazr.uri is in versions.cfg but not importable after buildout, what does that mean?10:06
=== matsubara-afk is now known as matsubara
lifelessits not in setup.py10:12
lifelessor in the transitive dependencies setup.py's.10:12
cjwatsonwgrant: can you take care of that or do I need to ask for something else (e.g. copying into the Launchpad PPA)?10:13
wgrantcjwatson: I can copy it into the Launchpad PPA, but someone needs to get it into CAT.10:15
wgrantlifeless, jml: Or you are having namespace package issues with the lazr.* stuff in Ubuntu.10:15
wgrantlifeless: But you aren't here, are you?10:16
jmlwgrant: I am here. I'm *guessing* I am.10:16
jmllifeless: it's in versions.cfg. Isn't that enough?10:16
stubStevenK: So your patch number is allocated to something different in the dbpatches branch10:16
wgrantjml: It needs to be in buildout.cfg10:16
wgrantOr setup.py.10:16
wgrantDepending on where you want it.10:16
wgrantversions.cfg just defines which version will be used if it's needed.10:16
cjwatsonwgrant: I can do that via RT.  Is that needed to get it onto dogfood?10:17
stubStevenK: You or wallyworld_ need to change, and I suspect it is you since you're still around.10:17
wgrantcjwatson: Probably.10:17
wgrantmthaddon: How can we test a new apt on mawson?10:17
lifelesswgrant: I'm not.10:17
lifelessjml: versions.cfg says 'when you need X, choose version Y'10:17
lifelessjml: it does not say 'you need X'10:17
stubStevenK: Also, your MP seems to have disappeared10:19
mthaddonwgrant: you can ask for it to be installed there...10:19
StevenKstub: It has, yes. The branch still there10:19
StevenKstub: I can resurrect it10:19
wgrantmthaddon: Before it's in CAT? :)10:19
stubStevenK: It needs a MP, as it needs to land on db-devel.10:19
jmlAdding it to install_requires and running buildout doesn't seem to change anything10:20
mthaddonwgrant: that would be part of what you're asking - for it to be in a -cat suite that's only on mawson10:20
StevenKstub: Let me jump to -87-210:20
wgrantmthaddon: :(10:21
wgrantmthaddon: OK.10:21
mthaddonwgrant: why sad face?10:21
wgrantmthaddon: I was hoping for a quick wget and dpkg -i to test the fix. Not unexpected that it would be denied, but inconvenient :)10:22
wgrantcjwatson: Can you file the RT?10:22
wgrantcjwatson: I'm trying to not be here.10:22
StevenKstub: https://code.launchpad.net/~stevenk/launchpad/denorm-bspph-indices/+merge/7514910:23
wgrantOr I could just unpack the deb on mawson and hack LP to use a non-packaged version, but that might be evil.10:23
stubStevenK: Want me to allocate the patch number or are you doing that?10:24
StevenKstub: I'll do it now.10:24
cjwatsonwgrant: sure.10:25
StevenKstub: Done.10:25
wgrantcjwatson: Thanks.10:25
* StevenK prods ackee10:29
StevenKCan haz diff10:29
wgrantMaintenance people: merge-proposal-jobs is being slow and crashing sometimes.10:30
wgrantpls fix.10:30
wgrantgmb: ^^10:30
gmbwgrant: Is there a bug for it?10:31
wgrantgmb: Not for the stuff that's shown up tonight, no.10:32
wgrantgmb: But abentley has been working on related stuff.10:32
wgrantI would grab him, except he won't be around for 3 hoursish.10:32
gmbwgrant: Okay. I'll grab him when he appears.10:32
gmbThanks for the heads-up10:32
wgrantgmb: It may be more urgent than that.10:32
StevenKstub: Requested a review of you on the MP, when you're ready10:33
wgrantit needs to be watched. it may recover again in a few minutes.10:33
wgrantBut it took half an hour to work again when it died 2 hours ago.10:33
gmbwgrant: Okay. I'll keep an eye on it.10:33
gmbBut my knowledge of it is close to 0, so I might be reduced to prodding and going "oh, it's dead"10:34
gmbBut I'll do my best.10:34
jmlHmm. OK. I think this *is* a namespace issue10:34
jmlmy guess is that it's finding lazr.uri of the correct version on my system and thus not installing it.10:35
wgrantjml: Yeah, that's been a problem sometimes :/10:35
wgrantjml: Python namespace package support is awesome, see.10:35
jmlwgrant: what's the solution?10:35
wgrantAnd lazr does a spectacularly bad job at it.10:35
wgrantI tended to remove python-lazr.uri.10:35
wgrantBut that's probably not practical any more.10:35
jmlwgrant: that removes a lot of stuff. apport, for example10:36
wgrantYeah, not very practical any more.10:37
wgrantWhat if you run with python -S?10:37
wgrantLike LP does.10:37
wgrantYes, i know, that's Zope-grade evil, but it might work.10:37
jml./bin/test already runs with python -S10:37
jmlI guess ./bin/buildout needs to be run with that...10:37
jmlnope, it is too10:38
bigjoolsjml is a lean mean bug filing machine10:39
jtvgmb: review pretty please w/cherry on top?  https://code.launchpad.net/~jtv/launchpad/bug-844550/+merge/7515010:39
Riddelldpm: hi10:41
Riddellwhat's a good time before a release to do a call for translations (for bzr)?10:41
Riddelltwo weeks?10:41
dpmRiddell, yeah, 2 weeks is a good rule of thumb10:42
stubStevenK: Can you please lp-land that branch? (no need to shove it through ec2) I'd do it, but lp-land is bitching about missing revisions10:45
gmbjtv: sure10:45
jtvthanks—feel free to skip much of the cover letter if it doesn't interest you.10:46
jtvMostly just writing it for historical record, and as proof that this has been thought about and discussed.  :)10:46
* jml moves on to launchpadlib10:48
jtvcjwatson: what ever happened to your multi-arch translations branch?10:48
jtvStill got a ticket on my board for landing it once I get word that it's been updated.10:48
wgrantIt's landed and deployed.10:48
wgrantBut not active, because we're waiting on an apt-ftparchive fix.10:48
wgrantjtv: ^^10:49
jtvOK, then I'll retire the ticket.10:49
Riddelldpm: and where's the place to announce it?10:52
cjwatsonjtv: right, you can drop that ticket; I'll drive the apt-ftparchive deployment bits (though I'll need wgrant's help to test on dogfood once RT#47856 is resolved) and I'll deal with flicking the API switch at an appropriate time10:55
_mup_Bug #47856: Screenshot needs to be updated <Ubuntu Website:Fix Released> < https://launchpad.net/bugs/47856 >10:55
cjwatsonjtv: thanks10:55
jtvAlready done, thanks.10:56
jtvcjwatson: also, we're very close to deploying the final commit that will make all Debian SPPHs Published instead of Pending.10:56
* cjwatson nods10:57
cjwatsonthe ubuntu-dev-tools change to just do status=Published is already out10:58
rvbagmb: Hi, could you please review this mp? https://code.launchpad.net/~rvb/launchpad/confirmationoverlay-button-optional/+merge/7515410:59
gmbrvba: Sure10:59
rvbaThank you.10:59
gmbjtv: I'm not sure whether to be worried or not: You branch is one of the clearest, best explained Soyuz branches I've ever read (though bigjools's branches are also usually equally clear). I must congratulate you, on the assumption that Soyuz hasn't got simpler and I haven't got any smarter - you've done an excellent job.11:07
jtvgmb: that's easy then—yes, you should be worried.  Thanks.  :)11:08
dpmRiddell, I'd suggest launchpad-translators(AT)lists(DOT)launchpad(DOT)net and ubuntu-translators(AT)lists(DOT)ubuntu(DOT)com11:09
gmbjtv: approved, with one comment about making the test a bit easier to understand (at least for us lackwits)11:13
jtvgmb: thanks.  Insert obrant about why it's a good thing that you asked for an improvement.  :-)11:15
gmbrvba: r=me with one minor tweak requested.11:19
rvbagmb: thanks.11:20
* gmb lunches11:22
nigelbwgrant: hi11:36
nigelbwgrant: Were you able to reproduce the KHTML issue on your machine?11:36
nigelbI can't see it in Maverick.11:36
StevenKstub: Absolutely11:36
stubStevenK: I just landed that branch11:36
StevenKstub: How did you fix the missing revisions thing?11:37
wgrantnigelb: I haven't tested.11:37
nigelbOh ok. I fear I may have to download debian sid just to test.11:38
nigelbHrm, I wonder...11:38
stubStevenK: By using lp-land properly, as it only designed to land the branch you are in (so branch your branch and run lp-propose in that directory)11:38
nigelbI could install it into a chroot and ask it to use the right display.11:38
StevenKstub: Right, right. The indexes on are prod live now too?11:39
stubStevenK: All except the master, which is blocked until gina finishes up its current transaction11:40
=== henninge is now known as henninge-lunch
StevenKstub: Which could take hours11:42
stubStevenK: The statement should complete fine when it commits.11:42
stubStevenK: It won't take hours, as the transaction reapers are still enabled...11:43
wgrantjelmer: Is anything blocking your two approved import branches from landing?11:49
wgrantimport-colocated-branches and http-git-support11:49
jelmerwgrant: they're in ec2 at the moment11:49
wgrantjelmer: Excellent, thanks.11:49
jelmerwgrant: There was a test failure I had to fix and having a local lp setup was blocking me from that.11:49
jelmer(yay for lxc)11:49
nigelbOh, you got it working?11:50
* nigelb is tempted to upgrade to Oneiric.11:50
jelmernigelb: oneiric is the reason I'm trying lxc in the first place :)11:51
jtvError in test lp.codehosting.puller.tests.test_scheduler.TestPullerMasterIntegration.test_mirror_with_destination_locked_by_another11:51
jtvUpcoming buildbot failure.  :(11:51
nigelbjtv: I thought wgrant was the nostradamus here. :P11:51
wgrantI actually noticed it a couple of minutes ago, and was searching through the old builds to find what leaked.11:52
jtvOh, there's a whole bunch more.  :( :(11:52
wgrantBut I can't find anything.11:52
wgrantThis is spurious, but it means our diagnosis was wrong.11:52
jtvAttributeError: 'TestPullerMasterIntegration' object has no attribute '_lock_actions'11:52
wgrantThere's more broken than we thought.11:52
jtvThis is going to hold up the commit for Gina.11:52
stubIs the lxc setup pretty well scripted or documented, or does it require a clue?11:52
wgrantstub: It's well-documented.11:52
wgrantstub: Works best on oneiric, but mostly works on natty.11:52
stubThis will be Oneiric11:53
jtvwgrant: that AttributeError doesn't strike me as particularly spurious, especially given the number of errors.11:53
wgrantjtv: You would think.11:53
wgrantBut it is.11:53
wgrantjtv: This is one of the types of error that's been showing up for 3 weeks now.11:54
wgrantWe'll clean leaked processes from the buildbot slave, force the build, and it will be happy again.11:54
wgrantAnd then we'll abandon buildbot in favour of Jenkins, and all will be good.11:54
=== salgado_ is now known as salgado
StevenKrvba: Any news re: button becoming optional ?12:06
rvbaStevenK: The branch is in ec2.12:06
StevenKrvba: Nice, thanks!12:06
rvbaStevenK: https://code.launchpad.net/~rvb/launchpad/confirmationoverlay-button-optional/+merge/7515412:07
rvbaStevenK: I've added an example on the MP.12:07
rvbaI mean an example usage*12:07
nigelbrvba: Love your example :)12:12
rvbanigelb: ;)12:12
=== henninge-lunch is now known as henninge
jtvbigjools, rvba, StevenK, wgrant: mind a dogfood update right now?12:23
rvbajtv: fine by me.12:24
wgrantjtv: Go ahead, if you haven't already.12:27
nigelbDid I break buildbot? :(12:41
nigelbjtv: Is this the failure you predicted?12:41
jtvnigelb: I don't think you broke it.12:41
jtvYou may have broken one of the pieces that you see on the floor, but…12:41
jtvBut yes, this is the failure I predicted.  Now bow before your oracle!12:42
wgrantAh, gary_poster!12:42
wgrantgary_poster: buildbot is being friendly again, this time without an unnoticed failure in the previous run :(12:42
gary_posterwgrant, joyful12:43
allenapIs there likely to be any fallout from running bzr upgrade lp:lazr.uri?>12:51
gary_posterwgrant, did you look at it?  I have other things going on, but ISTM that lp.codehosting.puller.tests.test_scheduler.TestPullerMasterIntegration.test_mirror_with_destination_locked_by_another broke, for unknown fragility reasons, and everything else fell apart afterwards because of it.  I'll simply disable the test and file a bug unless you or someone else has a better idea.12:53
wgrantgary_poster: I hope so.12:53
wgrantgary_poster: Sounds like a good plan.12:53
stubAny objections to me killing staging and qastaging for a few seconds to QA my Librarian outage behaviour revision?12:54
gary_posterallenap, thinking...yes...12:55
gary_posterallenap, oh we do that with eggs12:55
gary_posterso it's probably fine, actually12:55
allenapgary_poster: Cool. Let the mayhem begin...12:56
gary_poster(the only thing I know of that we have to worry about with bzr upgrade scenarios is buildbot and ec2 images for stuff we get in sourcecode)12:56
allenapThat didn't last long; I can't write.12:56
gary_posterLET THE MAYHEM BEG...oh.12:57
gary_posterodd that you can't write.  Lemme look12:57
allenapgary_poster: It's PQM managed. Didn't realise before.12:57
gary_posterah ok allenap12:57
gary_posterhm, I didn't think we had our "extras" under PQM control12:58
allenapYeah, odd. Oh well. I think I'll gently put that can of worms back on the shelf (i.e. I don't want to break PQM).12:59
jmljkakar: hey, fwiw, I'm trying to resurrect https://code.launchpad.net/~jkakar/launchpadlib/fake-launchpad/+merge/2639113:00
jtvwgrant: I wonder if I shouldn't just remove Gina's dry-run mode, if it's not even tested anyway.  Far too risky.13:12
wgrantjtv: It's not tested?13:12
wgrantIt's clearly not tested very well.13:12
wgrantBut it may be tested.13:12
jtvWell… an unconditional commit did not break any tests.13:12
wgrantIt doesn't somehow abort earlier?13:13
jtvNope, nope, nope.13:13
jtvInsert a commit somewhere in an obscure place to reduce transaction durations, and kaboom.13:13
jtvMay already be happening for all we know.13:13
wgrantThat's quite useful.13:13
jtvbigjools: your guidance wanted.13:14
bigjoolswhu what?13:14
jtvbigjools: Gina has a dry-run mode.13:15
jtvIt seems to run the whole script in one huge transaction, and then not commit.13:15
jtvNot tested.13:15
jtvWe don't know of it works as advertised.13:16
jtvWant me to test it (script run in test, and who knows, fixes) or remove it?13:16
bigjoolsfirst question, do we need a dry run mode?13:16
bigjoolsIOW, how does it help us?13:17
jtvWell since young Will here had no idea it even existed, I was wondering whether you might know the answer.13:17
bigjoolsI don't I'm afraid, the Gina code has been barely touched in years, well before I started working on LP13:17
bigjoolsbut I can help with some probing questions13:18
bigjoolswhich might be slighly leading13:18
jtvI was nowhere near the cottage.13:18
jtvNot that there was a cottage!13:18
bigjoolsI hereby name you Geoff13:18
nigelbI fully expected bigjools to give a Yoda-ish answer. bigjools, I am disappoint.13:21
bigjoolsit was too risque, so I PMed it :)13:21
nigelbYeah, channel' logged. Good idea.13:22
nigelbThis reminds me. Is #launchpad-reviewers used at all?13:22
jtv*I* was of course referring to the opening episode of The Black Adder.13:23
jtvnigelb: no, that's obsolete.13:23
bigjoolsnigelb: no it's not13:23
nigelbHrm, okay.13:24
jtvbigjools: so about these probing questions you promised..?13:24
nigelbI noticed it in the logs.13:24
bigjoolsjtv: I asked the first above, no answer yet!13:24
jtvDoes it help us?  “Not me, not William, clearly not you.  Someone else out there maybe, but who would know but Julian?”13:25
bigjoolsjtv: I cannot think of a use for it either13:25
jtvSo… zap it?13:26
bigjoolsyup, blow it13:26
nigelbMore desctruction \o/13:27
jtvWell, with the "away" added, yes.13:27
LPCIBotYippie, build fixed!13:28
LPCIBotProject devel build #1,065: FIXED in 4 hr 10 min: https://lpci.wedontsleep.org/job/devel/1065/13:28
rvbaabentley: Hi.  I'd like your help to make codehosting run locally. I'm failing to push branches locally and see them on my local instance.13:35
rvbaI'm reading  https://dev.launchpad.net/Code/HowToUseCodehostingLocally.13:35
abentleyrvba: on the phone13:35
rvbaabentley: Okay, please ping we when you're available then (http://paste.ubuntu.com/688322/ is what I've done).13:36
StevenKrvba: Are you using make run_codehosting ?13:36
rvbaI also tried to create the missing directory manually but then nothing seems to be picked up by make sync_branches.13:36
rvbaStevenK: yes.13:37
StevenKrvba: bzr push lp://dev/~foo/bar/baz should work with the following .ssh/config snippet: http://pastebin.ubuntu.com/688323/13:37
wgrantDamn, sinzui is quick.13:40
wgrantAnd he's not even here.13:40
nigelbwgrant: Did he reply to your email?13:41
nigelbIts all a hidden plot to not make you sleep :)13:41
wgrantHe reviewed it within 2 minutes :(13:41
bigjoolswgrant: there's a subtle bug in that MP13:42
bigjoolsyou need dedent("""\ (with the backslash)13:42
wgrantI hate that.13:43
wgrantSo I called strip() instead.13:43
bigjoolsmissed that13:43
bigjoolsdunno which is more ugly tbh13:43
wgrantI know. But one doesn't involve a backslash, so I tend to go with that.13:43
bigjoolsit's once place where I prefer it13:43
wgrantI don't know.13:43
bigjoolsdedent sucks13:44
wgrantDerivation is done.13:44
wgrantWell, DSD creation seems to be sort of screwed.13:45
wgrantAhh, maybe the jobs haven't run yet.13:45
wgrantSo they could all be resolved in a few minutes.13:45
rvbaStevenK: this is what I get now :( http://paste.ubuntu.com/688331/13:45
wgrantIn fact, they're vanishing as I watch.13:46
wgrantOr appearing.13:46
rvbaAnd I can see the connection failing in the logs of make run_codehosting13:46
bigjoolsit pulls from RELEASE remember13:46
wgrantbigjools: Ah, and DSDs look at updates too.13:46
wgrantYeah, the ones I saw first were the same version.13:47
wgrantBut the jobrunner killed those off quickly.13:47
wgrantNow we are settling down into sensible -updates or -security diffs.13:47
bigjoolsthere's an argument to pull from -security as well I guess13:47
allenapgmb: Got time for a ~200 liner? https://code.launchpad.net/~allenap/launchpad/series-init-failure-explanations-bug-835024-db/+merge/7518313:48
gmballenap: For you? Sure13:48
StevenKrvba: I am about to head to bed, but you want to run that against a DB that has had make-lp-user ran across it, and then mkdir foo ; cd foo ; bzr init ; bzr push lp://dev/~rvba/+junk/foo13:48
allenapgmb: You're very kind :)13:48
rvbaStevenK: that's precisely what I did.13:48
rvbaStevenK: good night :)13:48
gmbOr misguided :)13:48
StevenKrvba: Then that's terrible.13:48
rvbaStevenK: I'll ask abentley when he is available.13:49
abentleyrvba: I think you have a stale socket file for the codehosting forker process in /tmp13:50
wgrantrvba: Check that you don't have a stale forking service pid in /var/tmp13:50
wgrantyeah, socket, not pid13:50
wgrantWhat he said.13:50
* rvba checks13:50
rvbaabentley: wgrant that was it. Branch pushed all right ... let see if make sync_branches works.13:53
rvbaabentley: StevenK wgrant make sync_branches worked! Thanks for your help guys.13:57
abentleyrvba: You're welcome.13:57
wgrantrvba: Excellent.13:57
wgrantabentley: merge-proposal-jobs blew up a bit this evening, from around 5 hours ago.13:58
wgrantabentley: You may want to check the logs to see if it's anything new.13:58
wgrantAs I see you have yet more improvements to this area.13:58
gmballenap: Am I right in thinking that the reason for this branch is that it does most of the encode/decode work for us and we're left to just use loads() and dumps() as appropriate?13:59
nigelbwgrant: Well done driving abently away :P13:59
gmballenap: Or does the Storm JSON type avoid us having to use loads() and dumps() at all?14:00
* gmb might be getting confused by the diff14:00
allenapgmb: We don't have to do the loads() or dumps() either.14:00
allenapgmb: There's a bulk job creation bit which still needs to dumps() because it composes SQL directly.14:00
abentleywgrant: none of my improvements have been deployed yet.  I had to roll them back when QA failed.14:01
wgrantabentley: Ah :( that would explain the failures that I thought were fixed.14:03
gmballenap: All looks sane. r=me14:03
allenapgmb: Thanks!14:03
jkakarjml: Awesome!  I've basically ditched it... but I'm happy to help if need be.14:08
jmljkakar: thanks.14:08
jmljkakar: actually, I do have one question about _create_resource14:08
jmljkakar: it seems that if you get something back from a method, you have no good way of determining if it's a collection or an entry.14:08
jkakarjml: Am on a call, but ask here now, I'll take a look at the code again, and answer when I'm off the phone.14:08
jmljkakar: ok. thanks.14:09
nigelbWhen does devel get merged into db-devel? By buildbot?14:10
wgrantnigelb: buildbot-poller merges stable into db-devel once buildbot passes it.14:10
nigelbso, I have to wait because of builtbot breakage.14:10
bigjoolsI hate browsers14:10
wgrantnigelb: You can't land your DB patch until we have deployed your stuff, anyway.14:11
nigelbArgh, ok.14:11
nigelbNeed to just work on js-oopsd then.14:11
nigelbwgrant: I call conspiracy on that ;P14:16
wgrantIt is, I admit, rather convenient, since I want the window tomorrow for meeeee. But it's also true!14:17
nigelbAlso, I don't think I'll ever forget about grepping the whole tree next time.14:17
wgrantbzr grep is your friend.14:18
nigelbI've lost count of the number of times StevenK and bigjools have already told me that.14:18
=== almaisan-away is now known as al-maisan
jtvgmb: perhaps you'd like to review this one as well?  Not much to see, really.  https://code.launchpad.net/~jtv/launchpad/bug-848954/+merge/7518814:35
gmbjtv: Sure.14:35
stubnigelb: Your db patch dropping BugTask.statusexplanation had test failures. Didn't look like anything taxing but I didn't have a chance to look today.14:35
gmbjtv: Points for referring to wgrant as "Young Will"14:36
gmbjtv: Approved with one question about a somewhat opaque (to me, anyway) error message.14:40
jtvgmb: I suspect nobody's going to know much more about that message, so I might as well try to do something about it.  Hang on.14:42
=== salgado is now known as salgado-lunch
jtvgmb: if it's any consolation, I've already asked Julian for permission to be left alone in a locked room with Gina and Katie for a while, so I can give them a stern talking to.14:46
gmbjtv: I'm not hung up on the idea of that message changing before it lands, but it seems like an opportune moment.14:47
jtvYeah, this is stuff that can do with any drive-by improvement.14:48
jtvIncluding the one that this branch is about: “Oh, there may be a feature there.  I think I broke it.  Let's destroy it.”14:48
jtvgmb: the diff has updated.14:51
* gmb looks14:51
jtvFor some reason the page won't display very legibly on my browser.14:51
jtvBut that's probably just a bad connection.14:52
gmbjtv: It looks good from here. Nice change, thanks!14:52
jtvThank you.14:53
jmljkakar: also, I think I'm going to kill the testresources stuff15:12
nigelbHrm, just missed stub15:16
=== bigjools is now known as bigjools-otp
jkakarjml: That was a long call... am off now.15:21
=== salgado-lunch is now known as salgado
jmljkakar: yay15:22
jmljkakar: my earlier question still stands...15:22
jkakarjml: Uhm, if I remember correctly, the reason for not knowing whether something is a collection or not is that you can't (or couldn't, maybe you can now) tell whether something is a collection from the WSDL.15:22
jmljkakar: right. so leonardr's comment about trying to return a FakeCollection from methods is ... invalid?15:22
jkakarMaybe there's a convention that you can use to tell... or something?  I rememeber it being pretty confusing (WSDL in general, in addition to the way it's used by Launchpad).15:22
* jkakar looks again15:22
jmljkakar: I'm ignoring lifeless's suggestion about including a timestamp and doing IMS. Also ignoring suggestions to move to lazr.restfulclient.15:24
jkakarjml: I don't understand leonardr's comment/question/suggestion.15:24
jmljkakar: I'm currently preparing a smaller wadl file for testing15:24
jkakarjml: Awesome!15:24
jmljkakar: and have replaced the wadl file that you included with the official 1.0 wadl file15:24
jkakarjml: Why do you want to drop testresources support...?15:24
jmljkakar: because it makes it harder to use alternate wadls15:24
jkakarjml: Yeah, flacoste was quite keen to have it be downloaded when tests run, as I recall.15:24
jmljkakar: not "drop" per se, just not export it15:24
jkakarjml: You could pass one in, I guess... but anyway, the testresources stuff is sugar, not a big deal.15:25
jkakarjml: I'm not very happy with a test suite that *needs* net access, but I could live with it.15:25
jmljkakar: I've also added FakeEntry and FakeRoot15:25
jmljkakar: I'm not making it need net access15:25
jmljkakar: just bundling 1.0 and putting a suggestion in the docs that you might like to download your own to test against.15:26
jkakarjml: Cool... I meant that in reference to the (old) request from flacoste that the WSDL be downloaded automatically.15:26
jmljkakar: oh right. ugh.15:26
jmljkakar: also, I've expanded the docstring to http://paste.ubuntu.com/688401/15:26
jkakarjml: Anyway, I'm really happy you're picking up that branch.  Sorry the code is so crap... it was a bit of a discovery process, since I discovered the WSDL file as I went.15:27
jmljkakar: I'm going to ignore poolie's suggestions about changing the API15:27
jmljkakar: and about not doing XML parsing15:27
jmljkakar: the code is fine. I still haven't discovered WSDL yet, so maybe I'm behind :)15:27
jkakarjml: I remember being surprised that wadllib didn't actually do much with WADL files.  I expected it to be an API to the WADL file, but it wasn't (maybe that's changed, it's been a long time).15:28
jmljkakar: oh yeah :)15:28
jkakarjml: WSDL is, uhm, fantastic! :)15:28
jmljkakar: I think I'll leave that particular box closed for now.15:29
jkakarjml: Cool.  Great work on the docstring, thanks.15:29
jmldoes having the docs in the wadl actually *help* the client?15:30
jkakarNow I'm totally confused about the difference between WADL and WSDL... uhm, I think I've been using them interchangeably...15:34
jkakarI guess we care about WADL, not WSDL, only because we have a wadllib and not a wsdllib. :)15:34
jmlOK. Done.15:48
jmlgmb: Can you please review: https://code.launchpad.net/~jml/launchpadlib/fake-launchpad/+merge/7521115:48
gmbjml: Sure.15:48
jmlgmb: thanks.15:48
nigelbHi! I'd like to run this by someone for sensibility. Javascript related.15:48
nigelbCurrently, we harvest bug links and send them to an internal API for checking if they're valid/accessible.15:49
jmlgmb: I have to go in 10m, fwiw.15:49
nigelbCan I add a feature to pull out bug title from that?15:49
gmbjml: Okay, no woirries. I'll put any questions in the mp.15:49
nigelbderyck: Hi, around?15:51
derycknigelb, hi, I am.  Just about to break for lunch though.  but what's up?15:52
nigelbderyck: I saw you were marked as javascript person, so I just wanted to run something by you15:52
jkakar"<jml> Not doing this. If you really care about it, perhaps you could do it." <-- Awesome. :)15:52
derycknigelb, ok, cool.  go for it.15:53
adeuringgmb: could you please review this mp: https://code.launchpad.net/~adeuring/launchpad/cronscript-for-hwdb-report-fixes/+merge/75214 ?15:54
=== beuno is now known as beuno-lunch
gmbjml: E_5000_LINE_DIFF15:54
nigelbderyck: I'd like to add to the javascript that checks if the linked bugs in pages are valid by updating the "title" attribute of the <a> with the bug's title15:54
gmbadeuring: I shall add it to my queue; not sure I'll get to it by EOD.15:55
jmlgmb: most of that is boring WADL diff.15:55
adeuringgmb: ok, np15:55
jmlgmb: there's instructions on the linked mp for how to get a sane diff.15:55
gmbjml: Ah, good, I'm just waiting for that to load...15:55
derycknigelb, ok, sounds fine15:55
* gmb wonders if it's LP or his connection that's being odd15:55
nigelbderyck: cool! I'll file a bug and start doing it :)15:55
nigelbderyck: Thanks!15:56
derycknigelb, subscribe me to the bug please15:56
deryckand np!15:56
nigelbokay :)15:56
=== bigjools-otp is now known as bigjools
gmbjml: The saner diff is still 979 lines. I'm afraid I won't be able to get through all of this before EOD, and I need to be gone at 6 on the dot tonight.16:04
gmbYou might be better off finding someone at the start of tomorrow.16:04
sinzuicompiz/unity is very unstable today. I am restarting as a last resort to get control of my windows.16:11
nigelbIs there documenation somwhere of what's returned by IBugTask.search?16:22
nigelbI see how to call it, parameters, etc.16:23
danilosmatsubara, hi, I can't see OOPSes from ackee-bzrsyncd in OOPS reports (eg OOPS-2075SMS19) that's in /srv/launchpad.net-logs/scripts/ackee-bzrsyncd/branch-scanner/2011-09-06 on devpad; are these directories perhaps ignored?16:26
matsubaradanilos, let me take a look16:27
danilosmatsubara, thanks16:27
danilossinzui, hi, do you think you'd have a minute to chat about bug 480123? basically, while it sounds the solution is "simple", I am sure we need to worry about what's going to break, and you probably have a few other ideas of what's to look out for?16:31
_mup_Bug #480123: Milestone names/version should be unique to series <escalated> <linaro> <lp-registry> <Launchpad itself:Triaged> < https://launchpad.net/bugs/480123 >16:31
sinzuiit is not simple16:32
sinzuiWe tried to fix that in 2009 and failed,. we reverted the schema changes after 2 months on no progress16:32
=== deryck is now known as deryck[lunch]
sinzuidanilos, mumble, skype?16:34
danilossinzui, skype works better for me, "danilo.segan"16:35
gmbadeuring: Approved, but you need to change the "# Disabled because of bug ..." comments to XXXs for clarity.16:36
adeuringgmb: ah, right! thanks!16:36
danilosabentley, hi, we have an escalated bug which is a (non-DB) timeout in "ScanBranch" jobs, could you perhaps look at bug 808930 and comment if you have any ideas of where one would start (i.e. could we somehow look into speeding these operations up for gcc-linaro project, checking if they are using stacked repos and whatever gives us the best performance)16:51
_mup_Bug #808930: Timeout running branch scanner job <escalated> <linaro> <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/808930 >16:51
abentleydanilos: I think the way to close this bug is to optimize bzr.17:06
abentleydanilos: I would start by downloading the branch locally and profiling the script.17:07
danilosabentley, right, thanks for the input17:08
abentleydanilos: it is already using the fastest bzrlib operations I know of.  I wrote the script, and I also wrote the Graph operations, several years before that.17:10
abentleydanilos: it's possible the algorithm could be improved.  it's also possible that we have to switch to C or Pyrex to get that performance.17:11
abentleydanilos: Or we may need to implement a greatest-distance-from-origin cache in order to get good performance.17:12
abentleydanilos: jam has also done a lot of work in this area, and may have advice.17:12
james_whi, can someone tell me what caching may be involved in producing/serving +temp-meeting-export?17:14
james_whitting that URL repeatedly gives back results of varying staleness17:14
nigelbI was just about to ask :)17:14
danilosabentley, right, at the moment I was just looking for some more info other than "this is slow"; I hope you don't mind me pasting your input on the bug?17:15
abentleydanilos: feel free.17:16
=== beuno-lunch is now known as beuno
danilosabentley, thanks again17:21
abentleydanilos: np17:21
sinzuidanilos, lp:~edwin-grubbs/launchpad/bug-174468-milestone-release-overlap should contain chunk of code it its history that made milestones unique to the series. I do not see that in the history though. The branch lived for many weeks and it is very confusing.17:24
sinzuidanilos, I can see from my discussion that changes to uniqueness will has a few themes of work: product-release-finder, project groups and ProjectMilestone, sorting milestones (wants debversion)17:26
danilossinzui, right, thanks, I'll add that to my notes17:27
danilossinzui, the DB patch in r7278 does change the unique constraint, fwiw17:30
=== deryck[lunch] is now known as deryck
danilosjames_w, hi, do you think you'd have a few mins to talk about what you need out of bug 480123?17:38
_mup_Bug #480123: Milestone names/version should be unique to series <escalated> <linaro> <lp-registry> <Launchpad itself:Triaged> < https://launchpad.net/bugs/480123 >17:38
james_wdanilos, hi, yes17:38
james_wbut not now17:38
james_wI need to get some food17:38
james_wdanilos, I'll forward you what I sent to flacoste, and then you can let me know if it's sufficient17:39
danilosjames_w, ok, I am not going to be around for much longer today, so we can perhaps talk tomorrow17:39
danilosjames_w, excellent, that's even better17:39
james_wdanilos, sent17:40
james_wI'll be happy to talk if it's not clear from that17:40
danilosjames_w, cool, thanks, this should give me a better idea of what you need, I'll have to wrap my head around it first :)17:42
nigelbderyck: Hey, could you give me a quick hand with BugTask.search? How do I find out what it returns?17:48
derycknigelb, I believe it returns a result set of bugtasks.  Let me look to confirm....17:50
derycknigelb, how I'm checking is to go to the method in lp.bugs.model.bugtasks17:50
nigelbI'm there as well :)17:50
nigelbI'm looking at _search()17:50
nigelbsince that's what seems to be called.17:50
nigelbI think storm is what's confusing me there.17:50
derycknigelb, yeah, you're in the right place.  and see the comment about what it returns.17:51
nigelbhrm, yes17:52
=== al-maisan is now known as almaisan-away
=== matsubara is now known as matsubara-lunch
abentleygmb: I suspect you're no longer OCR.18:41
gmbabentley: You suspect correctly. I shall remedy this falsehood presently.18:42
=== gmb changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | On call reviewer: - | Critical bugs: 263 - 0:[########*** stack smashing detected ***: ./lp terminated
abentleyderyck: Since there's no OCR, could you review https://code.launchpad.net/~abentley/launchpad/daily-build-disabled-archive/+merge/75239 ?18:43
deryckabentley, sure18:44
deryckabentley, r=me.  nice, succinct, and good change.18:47
abentleyderyck: thanks.18:47
deryckabentley, np18:47
=== almaisan-away is now known as al-maisan
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugs: 263 - 0:[########*** stack smashing detected ***: ./lp terminated
=== matsubara-lunch is now known as matsubara
nigelbI thought you were supposed to be away.19:44
nigelbderyck: Still around?19:58
nigelbI er have an implementation confusion19:58
derycknigelb, I am.  just tending to a few things, but ask away.  I'll answer as I can.20:05
nigelbHrm. I may have sorted this. Verifying.20:21
nigelbHrm. No.20:22
nigelbCurrently, we post all the branch URLs and all the bug urls to +check-links20:22
nigelbThis returns a JSON with invalid_branch_links and invalid_bug_links20:22
nigelbI'll how to now modify how this works a bit more non-trivially than I thought.20:23
=== al-maisan is now known as almaisan-away
m4n1shis there a way to be subscribed to all bugs related to a product, but exclude selected tags. Example I want to free myself of all the apport bugs20:55
m4n1shthey have the tag "apport-crash"20:55
nigelbinstead of +, use - I think.20:55
cr3in lazr.restful, is there a way to export a parameter, not an operation, as another name?20:56
m4n1shnigelb: where?20:56
nigelbm4n1sh: URL20:57
nigelbm4n1sh: what project is this?20:57
m4n1shnigelb: for this https://bugs.launchpad.net/ubuntu/+source/zeitgeist20:57
m4n1shwant to make myself free of apport-crash bugs20:57
m4n1shhundreds of them are filed in a week20:58
m4n1shdue to zeitgeist being installed by default20:58
nigelbm4n1sh: https://bugs.launchpad.net/ubuntu/+source/zeitgeist/+bugs?field.tag=-apport-crash20:58
m4n1shyes then?20:58
m4n1shthat is just for filtering20:59
m4n1shbut for subscription20:59
m4n1shlooks like there is no such right now20:59
m4n1shneed to file a bug - to be marked as wishlist20:59
m4n1shbtw against which package should I file?20:59
=== almaisan-away is now known as al-maisan
lifelesssure there is20:59
nigelbI wonder if you can do -apport-crash in the subscription.20:59
lifelessuse an advanced subscription21:00
m4n1shlifeless: used that21:00
m4n1shthat is "include tags"21:00
m4n1shlifeless: I want all minus specific tags21:00
lifelessah, then perhaps file a bug yes.21:00
m4n1shagainst which module?21:00
m4n1shah. I thought foundations21:00
nigelbI don't think there are modules anymore.21:00
m4n1shI mean like lazr.restful21:00
m4n1shetc etc21:01
nigelblifeless: Could you quickly review what I'm doing for the bug autolinkifying?21:01
lifelessm4n1sh: lazr.restful is a piece of code, launchpad-foundations was a sub-team of the launchpad team, but it no longer exists post restructure21:02
m4n1shso right now how many pieces are there?21:02
m4n1shonly launchpad?21:02
lifelessm4n1sh: in what sense?21:02
m4n1shlike lazr.restful, launchpad etc etc21:03
lifelessorganisationally or bits of software?21:03
nigelblazr.restful is not launchpad only.21:03
nigelbthings like malone, blueprints, are all launchpad.21:03
m4n1shbits of software on which launchpad is dependent on21:03
lifelessm4n1sh: several hundred21:03
m4n1shwhich are part of launchpad, but developed as seperate project21:03
lifelessm4n1sh: about 50 of which we are the primary developers of21:03
nigelbI think I added one to that list :P21:04
m4n1shlaunchpadlib also comes under launchpad.net/launchpad ?21:04
lifelessm4n1sh: no, only the launchpad source code is managed at /launchpad. Components etc all have their own bugtrackers. malone and so forth are not (currently) components, they are just part of the launchpad source code21:05
nigelbYep. JS OOPS Daemon.21:05
m4n1shah yes21:05
m4n1shthat is what I was asking21:05
m4n1shlike loggerhead is developed seperate21:05
m4n1shwadllib etc21:06
_mup_Bug #849429: Subscription: Allow the option of selectively blacklisting certain bug tags. In short add tag blacklisting <Launchpad itself:New> < https://launchpad.net/bugs/849429 >21:09
jmlgmb: thanks anyway21:20
nigelbI think I just murdered some javascript. Gah.21:21
bacnigelb: as they say in Texas: it needed murdering21:22
nigelbI took some perfectly generic javascript and made it specific.21:23
nigelbJust realized I can make it generic with my changes as well. So fixing that.21:23
nigelbHow evil am I?21:24
nigelbWe went from http://paste.ubuntu.com/688640 to http://paste.ubuntu.com/68863921:24
nigelbWith changes in Javascript to deal with that.21:25
flacostebac: you got my unprompted review :-)21:48
bacflacoste: great, thanks21:48
nigelbNow I understand why debugging launchpad js is nightmare.21:49
flacostebac: well, you might not thank me after you read it :-)21:50
bacflacoste: i'd read it.  i was just being nice.21:50
flacostebac: do these comments make sense? i might be dreaming21:51
* flacoste does reality cehck21:51
=== matsubara is now known as matsubara-afk
bacflacoste: i think so.  i'll have to look at the db procedure that updates the date_last_message. shouldn't be a problem21:51
bacflacoste: i'd assumed (incorrrectly) that the triggers for that were sensible and what we wanted...21:52
flacostebac: ok, thanks for working on that btw21:53
bacflacoste: np.  i'm off tomorrow but will wrap it up thursday21:53
nigelbAnyone around for some evil javascript review? I don't need a full review, but just help on whether it looks okay.22:08
=== salgado is now known as salgado-afk
nigelbflacoste: Do you have a quick few minutes?22:16
nigelbI guess not. I'll grab some other javascript-y person tomorrow.22:31
lifelessbenji: re semver: you might also like reading the libtool soname rules22:32
benjisounds like my kind of reading material22:33
nigelbbenji: Hey, could check something for evilness? :)22:34
benjinigelb: if it's pretty quick, I have two chilli-cheese-onion-dogs with my name on them22:35
lifelessbenji: http://www.gnu.org/s/libtool/manual/html_node/Updating-version-info.html22:35
lifeless"try to set the interface numbers so that they correspond to the release number of your package. This is an abuse that only fosters misunderstanding of the purpose of library versions."22:36
nigelbbenji: https://code.launchpad.net/~nigelbabu/launchpad/bug-title-849121/+merge/7526722:36
nigelbYou don't need to actually do a full review22:36
lifelessbah, 'Never ...'22:36
benjithanks lifeless, I've put that in a tab in my reading-for-after-the-kids-are-in-bed window22:36
nigelbbenji: Its a WIP. There's some code to be deleted in that. And *lots* of tests to be fixed. And javascript needs testing.22:37
nigelbBut I need help with the sanity of my approach :)22:37
benjinigelb: it looks good to me, the only questionable thing is hand-building the bug links (line 35 of the diff), there is a mechanism to build those links for you22:39
nigelbbenji: I don't think so. I can't use canonical_url for that.22:39
benjinigelb: may be, it's not a big sin (but I worry about the day we want to change our URL structure and all of these one-off URL generation sites have to be changed)22:40
benjiI really have to go now.  Later.22:40
nigelbbenji: Thanks!22:40
nigelbI shall make it better over the week :)22:41
nigelbJavascript - 0; Nigel - 1.22:41
mwhudsonnigelb: is what you are doing going to make bug titles reappear when i mouse over "bug 1234" in text?22:46
_mup_Bug #1234: Gina is an unmaintainable mess of command line options, environment variables and shell scripts <lp-foundations> <Launchpad itself:Fix Released by debonzi> < https://launchpad.net/bugs/1234 >22:46
nigelbmwhudson: Yes22:47
mwhudsonnigelb: hooray22:47
mwhudsonnigelb: are you coming to orlando so i can buy you a beer?22:48
nigelbNo, I'm not :)22:48
mwhudsonah well, i'm sure i'll get the chance eventually22:48
nigelbBut I'll try to come for the next european one :)22:48
nigelbmwhudson: I took the generic XHR updating framework and extended it to deal with valid and invalid.22:50
* nigelb dreads broken tests22:50
=== al-maisan is now known as almaisan-away

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