[00:09] zopelessappserverlayer [00:19] wgrant: you're going to laugh at this [00:19] wgrant: in between the tears. [00:19] I hope so. [00:19] wgrant: ZASL runs up the codehosting server. [00:19] wgrant: that calls into private-xmlrpc [00:19] wgrant: thats raising oopses because of disconnected stores [00:20] ZASL itself shouldn't start codehosting... [00:20] Unless it's pretty different from AppServerLayer, which it shouldn't be since I made ZopelessLayer and FunctionalLayer almost equal. [00:21] wait, there is more [00:22] we also get a disconnectionerrror: terminating connection due to administrator command [00:22] Where are you running this? [00:22] wgrant: -> because the test db reset code pulls the db out from under the slave appserver [00:22] Locally? [00:22] wgrant: yes, totally reproducable [00:22] You need the new storm. [00:22] on lucid ? [00:22] Yes. [00:23] libpq5 8.4.9 breaks everything. [00:23] Destroyed buildbot on Friday. [00:23] ec2 isn't affected yet. [00:23] this is 8.4.3-1 [00:23] New Storm is in devel now. [00:23] Ah. [00:23] Maybe your analysis is correct, then. [00:23] maybe :) [00:23] the reason it happens only when two tests are run [00:24] is that we have a brand new appserver if we only run one test [00:24] Yep. [00:24] Still, this looks similar to the libpq5 issue... [00:24] Exactly the same thing. [00:25] librarian was broken after the first test. [00:25] how so ? [00:25] I thought that was it not detecting the disconnect ? [00:25] Right. [00:25] this detects it fine [00:25] If this is a DisconnectionError, it's probably working. [00:25] its raised from storm.database line 376 _check_disconnect [00:25] yes, it is detecting it [00:26] we're just oopsing - correctly - because the db was yanked without telling the appserver [00:28] so I should say, rather than 'codehosting is started' the test using bzr transports and these are backing onto xmlrpc requests in some fashion [00:29] and bingo [00:29] the db is being dropped after the test, rather than the sequences reset [00:29] I'm now totally confident of the analysis, but wtf to do about it [00:30] I think I'll expect 1 or 9 oopses [00:30] along with an XXX about this [00:30] wgrant: as my victim^Wreviewer, how do you feel about this [00:34] lifeless: The DB will be dropped if it's dirty. [00:34] I think that's probably fine. [00:34] As long as it is really 1 or 9 :) [00:35] bug 884036 [00:35] <_mup_> Bug #884036: db layer test resets interact badly with slave appserver instances < https://launchpad.net/bugs/884036 > [00:36] see if that convinces you [00:36] second oops added now [00:39] Sounds good. [00:43] lifeless: https://code.launchpad.net/~wgrant/launchpad/cte-it-up/+merge/80767 [00:44] 2.5s->1.6s on qastaging [00:44] wgrant: does this change +bugs as well? or just BugTask:* ? [00:45] lifeless: +bugs as well. Do you want that checked too? [00:45] uhm yes. [00:46] just cause, well, EPIC TIMEOUTS [00:46] It should in theory be a significant improvement. But let's see. [00:46] rev 14156 of my branch is up; Could you please incremental review anything you haven't, and I'll land. [00:47] Ermm. [00:47] This isn't landable... [00:47] There is no rabbit on prod, and the fallback is flaky at best. [00:48] with no rabbit it will behave as it did befre [00:48] *before* [00:48] And the moment we have rabbit, all OOPSes will disappear. [00:48] Also, BSON. [00:48] whats flaky about the fallback ? [00:48] If rabbit is up but amqp2disk hasn't set up its queue bindings, OOPSes go to nowhere. [00:48] And that's just what I've noticed. [00:49] thats how loosely coupled works. [00:49] Yes, but it's not how production should work. [00:49] Its not a defect, its expected. I'm hoping to get that side of it sorted later today. [00:49] eg. qastaging and staging have rabbit, no amqp2disk. [00:49] we can disable the config for them. Or get amqp2disk up and live. [00:49] Do that before landing. [00:50] sure [00:50] but whats flaky? [00:50] or was that code for 'new world order does not have the same guarantees' ? [00:50] It only works if rabbit is entirely unconnectable, and it's not exactly well-tested. [00:51] wgrant: its tested in oops-amqp; the tests there pull rabbit out from under it [00:51] wgrant: rabbit config isn't, and shouldn't, be the business of the oops producer [00:51] Sure. [00:51] But as your branch is now, as soon as rabbitmq is live on production then we lose all error reporting. [00:52] IFF the queue isn't setup [00:52] Which it probably won't be. [00:52] separate issue; we can toggle off the oops exchange very very easily. [00:52] (in prodconfigs) [00:52] lol prodconfigs easily [00:53] more easily than landing this [00:53] change, push, review, pqm-submit. [00:55] lifeless: Why is UnknownRemoteError now permitted in test_runner.py? [00:56] wgrant: because python OOM is nondeterministic [00:56] wgrant: I ran it in a loop and didn't get MemoryError every time [00:56] But that invalidates the test... [00:57] Also, isn't the setUpQueue call in sync() racy? [00:57] I can put it back, but I expect some buildbot failures as a result [00:57] I don't see why it needs a new queue. [00:57] wgrant: because auto_delete [00:57] They would be legitimate failures. [00:57] The current test is not flaky. [00:58] Ah. [00:58] Fair point. [00:58] wgrant: I bet it is [00:58] Still racy, but acceptable. [00:58] lifeless: It's never been a problem before. [00:58] wgrant: poolie ran into a race the other day, last happened 4 years ago. [00:58] wgrant: doesn't make it less of a race [00:58] Even so. [00:58] I can put it back. [00:58] It makes it an invalid test. [00:58] But I think the test lies today [00:58] the test isn't valid [00:58] lifeless: two races [00:59] Better to have it failing and then disabled. [00:59] Than left entirely invalid. [00:59] i guess it is the spring racing carnival in launchpad too [00:59] lifeless: Perhaps it's because you were running it i386? [01:00] 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:00] wgrant: yes, I am [01:01] wgrant: 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] wgrant: so pick a preferred resolution, and I'll do it. [01:02] lifeless: Your INTERACTIVE_TESTS change concerns me. Doesn't that mean we're just not going to see any oopses from the appserver? [01:02] wgrant: myself, I'm quite sure that we will eventually hit whatever point in CPython caused UnknownRemoteError [01:03] lifeless: Sure, but I'd prefer to have a flaky or disabled test, rather than one that doesn't actually test. [01:03] wgrant: no tests look for them, and its *only* yuixhr that uses this code path [01:03] wgrant: depends on the intent of the test; I think 'raises promptly' is sufficiently narrow. [01:03] Oh, it's in testapp, right. [01:03] wgrant: we don't depend on catching MemoryError anywhere (damn straight) [01:04] wgrant: so the -only- impact on broadening the exceptions is that the test suite lines up with the OOPS reports [01:04] wgrant: [if/when we see this in prod] [01:04] lifeless: Hm, UnknownRemoteError is probably txamqp... [01:04] wgrant: txamp do you mean ? [01:04] Yes. [01:04] I fail. [01:05] So, I'd prefer it if you reverted that change. [01:05] If it is a problem, we can unrevert it. [01:05] it is in Twisted AMP yes [01:05] sure, I will (it is a problem) [01:06] It's not a problem. [01:06] It may be on i386, but nobody's noticed that before :) [01:08] let me just thrash carob's pagecache [01:09] Oh? [01:09] launchpad.net-logs$ grep UnknownRemoteError . -r [01:10] Ah [01:10] That seems unwise... [01:10] It's like 150GB or more. [01:10] Or was it 250GB [01:10] I can't quite remember. [01:10] serial IO ftw [01:10] I still contend that carob's disks are actually a NAS in NZ. [01:11] I could grep faster if they were [01:11] anything else ? [01:12] * StevenK prods wallyworld_. [01:12] ouch [01:13] [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] sure. [01:13] lifeless: I think that's about it. [01:15] ok, so I'll push th revert to test_memory_hob_job, toss at ec2, and we'll see what we see [01:15] StevenK: '%s/+activate-ppa' % canonical_url(team) -> canonical_url(team, view_name='+activate-ppa') [01:17] other than that, looks good thanks [01:17] wgrant: can as approved vote? [01:20] wallyworld_: Thank you for the Approve. [01:20] np. [01:20] lifeless: Done. [01:24] thanks [01:25] lifeless: Erm. [01:26] What did I say about not landing this. [01:26] I approved mostly given that you were going to get at least (qa)staging fixed first :) [01:26] (and no, "It'll be done soon" is not valid) [01:31] wgrant: I'm working on that right now [01:31] If it's not done by the time ec2 finishes, please kill the ec2 instance. [01:32] that would be a waste [01:32] Let's not get into another 2-month cart-before-the-horse situation like we did with fastdowntime. [01:32] if its not ready I'll change prodconf to disable the key in staging [01:32] wgrant: you exaggerate there [01:32] No... [01:32] wgrant: I'm not about to block the deployment pipeline for any extended period [01:33] wgrant: I'm well aware of its impact, given I've done most of the analysis and discussion to demonstrate that [01:33] You are about to significantly hinder the crisis analysis process, though. [01:33] I'm about to change the exact recipe needed [01:33] grep still works, data can still be easily view [01:33] ed [01:34] No, grep doesn't still work. [01:34] I can't grep for ^Exception-Type: RequestExpired now. [01:34] yes it does, bson stores strings as length: prefix, so you can do exactly that. [01:34] just phrased -very slightly- differently. [01:35] I am close to rescinding my approval. [01:36] why? [01:36] 1) all (qa)staging OOPSes will be lost unless you sort things out in the next few hours. [01:37] 1) hystrionics, I've outlined 2 solid workarounds and taken responsibility for having them sorted. [01:37] 2) oops-tools is mostly useless, and this breaks shell pipelines. [01:37] 2) 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:38] We already had three expressions of disapproval. [01:38] In addition to my initial one. [01:41] aaron 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 greppability [01:43] I have been trying and playing around, and I'm satisfied I can do the analyses I was previously doing. [01:43] Have you experimented, or are you just concerned about the possible impact? [01:44] I know that my usual method for analysing performances crises now has to be rewritten in Python, or invoke Python thousands of times. [01:45] how do you know that ? [01:45] Because it relies on selecting on and extracting fields and parts of fields from OOPSes. [01:46] so, its an assumption. Thats ok, but its useful to be clear. [01:47] you are assuming, without trying, that grep and sed can't extract what you want from bson. [01:47] you may be right, you may not be. [01:49] I'm more worried about the url interactions than the change to bson; oops-tools has shocking understanding of urls-are-text [01:49] for instance our appserver generated urls are unicode [01:49] I'm not too concerned about how it interacts with oops-tools. [01:49] so we may end up double encoding for a day or two, which is tolerable but annoying [01:49] oops-tools isn't critical, and can be fixed. [01:53] lifeless: +bugs seems to be much faster on qastaging, with the CTE patch. [01:53] FTI Ubuntu searches are still timing out, but they were before too so I suspect the index is just cold. [01:53] ok. [01:53] uhm [01:53] just for insurance, lets FF this [01:53] its a particularly sensitive bit of code [01:54] k [01:54] It's all about to become a lot simpler, but until then... [01:55] I'm sure the FF will be overkill [01:55] but I'll feel a whole lot happier having it :) [01:55] Indeed. [02:08] test_bugtask_search is terrible :( [02:08] A slow base test case with dozens of derivatives. [02:09] yes [02:16] lifeless: 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] wgrant: thank you very much! [02:17] Bah, but now I have to ec2 it :( [02:17] what could possibly go wrong [02:17] The FF check will probably introduce a new query sometimes :( [02:17] Which could break some query limit tests. [02:18] most of them have some deliberate fat [02:18] with a generous backstop, but yes, it could [02:19] I've been meaning to do a test run with the matcher ensuring a lower bound as well. [02:19] Some of them are waaaaay high now. [02:27] Bah, I can't have my change in create_initialized_view, too many things can't be canonical_url()'d. [03:22] what's a CTE? [03:25] poolie: Common Table Expression [03:25] Defined by the WITH clause. [03:27] ok [03:36] wgrant: Is QA for r14209 on your list this afterrnoon? [03:37] StevenK: That's the userCanView change? [03:37] Yeah [03:37] It's semi-ok. [03:37] qa-ok-ish [03:37] ? [03:38] Liveable, but not ideal. I'm hoping that an improvement will land before someone tries to deploy. [03:38] We have a large amount of European QA before that rev. [03:38] Yes. [04:08] http://research.microsoft.com/en-us/news/features/nagappan-100609.aspx is a good read [04:09] can someone quickly review http://readthedocs.org/docs/judge/en/latest/ for me [04:11] lifeless: that is interesting [04:12] it would be interesting to study: how good are developers at predicting which factors drive quality on their projects [04:22] indeed [04:28] what should i do now? [04:29] partay [04:30] heh [04:30] morning! :) [04:35] hi nigelb [04:37] Hey poolie [04:47] o/ nigelb [04:47] ohai spm :) [05:24] Ugh, I now officially hate the expiring membership email. [05:50] yeah? ok then. INSERT into teams VALUES nibelb WHERE team has expiringing_membership; [05:50] spelling to be optional. [05:51] spm: Let me give you a cronjob that will reset nigelb's memberships to expire in seven days. Every day. [05:51] StevenK: approved. [05:51] this wouldn't be excessive abuse of power would it? :sincerity: [06:13] hah [06:13] StevenK, spm: Love you too :P [06:14] :-) [07:00] wgrant: you said txlongpoll was bust [07:00] wgrant: in that it didn't accept a queue name prefix, right ? [07:00] lifeless: Yes. [07:00] is bigjools aware of this? And that its a blocker to the deploy ? [07:00] I believe Red is aware. [07:01] However, AFAIK they are unaware that anybody is using rabbit except them. [07:01] So they are probably unaware that the fix is time-critical. [07:06] wgrant: there is no bug on https://bugs.launchpad.net/txlongpoll [07:07] wgrant: as you know the details, could you make one please? [07:08] Hmm, rvba said he was going to file one. [07:08] I left it with him, since it was well after midnight. [07:08] the rt claims that read is only on ^longpoll.* [07:09] so there is access control in place [07:09] That is a start. [07:10] Personally I'd prefer the old behaviour to be revived. [07:11] I'm not sure what that is; thus my encouragement for you to file a bug :) [07:11] hmm [07:12] my branch has been running from 0140 through to 0708 [07:12] I suspect a stupidly overloaded host [07:12] lifeless: I just had a branch take 4:45 [07:12] Which is longer than normal. [07:13] hmm [07:13] I suspect that that sync() in cleanUp is a problem [07:13] I have another trace here that took 6.5 hours [07:13] I'll land a branch immediately to remove the trailing sync() [07:14] [given I only added it while debugging that rosetta zopelessappserver test issue, I know its not needed know] [07:14] Ah. [07:15] its the only think I can think of that would add 100% test time [07:16] unless the rabbit layer reset is heinous, but I didn't change that, nor add it to more than a few dozen tests [07:18] wgrant: I suspect both the sync and the existence/presence of poor ec2 loading [07:19] wgrant: did we decide setting mandatory wouldn't work ? [07:20] lifeless: We can't necessarily receive the response. [07:20] wgrant: did we do an experiment ? [07:20] No. [07:21] * StevenK has clearly forgotten how to drive subunit [07:21] But we'd need to asynchronously detect the basic.return, and then $something. [07:21] But I don't think amqplib exposes basic.returns. [07:21] I have a subunit stream and I want to see which tests failed or gave an error [07:21] StevenK: subunit-filter --no-skip --no-passthrough | subunit-ls [07:22] StevenK: or testr load < stream; testr failing [07:22] (or testr failing --list) [07:22] StevenK: or tribunal < stream [07:22] subunit-filter --no-success --no-passthrough --error --failure < lp.log | subunit-ls [07:22] That gives me a traceback [07:23] StevenK: you're making it hard for yourself :) [07:23] StevenK: 3 of those options are the defaults [07:23] StevenK: also whats the tb you get? [07:24] Broken pipe [07:24] subunit-filter is probably erroring [07:24] So one of subunit-filter or subunit-ls is misbehaving [07:24] try one of my recipes above === jbepsilon_ is now known as jbepsilon [07:29] StevenK: ? [07:30] Sorry, got distracted. Your recipe works fine [07:30] "subunit-filter --no-success --no-passthrough --error --failure < lp.log 1>/dev/null" doesn't produce any output on stderr [07:31] its a legitimate set of options [07:31] I'm not sure why you had a tb [07:32] conceivably the pipe was closed with no output I guess [07:32] it works for me, fwiw [07:33] lifeless: http://pastebin.ubuntu.com/724060/ [07:33] wgrant: so, you'll file a bug| get rvba to ? [07:33] StevenK: the first tb is the issue [07:33] lifeless: I'll ask rvba for the latest news. [07:33] StevenK: Can you reproduce with a current subunit ? [07:33] StevenK: (what does dpkg -l python-subunit say) [07:34] lifeless: 0.0.6-3 [07:35] try 0.0.7 [07:35] Such a pity, Mr Bond. [07:38] heh [07:50] lifeless: that reminds me, can you add a tag for 0.0.7 on lp:subunit? [07:51] jelmer: probably, there isn't one ? [07:51] jelmer: it'll be just tip [07:51] jelmer: :!bzr log -r -1 [07:51] ------------------------------------------------------------ [07:51] revno: 152 [07:51] tags: 0.0.7 [07:51] lifeless: "bzr tags -d lp:subunit" doesn't list a 0.0.7 [07:51] lifeless: perhaps that tag is local? [07:52] jelmer: if so, I blame bzr [07:53] jelmer: hmm, diverged branches. funky. [07:54] yes, somethings up. I'm going to push --overwrite and then merge trunk back in [07:57] jelmer: there should be a tag now [07:57] lifeless: great, thanks! [08:17] useoops has landed \o/ [08:20] Has the fix landed? [08:23] My next branch is going to be called The Eagle [08:23] Just to announce its landing? [08:23] correct [08:24] I'll call dibs on Airforce one and Canonical one ;) [08:26] Who's at UDS? francis, matt, dan..and? [08:28] that's about it IIRC [08:28] oh one of the US guys too [08:32] good morning [08:32] wgrant: its about to start ec2 [08:45] nigelb: I thought it was Francie, Matt, Deryck and Curtis. Didn't know Dan was going too. [08:46] new kid, doing the rounds :) [08:54] bigjools: is rvba in today? [09:01] lifeless: doesn't look like it [09:16] bigjools / wgrant - Thanks :) [09:16] I'd quite like to be there again, was the best UDS hotel in ages [09:17] heh [09:17] I wish I could be there. I regret skipping this UDS> [09:18] bigjools: Will you be at the next one? :) [09:19] Too bad I missed you last UDS. [09:19] you walked right past me there :) [09:19] :( [09:19] That's the UDS where I asked Francis "Are you a launchpad guy?" :D [09:19] as for the next one, no idea, we don't decide until shortly before who's going [09:20] Ah! [09:20] <\sh> moins [09:21] <\sh> dear lp-devs how difficult will it be, to change someones launchpad id from X to Y ? [09:21] Its easy to do the change. [09:21] THe repurcusions might make some time to fix ^-^ [09:21] \sh: the answer is "it depends" [09:21] And its not a launchpad problem. Its an SSO thing. [09:22] SSO actually steals that data from us. [09:22] It's a Launchpad thing. [09:22] \sh: Unless you have a PPA, you can just change it. [09:22] <\sh> bigjools, let's say, I would like to request to change my launchpad-id from shermann to sadig [09:22] \sh: then as wgrant says [09:23] wgrant: Meh. I think most of the time its our openid client which isn't implemented properly. [09:23] <\sh> wgrant, ok...my ppa is not a problem...so when I delete my ppa I can just change it? [09:23] if you have any PPAs then they need to be deleted [09:23] then yes [09:23] \sh: Yes. May have to wait up to 10 minutes for it to be completely deleted. [09:23] \sh: delete the ppa, wait for a publishing cycle, visit +edit and rename it [09:23] I think its +edit [09:24] <\sh> wgrant, lifeless , thx...I'm waiting now ;) [09:24] * bigjools has a buildd-manager that will cancel builds \\o/ [09:25] bigjools: Does it also impact on the production builders too :-P [09:25] bigjools: niiice! [09:25] bigjools: You know that's been possible for recipe builds for a year, right? :P [09:25] whatever [09:26] running out of memory != cancelling :) [09:26] lol [09:26] ZING. [09:26] They have a cancel button which sets them to SUPERSEDED. Which actually works pretty well. [09:26] yes but it doesn't rip the build off the builder [09:26] wgrant: that doesn't kill the in-progress build though, right? [09:27] we can set it to CANCELLED now [09:27] I believe it deletes the BQ too, which would kill the in-progress build. [09:27] So, the ones that are scheduled can be canceled? [09:27] Or is it the ones that are building that can be canceled. [09:28] interesting way of doing it [10:15] lifeless: yay for the OOPS changes! Did you document what you said in the email in the dev wiki? [10:16] bigjools: all relevant docs were updated [10:16] bigjools: AFAIK [10:16] bigjools: however, there weren't many ;) [10:16] awesome [10:17] bigjools: https://dev.launchpad.net/QA/OopsToolsSetup is perhaps the least likely known by ye old average LP dev [10:17] well - the main thing is to note the stuff you wrote in the email, for posterity [10:17] I'm going on a documentation jihad in the near future [10:44] bigjools: I've given https://dev.launchpad.net/LoggingOopses a bit of a facelift too [10:45] lifeless: great! [11:00] ok, thats witching hour, time to EOD for a bit :) [11:26] aaah. [11:26] I now understand the outcome of comparing unicode incorrectly. [11:27] The unicode entry goes to the end of the list :( [11:28] Yep. [11:28] Nice that danilos is our unicode tester :D [11:28] Is there a better way to do that than what I did? [11:28] Sadly we are left with only rvba. [11:28] And his name is not very Unicode at all. [11:30] heh [11:30] Is there better way to sort unicode at the current point? [11:30] I remember jtv's argument at that time being more of future oriented. [11:35] need unicode local in the DB and appservers [11:35] presumably not /hard/ [11:35] but needs doing + qa [11:36] ah [11:36] Nothing I an do I suppose? [11:37] *can [11:40] bigjools: cancelled> ooh, awesome === 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 [12:15] nigelb: you could do it [12:15] 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 etc [12:16] ah [12:55] cjwatson: only for virtual builds right now though, don't get too excited [12:55] need to fix sbuild for non-virt [12:58] bigjools: ah well, still a step forward [12:58] yes, 90% of work is done [12:59] s/is/will be/ :) [12:59] LinkedIn - just PO please === bac` is now known as bac [14:49] Wow. The publisher has only just got to around cron.germinate [14:49] We're in serious danger of going past an hour here :-/ [14:52] cjwatson: :( [15:08] sinzui: free to mumble? [15:08] yes [15:09] excellent. [15:23] Hey 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:25] danhg: #ubuntu-uds is also a nice channel to advertise :) [15:26] thanks nigelb, good plan! [15:27] All week actually - so let me know when you're free guys! [15:48] cjwatson: yeah, it missed the run at :00 [15:52] domination took 30m [15:52] I figured this would happen with the arch-all changes [15:56] this is pretty bad - what can be done? [15:56] don't get me wrong, I appreciate the new feature, but ... === dpm__ is now known as dpm === mrevell__ is now known as mrevell [16:06] jcsackett, yo [16:06] mrevell: hello. [16:12] danilos, What's the rally project management session later all about? [16:12] jcsackett, Oh hey, we're just trying to find a good time to talk to you. When suits you? [16:12] pretty much anytime today is fine. i imagine your schedule is a bit more bumpy than mine. [16:14] mrevell ^ [16:16] mrevell: danhg has proposed now, which works for me. [16:17] Cool [16:20] jcsackett, Oh hey, we're just trying to find a good time to talk to you. When suits you? [16:21] mrevell: i think you meant perhaps to send another message, as that one's a repeat? :-P [16:21] jcsackett, I have no idea how that happened. Hah :) === beuno is now known as beuno-lunch [16:21] jcsackett, I think danhg is talking to you about it. [16:21] he is indeed. [16:59] awk: (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] make: *** [lib/canonical/launchpad/icing/build/launchpad.js] Error 2 [16:59] just got that running 'make schema' [17:02] jml: update source? [17:48] *yawn*, morning [17:48] hello, sorry, was away [17:48] really really want to get a working lp dev environ === beuno-lunch is now known as beuno [17:49] jml: utilities/update-sourcecode [17:49] lifeless_: done that. === lifeless_ is now known as lifeless [17:49] jml: and still doesn't want to play? [17:49] lifeless: ahh, I know [17:50] forgot to run link-external-sourcecode [17:50] which appears to make the right symlink. /me makes schema again. [17:57] ... and it builds. thaks. [17:58] heh, de nada [17:59] Morning lifeless [18:00] actually, I should say what I want to do [18:00] I want to link to apps.ubuntu.com from Launchpad. Specifically getting package pages to link to relevant apps pages. [18:00] o/ nigelb [18:01] Well, I guess I should head to bed :) [18:01] I *think* I can get by with just a text transform, no queries. [18:12] \o/ test perf fix worked [18:12] Tests started at approximately 2011-10-31 08:45:30.145372 [18:12] Source: bzr+ssh://bazaar.launchpad.net/~lifeless/launchpad/useoops r14214 [18:12] Target: bzr+ssh://bazaar.launchpad.net/~launchpad-pqm/launchpad/devel/ r14213 [18:12] 16646 tests run in 4:33:15.575714, 0 failures, 0 errors [18:12] not as svelte as perhaps it was in the past, but not 7 hours either [18:21] Is there a fast way of consulting Contents.gz from Launchpad code? (Is there a version in the db?) [18:24] jml: the archivepublisher generates it and I'm pretty sure it doesn't store it in the database [18:25] jml: what are you trying to do? [18:25] jelmer: link to apps.ubuntu.com for a package from packages on Launchpad [18:26] jelmer: but apps.ubuntu.com has only apps, which are packages that have desktop files [18:26] jml: ah, and you need the section and the like? [18:26] jelmer: no, just to know whether or not it has a desktop file [18:26] e.g. https://apps.ubuntu.com/cat/applications/oneiric/evolution/ vs https://apps.ubuntu.com/cat/applications/oneiric/openssh/ [18:27] jml: there is a version being populated in the DB [18:27] jml: do .desktop files necessarily indicate applications? IIUC it's possible to have .desktop files for non-application things [18:27] jml: StevenK knows the status of that [18:27] jelmer: that's how they make the distinction in Software Center, I'm told. [18:28] jml: My first thoughts about how to implement this are: [18:28] - what about derived distros ? [18:29] - 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 safely [18:29] lifeless: I only want this for Ubuntu, not for derived distributions. [18:31] software-center has some fudges to determine the list of apps I believe, some are ignored, others are added [18:31] jml: poking at contents because thats what SC uses seems like an abstraction violation to me [18:31] lifeless: 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] I wonder if apps.ubuntu.com will grow the "technical items" thing too [18:32] jml: this is so folk can find out how to install the package or something? [18:32] It's hard enough writing code for what exists now. Dealing with possible futures is going to make this impossible. [18:32] jml: a different approach would be to embed the content you're interested in on the relevant LP pages. E.g. reviews. [18:32] jml: is software center using contents.gz directly though? I thought all that data was pre-generated in app-install-data [18:33] jml: 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] jml: (if SC is fast enough) [18:34] lifeless: 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] lifeless: would look at reviews stuff in a later iteration. [18:34] jelmer: quite possibly. [18:35] lifeless: agree re abstraction violation. Doesn't feel a bad enough one to stop me though. Difficulty of implementation is more persuasive [18:36] jml: such violations create debt instantly [18:36] jml: I'd rather we not link at all than do it poorly [18:36] lifeless: right, but I don't even have a working prototype that I can improve at this point [18:38] jelmer: does that change anything? [18:38] jml: does what change anything? the fact the data is pregenerated? [18:38] jelmer: yeah [18:39] jml: I suspect there is more going on than just looking for .desktop files [18:39] jml: probably filtering out things that are not for applications [18:39] jml: 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] but that's all speculation [18:39] jelmer: OK. It's definitely possible that I was misinformed. [18:39] jelmer: certainly using some kind of provided API would avoid that. [18:40] lifeless: 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] jml: it seems like a bad idea for software center to have to download a 20Mb file every time something in the archive changes [18:40] lifeless: (paragraph from an email I was drafting) [18:40] jml: interesting [18:41] lifeless: yeah. [18:41] lifeless: linking from LP is not the beginning & end of our approach, but it's something that would probably help. [18:41] jelmer: well, I get the very strong impression that mvo would prefer some debtags-based solution. [18:42] jml: debtags seems like a better approach for this kind of thing than inspecting Contents.gz [18:43] jelmer: 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:44] hmm. [18:45] I guess a naive-but-restful API is to just GET the link and then see if it 404s [18:45] there's probably a way to do that without dl'ing the whole page too [18:46] wonder how late I can render the link and still get SEO [18:46] (also, battery about to fail) [18:49] jml: google execute js [18:50] jml: so I expect quite late === dpm__ is now known as dpm === fjlacoste is now known as flacoste [19:33] sinzui: hiya [19:33] hello [19:33] sinzui: I think we have a bug in team administration :) [19:34] sinzui: see #launchpad for context. Seeking your opinion. === mrevell_ is now known as mrevell [20:01] sinzui: 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/177021 [20:02] benji: needs a duckie [20:02] lifeless: come again? [20:03] ~admin ;) [20:03] the logo is, or was, a yellow rubber duck [20:08] lifeless: 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] benji: I was unclear; I mean you cannot; you have to get an admin to do it. [20:09] ah! (where, I presume admin == LOSA) [20:09] yes === 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 [21:36] \o/ instant OOPSes on qastaging. [21:36] booyah [21:37] flacoste: \o/ instant OOPSes on qastaging. [21:37] booyah [21:37] lifeless: awesome [21:38] try it, its spicy ;) [21:41] lifeless, I like the word instant. Is it using rabbit or something like that? [21:41] beuno: yes [21:41] lifeless, I WANTS [21:41] so you've been talking to rye, right? [21:42] yes, he's production hardening the opened code base for your environment [21:42] there is a wsgi enhancement needed for your tx stack before you can widely migrate [21:50] awesomeness [21:57] beuno: see b.l.n/python-oops-wsgi [22:38] morning [22:41] jcsackett: r=me but i think the template still references the old public_or_private() method name [22:47] wallyworld_: yes. yes it does. i'll fix that. [22:47] thanks :-) [22:50] 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:54] wallyworld_: indeed. [23:01] jcsackett: the fwd email is missing the original material [23:02] wallyworld_: oh fantastic. [23:02] :-) [23:17] lifeless: https://pastebin.canonical.com/54976/ is what we used to fix the the BPBs. [23:17] A similar thing over SPRBs would be good. [23:17] (I'm not here today) [23:18] wgrant: ah, it is damage ? [23:19] lifeless: Yes, failure counting except buggy. [23:27] wgrant: qastaging. Rabbit. AMQP. OOPS. WIN WIN WIN [23:27] lifeless: It works? [23:27] hell yes [23:27] Excellent! Have we stopped rabbit to see that it falls back? [23:27] not yet [23:27] been doing uds stuff [23:33] wgrant: still, you should make qas oops and see the result.... its just nice [23:35] lifeless: I already have :) [23:35] It is indeed. [23:35] oops-tools needs some major hacking, but that can be done soon. [23:55] lifeless: Is https://pastebin.canonical.com/55154/ a yesterday-style query? [23:55] lifeless: ie. EXPLAIN ANALYZE is instant, execution is 300ms? [23:55] qaqs ok? [23:56] Yeah. [23:56] no limits ? [23:56] None. [23:56] Should be 1 row. [23:56] 300ms [23:56] 323 [23:56] And explain analyze? [23:56] 162 [23:56] 162 [23:56] It's 1ms on DF :/ [23:56] 0.6ms to profile [23:57] lolnot [23:58] It's not even a very unpleasant plan at all. [23:58] ugh [23:58] AND (TeamParticipation.team = BugSubscription.person) [23:58] AND (Person.id = TeamParticipation.team) [23:58] wtf [23:58] oh, via TP, I guess. [23:59] not the join I expected. [23:59] StevenK: Can you QA or ignore jtv's notification refactor? [23:59] wgrant: in fact, that will give N rows per subscription