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

lifelesszopelessappserverlayer00:09
lifelesswgrant: you're going to laugh at this00:19
lifelesswgrant: in between the tears.00:19
wgrantI hope so.00:19
lifelesswgrant: ZASL runs up the codehosting server.00:19
lifelesswgrant: that calls into private-xmlrpc00:19
lifelesswgrant: thats raising oopses because of disconnected stores00:19
wgrantZASL itself shouldn't start codehosting...00:20
wgrantUnless it's pretty different from AppServerLayer, which it shouldn't be since I made ZopelessLayer and FunctionalLayer almost equal.00:20
lifelesswait, there is more00:21
lifelesswe also get a disconnectionerrror: terminating connection due to administrator command00:22
wgrantWhere are you running this?00:22
lifelesswgrant: -> because the test db reset code pulls the db out from under the slave appserver00:22
wgrantLocally?00:22
lifelesswgrant: yes, totally reproducable00:22
wgrantYou need the new storm.00:22
lifelesson lucid ?00:22
wgrantYes.00:22
wgrantlibpq5 8.4.9 breaks everything.00:23
wgrantDestroyed buildbot on Friday.00:23
wgrantec2 isn't affected yet.00:23
lifelessthis is 8.4.3-100:23
wgrantNew Storm is in devel now.00:23
wgrantAh.00:23
wgrantMaybe your analysis is correct, then.00:23
lifelessmaybe :)00:23
lifelessthe reason it happens only when two tests are run00:23
lifelessis that we have a brand new appserver if we only run one test00:24
wgrantYep.00:24
wgrantStill, this looks similar to the libpq5 issue...00:24
wgrantExactly the same thing.00:24
wgrantlibrarian was broken after the first test.00:25
lifelesshow so ?00:25
lifelessI thought that was it not detecting the disconnect ?00:25
wgrantRight.00:25
lifelessthis detects it fine00:25
wgrantIf this is a DisconnectionError, it's probably working.00:25
lifelessits raised from storm.database line 376 _check_disconnect00:25
lifelessyes, it is detecting it00:25
lifelesswe're just oopsing - correctly - because the db was yanked without telling the appserver00:26
lifelessso I should say, rather than 'codehosting is started' the test using bzr transports and these are backing onto xmlrpc requests in some fashion00:28
lifelessand bingo00:29
lifelessthe db is being dropped after the test, rather than the sequences reset00:29
lifelessI'm now totally confident of the analysis, but wtf to do about it00:29
lifelessI think I'll expect 1 or 9 oopses00:30
lifelessalong with an XXX about this00:30
lifelesswgrant: as my victim^Wreviewer, how do you feel about this00:30
wgrantlifeless: The DB will be dropped if it's dirty.00:34
wgrantI think that's probably fine.00:34
wgrantAs long as it is really 1 or 9 :)00:34
lifelessbug 88403600:35
_mup_Bug #884036: db layer test resets interact badly with slave appserver instances <Launchpad itself:Triaged> < https://launchpad.net/bugs/884036 >00:35
lifelesssee if that convinces you00:36
lifelesssecond oops added now00:36
wgrantSounds good.00:39
wgrantlifeless: https://code.launchpad.net/~wgrant/launchpad/cte-it-up/+merge/8076700:43
wgrant2.5s->1.6s on qastaging00:44
lifelesswgrant: does this change +bugs as well? or just BugTask:* ?00:44
wgrantlifeless: +bugs as well. Do you want that checked too?00:45
lifelessuhm yes.00:45
lifelessjust cause, well, EPIC TIMEOUTS00:46
wgrantIt should in theory be a significant improvement. But let's see.00:46
lifelessrev 14156 of my branch is up; Could you please incremental review anything you haven't, and I'll land.00:46
wgrantErmm.00:47
wgrantThis isn't landable...00:47
wgrantThere is no rabbit on prod, and the fallback is flaky at best.00:47
lifelesswith no rabbit it will behave as it did befre00:48
lifeless*before*00:48
wgrantAnd the moment we have rabbit, all OOPSes will disappear.00:48
wgrantAlso, BSON.00:48
lifelesswhats flaky about the fallback ?00:48
wgrantIf rabbit is up but amqp2disk hasn't set up its queue bindings, OOPSes go to nowhere.00:48
wgrantAnd that's just what I've noticed.00:48
lifelessthats how loosely coupled works.00:49
wgrantYes, but it's not how production should work.00:49
lifelessIts not a defect, its expected. I'm hoping to get that side of it sorted later today.00:49
wgranteg. qastaging and staging have rabbit, no amqp2disk.00:49
lifelesswe can disable the config for them. Or get amqp2disk up and live.00:49
wgrantDo that before landing.00:49
lifelesssure00:50
lifelessbut whats flaky?00:50
lifelessor was that code for 'new world order does not have the same guarantees' ?00:50
wgrantIt only works if rabbit is entirely unconnectable, and it's not exactly well-tested.00:50
lifelesswgrant: its tested in oops-amqp; the tests there pull rabbit out from under it00:51
lifelesswgrant: rabbit config isn't, and shouldn't, be the business of the oops producer00:51
wgrantSure.00:51
wgrantBut as your branch is now, as soon as rabbitmq is live on production then we lose all error reporting.00:51
lifelessIFF the queue isn't setup00:52
wgrantWhich it probably won't be.00:52
lifelessseparate issue; we can toggle off the oops exchange very very easily.00:52
lifeless(in prodconfigs)00:52
wgrantlol prodconfigs easily00:52
lifelessmore easily than landing this00:53
lifelesschange, push, review, pqm-submit.00:53
wgrantlifeless: Why is UnknownRemoteError now permitted in test_runner.py?00:55
lifelesswgrant: because python OOM is nondeterministic00:56
lifelesswgrant: I ran it in a loop and didn't get MemoryError every time00:56
wgrantBut that invalidates the test...00:56
wgrantAlso, isn't the setUpQueue call in sync() racy?00:57
lifelessI can put it back, but I expect some buildbot failures as a result00:57
wgrantI don't see why it needs a new queue.00:57
lifelesswgrant: because auto_delete00:57
wgrantThey would be legitimate failures.00:57
wgrantThe current test is not flaky.00:57
wgrantAh.00:58
wgrantFair point.00:58
lifelesswgrant: I bet it is00:58
wgrantStill racy, but acceptable.00:58
wgrantlifeless: It's never been a problem before.00:58
lifelesswgrant: poolie ran into a race the other day, last happened 4 years ago.00:58
lifelesswgrant: doesn't make it less of a race00:58
wgrantEven so.00:58
lifelessI can put it back.00:58
wgrantIt makes it an invalid test.00:58
lifelessBut I think the test lies today00:58
lifelessthe test isn't valid00:58
poolielifeless: two races00:58
wgrantBetter to have it failing and then disabled.00:59
wgrantThan left entirely invalid.00:59
pooliei guess it is the spring racing carnival in launchpad too00:59
wgrantlifeless: Perhaps it's because you were running it i386?00:59
StevenKwallyworld_: I've made the changes you mentioned for https://code.launchpad.net/~stevenk/launchpad/hide-create-new-ppa-open-team/+merge/80650 . Can you have another look so I can ec2 it?01:00
lifelesswgrant: yes, I am01:00
lifelesswgrant: I have no particular interest in this; the runner code doesn't generate MemoryError synthetically, by checking for ulimit violations etc - it depends on the python runtime only ever raising MemoryError AFAICT (grepping for MemoryError ..)01:01
lifelesswgrant: so pick a preferred resolution, and I'll do it.01:01
wgrantlifeless: Your INTERACTIVE_TESTS change concerns me. Doesn't that mean we're just not going to see any oopses from the appserver?01:02
lifelesswgrant: myself, I'm quite sure that we will eventually hit whatever point in CPython caused UnknownRemoteError01:02
wgrantlifeless: Sure, but I'd prefer to have a flaky or disabled test, rather than one that doesn't actually test.01:03
lifelesswgrant: no tests look for them, and its *only* yuixhr that uses this code path01:03
lifelesswgrant: depends on the intent of the test; I think 'raises promptly' is sufficiently narrow.01:03
wgrantOh, it's in testapp, right.01:03
lifelesswgrant: we don't depend on catching MemoryError anywhere (damn straight)01:03
lifelesswgrant: so the -only- impact on broadening the exceptions is that the test suite lines up with the OOPS reports01:04
lifelesswgrant: [if/when we see this in prod]01:04
wgrantlifeless: Hm, UnknownRemoteError is probably txamqp...01:04
lifelesswgrant: txamp do you mean ?01:04
wgrantYes.01:04
wgrantI fail.01:04
wgrantSo, I'd prefer it if you reverted that change.01:05
wgrantIf it is a problem, we can unrevert it.01:05
lifelessit is in Twisted AMP yes01:05
lifelesssure, I will (it is a problem)01:05
wgrantIt's not a problem.01:06
wgrantIt may be on i386, but nobody's noticed that before :)01:06
lifelesslet me just thrash carob's pagecache01:08
wgrantOh?01:09
lifelesslaunchpad.net-logs$ grep UnknownRemoteError . -r01:09
wgrantAh01:10
wgrantThat seems unwise...01:10
wgrantIt's like 150GB or more.01:10
wgrantOr was it 250GB01:10
wgrantI can't quite remember.01:10
lifelessserial IO ftw01:10
wgrantI still contend that carob's disks are actually a NAS in NZ.01:10
lifelessI could grep faster if they were01:11
lifelessanything else ?01:11
* StevenK prods wallyworld_.01:12
wallyworld_ouch01:12
StevenK[12:00] < StevenK> wallyworld_: I've made the changes you mentioned for https://code.launchpad.net/~stevenk/launchpad/hide-create-new-ppa-open-team/+merge/80650 . Can you have another look so I can ec2 it?01:13
wallyworld_sure.01:13
wgrantlifeless: I think that's about it.01:13
lifelessok, so I'll push th revert to test_memory_hob_job, toss at ec2, and we'll see what we see01:15
wallyworld_StevenK: '%s/+activate-ppa' % canonical_url(team) -> canonical_url(team, view_name='+activate-ppa')01:15
wallyworld_other than that, looks good thanks01:17
lifelesswgrant: can as approved vote?01:17
StevenKwallyworld_: Thank you for the Approve.01:20
wallyworld_np.01:20
wgrantlifeless: Done.01:20
lifelessthanks01:24
wgrantlifeless: Erm.01:25
wgrantWhat did I say about not landing this.01:26
wgrantI approved mostly given that you were going to get at least (qa)staging fixed first :)01:26
wgrant(and no, "It'll be done soon" is not valid)01:26
lifelesswgrant: I'm working on that right now01:31
wgrantIf it's not done by the time ec2 finishes, please kill the ec2 instance.01:31
lifelessthat would be a waste01:32
wgrantLet's not get into another 2-month cart-before-the-horse situation like we did with fastdowntime.01:32
lifelessif its not ready I'll change prodconf to disable the key in staging01:32
lifelesswgrant: you exaggerate there01:32
wgrantNo...01:32
lifelesswgrant: I'm not about to block the deployment pipeline for any extended period01:32
lifelesswgrant: I'm well aware of its impact, given I've done most of the analysis and discussion to demonstrate that01:33
wgrantYou are about to significantly hinder the crisis analysis process, though.01:33
lifelessI'm about to change the exact recipe needed01:33
lifelessgrep still works, data can still be easily view01:33
lifelessed01:33
wgrantNo, grep doesn't still work.01:34
wgrantI can't grep for ^Exception-Type: RequestExpired now.01:34
lifelessyes it does, bson stores strings as length: prefix, so you can do exactly that.01:34
lifelessjust phrased -very slightly- differently.01:34
wgrantI am close to rescinding my approval.01:35
lifelesswhy?01:36
wgrant1) all (qa)staging OOPSes will be lost unless you sort things out in the next few hours.01:36
lifeless1) hystrionics, I've outlined 2 solid workarounds and taken responsibility for having them sorted.01:37
wgrant2) oops-tools is mostly useless, and this breaks shell pipelines.01:37
lifeless2) has had 3? more? weeks for folk to respond to the get-out-and-try aspect, and there are also recipes in that same thread to deal.01:37
wgrantWe already had three expressions of disapproval.01:38
wgrantIn addition to my initial one.01:38
lifelessaaron asked why; stuart noted about readability with an anecdote from ISD who are doing noone-knows-what, and gary was -0.5 accepting my argument about greppability01:41
lifelessI have been trying and playing around, and I'm satisfied I can do the analyses I was previously doing.01:43
lifelessHave you experimented, or are you just concerned about the possible impact?01:43
wgrantI know that my usual method for analysing performances crises now has to be rewritten in Python, or invoke Python thousands of times.01:44
lifelesshow do you know that ?01:45
wgrantBecause it relies on selecting on and extracting fields and parts of fields from OOPSes.01:45
lifelessso, its an assumption. Thats ok, but its useful to be clear.01:46
lifelessyou are assuming, without trying, that grep and sed can't extract what you want from bson.01:47
lifelessyou may be right, you may not be.01:47
lifelessI'm more worried about the url interactions than the change to bson; oops-tools has shocking understanding of urls-are-text01:49
lifelessfor instance our appserver generated urls are unicode01:49
wgrantI'm not too concerned about how it interacts with oops-tools.01:49
lifelessso we may end up double encoding for a day or two, which is tolerable but annoying01:49
wgrantoops-tools isn't critical, and can be fixed.01:49
wgrantlifeless: +bugs seems to be much faster on qastaging, with the CTE patch.01:53
wgrantFTI Ubuntu searches are still timing out, but they were before too so I suspect the index is just cold.01:53
lifelessok.01:53
lifelessuhm01:53
lifelessjust for insurance, lets FF this01:53
lifelessits a particularly sensitive bit of code01:53
wgrantk01:54
wgrantIt's all about to become a lot simpler, but until then...01:54
lifelessI'm sure the FF will be overkill01:55
lifelessbut I'll feel a whole lot happier having it :)01:55
wgrantIndeed.01:55
wgranttest_bugtask_search is terrible :(02:08
wgrantA slow base test case with dozens of derivatives.02:08
lifelessyes02:09
wgrantlifeless: It's now behind a flag, with a few strategic tests duplicated to test both paths. The new function is ugly as hell, but at least it should be safe :)02:16
lifelesswgrant: thank you very much!02:16
wgrantBah, but now I have to ec2 it :(02:17
lifelesswhat could possibly go wrong02:17
wgrantThe FF check will probably introduce a new query sometimes :(02:17
wgrantWhich could break some query limit tests.02:17
lifelessmost of them have some deliberate fat02:18
lifelesswith a generous backstop, but yes, it could02:18
wgrantI've been meaning to do a test run with the matcher ensuring a lower bound as well.02:19
wgrantSome of them are waaaaay high now.02:19
StevenKBah, I can't have my change in create_initialized_view, too many things can't be canonical_url()'d.02:27
pooliewhat's a CTE?03:22
wgrantpoolie: Common Table Expression03:25
wgrantDefined by the WITH clause.03:25
poolieok03:27
StevenKwgrant: Is QA for r14209 on your list this afterrnoon?03:36
wgrantStevenK: That's the userCanView change?03:37
StevenKYeah03:37
wgrantIt's semi-ok.03:37
StevenKqa-ok-ish03:37
StevenK?03:37
wgrantLiveable, but not ideal. I'm hoping that an improvement will land before someone tries to deploy.03:38
StevenKWe have a large amount of European QA before that rev.03:38
wgrantYes.03:38
lifelesshttp://research.microsoft.com/en-us/news/features/nagappan-100609.aspx is a good read04:08
pooliecan someone quickly review http://readthedocs.org/docs/judge/en/latest/ for me04:09
poolielifeless: that is interesting04:11
poolieit would be interesting to study: how good are developers at predicting which factors drive quality on their projects04:12
lifelessindeed04:22
pooliewhat should i do now?04:28
lifelesspartay04:29
nigelbheh04:30
nigelbmorning! :)04:30
pooliehi nigelb04:35
nigelbHey poolie04:37
spmo/ nigelb04:47
nigelbohai spm :)04:47
nigelbUgh, I now officially hate the expiring membership email.05:24
spmyeah? ok then. INSERT into teams VALUES nibelb WHERE team has expiringing_membership;05:50
spmspelling to be optional.05:50
StevenKspm: Let me give you a cronjob that will reset nigelb's memberships to expire in seven days. Every day.05:51
spmStevenK: approved.05:51
spmthis wouldn't be excessive abuse of power would it? :sincerity:05:51
nigelbhah06:13
nigelbStevenK, spm: Love you too :P06:13
spm:-)06:14
lifelesswgrant: you said txlongpoll was bust07:00
lifelesswgrant: in that it didn't accept a queue name prefix, right ?07:00
wgrantlifeless: Yes.07:00
lifelessis bigjools aware of this? And that its a blocker to the deploy ?07:00
wgrantI believe Red is aware.07:00
wgrantHowever, AFAIK they are unaware that anybody is using rabbit except them.07:01
wgrantSo they are probably unaware that the fix is time-critical.07:01
lifelesswgrant: there is no bug on https://bugs.launchpad.net/txlongpoll07:06
lifelesswgrant: as you know the details, could you make one please?07:07
wgrantHmm, rvba said he was going to file one.07:08
wgrantI left it with him, since it was well after midnight.07:08
lifelessthe rt claims that read is only on ^longpoll.*07:08
lifelessso there is access control in place07:09
wgrantThat is a start.07:09
wgrantPersonally I'd prefer the old behaviour to be revived.07:10
lifelessI'm not sure what that is; thus my encouragement for you to file a bug :)07:11
lifelesshmm07:11
lifelessmy branch has been running from 0140 through to 070807:12
lifelessI suspect a stupidly overloaded host07:12
wgrantlifeless: I just had a branch take 4:4507:12
wgrantWhich is longer than normal.07:12
lifelesshmm07:13
lifelessI suspect that that sync() in cleanUp is a problem07:13
lifelessI have another trace here that took 6.5 hours07:13
lifelessI'll land a branch immediately to remove the trailing sync()07:13
lifeless[given I only added it while debugging that rosetta zopelessappserver test issue, I know its not needed know]07:14
wgrantAh.07:14
lifelessits the only think I can think of that would add 100% test time07:15
lifelessunless the rabbit layer reset is heinous, but I didn't change that, nor add it to more than a few dozen tests07:16
lifelesswgrant: I suspect both the sync and the existence/presence of poor ec2 loading07:18
lifelesswgrant: did we decide setting mandatory wouldn't work ?07:19
wgrantlifeless: We can't necessarily receive the response.07:20
lifelesswgrant: did we do an experiment ?07:20
wgrantNo.07:20
* StevenK has clearly forgotten how to drive subunit07:21
wgrantBut we'd need to asynchronously detect the basic.return, and then $something.07:21
wgrantBut I don't think amqplib exposes basic.returns.07:21
StevenKI have a subunit stream and I want to see which tests failed or gave an error07:21
lifelessStevenK: subunit-filter --no-skip --no-passthrough | subunit-ls07:21
lifelessStevenK: or testr load < stream; testr failing07:22
lifeless(or testr failing --list)07:22
lifelessStevenK: or tribunal < stream07:22
StevenKsubunit-filter --no-success --no-passthrough --error --failure < lp.log | subunit-ls07:22
StevenKThat gives me a traceback07:22
lifelessStevenK: you're making it hard for yourself :)07:23
lifelessStevenK: 3 of those options are the defaults07:23
lifelessStevenK: also whats the tb you get?07:23
StevenKBroken pipe07:24
lifelesssubunit-filter is probably erroring07:24
StevenKSo one of subunit-filter or subunit-ls is misbehaving07:24
lifelesstry one of my recipes above07:24
=== jbepsilon_ is now known as jbepsilon
lifelessStevenK: ?07:29
StevenKSorry, got distracted. Your recipe works fine07:30
StevenK"subunit-filter --no-success --no-passthrough --error --failure < lp.log 1>/dev/null" doesn't produce any output on stderr07:30
lifelessits a legitimate set of options07:31
lifelessI'm not sure why you had a tb07:31
lifelessconceivably the pipe was closed with no output I guess07:32
lifelessit works for me, fwiw07:32
StevenKlifeless: http://pastebin.ubuntu.com/724060/07:33
lifelesswgrant: so, you'll file a bug| get rvba to ?07:33
lifelessStevenK: the first tb is the issue07:33
wgrantlifeless: I'll ask rvba for the latest news.07:33
lifelessStevenK: Can you reproduce with a current subunit ?07:33
lifelessStevenK: (what does dpkg -l python-subunit say)07:33
StevenKlifeless: 0.0.6-307:34
lifelesstry 0.0.707:35
StevenKSuch a pity, Mr Bond.07:35
nigelbheh07:38
jelmerlifeless: that reminds me, can you add a tag for 0.0.7 on lp:subunit?07:50
lifelessjelmer: probably, there isn't one ?07:51
lifelessjelmer: it'll be just tip07:51
lifelessjelmer: :!bzr log -r -107:51
lifeless------------------------------------------------------------07:51
lifelessrevno: 15207:51
lifelesstags: 0.0.707:51
jelmerlifeless: "bzr tags -d lp:subunit" doesn't list a 0.0.707:51
jelmerlifeless: perhaps that tag is local?07:51
lifelessjelmer: if so, I blame bzr07:52
lifelessjelmer: hmm, diverged branches. funky.07:53
lifelessyes, somethings up. I'm going to push --overwrite and then merge trunk back in07:54
lifelessjelmer: there should be a tag now07:57
jelmerlifeless: great, thanks!07:57
lifelessuseoops has landed \o/08:17
wgrantHas the fix landed?08:20
bigjoolsMy next branch is going to be called The Eagle08:23
nigelbJust to announce its landing?08:23
bigjoolscorrect08:23
nigelbI'll call dibs on Airforce one and Canonical one ;)08:24
nigelbWho's at UDS? francis, matt, dan..and?08:26
bigjoolsthat's about it IIRC08:28
bigjoolsoh one of the US guys too08:28
adeuringgood morning08:32
lifelesswgrant: its about to start ec208:32
wgrantnigelb: I thought it was Francie, Matt, Deryck and Curtis. Didn't know Dan was going too.08:45
lifelessnew kid, doing the rounds :)08:46
lifelessbigjools: is rvba in today?08:54
bigjoolslifeless: doesn't look like it09:01
nigelbbigjools / wgrant - Thanks :)09:16
bigjoolsI'd quite like to be there again, was the best UDS hotel in ages09:16
nigelbheh09:17
nigelbI wish I could be there. I regret skipping this UDS>09:17
nigelbbigjools: Will you be at the next one? :)09:18
nigelbToo bad I missed you last UDS.09:19
bigjoolsyou walked right past me there :)09:19
nigelb:(09:19
nigelbThat's the UDS where I asked Francis "Are you a launchpad guy?" :D09:19
bigjoolsas for the next one, no idea, we don't decide until shortly before who's going09:19
nigelbAh!09:20
\shmoins09:20
\shdear lp-devs how difficult will it be, to change someones launchpad id from X to Y ?09:21
nigelbIts easy to do the change.09:21
nigelbTHe repurcusions might make some time to fix ^-^09:21
bigjools\sh: the answer is "it depends"09:21
nigelbAnd its not a launchpad problem. Its an SSO thing.09:21
wgrantSSO actually steals that data from us.09:22
wgrantIt's a Launchpad thing.09:22
wgrant\sh: Unless you have a PPA, you can just change it.09:22
\shbigjools, let's say, I would like to request to change my launchpad-id from shermann to sadig09:22
bigjools\sh: then as wgrant says09:22
nigelbwgrant: Meh. I think most of the time its our openid client which isn't implemented properly.09:23
\shwgrant, ok...my ppa is not a problem...so when I delete my ppa I can just change it?09:23
bigjoolsif you have any PPAs then they need to be deleted09:23
bigjoolsthen yes09:23
wgrant\sh: Yes. May have to wait up to 10 minutes for it to be completely deleted.09:23
lifeless\sh: delete the ppa, wait for a publishing cycle, visit +edit and rename it09:23
lifelessI think its +edit09:23
\shwgrant, lifeless , thx...I'm waiting now ;)09:24
* bigjools has a buildd-manager that will cancel builds \\o/09:24
StevenKbigjools: Does it also impact on the production builders too :-P09:25
jelmerbigjools: niiice!09:25
wgrantbigjools: You know that's been possible for recipe builds for a year, right? :P09:25
bigjoolswhatever09:25
lifelessrunning out of memory != cancelling :)09:26
bigjoolslol09:26
nigelbZING.09:26
wgrantThey have a cancel button which sets them to SUPERSEDED. Which actually works pretty well.09:26
bigjoolsyes but it doesn't rip the build off the builder09:26
jelmerwgrant: that doesn't kill the in-progress build though, right?09:26
bigjoolswe can set it to CANCELLED now09:27
wgrantI believe it deletes the BQ too, which would kill the in-progress build.09:27
nigelbSo, the ones that are scheduled can be canceled?09:27
nigelbOr is it the ones that are building that can be canceled.09:27
bigjoolsinteresting way of doing it09:28
bigjoolslifeless: yay for the OOPS changes!  Did you document what you said in the email in the dev wiki?10:15
lifelessbigjools: all relevant docs were updated10:16
lifelessbigjools: AFAIK10:16
lifelessbigjools: however, there weren't many ;)10:16
bigjoolsawesome10:16
lifelessbigjools: https://dev.launchpad.net/QA/OopsToolsSetup is perhaps the least likely known by ye old average LP dev10:17
bigjoolswell - the main thing is to note the stuff you wrote in the email, for posterity10:17
bigjoolsI'm going on a documentation jihad in the near future10:17
lifelessbigjools: I've given https://dev.launchpad.net/LoggingOopses a bit of a facelift too10:44
bigjoolslifeless: great!10:45
lifelessok, thats witching hour, time to EOD for a bit :)11:00
nigelbaaah.11:26
nigelbI now understand the outcome of comparing unicode incorrectly.11:26
nigelbThe unicode entry goes to the end of the list :(11:27
wgrantYep.11:28
nigelbNice that danilos is our unicode tester :D11:28
nigelbIs there a better way to do that than what I did?11:28
wgrantSadly we are left with only rvba.11:28
wgrantAnd his name is not very Unicode at all.11:28
nigelbheh11:30
nigelbIs there better way to sort unicode at the current point?11:30
nigelbI remember jtv's argument at that time being more of future oriented.11:30
lifelessneed unicode local in the DB and appservers11:35
lifelesspresumably not /hard/11:35
lifelessbut needs doing + qa11:35
nigelbah11:36
nigelbNothing I an do I suppose?11:36
nigelb*can11:37
cjwatsonbigjools: cancelled> ooh, awesome11:40
=== allenap changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: allenap | Critical bugtasks: 266
=== benji changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: allenap, benji | Critical bugtasks: 266
lifeless_nigelb: you could do it12:15
lifeless_nigelb: but indirectly; you'd need to file bugs / rt's to find out the exact current config, reproduce it, see what you want, test that, get confidence etc12:15
nigelbah12:16
bigjoolscjwatson: only for virtual builds right now though, don't get too excited12:55
bigjoolsneed to fix sbuild for non-virt12:55
cjwatsonbigjools: ah well, still a step forward12:58
bigjoolsyes, 90% of work is done12:58
bigjoolss/is/will be/ :)12:59
bigjoolsLinkedIn - just PO please12:59
=== bac` is now known as bac
cjwatsonWow.  The publisher has only just got to around cron.germinate14:49
cjwatsonWe're in serious danger of going past an hour here :-/14:49
bigjoolscjwatson: :(14:52
jcsackettsinzui: free to mumble?15:08
sinzuiyes15:08
jcsackettexcellent.15:09
danhgHey everyone at UDS, I'm Dan, the new Usability & Communications Specialist at Launchpad. I'm going to be doing lots of usability testing today, so please ping me if you're around, and would like to get involved!15:23
nigelbdanhg: #ubuntu-uds is also a nice channel to advertise :)15:25
danhgthanks nigelb, good plan!15:26
danhgAll week actually - so let me know when you're free guys!15:27
bigjoolscjwatson: yeah, it missed the run at :0015:48
bigjoolsdomination took 30m15:52
bigjoolsI figured this would happen with the arch-all changes15:52
cjwatsonthis is pretty bad - what can be done?15:56
cjwatsondon't get me wrong, I appreciate the new feature, but ...15:56
=== dpm__ is now known as dpm
=== mrevell__ is now known as mrevell
mrevelljcsackett, yo16:06
jcsackettmrevell: hello.16:06
mrevelldanilos, What's the rally project management session later all about?16:12
mrevelljcsackett, Oh hey, we're just trying to find a good time to talk to you. When suits you?16:12
jcsackettpretty much anytime today is fine. i imagine your schedule is a bit more bumpy than mine.16:12
jcsackettmrevell ^16:14
jcsackettmrevell: danhg has proposed now, which works for me.16:16
danhgCool16:17
mrevelljcsackett, Oh hey, we're just trying to find a good time to talk to you. When suits you?16:20
jcsackettmrevell: i think you meant perhaps to send another message, as that one's a repeat? :-P16:21
mrevelljcsackett, I have no idea how that happened. Hah :)16:21
=== beuno is now known as beuno-lunch
mrevelljcsackett, I think danhg is talking to you about it.16:21
jcsacketthe is indeed.16:21
jmlawk: (FILENAME=lib/lp/contrib/javascript/yui3-gallery/gallery-accordion/gallery-accordion.js FNR=2916) fatal: cannot open file `lib/lp/contrib/javascript/mustache.js' for reading (No such file or directory)16:59
jmlmake: *** [lib/canonical/launchpad/icing/build/launchpad.js] Error 216:59
jmljust got that running 'make schema'16:59
bigjoolsjml: update source?17:02
lifeless_*yawn*, morning17:48
jmlhello, sorry, was away17:48
jmlreally really want to get a working lp dev environ17:48
=== beuno-lunch is now known as beuno
lifeless_jml: utilities/update-sourcecode17:49
jmllifeless_: done that.17:49
=== lifeless_ is now known as lifeless
lifelessjml: and still doesn't want to play?17:49
jmllifeless: ahh, I know17:49
jmlforgot to run link-external-sourcecode17:50
jmlwhich appears to make the right symlink. /me makes schema again.17:50
jml... and it builds. thaks.17:57
lifelessheh, de nada17:58
nigelbMorning lifeless17:59
jmlactually, I should say what I want to do18:00
jmlI want to link to apps.ubuntu.com from Launchpad. Specifically getting package pages to link to relevant apps pages.18:00
lifelesso/ nigelb18:00
nigelbWell, I guess I should head to bed :)18:01
jmlI *think* I can get by with just a text transform, no queries.18:01
lifeless\o/ test perf fix worked18:12
lifelessTests started at approximately 2011-10-31 08:45:30.14537218:12
lifelessSource: bzr+ssh://bazaar.launchpad.net/~lifeless/launchpad/useoops r1421418:12
lifelessTarget: bzr+ssh://bazaar.launchpad.net/~launchpad-pqm/launchpad/devel/ r1421318:12
lifeless16646 tests run in 4:33:15.575714, 0 failures, 0 errors18:12
lifelessnot as svelte as perhaps it was in the past, but not 7 hours either18:12
jmlIs there a fast way of consulting Contents.gz from Launchpad code? (Is there a version in the db?)18:21
jelmerjml: the archivepublisher generates it and I'm pretty sure it doesn't store it in the database18:24
jelmerjml: what are you trying to do?18:25
jmljelmer: link to apps.ubuntu.com for a package from packages on Launchpad18:25
jmljelmer: but apps.ubuntu.com has only apps, which are packages that have desktop files18:26
jelmerjml: ah, and you need the section and the like?18:26
jmljelmer: no, just to know whether or not it has a desktop file18:26
jmle.g. https://apps.ubuntu.com/cat/applications/oneiric/evolution/ vs https://apps.ubuntu.com/cat/applications/oneiric/openssh/18:26
lifelessjml: there is a version being populated in the DB18:27
jelmerjml: do .desktop files necessarily indicate applications? IIUC it's possible to have .desktop files for non-application things18:27
lifelessjml: StevenK knows the status of that18:27
jmljelmer: that's how they make the distinction in Software Center, I'm told.18:27
lifelessjml: My first thoughts about how to implement this are:18:28
lifeless - what about derived distros ?18:28
lifeless - and if software centre knows, why not consult with it (e.g. from client js, or even from the appserver) to see whether you can link to it safely18:29
jmllifeless: I only want this for Ubuntu, not for derived distributions.18:29
james_wsoftware-center has some fudges to determine the list of apps I believe, some are ignored, others are added18:31
lifelessjml: poking at contents because thats what SC uses seems like an abstraction violation to me18:31
jmllifeless: yeah, that's another option. More implementation work than using a table LP already has, but maybe more feasible. Would probably have to add that API.18:31
james_wI wonder if apps.ubuntu.com will grow the "technical items" thing too18:31
lifelessjml: this is so folk can find out how to install the package or something?18:32
jmlIt's hard enough writing code for what exists now. Dealing with possible futures is going to make this impossible.18:32
lifelessjml: a different approach would be to embed the content you're interested in on the relevant LP pages. E.g. reviews.18:32
jelmerjml: is software center using contents.gz directly though? I thought all that data was pre-generated in app-install-data18:32
lifelessjml: In my head there are 2 services (LP and SC) and 2 UI's (LP and SC) here, so having LP's UI talk to SC's service for some stuff is totally fine.18:33
lifelessjml: (if SC is fast enough)18:33
jmllifeless: largely the motivation is to increase google juice of apps.ubuntu.com. I guess it could also help developers using LP to quickly get a sense of what their package looks like to end users.18:34
jmllifeless: would look at reviews stuff in a later iteration.18:34
jmljelmer: quite possibly.18:34
jmllifeless: agree re abstraction violation. Doesn't feel a bad enough one to stop me though. Difficulty of implementation is more persuasive18:35
lifelessjml: such violations create debt instantly18:36
lifelessjml: I'd rather we not link at all than do it poorly18:36
jmllifeless: right, but I don't even have a working prototype that I can improve at this point18:36
jmljelmer: does that change anything?18:38
jelmerjml: does what change anything? the fact the data is pregenerated?18:38
jmljelmer: yeah18:38
jelmerjml: I suspect there is more going on than just looking for .desktop files18:39
jelmerjml: probably filtering out things that are not for applications18:39
lifelessjml: I'm curious - why does apps. need google juice? I thought it was mainly a thin shell for its API used by the sc client on Ubuntu installs ?18:39
jelmerbut that's all speculation18:39
jmljelmer: OK. It's definitely possible that I was misinformed.18:39
jmljelmer: certainly using some kind of provided API would avoid that.18:39
jmllifeless: It turns out that a lot of people don't actually look at the Software Center very much. People fresh from other platforms often just open a browser to search for software, rather than looking for Software Center (or an app store or what have you). When they do that search, we want them to find http://apps.ubuntu.com – the web directory for the users.18:40
jelmerjml: it seems like a bad idea for software center to have to download a 20Mb file every time something in the archive changes18:40
jmllifeless: (paragraph from an email I was drafting)18:40
lifelessjml: interesting18:40
jmllifeless: yeah.18:41
jmllifeless: linking from LP is not the beginning & end of our approach, but it's something that would probably help.18:41
jmljelmer: well, I get the very strong impression that mvo would prefer some debtags-based solution.18:41
jelmerjml: debtags seems like a better approach for this kind of thing than inspecting Contents.gz18:42
jmljelmer: I am thinking of volunteering to add debtags support. Sort of contingent on how hard it is to add a hyperlink to a web page though :)18:43
jmlhmm.18:44
jmlI guess a naive-but-restful API is to just GET the link and then see if it 404s18:45
jmlthere's probably a way to do that without dl'ing the whole page too18:45
jmlwonder how late I can render the link and still get SEO18:46
jml(also, battery about to fail)18:46
lifelessjml: google execute js18:49
lifelessjml: so I expect quite late18:50
=== dpm__ is now known as dpm
=== fjlacoste is now known as flacoste
lifelesssinzui: hiya19:33
sinzuihello19:33
lifelesssinzui: I think we have a bug in team administration :)19:33
lifelesssinzui: see #launchpad for context. Seeking your opinion.19:34
=== mrevell_ is now known as mrevell
benjisinzui: are you aware of a way I can postpone a user's team membership expiration date?  This is in reference to this question: https://answers.launchpad.net/launchpad/+question/17702120:01
lifelessbenji: needs a duckie20:02
benjilifeless: come again?20:02
lifeless~admin ;)20:03
lifelessthe logo is, or was, a yellow rubber duck20:03
benjilifeless: I think you're saying that I should be made a member of some administrative team, ~admin doesn't seem to be it though (https://launchpad.net/~admin).  If so, who can give me such membership?20:08
lifelessbenji: I was unclear; I mean you cannot; you have to get an admin to do it.20:08
benjiah!  (where, I presume admin == LOSA)20:09
lifelessyes20:09
=== fjlacoste is now known as flacoste
=== benji changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugtasks: 266
=== micahg_ is now known as micahg
lifeless\o/ instant OOPSes on qastaging.21:36
lifelessbooyah21:36
lifelessflacoste: \o/ instant OOPSes on qastaging.21:37
lifelessbooyah21:37
flacostelifeless: awesome21:37
lifelesstry it, its spicy ;)21:38
beunolifeless, I like the word instant. Is it using rabbit or something like that?21:41
lifelessbeuno: yes21:41
beunolifeless, I WANTS21:41
beunoso you've been talking to rye, right?21:41
lifelessyes, he's production hardening the opened code base for your environment21:42
lifelessthere is a wsgi enhancement needed for your tx stack before you can widely migrate21:42
beunoawesomeness21:50
lifelessbeuno: see b.l.n/python-oops-wsgi21:57
pooliemorning22:38
wallyworld_jcsackett: r=me but i think the template still references the old public_or_private() method name22:41
jcsackettwallyworld_: yes. yes it does. i'll fix that.22:47
wallyworld_thanks :-)22:47
wallyworld_jcsackett: i assume the stuff you will be sending through contains the necessary detail to understand what needs change wrt the searching and making it clearer when things are deleted etc?22:50
jcsackettwallyworld_: indeed.22:54
wallyworld_jcsackett: the fwd email is missing the original material23:01
jcsackettwallyworld_: oh fantastic.23:02
wallyworld_:-)23:02
wgrantlifeless: https://pastebin.canonical.com/54976/ is what we used to fix the the BPBs.23:17
wgrantA similar thing over SPRBs would be good.23:17
wgrant(I'm not here today)23:17
lifelesswgrant: ah, it is damage ?23:18
wgrantlifeless: Yes, failure counting except buggy.23:19
lifelesswgrant: qastaging. Rabbit. AMQP. OOPS. WIN WIN WIN23:27
wgrantlifeless: It works?23:27
lifelesshell yes23:27
wgrantExcellent! Have we stopped rabbit to see that it falls back?23:27
lifelessnot yet23:27
lifelessbeen doing uds stuff23:27
lifelesswgrant: still, you should make qas oops and see the result.... its just nice23:33
wgrantlifeless: I already have :)23:35
wgrantIt is indeed.23:35
wgrantoops-tools needs some major hacking, but that can be done soon.23:35
wgrantlifeless: Is https://pastebin.canonical.com/55154/ a yesterday-style query?23:55
wgrantlifeless: ie. EXPLAIN ANALYZE is instant, execution is 300ms?23:55
lifelessqaqs ok?23:55
wgrantYeah.23:56
lifelessno limits  ?23:56
wgrantNone.23:56
wgrantShould be 1 row.23:56
lifeless300ms23:56
lifeless32323:56
wgrantAnd explain analyze?23:56
lifeless16223:56
lifeless16223:56
wgrantIt's 1ms on DF :/23:56
lifeless0.6ms to profile23:56
wgrantlolnot23:57
wgrantIt's not even a very unpleasant plan at all.23:58
lifelessugh23:58
lifeless  AND (TeamParticipation.team = BugSubscription.person)23:58
lifeless  AND (Person.id = TeamParticipation.team)23:58
lifelesswtf23:58
lifelessoh, via TP, I guess.23:58
lifelessnot the join I expected.23:59
wgrantStevenK: Can you QA or ignore jtv's notification refactor?23:59
lifelesswgrant: in fact, that will give N rows per subscription23:59

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