[00:00] <wgrant> StevenK: Indeed. I wonder if the removeSecurityProxy is really required, then.
[00:04] <StevenK> wgrant: I think without it you get Unauthorized
[00:05] <wgrant> StevenK: I'd like that rechecked -- if it's the case, please try to work out why.
[00:05] <wgrant> That shouldn't be happening.
[00:06] <StevenK> wgrant: http://pastebin.ubuntu.com/899838/
[00:07] <wgrant> StevenK: I speak of lib/lp/bugs/tests/test_bug_mirror_access_triggers.py
[00:07] <wgrant> StevenK: There was no removeSecurityProxy, now there is.
[00:08] <StevenK> wgrant: Right. I think the rSP() is just so we don't have to make sure we have lp.Edit on the bug by faffing around with with {person,celebrity}_logged_in.
[00:08] <wgrant> StevenK: Try removing it.
[00:09] <wgrant> From that test.
[00:09] <wgrant> Since it wasn't there before.
[00:10] <StevenK> wgrant: Hmmm, right, so, I'm wrong.
[00:10] <StevenK> wgrant: I guess I added the rSP thinking I was avoiding failures.
[00:19] <lifeless> is there a test helper to run a job ?
[00:22] <StevenK> "Personal receieved 10590 new messages."
[00:23]  * StevenK stabs the messaging indicator for lying.
[00:24] <StevenK> Machine id 525? When did that happen?
[00:24] <StevenK> wgrant: You can kill AMI in 522
[00:33] <wgrant> StevenK: Is gone.
[00:34] <StevenK> Now to pester bac
[02:14] <lifeless> hmm
[02:14] <lifeless> what deletes executed jobs?
[02:14] <StevenK> lifeless: So why are you looking at the job system when abentley is rewriting it?
[02:15] <lifeless> I'm not
[02:15] <lifeless> I'm making sure what I write works with the stuff in play today
[02:16] <lifeless> StevenK: also, AIUI the job specific stuff in LP is staying there, so the new system will be DB backed. There may be little changes on that stuff.
[02:23] <mwhudson> why might launchpad-dependencies not be installable on oneiric currently?
[02:25] <StevenK> postgres 9.1 at a guess
[02:25] <StevenK> I've not investigated yet
[02:26] <wgrant> What does apt say?
[02:26] <nigelb> Mornin.
[02:28] <mwhudson> i think it might be pg 9.1 too
[02:28]  * mwhudson tries to remember how to drive apt
[02:28] <mwhudson> apt-get upgrade keeps things back if installing them is only possible by removing packages?
[02:29] <lifeless> and the answer is, nothing
[02:29] <lifeless> we have 1.7M jobs in our history
[02:30] <lifeless> 350K answers jobs created and not pruned
[02:30] <wgrant> mwhudson: That's the main cause, yes.
[02:30] <wgrant> mwhudson: Try explicitly installing.
[02:30] <wgrant> lifeless: Time: 0.72 seconds
[02:30] <mwhudson> The following packages will be REMOVED:
[02:30] <mwhudson>   postgresql-8.4-slony1 slony1-bin
[02:30] <wgrant> lifeless: For a launchpad/+sharing batch on prod.
[02:30] <lifeless> wgrant: congrats
[02:30] <wgrant> So we can do sub-second.
[02:30] <wgrant> Just.
[02:31] <nigelb> Has +sharing landed? behind a pref?
[02:32] <wgrant> nigelb: We'll hopefully enable it for beta testers early this week.
[02:32] <wgrant> It's only on for ~launchpad on prod so far.
[02:32] <nigelb> Aww, ok
[02:32] <nigelb> I wish I could see on qastaging
[02:32] <wgrant> Everyone can see it on qastaging, but only if you're a driver/owner of a project with something shared.
[02:33] <StevenK> We can probably fiddle it on qas for a bit so nigelb can have a look.
[02:33] <wgrant> It's been on for everyone on qas for weeks :)
[02:33] <nigelb> Oh cool.
[02:33] <nigelb> I'm seeing it.
[02:34] <mwhudson> oh
[02:34] <mwhudson> https://code.djangoproject.com/ticket/17062
[02:34] <mwhudson> no
[02:34] <mwhudson> The following NEW packages will be installed:
[02:34] <mwhudson>   launchpad-database-dependencies-8.4 postgresql-8.4-slony1-2 slony1-2-bin
[02:34] <mwhudson> so this is a package name change, basically?
[02:35] <StevenK> mwhudson: Yup
[02:35] <wgrant> mwhudson: New version of slony.
[02:35] <nigelb> This is cool. Except hrm, probably slightly confusing.
[02:35] <wgrant> And the pg version added to the package name.
[02:35] <wgrant> nigelb: Oh?
[02:35] <mwhudson> cool
[02:35]  * mwhudson hits Y
[02:36] <nigelb> wgrant: Even after reading the help text, it "feels" complicated. Maybe if we have enough explanation when we launch, it should be good.
[02:37] <wgrant> nigelb: The UI is RO on production at the moment, and will be for at least a few weeks.
[02:37] <wgrant> It'll hopefully become clearer as we rework that UI and integrate the new terminology throughout the site.
[02:38] <nigelb> wgrant: Oh, that's cool then.
[02:38] <StevenK> nigelb: Just wait until I change the bug UI
[02:40] <lifeless> and thus bug 964935
[02:40] <_mup_> Bug #964935: answerpersontransfer/etc jobs are accumulating without bound <jobs> <Launchpad itself:Triaged> < https://launchpad.net/bugs/964935 >
[02:41] <nigelb> StevenK: woah.
[02:42] <StevenK> But that's like two weeks away. I'm dealing with the model and surrounding changes.
[02:54]  * nigelb looks forward to the changes.
[04:32] <StevenK> lifeless: O HAI
[04:35]  * nigelb pins bigjools to IRC.
[04:35] <nigelb> STICK!
[04:36]  * StevenK hands nigelb a staple gun.
[04:37] <bigjools> I disappear once for 10 mins and you want to pin me?
[04:37] <bigjools> good lord!
[04:38] <StevenK> bigjools: Obviously, nigelb missed you a lot.
[04:38] <nigelb> heh
[04:43] <wgrant> StevenK, wallyworld_: https://code.launchpad.net/~wgrant/launchpad/bug-962912/+merge/99252 (fixes the duplicate query on +sharing)
[04:45] <StevenK> wgrant: Why are you removing lib/lp/services/database/tests/test_decoratedresultset.py ?
[04:45] <wgrant> "    Drop test_decoratedresultset. It's just a wrapper around a doctest that's already run by test_doc.
[04:45] <wgrant> "
[04:45] <wallyworld_> wgrant: great. i'd also update the accesspolicy tests to decrement the query count by one
[04:45] <bigjools> I feel loved
[04:45] <wallyworld_> bigjools: fuck off
[04:46] <wgrant> wallyworld_: This is why I generally use Equals for my query count tests.
[04:46] <bigjools> I knew I could count on wallyworld_
[04:46] <wgrant> wallyworld_: Otherwise someone else will halve the page's query count, and then the other optimisations can regress without anyone noticing :/
[04:46] <wallyworld_> wgrant: doesn't work here. the product view uses one or 2 more queries
[04:46] <wallyworld_> so less than is better
[04:46] <wgrant> Ah, probably the session thing.
[04:47] <wallyworld_> the commercial subscription thing
[04:47] <wgrant> The first request in a new process will issue an extra query to get the session secret.
[04:47] <wgrant> Ah
[04:47] <wgrant> That suggests you're not invalidating caches properly.
[04:47]  * StevenK stabs buildbot again.
[04:47] <wgrant> But anyway.
[04:47] <wallyworld_> wgrant: no, the product view does indeed use one more query
[04:47] <wallyworld_> i use a helper method for both cases
[04:48] <wgrant> Oh, right.
[04:48] <wallyworld_> i guess i could have passed in the expected count
[04:48] <wallyworld_> but i like lessthan because it's more robust
[04:49] <wallyworld_> but does need updating if we reduce the query count, that's true
[04:56] <wgrant> wallyworld_: I wonder if we should inhibit the rough_length EXPLAIN, since we're not showing total size in the UI at all.
[04:56] <wgrant> Did you look at that?
[04:57] <wgrant> Also, can one of you please approve my MP? :)
[04:58] <StevenK> I thought wallyworld_ was reviewing.
[04:58] <wallyworld_> StevenK: i will but have to pick up the kid from school first
[04:59] <StevenK> Whee, memcache._ConnectionDeadError on ec2 too
[05:00] <wgrant> StevenK: Yeah, saw that twice last week.
[05:00] <wgrant> See my email to launchpad-dev.
[05:00] <wgrant> I might revert the python-memcached upgrade.
[05:00] <wgrant> I'm actually not sure if that alone is enough to fail buildbot.
[05:01] <wgrant> I believe it is for ec2, but I don't think I've ever seen buildbot fail just on that.
[05:01] <wgrant> So it's possible it's happening more often than we see.
[05:01] <StevenK> wgrant: See the last db-devel failure -- it looked like just it failing.
[05:02] <wgrant> StevenK: There was a rabbitmq failure up the top IIRC
[05:02] <wgrant> Yeah
[05:02] <wgrant>   File "/srv/buildbot/slaves/launchpad/lucid-db-devel/build/orig_sourcecode/eggs/rabbitfixture-0.3.2-py2.6.egg/rabbitfixture/server.py", line 260, in check_running
[05:02] <wgrant>     raise Exception("RabbitMQ server is not running.")
[05:02] <wgrant> Exception: RabbitMQ server is not running.
[05:03] <StevenK> Ah
[05:31] <StevenK> Bah, testr needs a way to pass options to the test command it runs.
[05:39] <wallyworld_> wgrant: the doctest change doesn't really appear to test bot result sets, or?
[05:41] <wgrant> eparse
[05:41] <wgrant> wallyworld_: ^^
[05:41] <StevenK> I think he means 'both'
[05:41] <wallyworld_> wgrant: the doc test have been changed but it doesn't appear to test any of the next stuff
[05:42] <wgrant> wallyworld_: The doctest tests DecoratedResultSet
[05:42] <wgrant> Not StormRangeFactory.
[05:43] <wallyworld_> sure, but we are changing rs.config and the doctest invokes that
[05:43] <wallyworld_> so it should be tested
[05:43] <wallyworld_> in the doc test
[05:43] <wgrant> Confused
[05:43] <wgrant> What's not tested?
[05:43] <wallyworld_> calling config with return_both = true causes both rs to be returned
[05:44] <wgrant> And return_both = False is the default.
[05:44] <wgrant> So it's tested throughout the rest of the file.
[05:44] <wgrant> It seems not particularly valuable to test that explicitly, but I guess I could.;
[05:45] <wallyworld_> but the doc test explicitly makes a config call with return_both=true and then doesn't test anything related to that
[05:45] <wallyworld_> it tests the same thing as if return_both = false
[05:45] <wgrant> Huh?
[05:45] <wallyworld_> so it's not really testing the new expected behaviour
[05:45] <wgrant> Look at the results of the iteration.
[05:45] <wgrant> It's returning both.
[05:46] <wgrant> (.config doesn't copy -- it changes in place and returns self)
[05:46] <wallyworld_> ah, right, i think i get it. it's hard to tell from a few lines of diff
[05:47] <wgrant> Indeed. You can see what the decorated output is like in the context at the top of that hunk.
[05:47] <wgrant> The decorator returns "Dist name is: %s" % result.name.
[05:48] <wallyworld_> right. clear now.
[05:51] <wgrant> wallyworld_: Thanks.
[05:51] <wallyworld_> np. sorry for confusion
[05:51] <wgrant> np
[05:52] <wallyworld_> wonder how much benefit it will have
[05:52] <wgrant> 600ms for Ubuntu
[05:52] <wgrant> 20ms for everyone else.
[05:52] <wallyworld_> what was the time for ubuntu before mod?
[05:52] <wgrant> 1.2s
[05:52] <wgrant> Maybe 1.3s
[05:52] <wallyworld_> we it's now 1/2
[05:52] <wgrant> It's roughly halving it, anyway.
[05:53] <wallyworld_> yeah, cool
[05:53] <wallyworld_> might make it to qas before tomorrow if bb plays nice
[05:53] <StevenK> bb is currently running
[05:53] <wallyworld_> for how long before erroneous error
[05:54] <StevenK> Do not say that.
[05:55] <wgrant> Does anybody have a good reason for me to not revert the python-memcached upgrade?
[05:56] <StevenK> wgrant: Doeet
[05:56] <StevenK> (As in, do the revert.)
[05:58] <lifeless> StevenK: hi
[05:59] <lifeless> wallyworld_: you can use Or(Equals(1), Equals(2))
[05:59] <lifeless> wallyworld_: or you could write a simple Between(1,2)
[06:00] <lifeless> wgrant: ^
[06:00] <wallyworld_> lifeless: ECONTEXT
[06:00] <lifeless> wallyworld_: LessThan vs Equals
[06:00] <lifeless> wallyworld_: you're not limited to simple comparators
[06:00] <StevenK> lifeless: Can you set launchpad-security as the bug supervisor and security contact on the auditor project?
[06:00] <lifeless> sure. you can't ?
[06:00] <wallyworld_> lifeless: handy. good to know
[06:01] <lifeless> StevenK: also have set the answers option to lp
[06:01] <wallyworld_> lifeless: pretty happy to write a test with query count < 6 where some of those are updating session data etc
[06:01] <StevenK> lifeless: I can not, no, since I'm not an admin of -security.
[06:02] <wgrant> wallyworld_: That's only because the caches are not invalidated.
[06:02] <wgrant> wallyworld_: AFAICS
[06:02] <lifeless> wallyworld_: I've no objection, I was merely noting an oversight in your 'cannot use Equals' conversation
[06:02] <wallyworld_> sure, np
[06:02] <wallyworld_> lifeless: so you had a car accident yet with the new road rules?
[06:03] <lifeless> nope
[06:03] <wallyworld_> i bet a few people do though
[06:03] <lifeless> perhaps
[06:03] <lifeless> should have less in the long run or thats the theory
[06:05] <wallyworld_> well, it's only tourists i guess who would have been caught out
[06:05] <wgrant> """Backport of Python 2.6 logging handlers.
[06:05] <wgrant> Hmmm
[06:05] <wgrant> I wonder if that can be dropped now.
[06:07] <lifeless> StevenK: (thats done)
[06:07] <StevenK> lifeless: Thanks.
[07:58] <adeuring> good morning
[08:55] <jml> hello
[08:56] <jml> I updated my MP over the weekend: https://code.launchpad.net/~jml/lazr.restfulclient/multiple-instance-safe/+merge/98873
[08:57] <jml> wgrant: IIRC, it can.
[09:04] <wgrant> jml: It's in EC2 now, so we'll see.
[09:24] <jml> loggerhead :(
[09:38] <wgrant> jml: What about it?
[09:38] <jml> it was 503ing before
[09:38] <wgrant> jml: crowberry's Apache has been collapsing a bit the last couple of hours.
[09:38] <wgrant> loggerhead is not the problem here, for once.
[09:43] <jml> hurrah
[09:43] <wgrant> FSVO
[12:27] <wgrant> jelmer: Heh, thanks, was about to do that myself.
[12:27] <wgrant> It's caused us some problems before.
[12:29] <jelmer> wgrant: :)
[12:29] <jelmer> wgrant: the buildbot plugin for bzr is also using a few API calls that cause unnecessary traffic
[12:29] <jelmer> (and slowness)
[12:29] <wgrant> jelmer: See carob:~wgrant/shadowrobot for logs
[12:30] <jelmer> thanks
[13:02] <deryck> Morning, all.
[13:10] <adeuring> abentley: could you have a look at this MP: https://code.launchpad.net/~adeuring/lazr.jobrunner/early-reference-to-job.fail-test/+merge/99312 ?
[13:11] <abentley> adeuring: sure.
[13:11] <adeuring> thanks
[13:17] <abentley> adeuring: r=me.
[13:17] <adeuring> abentley: thanks
[14:03] <dobey> hey all; getting https://lp-oops.canonical.com/?oopsid=ae5111a6e4ae33b1e2c60a6dc72164e7 when trying to search for a person/team in the bug assignee dialog
[14:08] <sinzui> wallyworld_, go to sleep
[14:11] <jcsackett> sinzui: wallyworld_ never sleeps.
[14:11] <czajkowski> neither does lifeless wgrant or sinzui or StevenK
[14:11] <czajkowski> :)
[14:11] <jcsackett> czajkowski: putting aside lifeless, that's everyone else on my team.
[14:12] <jcsackett> i'm the only one that sleeps...no wonder i question if our team has a full ration of sanity. :-P
[14:12] <czajkowski> hah
[14:13] <sinzui> jcsackett, I can lp-land branches for people; they do not need to stay up waiting for the review
[14:16] <sinzui> benji, do you have time to review https://code.launchpad.net/~sinzui/launchpad/front-page-layout/+merge/99121 ? It has pictures
[14:16] <jcsackett> sinzui: I concur; certainly there's no need for wallyworld_ to stay up. But he always seems to. :-P
[14:16] <benji> sinzui: well, if it has pictures how can I refuse?
[14:17] <wallyworld_> sinzui: can you have a quick look at something for me
[14:17] <wallyworld_> lp:sharing-picker-title-959417
[14:18] <sinzui> wallyworld_, yes
[14:18] <wallyworld_> in _display_step_two(data) the click callback refuses to use the latest value of data passed to the function
[14:19] <wallyworld_> so there's a scoping issue i can't quite solve
[14:19] <sinzui> oh dear
[14:19] <wallyworld_> it always uses the value passed in when the function is first invoked
[14:19]  * sinzui nods
[14:19] <wallyworld_> it's for bug 965197
[14:19] <_mup_> Bug #965197: sharee picker always uses first selected person <disclosure> <ui> <Launchpad itself:In Progress by wallyworld> < https://launchpad.net/bugs/965197 >
[14:20] <wallyworld_> the click callback is the delegated one for .next
[14:20] <wallyworld_> thanks in advance
[14:21]  * wallyworld_ off to bed
[14:21]  * wallyworld_ doesn't like javascript today
[14:24] <sinzui> czajkowski, the the notes on the whiteboard were generated by Lp when the user set and OTHER license. The i don't know are a problem because they are not open source. We would disable them after 6 months if there was an automated way to do it
[14:25] <sinzui> czajkowski, some of the messages you are seeing shows that the user was trying other opensource, then read the rules in the email and selected a different type of license
[14:26] <sinzui> czajkowski, so no human left a not on the board...we leave out names.
[14:26] <czajkowski> sinzui: ahh right re the mail I sent
[14:26] <czajkowski> sinzui: well assumed it's you as you do a lot of the liceince reviews.
[14:26] <sinzui> czajkowski, When you see such a note and a proper license, the user understood the instruction in the email and fixed the license
[14:27] <sinzui> I only review other/open source and proprietary
[14:27] <czajkowski> ok
[14:27] <czajkowski> cheers
[14:28] <sinzui> most I don't knows will fail on their own. they are not worth anyone's time to fix the license. We only care about them also being used for spam
[14:28] <benji> ok, sinzui: I've looked at the pretty pictures.
[14:30] <sinzui> thank you benji
[14:30] <benji> any time
[15:00] <salgado> benji, hi there.  if you have some time today, I could do with a review on https://code.launchpad.net/~linaro-infrastructure/launchpad/team-engineering-view/+merge/99342 :)
[15:00] <benji> salgado: sure
[15:08] <rick_h> deryck: got a sec to do a quick pre-impl?
[15:10] <deryck> rick_h, on call now, ping when free
[15:10] <rick_h> deryck: k
[15:35] <abentley> adeuring: I've pushed the updates to download-cache.  Sorry for the delay.
[15:42] <deryck> rick_h, I can chat now.  let me start a hang out.
[15:43] <deryck> rick_h, https://plus.google.com/hangouts/extras/talk.google.com/go-for-deryck
[15:48] <czajkowski> deryck: love the url!
[16:03] <deryck> czajkowski, :)
[16:03] <czajkowski> deryck: thanks for covering tomorrow as well
[16:05] <deryck> czajkowski, yeah, no problem at all.
[16:27] <cr3> hi folks, how can I request that a project (and all its bugs) become private?
[16:31] <czajkowski> cr3: what is the project?
[16:32] <cr3> czajkowski: hw-labs
[16:33] <czajkowski> cr3: made bugs private
[16:33] <czajkowski> as for making the project private hmm
[16:34] <czajkowski> sinzui: is it possible to make the project private I dont seem to be able to do that, or is making the bugs private enough
[16:35] <cr3> czajkowski: yeah, we noticed that checkbox after asking the question but we'll see if the project as a whole could also be marked as private
[16:35] <czajkowski> I suspect it's something webops will have to do
[16:39] <sinzui> czajkowski, there is no such thing as a private project
[16:39] <czajkowski> hmm
[16:40] <czajkowski> cr3: ^^
[16:40] <sinzui> cr3, as the maintainer of a project with a commercial subscription, you can configure the bug tracker to have private-by-default bugs. all new bugs will be private
[16:42] <sinzui> cr3, I can give /checkbox a commercial subscription, then you can enable private bugs
[16:43] <cr3> sinzui: this is for the /hw-labs project though, not /checkbox. however, we'd like the project as a whole private if possible
[16:44] <sinzui> cr3, as I said, no such thing
[16:45] <sinzui> I have been working the private projects for 22 months. and we are still 6 months away from saying a project can be private
[16:45] <cr3> sinzui: ah, misssed that part. thanks!
[16:45] <cr3> czajkowski: I guess we're all good with private bugs then, thanks!
[16:46] <sinzui> cr3, the project already has a commercial subscription...the maintain can enable private bugs
[16:46] <cr3> sinzui: yeah, czajkowski helped with that. I was under the impression that the project as a whole could be private though, all clear now.
[16:46] <sinzui> okay
[16:47] <czajkowski> sinzui: cheers
[17:18] <abentley> deryck: Would you like to review a very short lazr.jobrunner branch? https://code.launchpad.net/~abentley/lazr.jobrunner/fix-celeryd-tests/+merge/99378
[17:19] <deryck> abentley, sure.
[17:21] <deryck> abentley, easy peasy that one. :) r=me.
[17:21] <abentley> deryck: Thanks.
[17:21] <deryck> np!
[17:40] <salgado> benji, would you be able to land that branch for me?  I think I remember last time your VM was not setup to run ec2-land or something so I thought I'd check
[17:41] <benji> salgado: sure (I've gotten it straightened out since then)
[17:41] <salgado> oh, cool. thanks!
[17:50] <adeuring> abentley: thanks (no problem with the delay)
[17:50] <abentley> adeuring: I've also landed a fix for those test failures.
[17:50] <adeuring> abentley: cool
[18:08] <lifeless> salgado: hi
[18:08] <salgado> hi lifeless
[18:08] <lifeless> salgado: I've just commented on your MP, I thought I'd ping you here to make sure you understand the comment ;)
[18:09] <lifeless> benji: you may want to see that comment too - its a mis-pattern to watch for with storm use
[18:10]  * benji looks.
[18:10] <lifeless> this is the culprit I'm referring to:
[18:10] <lifeless> +        results = store.using(*origin).find(
[18:10] <lifeless> +            (WorkItem, Milestone, Specification, Person, Product,
[18:10] <lifeless> +             Distribution),
[18:11] <lifeless> a milestone with 10 workitems, each with different assignees, and the spec with an 11th assignee, will return 20 rows
[18:12] <lifeless> and you'd parse and update storm metadata for the same distro or product 20 times, for the spec assignee 10 times, for the spec 20 times, for the milestone 20 times, for the workitem twice per workitem.
[18:13] <lifeless> if the workitems had the same person a lot, which is much more common, the redundant work level will increase
[18:16] <lifeless> benji: salgado: do you see why this happens?
[18:17] <benji> lifeless: yep; it's not pretty
[18:18] <benji> salgado: I'm going to kill the landing, if you don't object
[18:19] <salgado> lifeless, I don't understand why in that scenario it'd return 20 rows
[18:19] <lifeless> because of the coalesce on person
[18:19] <lifeless> salgado: even without that its still an exmaple of the anti pattenr
[18:20] <lifeless> salgado: DecoratedResultSet is designed for this - the pre_iter_hook can bulk load all the related objects, at one query per *type*, the collection is still slicable and still looks like it returns just Workitems, or whatever.
[18:20] <lifeless> salgado: the issue is that sql flattens a graph to a table, which leads to redundancy, the more types you include in the result, the higher the waste
[18:21] <lifeless> if it was nearly free to parse and assemble storm objects, it wouldn't matter, but its not.
[18:22] <salgado> lifeless, ok, I can use a pre_iter_hook, but I'm curious as to how the coalesce on person does that?
[18:25] <lifeless> the coalesce increases, its not the only cause
[18:25] <lifeless> it says 'make a row for person where milestone.foo or spec.foo'
[18:25] <lifeless> bah workitem
[18:26] <salgado> I understood it's not the only cause
[18:26] <lifeless> if the workitem person and the spec person are different, you'll get two rows, one with the workitem person and one with the spec person
[18:26] <lifeless> all the other fields will be identical
[18:26] <lifeless> brb
[18:27] <lifeless> actually, I'm wrong about the coalesce
[18:27] <lifeless> the rest I'm right on :)
[18:27] <lifeless> thje coalesce will pick just one. Fuzzy morning thinking.
[18:27] <salgado> ok, I understand what the issue is with storm, but the coalesce didn't make sense so I thought I was missing something
[18:28] <lifeless> yeah, you're spot on :)
[18:28] <lifeless> I was nutty there
[18:39] <lifeless> benji: so yes, stopping the landing would be good; or salgado could do a follow up branch - I'm happy either way.
[18:39] <salgado> just kill it and I'll fix it on this same branch
[18:40] <benji> 'E's expired and gone to meet 'is maker!
[19:09] <abentley> deryck: The cross-format stacked branches bug #828409 won't be fixed until the RT has been performed.
[19:10] <_mup_> Bug #828409: cross-format stacked branches can't be accessed <branch-stacking> <codehosting> <Launchpad itself:In Progress by abentley> < https://launchpad.net/bugs/828409 >
[19:10] <abentley> deryck: We're not fixing the bug by changing code, we're fixing it by ensuring there are no cross-format stacked branches.
[19:19] <lifeless> flacoste: I can talk anytime that suites
[19:19] <lifeless> s/e//
[19:27] <rick_h> 984758
[19:29] <deryck> abentley, ok, cool.  So I'll move the card all the way to done done for us.  since we're done coding....
[19:29] <deryck> abentley, and do you mind commenting that the bug will be fixed with RT #XXX in the bug itself?
[19:30] <abentley> deryck: sure.
[19:31] <deryck> abentley, thanks!
[19:39] <lifeless> flacoste: inviting you back in
[19:39] <lifeless> flacoste: modem crashed AFAICT
[20:24] <poolie> hi all
[20:25] <salgado> lifeless, does http://paste.ubuntu.com/901105/ look ok to you?
[20:25] <salgado> hi poolie!
[20:27] <lifeless> morning poolie
[20:28] <lifeless> salgado: nice
[20:28] <lifeless> salgado: I think you can change your origin list now
[20:28] <lifeless> salgado: as you're not constraining by Person etc
[20:28] <lifeless> salgado: IMBW
[20:28] <salgado> lifeless, I am: Person.id.is_in(self.participant_ids)
[20:29] <lifeless> salgado: uhm, where is that MP again, so I can get more context?
[20:29] <salgado> I can get rid of Product/Distribution from there, though
[20:29] <salgado> lifeless, https://code.launchpad.net/~linaro-infrastructure/launchpad/team-engineering-view/+merge/99342
[20:30] <salgado> now my origin joins only Specification, Person and Milestone
[20:30] <lifeless> salgado: this is in getAssignedSpecificationWorkItemsDueBefore ?
[20:30] <salgado> yes
[20:31] <lifeless> yeah, you don't need Person :)
[20:32] <lifeless> Or(WorkItem.assignee_id.is_in(self.participant_ids), Specification.assigneeID.is_in(self.participant_ids))
[20:32] <lifeless> would be an exact translation
[20:32] <salgado> oh, indeed
[20:33] <lifeless> it may be that you want just WorkItem.assignee_id.is_in(self.participant_ids) though
[20:33] <salgado> no, that's not what I want
[20:35] <lifeless> [I wouldn't know :P]
[20:36] <lifeless> so, milestone workitem and specification are the tables you need
[20:37] <salgado> yep, and those are all I have in origin now :)
[20:37] <lifeless> cool
[20:37] <lifeless> you can inner join to workitem
[20:37] <lifeless> because you are returning the workitems, a NULL workitem won't be useful for you
[20:43] <salgado> lifeless, how can that return a NULL workitem, though, if that's the only thing I'm selecting on?
[20:43] <lifeless> you're selecting on milestone & workitem|spec person
[20:44] <lifeless> ah, I may have misread, one sec
[20:45] <lifeless> you have workitem join spec, coalesce join milestone
[20:45] <lifeless> so its all inner
[20:45] <lifeless> cool, ignore me :)
[20:45]  * lifeless puts that on hotkey
[20:46] <salgado> haha
[21:26] <lifeless> StevenK: have you added any more types to enterpriseid ?
[22:01] <StevenK> lifeless: Not yet.
[22:02] <lifeless> cool
[22:03] <sinzui> jcsackett, mumble?
[22:03] <jcsackett> sinzui: having a little trouble getting it to launch.
[22:03] <jcsackett> be there in a moment.
[22:20] <wgrant> lifeless: Except that fixtures.TempDir doesn't support that.
[22:20] <wgrant> (it probably should, but I wanted this code to go away first)
[22:20] <lifeless> wgrant: it does
[22:20] <lifeless> wgrant: rootdir=...
[22:21] <wgrant> Not in LP's version.
[22:21] <wgrant> Maybe we're out of date.
[22:22] <wgrant> lifeless: Hah
[22:22] <wgrant> lifeless: Support was added 3 revisions after our current version.
[22:22]  * wgrant upgrades.
[22:42] <wallyworld_> sinzui: is there a bug already for the existing sharee / picker issue?
[22:43] <sinzui> wallyworld_, no, I was thinking to co-opting/editing  https://bugs.launchpad.net/launchpad/+bug/933828
[22:43] <_mup_> Bug #933828: Cannot change what is shared with a user <disclosure> <javascript> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/933828 >
[22:44] <wallyworld_> sinzui: yes, that bug is already fixed as written. so i will change the description
[22:44] <sinzui> fab
[22:51] <salgado> lifeless, hey, would mind having another look at https://code.launchpad.net/~linaro-infrastructure/launchpad/team-engineering-view/+merge/99342 to see if it the changes I did address the concerns you have?  both methods there are now using pre_iter_hook to do eager loading
[22:54] <lifeless> sure, una momento
[23:03] <lifeless> salgado: so search_bugs isn't really meant to be the consumer interface - BugTaskSet.search still is
[23:04] <lifeless> salgado: if you can use that, that might be better
[23:04] <wgrant> search_bugs is forbidden.
[23:04] <lifeless> wgrant: you should make that clearer then
[23:05] <salgado> hmm.  BugTaskSet.search() already returns me a decoratedresultset with a pre_iter_hook to eager load some stuff.  can I wrap that in another decoratedresultset with another pre_iter_hook?
[23:06] <lifeless> well you're listifying the result already
[23:06] <lifeless> so you can just bulk load in your function
[23:07] <lifeless> no need for DRS stuff there
[23:08] <salgado> indeed, but then when somebody changes BugTaskSet.search() to not do eager loading (or to eager load more stuff than it currently does), my method will either not work as expected (i.e. no eager loading of everything it should) or issue more queries than necessary because some of them were already executed by BTS.search()
[23:09] <lifeless> salgado: equally when someone changes the schema your eager loader would need to change
[23:10] <lifeless> salgado: I don't see 'changes need things changed with them' as a particular problem :)
[23:14] <salgado> that's not my point but whatever