[00:01] <wgrant> hah
[00:01] <wgrant> 30ms query in all product traversals
[00:01] <wgrant> with pillarname.alias_for IS NULL, when the alias_for index is partial on NOT NULL.
[00:34]  * wgrant dies quietly.
[00:40] <wgrant> lifeless: https://code.launchpad.net/~wgrant/launchpad/bug-932438/+merge/93109 would enjoy your perusal.
[00:40] <wgrant> StevenK: Could you please review https://code.launchpad.net/~wgrant/launchpad/bug-932451/+merge/93111 and https://code.launchpad.net/~wgrant/launchpad/bug-932433/+merge/93110?
[00:43]  * wgrant headdesks repeatedly
[00:43] <wgrant> goddammit
[00:43] <wgrant> did nobody actually think when they were writing any of the queries on Product:=index
[00:43] <wgrant> Half of them are unindexed.
[00:43] <wgrant> So they only work at all because the tables only have 100000 rows.
[00:44] <wgrant> Oh look, now the query is 0.1ms
[00:45] <StevenK> wgrant: r=me * 2
[00:46] <wgrant> Thanks.
[00:53] <wgrant> And another two missing indices.
[00:54] <wgrant> That should be about 400ms off /unity now, I think.
[00:55] <lifeless> wgrant: you forgot to request from stub as well
[00:55] <wgrant> Blah, true.
[00:55] <wgrant> If you hold off for a minute I'll have another two indices in there.
[00:58]  * StevenK peers at his ec2 run
[00:58] <StevenK> It has dropped the entitlement table, but a method under IPerson is still trying to query it.
[00:59] <wgrant> StevenK: Person merge will query anything that has foreign keys.
[00:59] <wgrant> You'll need to drop the foreign keys before you move to todrop.
[00:59] <wgrant> Only foreign keys to branch and person matter.
[01:00] <StevenK> Oh, my DB patch is wrong
[01:00] <wgrant> Well, it's right.
[01:00] <wgrant> It just won't work.
[01:01] <wgrant> We should possibly fix upgrade.py to drop todrop relations even when unreplicated, but I was never brave enough to do it.
[01:04] <StevenK> wgrant: I need to ALTER TABLE person DROP CONSTRAINT entitlement_{approved_by,person,registrant}_fkey; ?
[01:05] <wgrant> StevenK: ALTER TABLE entitlement, but roughly yes.
[01:05] <StevenK> wgrant: But won't they get deleted if I just drop the entitlement table?
[01:06] <wgrant> They will, but you can't drop the entitlement table.
[01:06] <wgrant> You can only move it to todrop and then let upgrade.py have its way with it.
[01:06] <wgrant> It will eventually drop in a replicated environment, but not AFAIK in an unreplicated one.
[01:07] <wgrant> And we are possibly going to move the replicated drop to after service is restored.
[01:07] <wgrant> Which means you'd have to drop the FKs early anyway.
[01:08]  * wgrant lunches.
[01:08] <StevenK> wgrant: http://pastebin.ubuntu.com/842474/
[01:09] <wgrant> StevenK: Looks reasonable. Apply it locally and check that entitlement has no more FKs onto person or branch.
[01:09] <StevenK> I didn't see any on branch, but I'll check
[01:09] <StevenK> And then commit/push/re-toss at ec2
[01:09] <wgrant> There probably aren't any.
[01:10] <wgrant> But those are the two tables that matter.
[01:10] <StevenK> I was tempted to pg_dump launchpad_dev | grep entitlement | grep CONSTRAINT or some such
[01:10] <wgrant> \d entitlement should do fine
[01:11] <wallyworld> huwshimi: got a minute for a css question?
[01:11] <StevenK> wgrant: distribution, product and project too :-/
[01:12] <wgrant> StevenK: They don't matter.
[01:12] <StevenK> Oh, they will get binned when the table does?
[01:12] <StevenK> But the person FKs are thpecial?
[01:12] <wgrant> They will all get binned when the table does.
[01:12] <wgrant> Person and branch FKs are special because our code queries to find all of them.
[01:12] <wgrant> On branch deletion and person merging.
[01:13] <StevenK> Right
[01:13] <wgrant> To check for references that need breaking or updating.
[01:13] <wgrant> Oh, LFA also.
[01:13] <wgrant> But there probably aren't any of those.
[02:19] <lifeless> wgrant: this needs a faq I think
[02:19] <lifeless> wgrant: on the dbpatches pages
[02:19] <lifeless> wgrant: its a vicious special case that folk don't touch often enough to have paged in
[02:20] <wgrant> lifeless: Yeah
[02:20] <wgrant> Probably.
[02:21] <wgrant> But tests catch it, so it's not so bad.
[02:24] <lifeless> wgrant: having a canned answer would avoid confusion.
[02:24] <lifeless> wgrant: would you like to write one?
[02:25] <lifeless> (I would like /someone/ to write one)
[02:25] <wgrant> I two massive DB patches to finish today; maybe after that :)
[02:27] <wgrant> lifeless: Is there a good reason we don't use HSTS?
[02:28] <wgrant> I believe there are a couple of types of URLs (PRF downloads) that we force to HTTP for probably no good reason.
[02:28] <wgrant> But HSTS is probably useful for performance as well as security.
[02:32] <lifeless> get chrome to put it in their hardcoded list ?
[02:33] <lifeless> wgrant: its never been discussed TTBOMK
[02:33] <lifeless> back soon
[02:36] <wgrant> lifeless: HSTS is a header
[02:37] <wgrant> http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
[03:04] <lifeless> wgrant: I know
[03:04] <lifeless> wgrant: (what in my answer suggested I didn't ?)
[03:04] <wgrant> lifeless: You mentioned Chrome's hardcoded list.
[03:05] <lifeless> yes
[03:05] <lifeless> wgrant: http://www.chromium.org/sts
[03:07] <wgrant> lifeless: Perhaps eventually.
[03:07] <wgrant> But we should do the header first :)
[03:08] <mwhudson> that's a pretty random list of sites
[03:08] <StevenK> And IE doesn't support it. This is my surprised face.
[03:08] <wgrant> +download/blah is the only thing we don't currently server over HTTPS to browsers
[03:08] <wgrant> And we'll have to start HTTPSing for some things soon.
[03:09] <wgrant> (due to private projects)
[03:09] <lifeless> +download/blah should be https
[03:09] <wgrant> So hopefully https://rt.admin.canonical.com//Ticket/Display.html?id=30043 isn't an issue
[03:09] <wgrant> any more
[03:09] <wgrant> lifeless: You would damn well think so.
[03:09] <wgrant> But Plone seems to be a bit screwed.
[03:09] <wgrant> Or was in 2008.
[03:09] <lifeless> so
[03:10] <lifeless> this exemption should be backed up by logic in LP
[03:10] <lifeless> +1 on nuking it, with a short list discussion to make sure noone is surprised
[03:10] <wgrant> Great.
[03:10] <wgrant> Then I shall deploy HSTS and X-Frame-Options and HttpOnly
[03:11] <lifeless> do we generate http urls for +download ?
[03:11] <wgrant> (the last of which requires a minor zope.session upgrade)
[03:11] <wgrant> I believe so.
[03:11] <lifeless> as long as you stop generating them the apache rule won't be in the way
[03:11] <lifeless> (though that isn't a reason to preserve it)
[03:11] <wgrant> Yep
[03:14] <wgrant>         return str(URI(url).replace(scheme='http'))
[03:14] <wgrant> There's the guilty one.
[03:15] <StevenK> Kill it
[03:16] <wgrant> poolie: What are your not-4-year-old thoughts on https://bugs.launchpad.net/launchpad/+bug/174186?
[03:16] <_mup_> Bug #174186: https redirects pose download problem <infrastructure> <lp-bugs> <lp-foundations> <Launchpad itself:Invalid> < https://launchpad.net/bugs/174186 >
[03:25] <wgrant> StevenK: could you review https://code.launchpad.net/~wgrant/launchpad/remove-extra-privacy/+merge/93122? As discussed on the call this morning.
[03:28] <StevenK> wgrant: The CTE flag never made it to flags.py? :-(
[03:29] <wgrant> Nah, it was only meant to last a couple of days.
[03:29] <wgrant> But I forgot to delete it.
[03:30] <StevenK> first_product = self.factory.makeProduct(name='bunny')
[03:30] <StevenK> I thought I saw something odd in the diff
[03:30] <StevenK> Had it read it closer
[03:30] <StevenK> wgrant: r=me
[03:30] <wgrant> Thanks.
[03:45] <poolie> hi wgrant
[03:46] <poolie> wgrant, i think it's funny when things flip from fixreleased to invalid :)
[03:46] <poolie> it's not a practical issue for bzr atm afaik
[03:46] <poolie> i would leave it ~wontfix
[03:47] <wgrant> poolie: It's really Fix Released, but the Great LP Project Merge let the Invalid malone task take over.
[03:47] <wgrant> So it's currently fixed.
[03:47] <poolie> how is it fixed?
[03:47] <wgrant> But I am going to unfix it unless someone brings up a very good reason to not.
[03:48] <wgrant> Check the download links on https://launchpad.net/bzr/+download
[03:48] <wgrant> They're the only internal HTTP links in Launchpad
[03:48] <poolie> wow
[03:48] <poolie> that's crazy
[03:48] <StevenK> All because of Plone
[03:49] <StevenK> I knew Plone was evil, this just confirms it
[03:49] <poolie> please do fix it, i think it's a bug, arguably a serious one, that those links are insecure
[03:49] <wgrant> One would think so.
[03:49] <wgrant> Thanks.
[03:49] <poolie> i do think it's nice if there is at least the option to get the final file over http
[03:49] <poolie> ie if the librarian speaks http if you ask for it on the final url
[03:49] <wgrant> You can s/https/http/ in the librarian URL and it will still work.
[03:49] <wgrant> If you really must get a compromised copy of the file.
[03:50] <poolie> yep
[03:50] <poolie> i think that's a decent accommodation to the specific case of broken clients or ridiculous firewalls
[03:51] <wgrant> I might just make the change and then publicly shame anybody who complains that their stuff is broken.
[03:52] <lifeless> public shaming isn't a terribly friendly strategy
[03:52] <wgrant> Neither is downloading code over HTTP :)
[03:53] <poolie> the issue like this that does currently annoy me is that curl, by default, doesn't follow redirects
[03:53] <poolie> but, lp probably can't do anything about that
[03:53] <poolie> i guess if we wanted to help people like this
[03:53] <lifeless> we could generate librarian urls directly in the page
[03:53] <poolie> and i'm not saying it's a priority
[03:53] <lifeless> except for private context
[03:53] <lifeless> *content*
[03:53] <poolie> right, put the final url
[03:53] <poolie> and then people can more obviously make the protocol change themselves
[03:54] <lifeless> OTOH its a special case for pretty low return
[03:54] <lifeless> curl should really follow redirects over HTTPS
[03:54] <poolie> i don't know why it has that default
[03:54] <poolie> also it just gives you an 0 byte file rather than erroring
[03:55] <poolie> oh well
[04:03] <lifeless> poolie: (curious) have you filed a bug ?
[04:03] <wgrant> There's an option to make it follow the redirect.
[04:08] <StevenK> wallyworld: Did you notice you got r14800 ?
[04:09] <wallyworld> no
[04:09] <wallyworld> what's the significance?
[04:09] <StevenK> wallyworld: Your MP fix is r14800
[04:09] <poolie> lifeless, nup i assumed it was intentional
[04:09] <StevenK> It's a 00 number!
[04:10] <StevenK> They're special or something
[04:10] <wallyworld> oh, ok :-)
[04:10] <wallyworld> i feel much better knowing that
[04:10] <poolie> StevenK: +2 damage
[04:11]  * StevenK grumbles at the lack of QA
[04:19] <wgrant> StevenK: https://code.launchpad.net/~wgrant/launchpad/bug-932518/+merge/93127 is as discussed above, +4/-118. But you've done a few of mine today, so feel free to ignore if you've had enough :)
[04:20] <StevenK> And here I was figuring it was payback for yesterday. :-P
[04:20] <wgrant> I only took like two of yours yesterday.
[04:20] <wgrant> I was a bit surprised when you decided to throw one at wallyworld.
[04:22] <StevenK> wgrant: I figured I had annoyed you enough. But, r=me
[04:22] <wgrant> Thankyou sir.
[04:23] <wgrant> StevenK: I might point out that all the bugs I've squashed today have been bugs that I also filed today :)
[04:24] <StevenK> They're still squashed. :-P
[04:25] <StevenK> wgrant: https://code.launchpad.net/~stevenk/launchpad/two-part-combobuild/+merge/93125
[04:26] <wgrant> Curses.
[04:29] <wgrant> StevenK: It's not a problem any more that meta.js won't be in the minified output?
[04:30] <StevenK> wgrant: No, we were using meta.js only, and the difference between them is only 4K
[04:30] <wgrant> StevenK: Also, why do we want to do this?
[04:31] <wgrant> Doesn't this mean prod will now minify twice?
[04:34] <StevenK> wgrant: We want to do this for Rick's work of the tests using JS under build/js
[04:34] <StevenK> And yes, for the short term
[04:35] <wgrant> Ah, right.
[04:36] <wgrant> r=me
[04:36] <StevenK> wgrant: Thanks!
[04:44]  * StevenK wonders how to make visibility the third field
[04:45] <wallyworld> huwshimi: ping
[04:45] <huwshimi> wallyworld: Yo
[04:45] <wallyworld> huwshimi: i have a ccs question for you https://pastebin.canonical.com/60211/
[04:48] <wgrant> lifeless: Am I allowed to make code changes in db-devel as long as they're not necessary on production?
[04:48] <huwshimi> wallyworld: Is there a reason that description is in the <a> then?
[04:49] <wgrant> lifeless: I want to have tests for these triggers.
[04:49] <wgrant> lifeless: Which probably means introducing new Storm classes etc.
[04:49] <wallyworld> huwshimi: so a user can click anywhere in the text to fire the link
[04:50] <wallyworld> huwshimi: i don't understand why the text-decoration: none is being ignored
[04:51] <huwshimi> wallyworld: It's probably to do with specificity and how the underline is applied to the a tag. You might be able to try ".yui3-ichoicelist a .choice-description:hover" (notice the "a" there).
[04:51] <StevenK> I thought FormFields was a list. :-(
[04:51] <wallyworld> huwshimi: thanks, will give it a go now
[04:52] <StevenK> Since I don't want to add it near the end
[04:52] <StevenK> Well, at the end
[04:54] <lifeless> wgrant: no
[04:54] <wallyworld> huwshimi: no go sadly.
[04:54] <huwshimi> wallyworld: Do you use chrome or firefox?
[04:54] <lifeless> wgrant: thats the short answer; the long answer is that its really hard to be -completely- confident nothing will leak
[04:54] <wallyworld> huwshimi: ff
[04:55] <huwshimi> wallyworld: Hmm.. I wanted to check something, but I'm not sure how to do it in Firefox
[04:55] <lifeless> wgrant: I suggest you do the tests in a branch, review it as a branch + prereq, and land separately
[04:55] <wallyworld> huwshimi: also bad in chrome
[04:55] <wgrant> lifeless: k, thanks
[04:55] <wallyworld> just checked
[04:55] <huwshimi> wallyworld: Oh, yeah I just wanted to check something in Chrome's inspector
[04:56] <huwshimi> wallyworld: As in, if you inspect the span if the css rules are being crossed out
[04:56] <wallyworld> huwshimi: since it's the same in both, you can check in chrome
[04:56] <wallyworld> i'll have a look also
[04:57] <huwshimi> wallyworld: is this code only in your branch?
[04:57] <wallyworld> huwshimi: yeah
[04:58] <huwshimi> wallyworld: oh wait, so the color: green IS being applied to the span?
[04:58] <wallyworld> huwshimi: yes
[04:58] <huwshimi> wallyworld: Oh!
[04:58] <wallyworld> hence my confusion
[04:59] <huwshimi> wallyworld: Wait, so when you hover medium everything gets underlined but the span doesn't go green right?
[05:00] <wallyworld> huwshimi: the span goes green as expected BUT everything is underlined
[05:00] <wallyworld> and i don't want the text in the span underlined
[05:00] <wallyworld> so the color is being applied but not the decoration style
[05:00] <huwshimi> wallyworld: strange, I'd expect the green to only apply when you're hovering the span text
[05:00] <wallyworld> yes, sorry
[05:01] <wallyworld> it only applies when you hover
[05:01] <wgrant> The browser/reset a:hover won't have a colour
[05:01] <wgrant> So it won't override it
[05:01] <wgrant> It *does* have a text-decoration
[05:01] <huwshimi> wallyworld: So what you need is this: ".yui3-ichoicelist a:hover .choice-description:hover {"
[05:02] <wallyworld> let me try that
[05:02] <huwshimi> wait
[05:02] <huwshimi> wallyworld: .yui3-ichoicelist a:hover .choice-description {
[05:02] <huwshimi> I left a :hover at the end
[05:02]  * StevenK feels utterly dirty.
[05:02] <StevenK> +            field = self.form_fields.__FormFields_seq__.pop()
[05:02] <StevenK> +            self.form_fields.__FormFields_seq__.insert(2, field)
[05:03] <wallyworld> huwshimi: sadly no. i'll keep trying
[05:04] <huwshimi> wallyworld: Can you push your branch somewhere and I'll have a quick try?
[05:04] <wallyworld> huwshimi: lp:~wallyworld/launchpad/choice-popup-descriptions-932424
[05:05] <huwshimi> wallyworld: Cheers
[05:05] <wallyworld> huwshimi: you need to turn on ff disclosure.enhanced_choice_popup.enabled
[05:05] <huwshimi> wallyworld: OK, np
[05:05] <wallyworld> and run bin/combine-css
[05:05] <wallyworld> and make jsbuild
[05:05] <wallyworld> thanks in advance :-)
[05:05] <wallyworld> huwshimi: then, just goto any bug and click the bug status popup
[05:06] <wallyworld> or importance
[05:21] <huwshimi> wallyworld: So the problem is that the child element (the span) is doing what it's told. With the "a: hover span" it's not underlining the text when we hover the span just as we want it to. The problem is the span was never underlining the text, that's coming from the parent element, the <a> and child elements can not override a parent's.
[05:23] <huwshimi> wallyworld: So what you'll have to do is move the "Medium" into another span. Set a:hover { text-decoration: none; } and then a:hover .medium-span { text-decoration: underline; }
[05:23] <huwshimi> wallyworld: Does that all make sense?
[05:23] <wallyworld> huwshimi: i'm digesting it
[05:23] <wallyworld> huwshimi: so a child element can't override a parent? seems quite limiting
[05:24] <huwshimi> wallyworld: Welcome to CSS
[05:24] <huwshimi> :)
[05:24] <wallyworld> it just seems broken
[05:24] <wallyworld> must be a reason for it
[05:24] <wallyworld> huwshimi: thanks for looking, really appreciate it
[05:24] <wallyworld> i'll try it out
[05:24] <huwshimi> wallyworld: No problems. Let me know how you go
[05:25] <wallyworld> huwshimi: will do. may have to go and get the kid from school before i get it going
[05:25] <StevenK> wallyworld: Got one sec?
[05:25] <wallyworld> StevenK: yes
[05:25] <wallyworld> gone
[05:26] <wallyworld> want another?
[05:26] <StevenK> wallyworld: Y.one('#field.subscriptionpolicy');
[05:26] <StevenK> wallyworld: Is that by class or id?
[05:26] <wallyworld> won't work
[05:26] <wgrant> # is ID
[05:26] <wallyworld> by id
[05:26] <wgrant> But also by class
[05:26] <wgrant> id field, class subscriptionpolicy
[05:26] <wallyworld> but Y.one doesn't like ids with '.'
[05:26] <StevenK> The linked bug was marked as fixed in 3.0.0
[05:27] <wallyworld> StevenK: Y.one("[name='field.subscriptionpolicy']")
[05:27] <wallyworld> will work
[05:27] <wallyworld> assuming the element comes from a lp form
[05:27] <wallyworld> where zope sets the name
[05:28] <wallyworld> otherwise Y.DOM.byID() will work
[05:28] <wallyworld> or something like that
[05:37] <StevenK> lp.buildmaster.tests.test_builder.TestSlave.* just failed for me on ec2 :-/
[05:37]  * StevenK stabs them
[05:38] <wgrant> The librarian probably stole its port.
[05:38] <StevenK> lp-land and move on?
[05:38] <wgrant> Yup
[08:47] <adeuring> ood morning
[09:40] <wgrant> stub: That milestone thing seems pretty odd.
[09:40] <wgrant> Given that the primary parent of a milestone is a series.
[09:44] <wgrant> stub: It's also a small extremely read-heavy table, queried in some places where we don't actually have the series object, just the ID.
[09:44] <wgrant> So it will be some pretty awkward refactoring to avoid a harmless index, and use an index on a deprecated column instead.
[09:45] <stub> Ok. If we need the index to avoid a join with distroseries or productseries
[09:45] <wgrant> I've found one place where it is cleaner to query on product.
[09:45] <wgrant> And productseries isn't necessary at all.
[09:46] <wgrant> But many others really want to deal in series :/
[09:46] <stub> Yup. So no real harm adding them.
[09:47] <wgrant> Did you see my comment about productreleasefile?
[09:47] <stub> Did you do timings on the productreleasefile index btw?
[09:47]  * stub refreshes
[09:47] <wgrant> On its creation, or the queries?
[09:47] <wgrant> On DF the example query I used goes from 60ms to 0.5ms
[09:47] <wgrant> I can pull it up from history if you want.
[09:48] <stub> oh, brain fade. I'm too used to the id columns being the first column
[09:49] <wgrant> Heh, yeah, that is a bit odd.
[09:49] <stub> Did productrelease used to be the primary key? Can't think why it would be out of order like that unless it was added later.
[09:49] <wgrant> I assume it was (productrelease, libraryfile)
[09:49] <wgrant> But surely not, since SQLObject doesn';t support that.
[09:49] <wgrant> So maybe it was just for storing a single tarball per release? :/
[09:49] <stub> It might have if you tried hard enough
[09:50] <stub> Not sure when the table arrived. Doesn't matter anyway.
[09:51] <stub> r=stub
[09:51] <wgrant> Thanks.
[09:51] <wgrant> It would be nice if we could globally profile planning overhead :/
[09:52] <wgrant> stub: Can you apply those live, please?
[09:53] <wgrant> Or should I land first?
[09:53] <wgrant> I've tested them live on DF.
[09:53] <stub> I'll apply them now
[09:54] <wgrant> Thanks.
[10:03] <stub> wgrant: Done
[10:03] <wgrant> stub: Thanks!
[10:03]  * wgrant tries and lands.
[11:27] <rick_h> morning
[11:32] <rick_h> thanks for the combo build updates StevenK, will try landing again this morning woot!
[11:34] <StevenK> Hehe
[14:30] <deryck> adeuring, abentley, rick_h -- https://plus.google.com/hangouts/extras/talk.google.com/orange-standup
[14:54] <deryck> abentley, adeuring -- it doesn't kill the hangout when I leave, does it?
[14:55] <adeuring> deryck: works fine
[14:56] <deryck> ok, cool
[15:02] <timrc> Hello.  The Commercial Engineering team would like to increase the default size of a PPA owned by ~oem-archive upon creation.  I do not believe this is something we can currently do via the API.  If that's true, is there a way to increase the default on a per-team basis with a little magic on your end?
[15:03] <bigjools> it would be an easy patch for you guys to do
[15:03] <bigjools> (to set it via the API)
[15:05] <timrc> bigjools, okay, that is what I needed to know
[15:05] <timrc> one other thing...
[15:06] <timrc> bigjools, the understanding that I have which is based on the understanding of my boss is that we can jack the default up to 1TB with the understanding we'll never actually consume that much space? Does this match your own understanding?
[15:06] <bigjools> timrc: echan for this
[16:00] <deryck> rick_h, give me 2 minutes and I'll join you on hangout.
[16:01] <rick_h> deryck: k
[16:05] <deryck> rick_h, https://plus.google.com/hangouts/extras/talk.google.com/go-for-deryck
[16:20] <jelmer> is anybody else getting xmlrpc errors related to the uniqueness of owner_name, when pushing to qastging?
[16:25] <sinzui> jelmer, I am seeing null value in column "owner_name" violates not-null constraint when pushing a new branch
[16:26] <jelmer> sinzui: thanks, so it's not just me
[16:34] <jcsackett> sinzui: are we going for a JS/mustachy approach on the +sharing, or ... ?
[16:36] <sinzui> jcsackett, Yes.
[16:36] <jcsackett> sinzui: cool.
[16:36] <jcsackett> i had *assumed* so, but was suddenly wondering. :-P
[16:37] <sinzui> jcsackett, The search form and filters stumped the punters. We will do some paper mockups to revise what and how we display them. Assume the table is good to implement for stakeholders to try in the next two weeks
[16:38] <jcsackett> sinzui: dig. the side portlet summary bit too, i'm guessing? (seems *very* uncontroversial).
[16:38] <sinzui> They are
[16:38] <jcsackett> righton.
[16:39] <sinzui> We do need to update the text about sharing Some. This is really an audit and retraction state, we do not allow users to grant it and we do not explain who someone might accomplish sharing Some. Dan and I will work on that
[16:42] <lifeless> bigjools: hai
[16:42] <bigjools> lifeless: yellow - needed to talk to you as it happens
[16:42] <lifeless> bigjools: we should talk a little about the ppa admin / commercial admin thing
[16:43] <bigjools> now is not a great time
[16:43] <lifeless> sure
[16:43] <lifeless> what did you want tto ttalk aabout ?
[16:44] <bigjools> I want to poke you to make a testtools release and push it to debian so I can sync it to precise
[16:44] <bigjools> jono fixed a nasty bug
[16:44] <lifeless> yes
[16:44] <lifeless> then did a release
[16:44] <lifeless> it had a regression
[16:44] <lifeless> another release is needed, I'm not sure if he has done that yet
[16:44] <bigjools> arses
[16:44] <lifeless> jml: ^ oh hai
[16:45] <jml> what's up?
[16:46] <lifeless> jml: backscroll
[16:46] <jml> oh right testtools
[16:46] <jml> haven't any feedback on my subunit branch
[16:46] <jml> wanted that before I released, since the regression is changing a private API that subunit relied on
[16:46] <lifeless> I can do something about that
[16:47] <lifeless> jml: it conflicts
[16:47] <jml> lifeless: it didn't when I submitted it, and I'm pretty busy right this second.
[16:48] <lifeless> jml: I haven't changed trunk since
[16:48] <lifeless> jml: given your other branch which duplicated stuff done in trunk a couple weeks back, I'm fairly sure you worked off of a stale base of some sort
[16:48] <jml> lifeless: ok whatever, it *did* conflict when I submitted and I'm pretty busy right this second.
[16:48] <lifeless> so, let me see if I can figure out what it is doing
[16:51] <lifeless> reviewed
[16:51] <jml> lifeless: thank you.
[16:52] <jml> lifeless: I'm unlikely to get to that until tomorrow morning UK time, but will try to do so then.
[16:56] <sinzui> danhg, wallyworld is landing a change that will allow Lp to show the definition of an enum: http://people.canonical.com/~ianb/enhanced-choice-picker.png
[16:56] <sinzui> danhg, I think we need to rewrite some bug definitions before putting the feature into beta
[17:11] <rick_h> woot! combo loader tests passed yay
[17:15] <jcsackett> rick_h: nice!
[17:16]  * rick_h sees a light in the tunnel...now to determine if it's aimed at him
[17:24] <deryck> rick_h, awesome
[17:30] <mtaylor> any losas around want to help a brother out with another merged-account-openid-confused issue? https://answers.launchpad.net/launchpad/+question/187825
[17:31] <mthaddon> mtaylor: only one at the moment (me) and I'm in a meeting I'm afraid - can you assign it to ~canonical-losas and someone will get to it at some stage
[17:32] <mtaylor> mthaddon: I surely will! thanks!
[17:33] <mthaddon> thx
[17:33] <mtaylor> mthaddon: it won't let me assign - is subscribe someone else good enough?
[17:40] <mthaddon> mtaylor: I've assigned it to be sure
[18:00] <rick_h> bwuhahaha, the quad-ec2 land.
[20:22] <lifeless> flacoste: got a minute ?
[20:23] <flacoste> lifeless: sure
[20:25] <czajkowski> evening
[20:25] <thumper> morning
[20:29] <czajkowski> thumper: hey
[20:31] <mhall119> is there a way to get a history of all previously merged branches from launchpadlib?
[20:37] <lifeless> deryck: hey, do you ahve time for a quick chat this avo ?
[20:41] <deryck> lifeless, I don't actually.  and was trying to keep my tomorrow afternoon open for hacking, too. just trying to finish my current branch.
[20:41] <deryck> lifeless, should we try to get in something just as you come online tomorrow?
[20:41] <lifeless> lets do
[20:42] <lifeless> will be a short call, I promise
[20:42] <deryck> ok, sounds good.
[20:42] <lifeless> thanks!
[21:07] <lifeless> czajkowski: hey
[21:08] <czajkowski> lifeless: evening
[21:08] <lifeless> oh, I was going to talk about trivial vs nontrival when I realised I had misread the bug.
[21:08] <lifeless> czajkowski: also good evening ;)
[21:09] <czajkowski> lifeless: mind If I ask you a q re a bug while I'm here
[21:09] <lifeless> of course not
[21:09] <czajkowski> lifeless: thanks re : https://bugs.launchpad.net/launchpad/+bug/931131
[21:09] <_mup_> Bug #931131: recipes attempt to build packages with version older than previous build <recipe> <Launchpad itself:Confirmed> < https://launchpad.net/bugs/931131 >
[21:10] <czajkowski> it's been confirmed by the janitor, but after you commented on it, wasn't sure if it should be marked triaged?
[21:10] <lifeless> it hasn't been triaged
[21:10] <lifeless> (not the importance is undecided still)
[21:11] <lifeless> I'll triage it now; yes you are right the status [and importance] needed setting
[21:12] <czajkowski> ok, just didnt want to change it today without askin so I can know in future
[21:12] <lifeless> czajkowski: don't stress, you *will* make mistakes, and they will be easy enough to fix :)
[21:12] <lifeless> czajkowski: you've seen https://dev.launchpad.net/BugTriage right ?
[21:12] <lifeless> czajkowski: I have to pop out for a bit; have a good evening.
[21:13] <czajkowski> lifeless: I did and will keep it open during the day, but was going through stuff with mat today and just wanted to check
[21:13] <czajkowski> thanks
[21:58] <wgrant> jelmer: Hi
[22:02] <czajkowski> wgrant: jcsackett aloha
[22:03] <wgrant> Evening czajkowski.
[22:03] <jcsackett> aloha, czajkowski.
[22:03] <czajkowski> jcsackett: hi
[22:04] <czajkowski> folks having a good day/end of day ?
[22:06] <jcsackett> passably good. :-)
[22:09] <wgrant> lifeless: Do you know what's going on with the two branch scanner revs?
[22:09] <wgrant> One is bad, but not rolled back AFAICT.
[22:10] <lifeless> I have not heard
[22:10] <lifeless> jelmer: ^ ohai
[22:10] <jelmer> hi wgrant, lifeless
[22:10] <jelmer> I'm in the process of rolling them both back
[22:10] <jelmer> the other one is probably fine but I can't really QA one without the other
[22:13] <wgrant> jelmer: Any reason this wasn't reverted a few hours back? It's just missed another buildbot run.
[22:16] <czajkowski> nn folks
[22:17] <jelmer> wgrant: I didn't have the time to (it's well past EOD here)
[22:17] <wgrant> k
[22:18] <wgrant> In general, rollbacks are the most critical thing that can be done. If you don't have time, please poke someone else to do it.
[22:19] <jelmer> ok
[22:20] <StevenK> +            # We'd like visibility near the top. Eyes closed, please.
[22:20] <StevenK> +            field = self.form_fields.__FormFields_seq__.pop()
[22:20] <StevenK> +            self.form_fields.__FormFields_seq__.insert(2, field)
[22:24] <lifeless> jelmer: thanks. And for context - LP has been blocked for 2 days now; our goal is multiple deploys *per day*, so this is a massive impediment
[22:26] <jelmer> lifeless: Sorry. I didn't mean to impede. It's been a while since I've landed something and landings seem to be happening a lot faster now.
[22:28] <lifeless> jelmer: tis ok; I'm explaining why you're getting nagged so much :)
[22:32] <sinzui> StevenK, self.form_fields = self.form_fields.select(['name', 'visibility'])
[22:35] <sinzui> StevenK, http://pastebin.ubuntu.com/843663/ show a reselection for field to omit/change the order of setup fields
[22:36] <wgrant> jelmer: Thanks.
[22:36]  * wgrant murders buildbot.
[23:02] <StevenK> sinzui: https://code.launchpad.net/~stevenk/launchpad/better-name-field/+merge/93317
[23:02] <sinzui> thank you
[23:09] <sinzui> wallyworld_, I think these two bugs relate to the errors users see when creating teams because the form is governed by invariant rules: bug #463563 bug #604289
[23:09] <_mup_> Bug #463563: Create a new team UI has optional renewal period, then returns an error when not supplied <lp-registry> <teams> <Launchpad itself:Triaged> < https://launchpad.net/bugs/463563 >
[23:09] <_mup_> Bug #604289: on open teams / mailing lists 'renewal' doesn't make much sense <lp-registry> <teams> <Launchpad itself:Triaged> < https://launchpad.net/bugs/604289 >
[23:11] <wallyworld_> sinzui: thanks, will look
[23:13] <sinzui> wallyworld_, I report Bug #933159 about the restricted policy
[23:13] <_mup_> Bug #933159: +newteam form does not state that restricted is valid subscription policy for private teams <disclosure> <privacy> <teams> <Launchpad itself:Triaged> < https://launchpad.net/bugs/933159 >
[23:14] <wallyworld_> sinzui: ah, yes. i saw that issue recently but forgot to report a bug. will fix
[23:15] <sinzui> wallyworld_, I think we have a closed bug about this issue. I has dogged me for years
[23:15] <wallyworld_> sinzui: closed?
[23:15] <wgrant> lolzors
[23:15] <wgrant> hhhhhhaaaaaaaaaaa
[23:15] <wgrant> why do all these tables have no relevant indices
[23:16] <wgrant> (today's winner is bugbranch.branch)
[23:16] <sinzui> wallyworld_, I think there was a bug describing several issue with the form. Many were fixed, but this issue was not separated into a new bug
[23:16] <lifeless> indices are for wusses
[23:17] <wallyworld_> sinzui: ah, ok. not an uncommon issue. bug reports often are not granular enough :-)
[23:22] <wgrant> Hmm
[23:23] <wgrant> lifeless: Does https://pastebin.canonical.com/60335/ have similar planning overhead to yesterday?
[23:23] <wgrant> There's about 70ms of 75ms unexplained.
[23:23] <sinzui> StevenK, approved with some non-binding comments
[23:23] <wgrant> Needs to be on prod, since stub was playing with the staging stats yesterday
[23:27] <lifeless> Time: 44.003 ms to explain (no analyze)
[23:27] <wgrant> OK
[23:27] <wgrant> I think we may want to drop the stats target globally, and raise it only on specific columns.
[23:27] <wgrant> (it's 2500 on prod now, rather than the default of 100)
[23:28] <lifeless> I buy that; but how much by?
[23:29] <wgrant> We'd have to test. Should be pretty easy to do on qastaging.
[23:29] <lifeless> we should also report a bug
[23:29] <lifeless> and check on pg9.1
[23:29] <lifeless>  /9.2
[23:30] <wgrant> I'm not sure it's a bug.
[23:30] <wgrant> It's analyzing 25x more data.
[23:30] <lifeless> it may be doing it inefficiently
[23:32] <wgrant> I wonder if this explains week 47-49 on https://lpstats.canonical.com/graphs/PPR/20111016/20120216/
[23:35] <wgrant> lifeless: Ah, the default is actually 10.
[23:35] <wgrant> No, that was 8.2
[23:35] <wgrant> 8.4 is 100
[23:35] <wgrant> "The default limit is presently 100 entries. Raising the limit might allow more accurate planner estimates to be made, particularly for columns with irregular data distributions, at the price of consuming more space in pg_statistic and slightly more time to compute the estimates."
[23:36] <wgrant> Slightly more time... but we are running at 25x more, so perhaps more than slighlt.y
[23:38] <lifeless> -> bug
[23:38] <wgrant> not sure if serious
[23:39] <wgrant> Increasing performance sensitive parameter globally to 25x the recommended value
[23:39] <lifeless> did we file one that explain doesn't count planning time?>
[23:39] <wgrant> That does not make a bug.
[23:39] <wgrant> Not sure.
[23:39] <wgrant> We have stub early today, though :)
[23:39] <wgrant> Can discuss then.
[23:39] <lifeless> tomorrow
[23:39] <wgrant> Bah, true.
[23:41] <wgrant> Anyway, this seems to be a reasonably serious and global performance issue.
[23:58] <StevenK> sinzui: .select doesn't want a list