[01:10] <StevenK> wallyworld__, wgrant: https://code.launchpad.net/~stevenk/launchpad/destroy-bfj-on-branch-delete/+merge/124828
[01:11] <wallyworld__> StevenK: any reason not to update the cascade?
[01:11] <wallyworld__> so everything is in one spot
[01:11] <StevenK> wallyworld__: BFJ deals with far more than just TTBs
[01:12] <wallyworld__> seems ok to me but i have limited bfj foo
[01:14] <wallyworld__> StevenK: are there orphaned db records that need to be removed also?
[01:14] <wallyworld__> from previous deletes?
[01:14] <StevenK> There are.
[01:14] <wallyworld__> i guess i bit of sql would do
[01:15] <StevenK> Yeah, just reaching for mawson
[01:15] <wallyworld__> r=me anyway
[01:16] <StevenK> And trying to work out just how evil this query will be, since we need to pull in SourcePackageRecipeBuild, BinaryPackageBuild and TranslationTemplatesBuild
[01:19] <wallyworld__> sounds just peachy
[01:19] <StevenK> SELECT id FROM buildfarmjob WHERE id NOT IN (SELECT build_farm_job FROM packagebuild UNION SELECT build_farm_job FROM translationtemplatesbuild); is pretty close, but it will take a few eons on prod
[01:29] <StevenK> :-(
[01:29] <StevenK> All 3 columns are indexed and it's horribly slow
[01:30] <StevenK> I think the UNION is not helping in the slightest
[01:31] <StevenK> Ah, two Seq Scans. Thanks, postgres
[01:33] <wgrant> StevenK: No, it's pretty easy
[01:33] <wgrant> StevenK: Just query for BFJs of the TTBJ type that have no TTB
[01:35] <wgrant> StevenK: Given the potentially very large number of BFJs that could be returned, it may be best to query the IDs directly.
[01:35] <wgrant> store.find((BuildFarmJob.id,), ...)
[01:35] <StevenK> wgrant: I tried (BuildFarmJob.id,), but I was not loved
[01:35] <wgrant> That's not very helpful
[01:35] <StevenK> I've not tossed it at ec2 yet, let me see
[01:36] <wgrant> Also, I'm not a huge fan of that test. I'd prefer that the existing TTB deletion test be extended to check that the BFJs are gon
[01:36] <wgrant> Checking that nothing shows up on +history is very indirect and likely to incorrectly pass for a multitude of other reasons.
[01:36] <StevenK> I made sure it broke before I fixed it
[01:37] <wgrant> Sure, but it could also pass because the builder doesn't show the build for some reason
[01:37] <wgrant> It's not what you really want to test
[01:37] <wgrant> It's about the most indirect integration test you could ever think of
[01:37] <wgrant> There must be an existing test that TTBs are deleted, so just extend that to check that the BFJs are gone too
[01:38] <wgrant> And delete your other new test.
[01:38] <wgrant> This is an example of our terrible doctest style, except with unit tests instead.
[01:38] <wgrant> "unit" tests
[01:41] <wgrant> launchpad_dogfood=# SELECT COUNT(*) FROM (SELECT id FROM buildfarmjob WHERE job_type = 4 EXCEPT SELECT build_farm_job FROM translationtemplatesbuild) AS donotcare;
[01:42] <wgrant>  count
[01:42] <wgrant> -------
[01:42] <wgrant>    303
[01:42] <wgrant> (1 row)
[01:42] <StevenK> What was the timing on that?
[01:43] <wgrant> Slightly under 2s
[01:44] <StevenK> So select that into a temp table and then DELETE FROM buildfarmjob WHERE id IN tempfoobar; ?
[01:44] <wgrant> Temp table? Surely you jest.
[01:45] <wgrant> launchpad_dogfood=# DELETE FROM buildfarmjob WHERE id IN (SELECT id FROM buildfarmjob WHERE job_type = 4 EXCEPT SELECT build_farm_job FROM translationtemplatesbuild);
[01:45] <wgrant> DELETE 303
[01:45] <wgrant> Time: 3874.078 ms
[01:45] <wgrant> There'll be more on prod
[01:45] <wgrant> But prod is also not running off 1rpm disks
[01:45] <StevenK> Hahaha
[01:50] <StevenK> Bleh, list(store.find((BuildFarmJob.id,), ...) is giving me a list of 1-tuples
[01:54] <wgrant> StevenK: Yeah, you'll need to map it through attrgetter
[01:55]  * wgrant wanders out to lunch for a while
[04:03] <wgrant> Hm
[04:03] <wgrant> http://paste.ubuntu.com/1212288/
[04:03] <wgrant> postgres' optimiser makes me sad
[04:03] <StevenK> wgrant: attrgetter doesn't work for tuples
[04:03] <wgrant> It won't optimise "BugTaskFlat.bug IN (foo) OR BugTaskFlat.bug IN (bar)" down to "BugTaskFlat.bug IN (foo UNION ALL bar)"
[04:03] <wgrant> StevenK: I meant itemgetter of course.
[04:05] <StevenK> Maybe we should then
[04:07] <StevenK> wgrant: http://pastebin.ubuntu.com/1212297/
[04:08] <wgrant> StevenK: I guess a list comprehension is actually probably nicer in this case, since we don't need to use DRS
[04:09] <wgrant> But the test changes look good
[04:09] <wgrant> Although assertEqual(0, bfjs.count()) or assertContentEqual([], bfjs) is nicer than listifying.
[04:10] <StevenK> wgrant: http://pastebin.ubuntu.com/1212299/ then
[04:13] <wgrant> StevenK: Sounds good
[04:34] <StevenK> wgrant: So, how do I QA my merge fix :-(
[04:34] <wgrant> StevenK: I believe I outlined in the bug exactly how it happened
[04:34] <wgrant> StevenK: Or perhaps I outlined on IRC and someone quoted in the bug
[04:34] <wgrant> I don't quite remember
[04:35] <StevenK> wgrant: You did, indeed
[04:35] <StevenK> wgrant: I don't quite want to delete the only account I have on qas :-)
[04:36] <wgrant> Ah
[04:36] <wgrant> I have a few test SSO accounts
[04:36] <StevenK> wgrant: So, wrong question. I'd like to QA it, but I have one Person and I'd rather they weren't deleted.
[04:37] <StevenK> wallyworld__: Does your MP about er MPs need reviewing?
[04:37] <wallyworld__> StevenK: wtf not
[04:37] <wallyworld__> thanks
[04:37] <wallyworld__> bigjools forced me to do it
[04:38] <StevenK> I'd rather the commit message wasn't included at all if it isn't set.
[04:38] <wallyworld__> yeah, but i didn't want to introduce a different template
[04:38] <bigjools> shut up gollum
[04:38] <StevenK> Keep %(commit_message)s in the template, and have it expand to '' if the commit message is blank
[04:39] <StevenK> bigjools: Why gollum?
[04:39] <wallyworld__> there would still be the header
[04:39] <wallyworld__> *precious*
[04:39] <bigjools> StevenK: separated at birth
[04:40] <bigjools> *score*
[04:40] <StevenK> wallyworld__: Remove the header, and include 'Commit message:\n' in commit_message if proposal.commit_message
[04:40] <wallyworld__> thought you would say that :-)
[04:41] <wallyworld__> ok, will do. i was thinking that it may be good to see that they didn't specify a comment explicitly
[04:41] <StevenK> wallyworld__: You may need to test to make sure there isn't \n\n\n in the mail
[04:42] <StevenK> I'm unclear how bad the templating is, it's a been a while since I've touched it
[04:42] <wallyworld__> maybe. i'll see what other tests are there for similar things
[04:42] <StevenK> wallyworld__: There's a mail template when you subscribe someone to a P3A, I think that does similar tricks
[04:43] <wgrant> Soyuz upload notifications use that extensively too
[04:43] <StevenK> wallyworld__ doesn't like touching Soyuz :-P
[04:43] <wallyworld__> if i get drunk enough i might
[04:45] <StevenK> wgrant: Can haz account or are you sorting one out?
[04:46] <wgrant> StevenK: It may be useful for you to invest in one or two spare SSO accounts
[04:47] <StevenK> wgrant: I thought you enjoyed being the only LP engineer that has more than one?
[04:47] <wgrant> Heh
[04:54] <wgrant> wallyworld__: Parts of the IPerson launchpad.LimitedView adapter permit access if the user can see the team itself or any of its super teams, while others require that it be the team itself. Do you recall it was done like that?
[04:54] <wgrant> It doesn't seem particularly valuable to preserve, but I'm not sure if I'm missing a reason it's done both ways.
[04:54] <wallyworld__> wgrant: i can't recall any reason for that, or even if it were considered. it may have been an accidental inconsistency
[04:55] <wgrant> k
[04:55] <wallyworld__> StevenK: diff updated
[05:23] <StevenK> wgrant: Your URL for bug 1019218 doesn't reproduce on qas, which is a little sad.
[05:23] <_mup_> Bug #1019218: InconsistentBuildFarmJobError: Could not find all the related specific jobs at Builder:+history <buildfarm> <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/1019218 >
[05:26] <wgrant> StevenK: The branch probably hasn't been deleted yet.
[05:26] <wgrant> StevenK: You can probably see the actual branch listed there
[05:26] <wgrant> I don't know which branch it was
[05:27] <wgrant>  Translation template build for lp://qastaging/guvcview
[05:27] <wgrant> I think
[05:31] <StevenK> That branch exists on prod too
[05:35] <wgrant> StevenK: The creation dates and unique_names are suspiciously different
[05:35] <StevenK> Heh, right
[05:36] <StevenK> I don't really care about which orphaned BFJ it is
[06:04] <wallyworld__> wgrant: i'm confused about the comments mentioning private_bugs and deactivating proprietary projects - i didn't change those bits at all from what was already there
[06:06] <wgrant> Oh, I missed that the private_bugs bit was already there
[06:06] <wgrant> But I was aware of the existing deactivation
[06:06] <wallyworld__> the bug report didn't seem to imply a new enum was required
[06:06] <wgrant> It's not clear it still makes sense to deactivate, but it mihgt.
[06:07] <wallyworld__> it just said to ensure stuff couldn't be abused
[06:07] <wgrant> We need to ensure stuff can't be abused
[06:07] <wgrant> But we also need to not be reckless.
[06:07] <wgrant> And changing the default to public is reckless :)
[06:07] <wallyworld__> how so? it's just he default?
[06:07] <wgrant> The plan that sinzui and I discussed on the call two weeks ago is to add a new sharing policy that allows nothing
[06:07] <wallyworld__> existing stuff remains private
[06:07] <wgrant> How is it not reckless?
[06:07] <wgrant> My project expires, but I don't notice
[06:08] <wgrant> I push up my proprietary code
[06:08] <wallyworld__> why, you get an email?
[06:08] <wgrant> Now my code is public :(
[06:08] <wallyworld__> several emails in fact
[06:08] <wgrant> I'm not the project owner
[06:08] <wallyworld__> the owner should take responsibility for their own projects. but anyway, it's moot i guess
[06:09] <wgrant> Silently opening up access is really really really not a good policy
[06:09] <wallyworld__> it's not silent
[06:09] <wgrant> I guess it's not truly silent
[06:09] <wgrant> But it's still really not good
[06:09] <wallyworld__> well, no pay, no privacy seems fair
[06:09] <wgrant> Sure
[06:09] <wallyworld__> can't expect something for nothing
[06:09] <wgrant> Bu no pay, we'll make all your code public, is not fair
[06:09] <wallyworld__> but it's not "all your code"
[06:10] <wallyworld__> it's code pushed *after* you  have lost the right for privacy
[06:10] <wgrant> But I don't know that I've lost that right
[06:10] <wgrant> Or I have forgotten
[06:11] <wallyworld__> for new stuff, yes because you owe money
[06:11] <wgrant> Launchpad needs to make mistakes difficult and explicit
[06:11] <wgrant> Not make them itself
[06:11] <wallyworld__> and get get plenty of warning, or the owner does
[06:11] <wallyworld__> cutting off a feature when payment expires is not making a mistake
[06:13] <wallyworld__> so this forbidden type should disallow creation of all new private bugs and branches?
[06:13] <wgrant> All new bugs and branches
[06:13] <wallyworld__> public too?
[06:13] <wallyworld__> really?
[06:13] <wgrant> It's not just cutting off a feature: it's opting you into a new feature without asking
[06:13] <wgrant> Well
[06:13] <wgrant> For branches it's the same thingf
[06:13] <wgrant> You can't create branches with a non-default information type
[06:13] <wgrant> For bugs it's less clear
[06:14] <wallyworld__> it's not without asking - try not paying your electricity bil and see how you get on
[06:14] <wgrant> If I don't pay my electricity bill then the company doesn't come and throw all my stuff out onto the street.
[06:14] <wallyworld__> and neither do we, why do you keep claiming that?
[06:14] <wallyworld__> exisiting private stuff stays private
[06:15] <wgrant> And then I push my code and it becomes public
[06:15] <wallyworld__> as expected
[06:15] <wgrant> Why is it expected?
[06:15] <wallyworld__> no pay = no more electricity, np pay = no more privacy
[06:16] <wallyworld__> totally expected. don't pay for something, don't get the service
[06:16] <wgrant> The former is temporary and fixable, the latter is not
[06:16] <wallyworld__> and lots of emails about it before hand
[06:16] <StevenK> wallyworld__: We all agreed that what wgrant is saying is the right approach
[06:17] <StevenK> It was covered on a call about two weeks ago, I think
[06:17] <wallyworld__> hmmm. ok. clearly i forgot
[06:17] <wallyworld__> i don't agree but that's just my opinion
[06:18] <wallyworld__> i was mainly reacting to the assertion that *all* your stuff get's throen out onto the street so to speak
[06:18] <StevenK> wallyworld__: I'm not sure if you were on the call, but at least myself, wgrant and sinzui agreed it was the right approach.
[06:18] <wallyworld__> sure, np
[06:19] <wallyworld__> i guess we have to protect people from themselves. sad but true
[06:20] <wgrant> wallyworld__: Well, a freshly pushed branch probably contains all of your history.
[06:20] <wgrant> So it is all your stuff.
[06:20] <wgrant> Effectively.
[06:20] <StevenK> wgrant: So, 1.0 API for security_contact? Please?
[06:20] <wallyworld__> even if it is stacked?
[06:21] <wgrant> If the project uses stacking then it's a bit different
[06:21] <wgrant> But sadly lots of our commercial projects don't.
[06:21] <wgrant> (because they have lots of codebases living in a single project. which we don't really support, but they do anyway)
[06:22] <wgrant> But not supporting something and being reckless with security are unfortunately different.
[07:53] <adeuring> good morning
[08:00] <czajkowski> morning
[12:40] <benji> rick_h__: I didn't get to  https://code.launchpad.net/~rharding/launchpad/move_into_utils/+merge/124678 until late yesterday and it was "Work in progress".  Is that right?
[12:40] <rick_h__> benji: yes, it gained some scope
[12:40] <rick_h__> benji: so yea, I ping'd you to ignore it. Sorry for the trouble
[12:40] <benji> no worries
[12:59] <rick_h__> sinzui: ping, trying to figure out a conflict here with doc/message-holds.txt? I don't see it blown away in your doctest purge
[13:00] <sinzui> rick_h_it was
[13:01] <rick_h__> sinzui: ok, then I'll just remove it locally/resolve. It wasn't listed in http://bazaar.launchpad.net/~sinzui/launchpad/angy-mob-burns-doctests/changes so trying to make sure I resolve this right
[13:02] <sinzui> rick_h_, I see it in the act in trunk: http://pastebin.ubuntu.com/1212860/
[13:03] <rick_h__> sinzui: ok cool
[13:15] <rick_h__> sinzui: another ping, reviewing https://code.launchpad.net/~sinzui/launchpad/delete-packaging-link/+merge/124809 and not understanding the adding of the karma bits in the test file. Was it required for some reason?
[13:16] <sinzui> rick_h_karma will make the user non-probationary...a user with experience
[13:16] <sinzui> I think that needs a comment
[13:16] <rick_h__> sinzui: ah, that makes total sense. Thanks
[13:17] <sinzui> rick_h_I keep forgetting you review on Tuesdays. I have it in my head this day is empty
[13:17] <sinzui> I took 3 reviews this morning thinking that
[13:18] <rick_h__> sinzui: yea, that's ok. You pushed me. I wanted to try to get one branch into ec2 before reviews this morning so trying to out race you :P
[14:23] <abentley> rick_h_: as of 3.5.1, Y.Array.forEach is part of yui-base.  Tempted to retain it because forEach is the official ECMAScript spelling: http://ecma-international.org/ecma-262/5.1/#sec-15.4.4.18
[14:23] <rick_h__> abentley: ok, then yea including array-extras will allow that to work
[15:30] <allenap> gary_poster, yellow squad: Do you have a moment to help with lxc? lxc-start-ephemeral is hanging all the time, even with a freshly created base container. Have you encountered this?
[15:34] <gary_poster> hi allenap.  we are sprinting this week, so we ideally are focusing here.  hallyn on #ubuntu-server has been very helpful for us in the past.  I'm looking myself.  hazmat suggests lxc-start may be the problem.  The first thing I can think of is to make sure that you can start the base container.  Have you confirmed that?
[15:35] <gary_poster> allenap, another idea is to actually modify the script (it is just a shell script) to have set -x at the top, to show you what command is hanging
[15:37] <allenap> gary_poster: Tip top, thanks for that advice. Looks like lxc-net was broken/not running. I have yet to discover why. Have a good sprint!
[15:38] <gary_poster> thanks allenap :-)
[16:33] <adeuring> rick_h_: could you please review this MP: https://code.launchpad.net/~adeuring/launchpad/specifications-sharing-service/+merge/124978 ?
[16:34] <rick_h__> adeuring: sure thing
[16:34] <adeuring> thanks!
[16:35] <rick_h__> adeuring: #96 says +    @operation_returns_collection_of(IBranch)
[16:35] <rick_h__> but this is specifications right?
[16:36] <adeuring> rick_h_: argh, of course, I'll change it
[16:37] <rick_h__> adeuring: same with the docstring that mentions branches please
[16:37] <adeuring> sure
[16:39] <abentley> sinzui: I'm confused, because I see there's an accesspolicy.person column, but you say "They do not have any form of access policy".
[16:49] <rick_h__> adeuring: r=me after the s/branch/specification and a wonder if we should have a bug/XXX for coming back to it later or not.
[16:50] <adeuring> rick_h_thanks, change already done. Regarding the XXX, I think we should at first see how slow the query will relly be.
[16:50] <sinzui> abentley, it is incomplete.
[16:51] <abentley> sinzui: Ah, okay.
[16:51] <rick_h__> adeuring: ok, cool. Wanted to bring it up.
[16:53] <sinzui> abentley, we do not know how exactly to manage who may know of the team, or see extra information about it :(. We know archive subscriptions grant limited view, but how would I say all canonical staff may know about our private tech team?
[16:54] <abentley> sinzui: ISTM that an AcccessArtifactGrant would be the way to go.
[16:54] <sinzui> I think there was some confusion about requirements too. wgrant does not think the issue can be solved until private projects are in beta, but most private teams are not associated with projects...I don't see the connection
[16:55] <sinzui> abentley, I think we might need to do that (mirror the project schema). bug 1014580 is ultimately caused by private team in places that we know implicitly allow users to know about the team, but Lp has no means to verify that
[16:55] <_mup_> Bug #1014580: MixedVisibility error in ProductSet:+all and Product:+index pages <oops> <private-projects> <Launchpad itself:Triaged> < https://launchpad.net/bugs/1014580 >
[17:18] <tumbleweed> do I need to request a review of lp:~stefanor/launchpad/edit-packagesets? or will an on call reviewer get to it at some point?
[17:18] <rick_h__> tumbleweed: so I was peeking at it but it's way out of my wheel house
[17:19] <rick_h__> tumbleweed: so I am going to wait until wgrant and SteveK get up and ask them to look
[17:19] <tumbleweed> thanks
[18:23] <jcsackett> rick_h__: can you take a look at https://code.launchpad.net/~jcsackett/launchpad/too-many-findAP-methods/+merge/125011
[18:25] <rick_h__> jcsackett: will do
[18:26] <rick_h__> jcsackett: r=me
[18:26] <rick_h__> yay for killing cruft
[18:27] <jcsackett> rick_h__: thanks.
[19:46] <rick_h__> deryck: yay! productjs branch passed ec2 tests! Thanks again for helping figure that crap out
[19:46] <deryck> rick_h__, np!  Glad it worked.
[20:11] <abentley> deryck: Any chance you could review https://code.launchpad.net/~abentley/launchpad/spec-creation-js/+merge/125038 ?
[20:11] <deryck> abentley, sure.
[20:26] <flacoste> lifeless: ever stumbled upon http://www.12factor.net ?
[20:27] <lifeless> yes
[20:27] <flacoste> a lot of these principles seems to be dead on for a SOA architecture
[20:27] <lifeless> elliot linked it in G+
[20:27] <lifeless> I think its pretty good
[20:29] <flacoste> should we link it from the Services page?
[20:37] <lifeless> flacoste: yeah, might be good
[20:41] <abentley> deryck: On Kanban, is "Blueprint specs should honour sharing policy" the same as "Use sharing policy default for creating specs"?
[20:41] <deryck> abentley, yeah, they are.  sorry if I duped that.
[20:42] <abentley> deryck: np, just wanted confirmation before deleting.
[20:47] <abentley> deryck: I think someone also pointed out that blueprints were accepting information_types that violated the sharing policy, e.g. PUBLIC for a PROPRIETARY product.
[20:49] <deryck> abentley, ah, ok. via the API?
[20:49] <abentley> deryck: No, via the UI.
[20:49] <deryck> abentley, is there a bug?
[20:51] <deryck> abentley, also, I still don't have a diff on that MP.  something up there?
[20:51] <abentley> deryck: I can't remember whether I saw it on a bug report.
[20:51] <deryck> abentley, ok, I'll make a note and check into it.
[20:52] <deryck> that surprises me a bit actually.
[20:54] <deryck> lifeless, hi there.  do you have strong opinions about the visibility vs information_type thread?  Or are you happy for sinzui and us to chat it out?
[20:54] <lifeless> you and sinzui should come to consensus
[20:54] <deryck> awesome, thanks.
[20:54] <lifeless> if you need a tie break, I will be happy to do so.
[20:56] <abentley> deryck: it timed out: https://oops.canonical.com/?oopsid=OOPS-469a5d735141f9e84163c03ce55e9d4d
[20:56] <sinzui> deryck, I am satisfied with the discussion. I think your argument are right
[20:56] <abentley> deryck: I tried triggering a new scan.  No results so far.
[20:57] <deryck> thanks, sinzui.  I appreciate you weighing in on it and discussing it with me and abentley.
[20:59] <deryck> abentley, I can't see the ooops yet due to two-factor auth issues, but I had a branch like that last week.  had to push to a new branch on lp and re-MP.
[21:01] <abentley> deryck: Here is the diff: http://pastebin.ubuntu.com/1213706/
[21:02] <deryck> abentley, thanks.
[21:02] <deryck> abentley, I'll review this evening unless you're really wanting to get it landing here shortly.
[21:03] <abentley> deryck: That's cool.
[21:03] <deryck> abentley, thanks.  I have smoked chicken to order soonish here. ;)
[21:04] <rick_h__> wgrant: StevenK ping when you get get in. I left a review about packagesets I didn't feel I knew enough to go over well and respond to his edge case concerns. Can one of you take that please?
[21:04] <rick_h__> and with that...time to run!
[21:09] <deryck> later on everyone....
[21:09] <czajkowski> later gator
[22:07] <wgrant> rick_h__: Sure
[23:28] <rick_h__> thanks wgrant