[00:32] matsubara-afk: the timeout feature flag was harder than anticipated, its all landed now, though [00:42] lifeless: Julian wrote a faster query last night, but it was slightly wrong. Could you try http://paste.ubuntu.com/506074/ and see if it doesn't take 10 minutes? [00:43] hmmm tmp tables :) [00:43] :( I mean [00:44] Yes. [00:44] It's a similar optimisation to the one we use in the publisher. [00:44] Which cuts 2.5 minutes down to less than two seconds. [00:44] 6 seconds to populate the temp table [00:44] should be able to express it directly. Nevertheless, if it works, it works. [00:44] One would think so. [00:45] perhaps the select needs a supersededby IS NULL in there ? [00:45] The subselect? [00:45] is supersededby indexed ? [00:45] No. [00:45] yes, the subselect [00:45] It's valid for something to be superseded by something that's also itself superseded. [00:46] It appears to be indexed. [00:46] yes, but we don't care about those do we? [00:46] only the tip of the chain [00:47] We do care about those. We are looking for things which should not be superseded but are. [00:47] It doesn't matter if the thing that superseded them is superseded or not -- it should not have superseded them. [00:47] ok [00:48] The query is still going? [00:48] yes [00:48] :( [00:49] I guess I did just increase the data size by several times. [00:55] 3662 rows [00:55] 465000.849 ms [00:56] Comfortingly an identical number to yesterday's. [00:57] Thanks. [00:57] de nada [00:58] Hmmm [00:58] http://paste.ubuntu.com/506096/ might be less crap. [01:08] * StevenK grumbles about http://paste.ubuntu.com/506100/ [01:09] StevenK: bin/kill-test-services [01:09] Or was that on ec2? [01:09] Hm, looks ec2. [01:09] wgrant: On ec2, yes [01:09] Sad. [01:10] I had a similarly opaque error on one of my runs this morning. [01:10] But it was completely different. [01:10] well the librarian is definitely gone :P [01:11] wgrant: 21 seconds to make the temp table [01:22] 3662 rows [01:22] 121149.515 ms [01:22] Aha! [01:22] Much better. Thanks. [01:39] lifeless: what's SOP for turning on sql trace for local debugging? i can add "from storm.tracer import debug; debug(True)" to bin/run (for example). is there cmd line arg i can use? [01:41] LP_SQL_DEBUG=1 [01:41] LP_SQL_DEBUG_EXTRA=1 to get backtraces [01:41] lifeless: excellent. thanks [01:41] those are environment variables [04:09] wgrant: librarian fail [04:26] lifeless: Hm? [04:27] see email [04:30] lifeless: So, that's two attempts that have failed in two different spurious ways. [04:30] Awesome. [04:39] * StevenK peers at http://ppa.launchpad.net/launchpad/ppa/ubuntu/dists/lucid/main/binary-amd64/Packages [04:39] No launchpad-dependencies at all? WTF? [04:40] Heh, is this what I think it is? [04:40] * wgrant checks. [04:40] wgrant: its almost certainly my layers work [04:41] wgrant: we'll need to figure out whats up [04:42] lifeless: Does that mean http://paste.ubuntu.com/506100/ is probably you too? [04:43] wow, Product:+bugtarget-portlet-bugfilters-stats is unhappy [04:43] stub: ^ [04:44] StevenK: I suspect you have found one of the few PPA cases of bug #653382.... [04:44] <_mup_> Bug #653382: BinaryPackagePublishingHistory._getOtherPublications fails to restrict the distroseries context [04:46] wgrant: You mean, the publisher has? [04:46] StevenK: Indeed. [04:47] StevenK: that pastebin may be related yes. [04:47] StevenK: however that looks like a racey test to me [04:48] * StevenK grumbles [04:50] eh? [04:50] stub: I suspect a fat index or something - 970 timeouts on the bugstats portlet [04:51] Got an OOPS handy? [04:51] So, I'd like to get http://paste.ubuntu.com/506212/ run on prod to see how widespread the carnage is. [04:51] lpmain_staging=> SELECT COUNT(*) FROM Bug, BugTask WHERE BugTask.bug = Bug.id AND BugTask.id IN ( SELECT BugTask.id ... taking 15 seconds [04:51] stub: theres tonnes in the oops report, but e.g. https://lp-oops.canonical.com/oops.py/?oopsid=1738C1035 [04:53] lifeless: Count(*) is expensive as hell anyway? [04:53] StevenK: yes but [04:53] StevenK: this is normally a subsecond query. [04:53] StevenK: count(*) cost is a nuanced topic, its not guaranteed cheap is the main thing to remember. [04:54] wgrant: Is that the same SQL lifeless ran on staging? [04:54] StevenK: Except that it tells me how many are in each archive, yes. [04:55] Does it give the archive name, or just the id? [04:56] Just the id. [04:57] wgrant: I wonder if it's worth twiddling the SQL for the archive name? [04:57] StevenK: I'm not allowed to possess that. [04:57] Oh, right [04:58] The only archive that I really care about the identity of is archive 1, and I know which that is. [05:02] * StevenK prods lifeless towards the SQL wgrant is talking about for a +1 [05:03] +1 [05:03] you'll need to put it on LPS etc etc [05:03] LPS for a SELECT!? [05:03] oh, ebrain [05:03] 506212? [05:03] StevenK: you don't need cross-check approval for readonly queryies [05:03] That. [05:04] unless the losa in question looks at you funny. [05:04] Ah [05:04] vs the losa in question looking funny. which is a different problem. [05:04] spm: Pls fix and make wgrant happy? [05:04] StevenK: see that's the problem. the 2nd part of that sentence. I'm not sure I wish to comply. [05:05] esp when the alt is far more entertaining for me! [05:05] s/happy/less angsty/ ? [05:05] it amounts to the same thing from my perspective. [05:05] StevenK: Hey, this is my most monumental screwup ever :P [05:06] ^^ young and experienced. Bigger and more spectacular screwups will come.... [05:06] *in*experienced. [05:06] gah. troll typo fail :-) [05:07] Bwahaha [05:07] Heh. [05:07] wgrant: http://paste.ubuntu.com/506216/ [05:07] Oh thank god. [05:08] yes. you should thank me. [05:08] Hah. [05:08] 3781 in id 1? [05:08] Yep. [05:08] That's a really good thing. [05:08] * StevenK wonders how to get the id of the Launchpad PPA [05:08] Because every broken publication in the primary archive is trivially revertable with a single query. [05:09] Since there are so few archives, I might just join against archive, and get owner.name, archive.name and archive.private. [05:11] wgrant: You were afraid it was going to be every archive? [05:11] StevenK: More than 37. [05:12] Why 37? That was the number on staging? [05:12] lifeless: That query is performing very poorly under PG 8.4 [05:13] No, I just expected there'd be more than we got. [05:14] spm: http://paste.ubuntu.com/506220/ [05:15] Hopefully there'll be no private archives. Or at least only private archives in public teams. [05:15] bug at over 7 seconds under 8.3, the query sucks already. [05:16] stub: it takes 780ms on staging [05:16] stub: isn't staging 8.4 ? [05:16] Yes. Hmm... [05:17] The production db is all freshly packed - it is only a few days old. [05:17] production 8.4 one that is (which I think is where all the timeouts are coming from - the OOPS is talking to the slave, and we have only one slave atm) [05:18] But 272 seconds is a little extreme... [05:18] rotfl [05:19] That's only nearly 5 minutes, what's the problem? :-) [05:21] Comments in the SQL like " -- We create this rather bizarre looking structure" don't inspire confidence ;) [05:22] yeah, indeed. [05:22] stub: so, staging is 8.4 and fast, prod slave is 8.4 and slow ? [05:22] yup. staging data is from about 6-7 days ago though. [05:23] spm: http://paste.ubuntu.com/506220/ [05:23] Maybe my connection will survive this time. [05:24] so one possibility is a something thrown out by new data? [05:24] wgrant: Wishful thinker [05:24] Hahaha [05:24] it seems improbably to me, given the depth of history, it would need a huge seachange to alter the right query structure [05:24] spm: Quick! Run the query while he isn't looking. [05:24] stub: any clues from analyze? [05:24] yes. The slow bit is an expensive nested loop the planner thought would get a single row but actually got over 5000, so 5000 times slower than expected. [05:24] I've already done it. just trying to confirm the results for him :-D [05:25] lifeless: http://paste.ubuntu.com/506228/ [05:26] * stub runs an analyze on hackberry for a laugh [05:28] stub: compare the plan on staging [05:29] -> Nested Loop Anti Join (cost=19392.56..26967.75 rows=1 width=4) (actual time=766.504..860.778 rows=5576 loops=1) [05:29] if thats what you were saying is the issue, staging has it too [05:34] stub: this seems to be a key, slow, but [05:34] (bit( [05:34] Bitmap Heap Scan on bugtask (cost=295.98..20874.68 rows=15471 width=24) (actual time=9.812..139.968 rows=19011 loops=1) [05:34] Recheck Cond: (status = 15) [05:34] Filter: ((assignee IS NULL) AND (milestone IS NULL)) [05:34] -> Bitmap Index Scan on bugtask__status__idx (cost=0.00..292.11 rows=23310 width=0) (actual time=5.382..5.382 rows=24160 loops=1) [05:34] Index Cond: (status = 15) [05:34] query plans and irc, a match made in heaven [05:44] * StevenK grumbles at the continued hiding of launchpad-dependencies in the PPA [05:44] so the estimates are in the same ballpark, which means the planner meant to choose this bogus plan [05:45] full analyze hasn't helped anyway (just in case autovacuum stuffed up or the statistics were screwed after the restore) [05:45] Of course, if I was a query planner I'd take one look at that query and run away screaming [05:45] stub: I need to pop out; I'll leave this with you [05:45] gee, thanks ;) [05:46] if you need a hand I'll be back after dinner ;) [05:46] I do wonder why its choosing this plan [05:47] still, 800ms is slow anyway, perhaps the best thing is just to: [05:47] - stop filtering private bugs from the count [05:47] The nested loop I pointed out earlier - it wasn't expecting to execute that sub query so many times. [05:47] - stop trying to match up all the rules [05:48] Yes, overly precise counts have bitten us before. [05:48] - and just do a group by/count [05:48] StevenK: You can revive it if you want. [05:49] Delete it and copy it back. [05:49] wgrant: Can't we just fix it? [05:49] StevenK: Hopefully. [05:50] Need to get the fix cowboyed, check if any of them have been deathrowed yet, and then hopefully just mass-revert the status. [05:51] *Hopefully*. [06:25] lifeless: I think EdwinGrubbs' post on the dev list points out the problem -- is that your doing too? === almaisan-away is now known as al-maisan === bac changed the topic of #launchpad-dev to: Performance Tuesday! | Launchpad Development Channel | Week 3 of 10.10 | PQM is open for business | firefighting: - | https:/​/​dev.launchpad.net/​ | Get the code: https:/​/​dev.launchpad.net/​Getting [07:54] back [07:54] lifeless: https://code.edge.launchpad.net/~stevenk/launchpad/librarian-teardown-failure/+merge/37561 [07:54] (Per the discussion on the -dev list) [07:55] no, thats wrong. [07:55] * StevenK goes to get a drink, instead of snapping [07:55] I'm replying to the list now. [08:00] StevenK: I'm sorry that its wrong - I know infrastructure problems are frustrating. When I say wrong, I don't mean 'unstylistic', I mean 'it will cause other insidious test failures.' [08:04] lifeless: Sorry, I'm only frustrated since I've seen errors like this since Saturday, but had no time to look [08:04] StevenK: can't have been since saturday, the code landed monday night. [08:05] revno: 11667 [merge] [08:05] committer: Launchpad Patch Queue Manager [08:05] branch nick: launchpad [08:05] timestamp: Mon 2010-10-04 07:20:04 +0100 [08:05] message: [08:05] [r=mwhudson][ui=none][no-qa] Start consolidation and rationalisation of Librarian test helper code. [08:05] whatever is causing you grief since saturday is different. [08:07] Hi wgrant! ;) [08:08] General warnings. [08:08] /usr/lib/python2.6/atexit.py:24: DeprecationWarning: Attempt to tearDown inactive fixture. [08:08] lifeless: With your patch ^ [08:09] StevenK: thats fine [08:09] belt and braces [08:09] we'll get rid of that when we get rid of the atexit [08:09] which is another iteration [08:12] lifeless: i got the following errors with your patch: http://pastebin.ubuntu.com/506298/ [08:12] bac: ok, I thought it might be incomplete. [08:12] thanks [08:20] bac: can you add a print cls.__bases__ into my patch and show me the result ? [08:35] (,) [08:35] oh [08:35] bac: can you do that in LaunchpadScriptLayer.tearDown ? [08:35] (,) [08:36] really? [08:36] lifeless: yeah,it was called twice [08:36] oh right [08:36] lifeless: the prints don't show up, so i put in a breakpoint [08:36] I thought you were answering the script case [08:37] bin/test -vvt old-testing.txt -t spec-mail-exploder.txt [08:37] with [08:38] --- lib/canonical/testing/layers.py 2010-10-04 06:20:04 +0000 [08:38] +++ lib/canonical/testing/layers.py 2010-10-05 07:36:47 +0000 [08:38] @@ -1338,6 +1338,7 @@ [08:38] @classmethod [08:38] @profiled [08:38] def tearDown(cls): [08:38] + print cls.__bases__ [08:39] lifeless: i don't mind helping, but do you not have a dev env setup? [08:39] bac: I don't experience the problem. [08:40] really? wow! [08:40] as I said on list [08:40] it passed ec2test [08:40] (, ) [08:41] it died on ec2 for me twice [08:42] so, its not __bases__, that appears to be constant and fine. [08:53] ... [08:54] bac: bah, isp failure [08:56] EdwinGrubbs: around ? [08:58] lifeless: it is 3am for EdwinGrubbs [08:58] ah [08:59] for some reason I thought he was eu [08:59] ohhh [08:59] I wonder [09:00] I'm trying to figure out hth this got into the system [09:10] henninge: Hi. [09:10] wgrant: Hi, otp now ;) [09:12] bigjools: http://paste.ubuntu.com/506231/ is the list of casualties and their archives (from prod a few hours ago) [09:12] So it's mostly the primary archive, which is handy. [09:12] wgrant: context? [09:13] bigjools: the _getOtherPublications bug. [09:13] ok [09:13] I think we'll run the fix on staging first for this one [09:14] I'd say so. [09:30] wgrant: so, the new query looks the Thing. [09:30] bigjools: It also returns the same result as my original one. [09:30] always a bonus [09:30] I guess it's trawling quite a few rows [09:31] Just a few. [09:31] the question is, do we want to fix PPAs too [09:31] We should do something. Even if it's marking them Deleted instead. [09:32] hmmm [09:32] so my questions are, what happens if we do nothing, and what happens if we run this fix on them? [09:33] If we do nothing, we end up with confusing old data. [09:34] A few PPAs end up with some missing packages. [09:34] But most of those are probably obsolete anyway. [09:35] If they haven't been deathrowed already, we can just set them back to Published and everything will work. [09:35] If they have been deathrowed, we should probably just mark them Deleted, because it's messy and it's probably that nobody will notice. [09:43] However, we should get the fix cowboyed or CP'd and make the primary archive consistent first, I suspect, given what time it is. [09:43] The whole release thing on Sunday. [09:47] bigjools, wgrant: Is what you're talking about related to the broken ppa:launchpad/ppa? [09:49] allenap: Yes. [09:50] wgrant: Okay, cool. Do you know of any PPA mirrors I can use that are out of date, and thus not broken? I'm going to do a lot of twiddling thumbs today otherwise :) [09:51] allenap: You could always grab launchpad-dependencies manually.' [09:51] * wgrant finds the link. [09:51] wgrant: Ah, it's in the PPA, just not in the manifest or whatever it's called? [09:52] ppa:launchpad/ppa got broken too? [09:52] henninge, you'll want to know about this: a conflict has crept into your convert-imports branch. [09:52] henninge: lib/lp/translations/stories/translations/30-rosetta-pofile-translation-gettext-error.txt [09:53] bigjools: Lucid's launchpad-dependencies were vaporised a couple of days back, yes. [09:53] :/ [09:53] Hello [09:53] bigjools: It's the only report of breakage, interesting enough. [09:53] allenap: https://edge.launchpad.net/~launchpad/+archive/ppa/+sourcepub/1263354/+listing-archive-extra has the binaries you need. [09:53] I've just started the query on staging to see how many rows there are when restricting to archive=1 [09:54] wgrant: Thanks. [09:54] bigjools: http://paste.ubuntu.com/506220/ was the last query I had run on production. [09:54] Gives the count for each archive. [09:54] yeah I have tjat [09:56] wgrant: would you mind doing me a favor and making a query to fix the PPA publications while I do this? I think we can filter on dateremoved [09:57] bigjools: That was my thinking too. [09:57] great minds ... [09:57] Anything with dateremoved IS NOT NULL should be safe to just flip back. [09:57] Which should cover all of the primary archive cases too, hopefully. [09:57] ah very good point [09:57] nm then [09:57] I'll pop that in [09:58] jtv: thanks [09:58] Just set the status, and unset datesuperseded, datemadepending and scheduleddeletiondate [09:58] I think that should do it. [09:59] Although the last two aren't relevant for the primary archive. [09:59] If anything has those set we have other bugs. [09:59] wgrant: Did you see that test failure? [09:59] and supersededby [09:59] bigjools: erk, good point. [09:59] henninge: Yes. lifeless ran it again, and it failed spuriously another way. [09:59] :) [09:59] Along with a few other branches. [09:59] So there's something wrong with devel. [10:01] who ones merge proposals code? [10:01] s/ones/owns/ [10:01] s/who/who in the code team/ ;) [10:04] wgrant: should be fixed soon, branch is in pqm atm [10:04] lifeless: Ah, great. [10:04] danilos, henninge: we've long wanted to use the permissions system for translations, but I find myself really not wanting to do that now. What would permissions be _on_? It seems weird to invent a DummyPOFile just to check permissions on it, for instance. [10:05] jtv, what do you mean with 'now'? do not want to use "full" zope machinery with this particular branch? [10:06] danilos: I mean "now that we're sharing translations so widely." [10:06] bigjools: Should we run a query on prod to see how many have already been removed? [10:06] doing it now [10:07] With the per-archive counts? [10:07] quite a lot it seems, I get a count of 842 in the query now [10:07] after adding "bpph.dateremoved IS NOT NULL" [10:07] On staging? [10:07] yes [10:08] danilos: if it were just "are you one of the owners of this product," for instance, I'd have no problems. But if we go pofile→potemplate→productseries→product→project→translationgroup→translator, that's a lot for a permissions check. [10:08] Are any of those in the primary archive? [10:08] one sec [10:08] jtv, well, sharing aspects of it will be relatively hard to map in the zope permissions system, but ideally, we'd at least make it a simple check: "can-do-something-here" and "can-do-something-on-the-other-side" [10:08] The publications I checked hadn't had removal scheduled, so I doubt it. [10:08] jtv, ideally, we'd just check permissions on the pillar level (product/distribution), because that's where we get them from [10:09] except for pofile, of course [10:09] danilos: sure, that part's fine for me and may even hide a bit of the "if productseries" ugliness [10:09] danilos: that's the other thing—I really, _really_ don't want to give edit rights to pofile owners. [10:10] jtv, I am sure you can come up with a reasonable design, and you might be right that permissions system is not the right solution [10:10] jtv, right, we want maintainers to have edit rights on them, but other than that, just translators for appropriate language [10:11] danilos: I appreciate the trust. :) I think POFile.owner is a bit of an historical mistake; it's really "creator" except we always set it to rosetta-admins if the creator doesn't have edit rights already. [10:11] jtv, fwiw, do note that you will see tests breakage if pofile.owner can't edit a pofile (I am sure that in all our laziness we used that often :) [10:11] wgrant: Thanks for that link; my bacon has been saved. [10:11] allenap: Yeah, uh, sorry about that. [10:11] jtv, oh, pofile.owner is bordering on the useless, I'd say [10:11] danilos: there's a good point… another reason to clean up, probably. [10:12] wgrant: Ah, are you the culprit? :) [10:12] danilos: if we stop giving it any privileges, we can also set it to the actual creator rather than "set to creator _if_ it doesn't conflict with current permissions." [10:12] allenap: Yes :/ [10:12] jtv, then it'd be nice to rename it as well [10:12] danilos: it may also avoid some of those cases where someone who's not in the translation team can continue to submit bad translations. [10:12] wgrant: Hehe, oops. [10:12] danilos: yes, I'd like that too. [10:12] allenap: Rather. [10:12] jtv, true, true [10:13] jtv, so, basically, you want to drop "owner" field and create a different "created_by" field [10:13] jtv, I agree that'd be nice, but this is a cleanup job for later :) for now, you can simply ignore the owner for permissions [10:13] danilos: that's what I had in mind, yes. [10:14] jtv, cool, sounds good [10:14] The main thing right now is not to give special rights to pofile.owner, in which case the only things that matter are the person, the language, and the pillar. [10:14] I was thinking of making this a method in ITranslationsPerson, since we have so many functions about this spread out. [10:23] ok, devel should be fixed [10:25] lifeless: Could you fire of that branch again, or shall I convince someone else? [10:25] someone else per favour [10:25] hello [10:29] hello [10:31] henninge: Could you please ec2 that branch again? [10:31] bigjools: Any progress? [10:31] query still running [10:31] Er. [10:31] wgrant: just test it or try to land it? [10:31] Doesn't it only take three minutes? [10:31] henninge: The latter. [10:32] wgrant: ok [10:33] wgrant: probably on production [10:33] bigjools: This was on staging. [10:33] hmm [10:33] Although it didn't have the archive/person join, that really shouldn't be that bad. [10:33] So 250k of our 330k branches are owned by 'ubuntu-branches', which is rather lopsided and will certainly be triggering timeouts in some areas. [10:33] * bigjools kills it [10:46] Who is buildbot angry with? [10:49] wgrant: http://pastebin.ubuntu.com/506369/ [10:50] stub: any luck with the bug portlet stuff? [10:50] wgrant: which means 1100 or so packages are lost in Ubuntu [10:50] bigjools: Uh, is that dateremoved IS NOT NULL? [10:50] yes [10:50] wgrant: sorry [10:50] :/ [10:51] lifeless: I'd say 1) work out what the query is trying to do 2) rewrite it. [10:51] 1) might be hard :P [10:51] wgrant: I meant to say, that's bpph.dateremoved IS NULL [10:51] bigjools: Is that prod or staging? [10:52] wgrant: staging [10:52] bigjools: The 3700 was from prod. [10:52] ok [10:53] I need to land your fix on prod [10:53] What does http://paste.ubuntu.com/506220/ say on staging? I suspect that will show that we haven't lost anything from the primary archive. [10:53] Alternatively, what does your dateremoved IS NULL query say on prod? === jtv is now known as jtv-afk [10:54] But yes, germanium and cocoplum want that patch. [10:54] argh [10:54] lifeless: Indeed. btw. the query I'm testing is slow on staging too, although better at a little under 30s. I'd suggest it is working at all under PG 8.3 purely by accident (if you consider 7 seconds working) [10:54] I cna't remember if that query was with or without the NOT [10:55] stub: thats odd; the one I copied from the OOPS I pasted takes 800ms on staging. [10:55] bigjools: I'm fairly sure it must have been dateremoved IS NULL. [10:55] stub: perhaps I'm connected to 8.3 on staging? [10:55] There is no 8.3 on staging [10:56] http://paste.ubuntu.com/506383/ is what I was looking at [10:57] http://pastebin.com/w3h72qvC [10:58] wgrant: right, nothing shows for NOT NULL in the main archive [10:59] bigjools: So I'm not completely insane. [10:59] This is good. [10:59] wgrant: just slightly [10:59] lifeless: I can confirm your query is fast on staging, fast on production 8.3, and slow on production 8.4. [10:59] stub: cool [11:00] stub: bizarre, but cool [11:00] bigjools: How about the rest of the archives? [11:00] lifeless: maybe data, or maybe less ram causing different query plans [11:00] wgrant: http://pastebin.ubuntu.com/506387/ [11:01] bigjools: That's staging dateremoved IS NOT NULL? [11:01] wgrant: yes [11:01] OK, so we can take care of most of them trivially. [11:03] wgrant: can you help me QA your fix on dogfood [11:04] Once we've fixed the dateremoved IS NULL, I'll get a list of the remaining pubs and work out what to do with them. [11:04] bigjools: Sure. [11:04] Let's see how... [11:04] wgrant: I'm updating its code, we need a test scenario [11:07] bigjools: Easy enough. Just upload a new launchpad-dependencies to maverick in ppa:launchpad, run the publisher, and confirm that the old version is superseded in maverick but still alive in lucid. === jtv-afk is now known as jtv [11:17] bigjools: Ah, I see that dogfood's PPA doesn't have a maverick launchpad-dependencies yet. [11:18] yeah [11:19] easily fixed [11:28] grar, I need a no-sign mode for publishing PPAs [11:29] Just unset the signing key, I suppose. [11:29] still a pita [11:29] How do you normally do it? [11:29] either than or copy some .gpg files around [11:30] that* [11:32] I need a single ppa mode too [11:32] 'UPDATE archive SET publish=false' FTW. [11:32] heh [11:48] bigjools: Er, why is the maverick publication Published but without a datepublished? [11:49] Did you manually set that? [11:49] Or is something even more broken? [11:52] I've been hacking it [11:53] looks like it worked ok [11:54] bigjools, wgrant: Ah, is this to fix the no launchpad-dependencies in lucid problem? [11:54] StevenK: Yes. [11:54] -ish [11:54] Right. === didrocks1 is now known as didrocks [11:56] mrevell: is there any reason we don't show the revno and 'get the code' link on launchpad.net ? [11:56] mrevell: (compare the footer on launchpad.net and edge.launchpad.net) [11:56] production-stable isn't public. [11:56] wgrant: prod stable isn't referenced. [11:57] lifeless: It should be by prod... [11:57] wgrant: and its going anyhow. [11:57] wgrant: base-layout-macros.pt, or look at the two pages I referenced. [11:57] launchpad.net's revno is on production-stable, which mortals cannot see. [11:57] wgrant: imagine an epic shrug from me. [11:57] Huh? [11:57] lifeless: wow you're on the ball with my CP [11:57] thanks [11:58] bigjools: de nada [11:58] wgrant: I'm making changes to match up with edge going, I don't care about the prod-stable stuff; I care about the UI [11:58] lifeless: How can it work if production-stable isn't public? Unless you link to the completely wrong code... [12:00] wgrant: we're deleting production-stable [12:00] grrr lp-land not playing ball on that branch [12:00] lifeless: Well, sure, once that's done. [12:00] lifeless: Before it was the revno, it was also the version number. I think it was on edge, and staging, to help people see that edge was running different code to production and also to help with reporting of bugs. I don't see any reason to keep "Get the code" off production. The revno maybe feels to me like something you wouldn't see on a production web app but I don't have a strong opinion on it. [12:00] wgrant: I can tolerate some imperfection [12:01] lifeless: tl;dr Old reasons that probably don't apply now. [12:01] mrevell: thanks [12:06] Morning, all. [12:08] bigjools: So the CP is happening? [12:08] wgrant: OTP [12:08] k [12:12] wow, isn't ohloh the hot potato [12:13] Because it keeps failing to import LP? [12:15] Oh, I see. [12:15] Indeed. [12:16] They can't seem to format their emails properly. [12:22] mrevell: so, my blog post [12:23] mrevell: could you hit 'go' on it before you EOD, or reply to me ? [12:23] gnight all === al-maisan is now known as almaisan-away === matsubara-afk is now known as matsubara [13:07] lifeless, thanks for landing that. :-) [13:36] bigjools: I suppose we can do little more tonight, since the CP will not happen for ages? [13:47] gmb: There was a question directed at you in bug 605783, but I think it's something that deryck should take a look at. [13:47] <_mup_> Bug #605783: SourceForge bugwatch updates are broken [13:47] dumb zope browser/mechanize question: how can i iterate over all the buttons in a form? [13:49] benji, maybe you know [13:49] dumb zope browser/mechanize question: how can i iterate over all the buttons in a form? [13:49] _get_all_controls is really particular about only letting me get _one_ control [13:50] aha! .mech_form.controls [13:51] leonardr: that'll work (but is undocumented/unsupported); you can also use beautifulsoup [13:51] what is this "beautifulsoup"? [13:52] allenap, I'll comment there. I saw it but was trying to figure out if we could get this scheduled. [13:53] benji: more seriously, is there a shortcut for making a soup of the current browser page? [13:53] i see some examples in pagetests but they do it from scratch [13:53] deryck: Yeah, that's what I meant really. [13:54] allenap, understood. I feel bad because we really should get this fixed. But it can't happen anytime soon. [13:54] leonardr: heh; BeautifulSoup(browser.contents) [13:55] benji: ah! i was thinking of helper *functions* like find_tags_by_class, which make a BS object and do something else [13:57] So nice to not see [object Object] when I comment on bugs now. [14:00] benji: actually, it looks like the right thing to do is to call find_tag_by_id(browser.contents, 'maincontent') [14:00] that gives you a bs tag [14:00] i don't think we create a bs object unless we really need the whole page [14:00] wgrant: nope, we need to wait for it to land [14:01] wgrant: then we can roll it out and do the SQL to fix everything [14:01] Sounds good. [14:03] where "everything" is followed by a sarcasterisk === didrocks1 is now known as didrocks [14:37] bigjools: could you tell me why this query returns 0 rows? [14:37] http://paste.ubuntu.com/506504/ [14:37] it used to return lots [14:52] jml: what are you trying to do? [14:53] https://lpstats.canonical.com/graphs/UddSourcePackagesWithoutBranches/ [14:55] jml: DistroSeries.releasestatus = 2 ? [14:55] # DistroSeries.releasestatus == 2 => under active development [14:55] jml: it's not any more [14:55] it's frozen [14:56] bigjools: that'll be it then. [14:57] bigjools: thanks. [14:58] jml: np! [14:58] glad to be helping you for a change :) [15:01] uhh :( [15:01] SeriesStatus.DEVELOPMENT == 2 :( [15:02] jml: That isn't what bigjools meant. [15:02] jml: Not that 2 isn't Development; that Maverick itself is Frozen. It won't thaw until release. [15:02] jml: maverick is in "Pre-release Freeze" [15:02] not development [15:03] bigjools: but I'm not searching for maverick in that query. [15:03] jml: there are no other series in development [15:03] it would have been matching only maverick [15:03] ahh ok. now I get it. [15:03] I guess I need to make it say "releasestatus IN (2, 3)" [15:04] when natty is opened it'll be experimental for a bit too [15:04] jml, can i get your buy-in on https://dev.launchpad.net/LEP/DesktopWideLaunchpadIntegration? i already have buy-in from kees, lifeless, and other luminaries [15:04] leonardr: almost certainly [15:04] leonardr: I feel obliged to read it before I approve it though. [15:04] please do [15:04] leonardr: but I've been following the ML discussion so I reckon it'll be smooth [15:05] deryck: What do we do with feature suggestions normally? https://answers.edge.launchpad.net/malone/+question/127685 [15:05] Convert to a wishlist bug? [15:06] allenap: orbital lasers. [15:06] jml: Lol. Getting a GPS fix now. [15:06] allenap, yeah, but I think this "have pretty graphs" bug already exists somewhere. [15:08] deryck: I can't find it, but I can reply saying that, yes, we want it too, and perhaps paste kfogel's contributor bait paragraph too? [15:10] If I can find *that*. === almaisan-away is now known as al-maisan [15:56] can I persuade someone to write a script that shows all of the in-progress work on Launchpad at a branch/revision/bug level, broken down by stage (e.g. needs-reviews, needs-qa, being-tested, awaiting-deployment etc) [15:57] ./utilities/branch-flow is something of a start, but isn't really that great. [16:02] leonardr: contrariwise, could you please look at https://dev.launchpad.net/LEP/ActivatingDevelopmentFromDesktop [16:03] jml: there's a small chance that my lep obsoletes that one, but if not, there's not much overlap. [16:03] ActivatingDevelopmentFromDesktop is currently the one remaining case where we authorize an app-specific token [16:04] (obsoletes that one == obsoletes the part about time-limited authorization keys) [16:04] leonardr: ahh ok. [16:05] leonardr: I've just approved DesktopWideLaunchpadIntegration. Thanks for the clear write-up. [16:05] i have not done exhaustive research, but it's possible that a time-limited authorization key will not really provide much additional security [16:05] sure === deryck is now known as deryck[lunch] === deryck[lunch] is now known as deryck === matsubara is now known as matsubara-lunch [17:17] benji, did you see the mailing list thread about the LayerIsolationError? Is that what you are experiencing? === salgado is now known as salgado-lunch [17:43] jcsackett, hi (btw, I don't see you on #launchpad-reviews) [17:43] danilos: hi, no, i'm CHR today and got lost in that and now a testfix; completely forgot to join #launchpad-reviews. [17:43] i'll join that channel if you would prefer. [17:43] jcsackett, just one question about the branch you asked me to review? what is the goal behind it? just switching from official_rosetta to the usage enum? [17:44] jcsackett, nah, this is fine, just thought I'd mention it if you want to add it to your auto-join channel list :) [17:44] no, that goal has been met, this is dealing with consistency in configuration for usage_enums. [17:44] other services have a config option even when set to ServiceUsage.LAUNCHPAD; translations did not, as it has no action menu to grab the global action. [17:45] so, for consistency's sake, the branch adds one there (so you could, say, disable the enum for a product if it's enabled). [17:45] jcsackett, oh, so you mean it's about adding it to the translations.lp.net pages? [17:45] danilos: not entirely sure what you mean. [17:46] the branches sole goal was to add a configuration link for the usage enum to translations when translations is already enabled (via enum) on a product. [17:46] jcsackett, well, it was possible to set it on "registry" pages [17:46] ah, i see. [17:46] right, the translations front page; so translations.launchpad.net/ [17:46] jcsackett, right, so this is exactly the thing that I wanted to move to the global "configure translations" page :) [17:47] jcsackett, thanks for explaining the reasoning, I'll comment on the bug [17:47] jcsackett, we can get this landed, but it just makes stuff more confusing imo [17:47] jcsackett, also, if all the other apps are using action menus, we should probably do that for translations too [17:48] danilos: that's why i requested you review it; it's possible the bug it's filed against isn't really valid. [17:48] all other apps are dealing with collections and have the same basic interface (list of related items). translations is an exception to that, so it's possible that the configuration option belongs in +settings or something, as those other bugs you pointed out describe. [17:51] jcsackett, I am not sure I agree with that statement (translations pages deal with collections as well, and we quite specifically show a list of languages on the product frontpage); there are ways to get to a list of templates, or list of imports, so I think we are not that special case, but might just be out of date on the design side [17:51] jcsackett, and if we are, I want to fix that :) [17:52] jcsackett, also, why do we use the camel case capitalization for the title on "Configure Translations" pages? I thought the agreed norm was to not use it [17:53] salgado-lunch, hey, UI reviewer, what's the recommended capitalization for web page titles? :) [17:57] danilos: what part of this branch makes it more confusing? just the addition of yet another configuration option? === matsubara-lunch is now known as matsubara === gary_poster is now known as gary-lunch === al-maisan is now known as almaisan-away [18:12] jcsackett, yeah (i.e. instead of fixing it all to be on the same page, we are spending effort to introduce the new page) [18:15] danilos: fair. it's a bit of a stopgap. [18:15] if you could write up a good reason we don't need this in favor of a better settings page on the MP, i'm fine to abandon the branch and mark the related bug as wontfix. [18:16] danilos: we just need an explanation for leaving it as is when we go to mark the bridging-the-gap feature work as done. [18:16] jcsackett, right, and as such, I don't have a big problem with the branch as-is [18:16] danilos: less of course fixing the issues with title &c? [18:16] jcsackett, well, it's ultimately your call: I will write up an explanation, but other than a minor issues, I am fine with it landing as well [18:17] jcsackett, so, I'll approve the branch as well [18:17] danilos: cool. sounds good. :-) [18:17] thanks, danilos. [18:17] danilos: FWIW I would love to see (and help with) a more unified translations settings page. :-) [18:17] (though the help with part may have to be mostly on my own time.) [18:18] jcsackett, heh, sure, we'll work on it pretty soon now as well: we want to streamline translations setup as our next step [18:18] danilos: awesome. :-) [18:33] flacoste, meeting on mumble? === salgado-lunch is now known as salgado [18:43] sinzui: yes [18:44] danilos, according to https://dev.launchpad.net/UserInterfaceWording, it should be sentence case [18:44] salgado, right, thanks [18:44] jcsackett, ^ (link by salgado :) [18:46] danilos: dig; i'll make that change. === gary-lunch is now known as gary_poster [19:28] moin [19:28] lifeless! [19:29] hi jelmer [19:29] morning, lifeless. [19:29] hey deryck [19:57] * tyarusso sighs [19:57] ? [19:58] Has *anyone* succeeded in setting up their own production instance of Launchpad + CIP? I'm getting failures finding things from pip with CIP currently. [19:58] * anyone other than Canonical, of course [20:01] I wish Canonical offered hosted Launchpad instances for businesses, or at least a consulting service to set it up for you. [20:03] tyarusso: I would talk to bac. [20:06] jpds: do you know when s/he is normally around? [20:10] jpds: bac doesn't do that anymore, mrevell does [20:10] tyarusso: hi; we do run private content for businesses that want it, on the production LP. [20:11] tyarusso: matthew.revell at canonical.com would be good to talk to about your needs. [20:11] flacoste, PS 4198 pillar/person name collisions, 1509 of these are actually teams [20:12] sinzui: you mean we have 4.2k project that have the same name than a team? [20:12] 1509 have the same name as a team [20:12] lifeless: Well, that situation we would want is to have it under our domain name and branding, which I was previously told isn't possible currently with your stuff. Still true? [20:12] 2.5k are users with the same name [20:13] ack [20:13] tyarusso: thats true, launchpad itself isn't capable of being branded multiple ways in a single deployment. [20:14] lifeless: Do you think revell would be useful for helping us set up our own, or is that outside of his scope? [20:14] I'd just ask on the launchpad-dev mailing list [20:16] k [20:17] It's being rather hard to convince myself to do this instead of 'apt-get install gforge', which is a shame, since LP is rather nice once it's up. [20:22] deryck: did we deselect the automatic expiry before sending the notifications? [20:23] tyarusso, lifeless: it's outside of his scope === jcsackett_ is now known as jcsackett [20:23] tyarusso: the only instance i know of a rebranded LP is quickbuild [20:23] flacoste, actually, no. Send then deselect. That was a bad choice in hindsight. [20:23] deryck: it is! [20:23] deryck: i just went to my project to enable it [20:24] and saw it was already enabled [20:24] yeah, it's a bad choice. not sure if we should do anything to correct it now. [20:25] tyarusso: https://quickbuild.pearsoncomputing.net/ [20:25] deryck: i'd say send a second email once you deselect it for real [20:25] deryck: because anybody who acted on your email right away will be screwed [20:26] or at least very confused [20:26] flacoste, sure. I can do that. [20:26] hate to spam, but it's probably the reasonable thing to do. [20:29] flacoste: hmm, interesting. Who runs that? [20:31] tyarusso: be aware thought that it's not a full deployment, there are stuff that is disabled [20:31] tyarusso: i can't remember [20:31] but he's the maintainer of the trinity project [20:32] (continue to support packaging of KDE 3 series) [20:35] well, out of time for today. Maybe better luck tomorrow... [20:35] gary_poster: thanks for your branch on bug 650343, but the header name actually changed [20:35] <_mup_> Bug #650343: Add X-Launchpad-Original-To to recipient lists [20:35] gary_poster: it's now X-Launchpad-Original-To, (not X-Original-To) [20:36] flacoste: ah, misunderstood. Not merged for other reasons. Will make a change [20:40] sinzui: I'd like to edit the permissions for OfficialBugTagsManageView so that bug supervisors can also edit them. Would I add a class for this to security.py? [20:43] bdmurray, isn't that also security on the context object. I think the rules are in there, and the rules on the view just work [20:43] * sinzui looks [20:46] we can't use views for security though [20:46] have I gone mad? I thought there was a bugtag interface and model [20:47] lp.bugs.interfaces.bugtarget.IOfficialBugTagTargetRestricted ? [20:48] bdmurray, thanks so we do have an interface, now I will check the zcml [20:53] bdmurray, there is nothing to edit [20:54] sinzui: it is just launchpad.Edit now right? I want to extend this to bug supervisor. [20:55] bdmurray, IOfficialBugTagTargetRestricted is only used to define security on the view and since there is no rule for IOfficialBugTagTargetRestricted, it falls back to target types lp.Edit (distro|product|dsp|dseries|pseries) [20:55] sinzui: yes, so I'm asking how to make this rule [20:56] bdmurray define a security checker for IOfficialBugTagTargetRestricted that checks the admin, target.owner, target.bug_supervisor [20:57] sinzui: okay, that's what I'd thought and it what would the value of usedfor be? [20:57] bdmurray, in the case of a project or any kind of series, I think checking target.driver is also correct. This addition ensure Release managers can tag their bugs [20:58] bdmurray, usedfor = IOfficialBugTagTargetRestricted [20:58] sinzui: okay, thanks for the help [21:16] flacoste: I intend to just Edit the wiki pages surrounding production changes to match RFWTAD - do you want any editorial oversight ? [21:16] flacoste: or will you just look and tweak post-hox [21:17] lifeless: please be my guest, i'll tweak post-hoc if needed [21:18] hey guys, is is appropriate to ask about the launchpad-developer-dependencies package in here? #launchpad is awfully quiet [21:20] negativezero, this is the correct place [21:21] i'm trying to install launchpad locally, but apt can't seem to find the aforementioned package. i've used both rocketfuel-setup and added the ppa's to my apt sources [21:22] negativezero, :( rocketfuel-setup does add the archives to your sources list [21:22] what version of Ubuntu do you have? [21:22] 10.04 [21:22] sinzui, how do I handle database records that reference Person? [21:24] negativezero, did you also update your apt-cache to see what is in those soruces [21:24] rockstar, ? [21:24] sinzui, I should have put quotes around "handle." [21:25] sinzui, I get a nice "NotImplementedError: branchmergequeue.owner reference to person.id is in a UNIQUE index but has not been handled" [21:25] rockstar, what are database records? [21:25] sinzui, database patches. [21:25] * rockstar needs to pull his head out... [21:27] rockstar: is this in the person merge tests? [21:27] mwhudson, yes. [21:27] you need to add code in the person merge code to decide what to do [21:27] mwhudson, well, no, it's in all sorts of tests, but I assume it has to do with the person merge stuff. That's why I asked sinzui in the vaguest way possible. [21:28] oh [21:28] mwhudson, but I assume what you say is correct. [21:28] mwhudson, where is the person merge code? [21:28] sinzui: i ran an apt-get update. is there a command to update apt-cache specifically? [21:29] negativezero, that's what apt-get update does. [21:29] rockstar, I think I understand. in cases where this could happen, we often check that it can happen, then ask the user to either destroy the object to prevent a unique key violation, or we add rules that make the new items unique [21:29] negativezero, I suspect that the PPAs are out of date with Lucid now, since we've all switched to maverick. [21:30] negativezero, you did the right thing [21:30] sinzui, can't we just change the order? [21:30] s/order/owner... [21:30] there's some launchpad-integration packages in my cache [21:30] Dammit I should go back to bed and hope tomorrow gets better. [21:31] rockstar, I saw an oops like this in translationqueueentries recently. I decided to to change the owner. The other option is to tell the user he must wait until the queue is cleared [21:32] rockstar, in the translationqueue issue, we discussed there is a chance that permissions will be lost. I do not know what to do in the case of branchmergequeue.owner, but I think you want to add a rule to change it to the new owner [21:33] sinzui, okay, so where's the code that "handles" this kind of problem? [21:33] (Basically, how do I fix these tests) [21:34] rockstar, lp/registry/model/person.py look for the for "def _merge" [21:34] sinzui, ah, okay. [21:35] rockstar, you may want to look at lp/registry/browser/peoplemerge.py if you decide you need to tell the user to wait for the queue to empty. [21:36] sinzui, this queue is like the pqm queue. If you're lucky, it'll NEVER be empty. :) [21:36] rockstar, can I have more than one item in the queue? [21:36] sinzui, yes, but they already have owners. [21:36] (The items are branch merge proposals) [21:37] excellent just look at the model you only need to add or update a rule to change their owners [21:52] sinzui, it does seem a bit odd that I get this on a failure in a database patch branch. [21:54] rockstar, I think salgado/stub is pretty clever I suspect they check that for everything a person links to has a rule in person merge [21:56] sinzui, okay. Thanks for your help. I think that'll be the last of my failing tests. [21:59] flacoste: ok, I think I'm done. [22:03] Grararrara [22:03] abentley, wallyworld, is it skype time yet? [22:04] rockstar: sure. [22:04] I had a whole lot of translation-related failures in one of my branches overnight. [22:04] Are those known? [22:04] rockstar: yep [22:15] abentley, wallyworld, my mic no longer works, because it accidentally got unplugged and pulse is a stubborn bugger. [22:17] abentley, wallyworld, thanks! [22:18] rockstar: pkill npviewer.bin + check in the sound prefs that its not muted. [22:19] lifeless, yeah, but when it already thinks there's a connection, it won't reset it. [22:22] lifeless: done with what? [22:22] flacoste: edits to the production process docs [22:22] lifeless: ah, cool, i'll review the notifications email later :-) [22:22] abentley: did you sort out your QA issue? [22:22] flacoste: we'll need to do another pass once qastaging is actually live. [22:36] Anyone: what's the status of the erroneous-superseding issue? [22:38] in buildbot [22:38] 40 minutes to go [22:38] when that completes we can CP it [22:39] and then we need to do a db update to change data to be right [22:39] wgrant has details [22:40] I don't know the CP status, obviously. [22:40] We will revert most of the publications to Published this evening. But some older PPA ones will need more manual recovery. [22:40] wgrant: naturally, I mean the db repair [22:40] But the ~launchpad PPA is fixed now, anyway. [22:46] bugger [22:46] twisted.internet.error.ProcessExitedAlready: [22:46] where was the fix for that? [22:47] I've only seen that from a buildd. [22:48] bigjools mentioned it as a known test failure in devel, which was fixed [22:48] we need to port the fix to prod-devel. [22:55] deryck: ping? [22:55] hi gary_poster [22:56] hey deryck. I'm trying to get my triaging in order. What's the story of this one: https://bugs.edge.launchpad.net/lazr.restful/+bug/443217 [22:56] <_mup_> Bug #443217: Changing a bug's affected project or description doesn't ever finish [22:56] it looks like Tom was working on it and had a handle on it, but of course, Tom is off doing other Tom things now [22:56] gary_poster, it's actually very close to next on our queue. It's the next card on the backlog. [22:56] ah ok cool [22:57] is it a lazr.restful bug? [22:57] gary_poster, I think it can be fixed in lp. But I left the task new until we could look more closely at it. [22:58] ok deryck. um...since I'm trying to get rid of "New"s...would "Incomplete" be a reasonable description of the lazr.restful part of the task? I guess that seems kind of artificial, but it reflects reality in that I shouldn't have anyone look at it yet, AFAICT. Would that be ok? [22:59] gary_poster, yeah, fine with me. We should make a call on it before it expires. [22:59] cool, thanks deryck [22:59] np! Thank you. === matsubara is now known as matsubara-afk [23:08] Were there any known translations failures overnight? [23:14] wgrant: could you perhaps look for that bugfix he talks about ? [23:14] wgrant: and I will shepard it into prod devel [23:15] lifeless: Any idea when it was from? [23:16] his sprint with jml I think [23:16] or since [23:16] Which rev was last mass-CP'd? [23:17] we're fully deployed up to (inclusive) 11609 [23:17] flacoste: no, abentley oculdn't qa completely, blocked on puloads on staging not working [23:17] flacoste: lamont was going to look at it [23:21] lifeless: I see nothing particularly relevant since then. [23:21] There were a couple of things moved around due to the sprint. [23:21] But that's about it. [23:21] ah [23:21] r11594 [23:21] which we have [23:22] Ah, yes, that one. [23:27] bryceh, ping [23:29] sinzui, yep [23:29] bryceh, do you see an administer link on https://edge.launchpad.net/~bryce ? [23:29] sinzui, yes [23:29] sinzui, 'Administer' and 'Administer Account' [23:31] deryck: Woah, I just got seven emails from you. [23:31] bryceh, you can use Administer to change that name... [23:31] StevenK: I've just mailed canonical-lp about the prod-devel bb failure, can you perhaps investigate? you know more than I about that area. [23:31] wgrant, you must own 7 projects on lp. :-) [23:31] Ah, missed that detail. [23:31] Indeed. [23:31] bryceh, but to change your id to bryce, you need to *delete* all you PPAs. You can create new ones, but they cannot have the exact same name. [23:32] bryceh, that may be too drastic of a step for you to take [23:33] afk- lunch and firewood stacking [23:34] sinzui, ok, that may be ok. Would it also require re-joining groups / mailing lists, or will those memberships get transitioned? [23:34] bryceh, nothing else. changing your launchpad id does not change your db id. [23:35] bryceh, the PPA restriction is because you have a public URL attached to the PPA [23:35] bryceh, I know of one user who deleted his PPAs, then a day later we got complaints that those PPAs went missing [23:35] sinzui, ok [23:36] sinzui, since I've been on launchpad the past 5 months I think all my ppas are basically stale by now. [23:36] anything "permanent" I've tended to put into a team ppa rather than my own. So I think I'm safe, but that's good to know. [23:36] okay. [23:37] I wish we could know how many subscribers we have. [23:39] The code is all there for number of package downloads. [23:41] sinzui: I'm having some issues with my branch regarding permissions for official bug tags - it seems to be the security checker is never used [23:43] bdmurray, :( So while the view has always had a rule for IOfficialBugTagTargetRestricted, the security checker for IOfficialBugTagTargetRestricted is not used. I assume the IProduct launchpad.Edit is used? [23:44] wgrant, the code is there, but the logs are not being parsed? [23:44] deryck: You didn't notify owners of projects where the flag was disabled? [23:44] sinzui: Correct. [23:44] I landed the code in March, but some performance issues took a while to fix. [23:46] wgrant, I notified bug supervisors if there was one at first, thinking if one was set that was the preferred contact for something like this. [23:46] wgrant, stupid me, the bug supervisor can't change the setting. [23:47] deryck: I didn't get an email for some of my team-owned projects. [23:47] But I suppose they might have had the flag disabled. [23:48] wgrant, ah right. Yes, if they already had this disabled, you would not have been contacted at all. [23:52] sinzui: I'm adding the security checker for IOfficialBugTagTargetRestricted so yes I believe IProduct launchpad.Edit is currently used [23:53] bdmurray, can you pastebin the checker addition? [23:54] It will use the most specific adapter. [23:54] There is no way around it. [23:54] sinzui: http://bazaar.launchpad.net/~brian-murray/launchpad/modify-official-bug-tags-permissions/revision/11593 [23:54] (unless you have the tag stuff on a separate object, or use a different permission name)