[00:44] <StevenK> 13 cards in QA-Landing, because buildbot sucks and needs to die.
[00:45]  * StevenK stabs irssi
[00:45] <rick_h> StevenK: ping, it came up in a call that you and Steven hit a bug where codehosting was giving bad responses during log rotation?
[00:45] <rick_h> StevenK: did that end up in a bug somewhere that I can reference?
[00:45] <StevenK> That I and me?
[00:45] <StevenK> :-)
[00:45] <rick_h> :)
[00:46] <rick_h> just going off of what I'm told from the higher power, Steven and Steve K were involved somehow
[00:46] <StevenK> It was investigated by poolie, wgrant and I.
[00:46] <StevenK> Only one of us is called 'Steve'
[00:46] <rick_h> ok, well then I was lied to, my apologies
[00:46] <wgrant> https://bugs.launchpad.net/bugs/724750
[00:46] <_mup_> Bug #724750: launchpad redirects pack files to https://launchpad.net (while repacking?) <Launchpad itself:Triaged> < https://launchpad.net/bugs/724750 >
[00:47] <StevenK> That's the one.
[00:47] <rick_h> ty sir
[00:47] <StevenK> It doesn't impact buildbot since that uses bzr+ssh.
[00:47] <wgrant> rick_h: BTW, thanks for fixing the YUI2 thing.
[00:47] <rick_h> wgrant: sorry it got hung up with my travels and such
[00:48] <rick_h> had hoped to get it landed before I left, but various tests hated me
[00:48] <wgrant> Yeah, that often happens :(
[00:48] <wgrant> Now maybe I can implement Content-Security-Policy this weekend.
[00:49] <StevenK> rick_h: You've recovered from PyCon?
[00:49] <wgrant> Still, 30 minute test suite soon :)
[00:49] <rick_h> StevenK: working on it, have the post pycon flu so on meds and need a nap something fierce
[00:50] <rick_h> wgrant: yea, heard there was some serious progresson that, exciting!
[00:53] <StevenK> wgrant: So should I replace bug.private with bug.information_type in (2, 4, 5) in the triggers?
[00:54] <wgrant> StevenK: (3, 4, 5), but yes.
[00:54] <wgrant> StevenK: That's what I've done, although it is a bit awful.
[00:54] <StevenK> Yup
[00:55] <StevenK> wgrant: The DB branch that makes information_type not null failed due to the garbo job. :-(
[00:55] <wgrant> Heh.
[00:55] <StevenK> The garbo job has just been killed in devel
[00:55] <wgrant> So I aw.
[00:55] <wgrant> s
[00:55] <StevenK> Now to wait for buildbot so I can re-land the db patch
[00:56] <wgrant> That's about 11 hours away.
[00:56] <StevenK> I'm aware. :-(
[00:56] <StevenK> at now + 11 hours bzr lp-land
[00:57] <StevenK> That has no hope of working, but it would be nice.
[01:00]  * StevenK claims another -12 patch
[01:02] <StevenK> wgrant, wallyworld: I think we should suggest to sinzui that we need a new lane: 'QA-Fucked over by buildbot'
[01:03] <wallyworld> +1 :-)
[01:03] <StevenK> Haha
[01:03] <wgrant> Yeah
[01:03] <wgrant> I'd really like there to be a separate column.
[01:03] <wgrant> For when it is actually landed.
[01:04] <wgrant> Since once it's landed it can usually be dealt with by anyone.
[01:05] <StevenK> To be fair, QA-Landing is conflating ec2 with buildbot.
[01:05] <StevenK> Perhaps we need two: "This is working through ec2, and isn't landed yet." and "This has hit devel/db-devel and can be dealt with by anyone when it hits qas."
[01:07] <wgrant> That's what I meant, yes.
[01:07] <StevenK> Right.
[01:16] <StevenK> wgrant: CREATE FUNCTION changes to DROP/CREATE or CREATE OR REPLACE ?
[01:18] <wgrant> StevenK: CREATE OR REPLACE
[01:18] <wgrant> DROP will probably not work because there are references.
[01:18] <wgrant> In general there's very little reason not to use CREATE OR REPLACE every time.
[01:26] <wgrant> wallyworld: Hi, did you see my comment on your MP about half an hour ago?
[01:27] <wallyworld> wgrant: no. but i already fixed the typo
[01:27] <wallyworld> is person_sort_key case insensitive?
[01:28] <wgrant> It is.
[01:28] <wallyworld> ffs
[01:28] <wallyworld> why would it do that?
[01:28] <wgrant> Ah, hm, I see you did indeed fix the typo a few minutes ago, but I don't have an email about it :/
[01:28] <wgrant> Because case insensitive sorting is what most of the world expects.
[01:29] <wallyworld> luckily for the next landing it's not really an issue
[01:30] <wallyworld> regardless of what the world expects, it should match the case sensitivity of normal order bys
[01:30] <wgrant> It's also rather trivial to fix without rerunning tests.
[01:30] <wallyworld> yes
[01:30] <wgrant> Hm?
[01:30] <wgrant> That *is* the normal order by.
[01:30] <wgrant> Ordering by Person.displayname is not supported.
[01:30] <wallyworld> but Person.displayname, Person.name is
[01:30] <wgrant> Its sort order is not a recognised one.
[01:30] <wgrant> No
[01:30] <wgrant> It's just a rule we have to break here until StormRangeFactory is fixed.
[01:31] <wgrant> person_sort_key is, as the name suggests, the person sort key.
[01:31] <wgrant> (Person.displayname, Person.name) is not, but it's close enough for the initial branch.
[01:33] <wallyworld> there should be no rule against sorting on multiple columns or am i missing something?
[01:33] <wgrant> It's not a rule against it.
[01:33] <wgrant> The rule is that the natural ordering for persons is person_sort_key.
[01:33] <wgrant> Which is roughly lower(displayname) + ', ' + lower(name)
[01:34] <wallyworld> sure, ok
[01:34] <wgrant> Having slightly different orderings around the place is rather confusing.
[01:35] <wgrant> (Person.displayname, Person.name) will do for now, but the ordering for the batch slicing and intra-batch sorting must be identical, or it will be very confusing.
[01:35] <StevenK> 18degC? What the heck. This isn't winter.
[01:35] <wgrant> It got down to 11 here yesterday.
[01:35] <StevenK> Bloody heck
[01:35] <wgrant> http://www.baywx.com/melbtempyestII.html
[01:35] <wgrant> Veeeery odd day.
[01:36] <mwhudson> isn't that graph basically the wrong way up?
[01:36] <wgrant> Yes.
[01:37] <bigjools> bloody freezing here too, it's 22C
[01:37] <wallyworld> wgrant: agreed about sorting needing to be consistent - i thought it was, didn't realise person_sort_key was case insensitive
[01:38] <wgrant> wallyworld: Yep
[01:38] <wgrant> bigjools: Yes, but you're in the past.
[01:58] <wallyworld> wgrant: StormRangeFactory doesn't accept lower either
[01:59] <wallyworld> so we have to live with it till StormRangeFactory is enhanced
[02:00] <wgrant> wallyworld: Sure, the only way to get it consistent now is to use plain (displayname, name)
[02:00] <wallyworld> which will mess up if there's names with non ascii chars
[02:04] <wgrant> wallyworld: We don't really handle that case very well normally.
[02:05] <wallyworld> i'll tweak the sort order, raise a bug for StormRangeFactory, and put in an xxx
[02:06] <wgrant> Thanks.
[02:06] <wgrant> I'll probably end up fixing SRF soonish.
[02:06] <wgrant> Since we likely want it for bugs.
[02:09] <wallyworld> wgrant:  bug 961836
[02:09] <_mup_> Bug #961836: StormRangeFactory should support functional sort keys <batching> <Launchpad itself:New> < https://launchpad.net/bugs/961836 >
[02:31] <wgrant> wallyworld: Bug #961840
[02:31] <_mup_> Bug #961840: "Share with someone" makes it easy to accidentally revoke access <disclosure> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/961840 >
[02:32] <wallyworld> wgrant: currently "by design" since there's no vocab to support that sort of thing yet
[02:32] <wgrant> wallyworld: k
[02:33] <wgrant> wallyworld: Is it easy enough to use the normal batch spinner on initial page load?
[02:33] <wallyworld> but good that's it's filed so we can track it
[02:33] <wgrant> Currently it uses a different one for initial vs batch load.
[02:34] <wallyworld> no since the batcher expects trhe initial batch to be rendered
[02:34] <wallyworld> server side
[02:34] <wgrant> Yeah, it would obviously need some changes, but might be nice if it's simpleish.
[02:34] <wallyworld> i guess the client side code could be changed
[02:34] <wgrant> Apart from that, this UI is pretty damn nice.
[02:34] <wallyworld> and faster than other things
[02:56] <wgrant> lifeless: I'm seeing overhead of about 10% on +sharing from traceback collection from just 27 queries.
[03:02] <lifeless> wgrant: what are the times
[03:06] <wgrant> Sigh, libvte upgrade has broken termcaps
[03:07] <wgrant> lifeless: Rendering without profiling is about 0.20s vs 0.22s. With profiling is 0.42s vs 0.48s, with about 0.05s shown in format_stack
[03:08] <wgrant> But that's 2ms per query, which is sort of insane unless it's doing IO.
[03:08] <wgrant> Ah, it is.
[03:08] <wgrant> linecache.checkcache
[03:08] <wgrant> I wonder how much of it is that.
[03:10] <StevenK> wgrant: Can you link me to your branch that changes the triggers?
[03:11] <lifeless> wgrant: so, I'm willing to pay 2ms on a 20ms call to have good data on the bad calls
[03:11] <lifeless> wgrant: if you can come up with a sensible way to achieve the good data on bad calls without the 2ms on the 20ms call, I'd be delighted
[03:11] <wgrant> lifeless: That adds 15ms to every authentication attempt :)
[03:12] <lifeless> one thing we could do is get the line nos but not the line content
[03:12] <wgrant> Yeah
[03:12] <lifeless> and if we oops only then convert to lines
[03:12] <wgrant> Exactly.
[03:12] <wgrant> Since hopefully the file won't change much...
[03:13] <lifeless> if it does we have a different problem
[03:13] <wgrant> But I don't know how much is actually the formatting.
[03:13] <lifeless> so our auth calls are 150ms?
[03:13] <wgrant> We do have some pretty horrific traces due to TAL.
[03:13] <lifeless> with 15ms in data gathering overhead? Still doesn't bother me :)
[03:13] <wgrant> Request startup and auth is 50-60ms on production.
[03:13] <lifeless> sorry, 165ms w/15ms in data gathering
[03:14] <lifeless> wgrant: are you talking about the validation of credentials per request
[03:14] <wgrant> Yes.
[03:14] <lifeless> ok
[03:14] <lifeless> so look, I'm totally happy with tweaks to make it better
[03:15] <lifeless> I'm glad you're working on sufficiently lean stuff that this is showing up
[03:15] <wgrant> It's not big, but it's not exactly insignificant as you initially stated :)
[03:15] <StevenK> I think we're the only team that is following the directive that new pages need to be <1s
[03:15] <wgrant> StevenK: https://code.launchpad.net/~wgrant/launchpad/legacy-access-type/+merge/98342
[03:15] <wgrant> StevenK: I think it's <5s
[03:16] <wgrant> <1s is lifeless' eventually 99% goal, IIRC
[03:16] <lifeless> the directive is for new pages to be <1 99% of the time
[03:16] <wgrant> Ah
[03:16] <lifeless> new stuff should be where we want to be
[03:16] <wgrant> Oh right
[03:16] <wgrant> Timeout of 5s.
[03:16] <lifeless> right
[03:16] <lifeless> could you please add feature rules to ensure that as you add page ids? that would be awesome.
[03:16] <wgrant> The batching changes should bring this comfortably to 99% <0.5s, except for Ubuntu where who knows.
[03:17] <lifeless> it will be brilliant to have front end problems
[03:17] <wgrant> Indeed.
[03:18] <wgrant> Would love a flaggable soft timeout...
[03:18] <lifeless> doit
[03:18] <wgrant> I tried.
[03:18] <wgrant> Requires reworking lots of things.
[03:18] <lifeless> oh yeah end of the world sort of thing
[03:18] <lifeless> you could cheat
[03:18] <wgrant> And it's probably worth taking it that little bit further to make UserRequestOops work in the same way.
[03:19] <wgrant> At present ++oops++ doesn't work for requests that don't render the base template.
[03:19] <lifeless> oh my, checkcache isn't written for speed is it.
[03:19] <wgrant> Nooooo it is not.
[03:19] <lifeless> so
[03:19] <lifeless> you have my total blessing to monkey patch that to return.
[03:19] <lifeless> we /don't/ support reload() in lp.
[03:20] <lifeless> we could, in principle, use inotify but I don't see the practical value
[03:21] <spm> maybe if you changed it to be iNotify, then the value becomes obvious. ???
[03:22] <wgrant> Heh
[03:22] <lifeless> spm: keep your day job :)
[03:23] <wgrant> 828 calls to checkcache from 27 queries
[03:23] <spm> :'-(
[03:23] <wgrant> And I guess each of those causes at least 1 stat
[03:23] <wgrant> And those are all really shallow queries.
[03:23] <lifeless> whats calling checkcache ?
[03:23] <lifeless> getlines?
[03:23] <wgrant> _get_frame_data
[03:24] <wgrant>     # End part adapted from zope.exceptions.
[03:24] <wgrant>     co = f.f_code
[03:24] <wgrant>     filename = co.co_filename
[03:24] <wgrant>     name = co.co_name
[03:24] <wgrant>     linecache.checkcache(filename)
[03:24] <wgrant>     line = linecache.getline(filename, lineno, f.f_globals)
[03:24] <wgrant> Seems like at worst we'd want a clearcache at the start of the request.
[03:24] <lifeless> its not threadsafe
[03:25] <lifeless> or rather
[03:25] <lifeless> I'll take money that there are check-and-then-reference patterns in the code
[03:25] <wgrant> True.
[03:25] <lifeless> which will blow up if the cache clears between two bytecodes in the model
[03:25] <lifeless> module
[03:25] <lifeless> like
[03:25] <lifeless> ok
[03:25] <lifeless>     if filename in cache:
[03:25] <lifeless>         return cache[filename][2]
[03:25] <lifeless>     else:
[03:25] <lifeless>         return updatecache(filename, module_globals)
[03:26] <lifeless> (in getlines, called from getline)
[03:26] <wgrant> :D
[03:26] <lifeless> now, if you want to rewrite the whole module more-or-less, sure.
[03:26] <lifeless> the right place to check the cache is import
[03:27] <lifeless> 'if you replace this module please be so kind as to discard its cached entries'
[03:27] <lifeless> ditto tal, if tal uses the linecache to cache lines for tracebacks
[03:28] <lifeless> and really, module -> lines should be a module held reference so that reload(),w hich leavces the old module to be gc'd, doesn't cause bad stack traces on old call stacks.
[03:28]  * lifeless stops before he gets critical 
[03:31] <StevenK> Before?
[03:32] <wgrant> Mysterious.
[03:33]  * StevenK stabs MPs
[03:33] <wgrant> Nothing is calling checkcache
[03:33] <wgrant> But it's still being called.
[03:33] <mwhudson> zope is good at hiding behaviour
[03:34] <wgrant> Oh
[03:34] <wgrant> extract_tb does it
[03:34] <wgrant> In stdlib's traceback module
[03:34] <wgrant> Why were we calling it directly too :/
[03:34] <StevenK> To be certain.
[03:34] <StevenK> Or something.
[03:37] <lifeless> thats probably a bug
[03:37] <lifeless> the intent was to have the oops core get tb's
[03:37] <lifeless> but the lp consumer opt in for the zope pretties
[04:02] <wgrant> lifeless: A custom traceback collector without touching the files at all is 10x faster.
[04:02] <wgrant> So <1% overhead.
[04:03] <wgrant> Means we need to have a somewhat more hacked up traceback system, but it seems like it's probably worth it to do the formatting only on demand.
[04:03] <StevenK> wgrant: I still get failures in TestBugMirrorAccessTriggers with your DB patch applied. :-(
[04:05] <lifeless> wgrant: cool, if you're going to execute on this wicked, if not can you file bugs to capture the issue and your digging ?
[04:06] <wgrant> StevenK: Do you also have my test fixes merged?
[04:06] <StevenK> Oh, there's test fixes for TestBugMirrorAccessTriggers too?
[04:06] <wgrant> yes
[04:07] <wgrant> Best to merge the whole branch, probably.
[04:07] <StevenK> I only grabbed the DB patch
[04:09] <StevenK> And indeed, that was the only change in the branch you linked.
[04:11] <wgrant> Oh, yes, different branch.
[04:11] <wgrant> I was thinking of bugtaskflat.
[04:11] <wgrant> Which had test changes.
[04:11] <wgrant> What's the erorr?
[04:14] <StevenK> wgrant: http://pastebin.ubuntu.com/894657/
[04:16] <wgrant> StevenK: Somehow the bug is acquiring an extra subscription.
[04:16] <wgrant> In every case.
[04:17] <StevenK> I wonder if that points to a bug in transistionToInformationType()
[04:17] <wgrant> It may be implicitly subscribing the actor.
[04:17] <wgrant> So if the actor's not the usual person, bad things happen.
[04:18] <wgrant> Where "bad things happen" == "making this pedantic test fail"
[04:18] <wgrant> But it's possibly good that it picked it up.
[04:54] <StevenK> wgrant: Figured it out.
[04:55] <StevenK> wgrant: I had changed createBug() to unilaterly subscribe the bug supervisor if the information_type was USERDATA instead of 'params.product and params.product.private_bugs' before I changed it.
[05:01] <wgrant> StevenK: Ah
[05:02] <wgrant> That would break apport.
[05:02] <wgrant> No other tests failed?
[05:02] <wgrant> s/break/leak/
[05:02] <StevenK> I was only running TestBug as a smoke test
[05:02] <StevenK> Next up is -vvm bugs
[05:05] <wgrant> lifeless: Bug #961875, and qastaging agrees with my numbers. 10% for the average well-optimised sub-second page.
[05:05] <_mup_> Bug #961875: Timeline traceback collection has significant overhead <performance> <Launchpad itself:Triaged> < https://launchpad.net/bugs/961875 >
[05:06] <wgrant> More like 5% for eg. +bugs
[05:06] <wgrant> StevenK: So, my tests are happy now?
[05:07] <StevenK> wgrant: Yeah, that fixed them. If I was doing -vvm bugs as my smoketest, I suspect I would have seen other fallout.
[05:07] <StevenK> But -vvm bugs takes an hour
[05:08] <wgrant> Yeah.
[05:11] <StevenK> wgrant: TestBug == Total: 874 tests, 0 failures, 0 errors in 12 minutes 6.871 seconds.
[05:15] <wgrant> Excellent.
[05:20] <StevenK> wgrant: Running through -vvm bugs now, already at 27 failures
[05:21] <wgrant> Heh
[05:22] <lifeless> wgrant: which is ok :)
[06:23] <wgrant> Hmm
[06:23] <wgrant> We'll probably hit r15000 tomorrow.
[06:26] <wgrant> wallyworld: Hum
[06:26] <wgrant> wallyworld: The batching doesn't actually batch.
[06:27] <wgrant> Ah, nevermind, the real batching rev isn't on qastaging yet.
[06:27] <wgrant> Just the UI half.
[06:27] <wgrant> 600ms in _load_object :/
[06:45] <wallyworld> only a few more hours to go till it gets to qas
[06:46] <wgrant> wallyworld: Still, most of the QA can be done now.
[06:46]  * wgrant QAs his stuff.
[06:46] <wallyworld> wgrant: which pillar were you looking at for the 600ms
[06:47] <wgrant> wallyworld: launchpad
[06:47] <wgrant> ++profile++show is handy
[06:47] <wgrant> https://qastaging.launchpad.net/launchpad/+sharing/++profile++show
[06:47] <wallyworld> sure, i've been using it a lot this week
[06:48] <wgrant> Actually, looks like 600ms was exception
[06:48] <wgrant> 450ms is more common.
[06:48] <wgrant> But asuka seems to be rather unstable :(
[08:53] <adeuring> good morning
[09:29] <jml> :(
[09:30] <jml> hello launchpad do you know what is a good thing libraries that do not assume that a user is only running one program that uses that library at a time that is a good thing.
[09:31] <jml> hello launchpad do you know what is a good thing libraries that do not assume that a user is only running one program that uses that library at a time that is a good thing.
[09:31] <jml> sorry for the repeat
[09:56] <wgrant> jml: Just disable the cache, I guess :/
[09:57] <wgrant> You can also pass a custom cache dir to the Launchpad constructor
[10:10] <czajkowski> jtv: good morning/evening
[10:11] <jtv> hi czajkowski
[10:11] <jtv> It's not the one I already commented on, is it?
[10:11] <czajkowski> nope
[10:11] <czajkowski> just reading that
[10:11] <czajkowski> thanks for looking at it
[10:12] <czajkowski> jtv: https://answers.launchpad.net/launchpad/+question/191340
[10:12] <czajkowski> jtv: I am getting better at figuring the translations out, just I do seem to find unusal ones I need your help still
[10:12] <jtv> I'm a bit busy with a deadline, a review for rvba, and some SQL magic for dpm, and having network trouble so expect me to be a bit sporadic today.
[10:13] <jtv> The question page, for instance, isn't loading for me.  This may take some time.
[10:13] <czajkowski> jtv: not urgent sorry wil try and find out
[10:23] <jtv> czajkowski: I just answered.
[10:35] <stub> lol. "When complete", "A moment ago (estimated)"
[10:37] <czajkowski> jtv: thanks
[10:37] <jtv> czajkowski: if you do find time to look into this further, it's scripts/rosetta/remove-translations-by.py
[10:38] <jtv> It _may_ be possible to select something like “only by the given user.”
[10:38] <czajkowski> nods
[10:40] <jtv> czajkowski: (Yes, I know, I wrote that script.  And come to think of it yes, you should be able to select the submitter.  But the script also has some safety catches against mass deletions that you wouldn't want to do accidentally.)
[10:42] <jml> wgrant: yeah, I passed a custom cache dir, but then I accidentally filled my (EC2 instance's) disk.
[10:43] <jml> wgrant: I'm tempted to just fix lazr.restfulclient.
[10:44] <wgrant> jml: Brave man.
[10:47] <jml> well, let's see if I can actually run the tests.
[10:48] <wgrant> I tried to do that once.
[10:50] <jml> :(
[10:50] <jml> If core developers can't patch it, then it's literally unmaintainable.
[10:51] <wgrant> This was years ago. Not sure how it is now.
[10:53] <jml> Then that just makes it literally unmaintained. :P
[10:54] <wgrant> That is entirely uncontested.
[11:03] <czajkowski> danilos: ping
[11:29] <jml> heh heh
[11:30] <jml> so, a couple of weeks ago maybe, httplib2 decided that no one should be allowed to use 0.6.0 any more
[11:34] <jml> I'm not sure why buildout is looking on the internet for this rather than in ./download-cache/dist
[11:35] <wgrant> Oh
[11:35] <wgrant> Does that mean that they admitted the certificate thing was actually a problem?
[11:36] <jml> I honestly don't know.
[11:37] <jml> Why isn't buildout fetching files from download-cache...
[11:39] <jml> ah
[11:39] <jml> it needs a setting in buildout.cfg that lazr.restfulclient doesn't have set.
[11:50] <jml> zope.testing. there's no school like the old school.
[12:20] <mhall119> did something change with launchpadlib recenty?  I'm getting unicode strings for datetimes now
[12:21] <StevenK> rick_h: O hai. Can you please prod deryck to do his QA when you do that whole stand-up thing with him?
[12:23] <rick_h> StevenK: email pls :)
[12:24] <rick_h> mhall119: yes, there was an update to wadllib a bit back, I just ok'd a fix this morning
[12:24] <StevenK> rick_h: Why?
[12:25] <rick_h> StevenK: because then it's on his todo list and not something I can forget to bug him about during standup
[12:25] <mhall119> rick_h: thanks, so it should be fixed in Precise soon?
[12:26] <rick_h> mhall119: yes
[12:26] <StevenK> I'd bug him directly, but he isn't on IRC.
[12:26] <mhall119> rick_h: is there a bug # I can subscribe to about this?
[12:59] <deryck> Morning, all.
[13:00] <StevenK> deryck: O hai. Would you mind doing the QA for r14983? :-)
[13:00] <deryck> StevenK, sure, first thing on my list today.
[13:15] <sinzui> czajkowski, Can you change the definition and implementation status https://blueprints.qastaging.launchpad.net/gdp/+spec/gdplaunchpad
[13:15] <deryck> woo-hoo, we now have the same number of queries issued in both old bug listings and new.
[13:15] <czajkowski> sinzui: nope
[13:16] <abentley> deryck: Woo!
[13:16] <czajkowski> sinzui: I checked all my old blueprints before I created the bug
[13:16] <czajkowski> as that's kinda annoying not to be able to change the status give this time of cycle
[13:16] <sinzui> czajkowski, no yellow edit icons next to the two fields>
[13:16] <czajkowski> sinzui: nope
[13:16] <czajkowski> there used to be :)
[13:16] <sinzui> czajkowski, the model says you can
[13:16]  * sinzui looks for old form
[13:17] <czajkowski> I can edit subscription
[13:17] <czajkowski> thats it
[13:17] <sinzui> czajkowski, can you access and use https://blueprints.qastaging.launchpad.net/gdp/+spec/gdplaunchpad/+status
[13:18] <czajkowski> sinzui: yes
[13:18] <czajkowski> sinzui: how did you get there?
[13:18] <sinzui> anyone can change subscription. I think the permissions on the links are different from the real fields
[13:19] <sinzui> czajkowski, I help my pointer over the edit Icon I could see to learn the non-javascript location
[13:19] <czajkowski> sinzui: only edit filed I cna get to is https://blueprints.qastaging.launchpad.net/gdp/+spec/gdplaunchpad/+subscribe
[13:20] <sinzui> czajkowski, this is a regression. It may be related to the javascript choice-picker, but I think the real issue is that the code that decides to render them thinks you have to be a driver
[13:20] <sinzui> czajkowski, The code really did you to be a driver two years ago, that was fixed, but I think the links were never updated
[13:20] <czajkowski> hmm
[13:21] <sinzui> czajkowski, this broke 12 months ago when the blueprints switched to the choice picker for everything
[13:22] <czajkowski> sinzui: nods well at this time of cycle it's probably going to be used a lot
[13:24] <sinzui> czajkowski, do you see the assignee edit icon next to your name?
[13:26] <czajkowski> sinzui: I do now on https://blueprints.qastaging.launchpad.net/gdp/+spec/gdplaunchpad
[13:51]  * jcsackett almost forgot it was thursday.
[14:24] <sinzui> czajkowski, do you manage a project on qastaging that would could create a blueprint for and make me the assignee?
[14:24]  * sinzui wrote a test that shows the assignee gets the edit link
[14:25] <czajkowski> I dont manage any project
[14:26] <sinzui> czajkowski, https://qastaging.launchpad.net/projects/+new register a project, configure blueprints, create one, make me the assignee
[14:27] <sinzui> czajkowski, This widget we are looking at happen to be the only widget that does not work for IE...maybe the problem is bigger than we thought
[14:27] <czajkowski> ok
[14:27] <sinzui> PS I care because we are using this widget to replace the privacy/security checkboxes
[14:29] <czajkowski> ok created now to configure blueprint
[14:30] <czajkowski> sinzui: dont see anything to configure bp
[14:32] <sinzui> czajkowski, its on the right side of the project page, and the link is repeated on the blueprint page
[14:34] <czajkowski> sinzui: otp
[14:34] <sinzui> ack
[14:36] <abentley> adeuring: You wanted me to review https://code.launchpad.net/~adeuring/lazr.jobrunner/use_job_repr_in_logging/+merge/98821 ?
[14:37] <adeuring> abentley: right
[14:38] <adeuring> abentley: and https://code.launchpad.net/~adeuring/launchpad/lp-lazr.jobrunner/+merge/97458
[14:38] <abentley> adeuring: It looks a bit strange.  Most reprs either resemble instance construction, like "BranchScanJob(id=5)" or have angle brackets like "<BranchScanJob>".
[14:38] <czajkowski> sinzui: https://blueprints.qastaging.launchpad.net/conference-planning/+spec/test
[14:39] <adeuring> abentley: well, we can use that too; I just wanted minimal changes that don't require related changes in the tests ;)
[14:39] <abentley> adeuring: Just "BranchScanJob" doesn't look like a repr to me.
[14:39] <sinzui> czajkowski, :( it looks right. I see the definition and implementation edit icons
[14:40] <sinzui> and I just changed one
[14:40]  * sinzui switches to firefox
[14:40] <adeuring> abentley: I agree. But that's how it looked so far ;) (unless the derived class had its own __repr__ method)
[14:41] <sinzui> bugger. Why does this work for me
[14:43] <abentley> adeuring: Is the job_str method really related to this?
[14:45] <adeuring> abentley: yes, is it used in the logger calls
[14:45] <adeuring> ...in runJob() and runJobHandleError()
[14:46] <abentley> adeuring: It doesn't seem to be used in the messages about MembershipNotificationJob that you changed, for example.
[14:49] <adeuring> abentley: job_str() is used in runJob() and runJobHandlerError(), in self.logger.info().
[14:53] <abentley> adeuring: You've changed it to use job_str in the "Running " message.  It used to use %r.  And that's why you're now changing job_str to use %r.
[14:56] <sinzui> czajkowski, I think I sussed it. the bug is about the "Status:" field only. No one can edit "status" because it is a summary of "Direction", "Definition", and "Implementation"
[14:57] <sinzui> czajkowski, so back to https://blueprints.qastaging.launchpad.net/gdp/+spec/gdplaunchpad . Do you see a yellow edit icon next to Definition Approved and Implementation started?
[15:02] <czajkowski> sinzui: yes
[15:02] <sinzui> thanks. I will update this bug, then stop panicing
[15:03] <czajkowski> heh
[15:03] <czajkowski> cheers the help
[15:05] <czajkowski> why are there so many erp projects trying to triage one outta our queue and into theirs
[15:08] <sinzui> yuck. That is messy
[15:09] <sinzui> czajkowski, choose openerp
[15:12] <czajkowski> sinzui: cheers
[16:16] <jml> https://code.launchpad.net/~jml/lazr.restfulclient/multiple-instance-safe/+merge/98873
[17:25] <jml> rick_h: thanks for the review. I'm guessing that '*' is still Launchpad secret squirrel code for the fact that it needs a review by another full fledged reviewer?
[17:25] <rick_h> jml: yes, I'm in training. I've asked my mentor to peek as well
[17:26] <jml> rick_h: thanks :)
[18:12] <lifeless> gary_poster: I wonder if regular ec2 land is suffering entropy issues
[18:12] <lifeless>  / ec2 test
[18:13] <gary_poster> lifeless, yeah, me too.  I brought that up with Francis.  There are reasons why parallel testing woud have it worse, but yeah, I thought it might be an interesting experiment
[18:13] <gary_poster> on call right now though :-)
[18:14] <lifeless> gary_poster: cool cool, did you get anywhere on the hanging-at-the-end thing? or did that turn out to be entropy too? (reply when you can, no rush)
[18:15] <gary_poster> lifeless, was entropy
[18:15] <lifeless> fascinating
[18:15] <lifeless> thanks
[18:56] <lifeless> salgado: hi, how did you go ?
[18:56] <lifeless> (I'm about to afk for 10 to give lynne a hand, so just braindump :P)
[18:59] <salgado> lifeless, haven't had much time for it, but I was able to extend search_bugs() without breaking any tests.  now I'll try and use it in my method
[19:03]  * deryck changes work locations
[19:03] <czajkowski> sinzui: so folks are going to get confused if they are used to being able to change their status of a blueprint and not can't
[19:10] <sinzui> czajkowski, lp never let someone change specification.status. it is a summary calculates by Lp with the definition and implementation status change
[19:11] <sinzui> The rules have not change for 6 years
[19:11] <sinzui> s/calculates/calculated/
[19:12] <lifeless> salgado: great
[19:13] <sinzui> czajkowski, that url I showed you (https://blueprints.qastaging.launchpad.net/gdp/+spec/gdplaunchpad/+status) is called +status because the assignee/driver needs to change those two fields to set the overall status
[19:14] <czajkowski> hm ok
[19:14] <czajkowski> thanks
[19:14] <czajkowski> sinzui: thanks
[19:30] <salgado> lifeless, http://paste.ubuntu.com/895534/
[19:31] <lifeless> salgado: cool
[19:39] <salgado> lifeless, it doesn't seem to do eager loading, though.  maybe I'm missing something
[19:44] <mhall119> is there a way to reference a project's development focus bzr branch using the HTTP urls?
[19:50] <salgado> lifeless, hmm, looks like it's doing it but with one query for every related table.  is that how search_bugs() work?
[20:48] <lifeless> salgado: one per related table is fine ;)
[20:51] <salgado> lifeless, right, but BugTaskSet.search() is hard-coded to do it only for Product/SourcePackageName, so I need to prejoin the others.  either that or use search_bugs() directly
[20:52] <lifeless> salgado: you can extend bugtaskset.search to do more; you can eager load after you get the batch back
[20:52] <lifeless> prejoining is bad
[20:52] <lifeless> it makes postgresql slow
[21:14] <amorphous1> jcsackett, hi there. Is there going on with launchpad? I'm truing to 'Propose Merge' but it's not going through
[21:25] <amorphous1> rick_h, ^
[21:26] <rick_h> amorphous1: what mp is this? do you get an oops number back?
[21:33] <amorphous1> rick_h, hm...it seems that's ok now...but it stayed like that for over 90 minutes
[21:41] <rick_h> amorphous1: ok, if you happened to have an oops number or something I can go off of error wise I can look into it, but not sure without
[21:43] <amorphous1> thanks rick_h , I'll look into it next time if it happens
[22:05] <wgrant> rick_h: Probably bug #961126
[22:05] <_mup_> Bug #961126: +register-merge JS doesn't handle form validation errors <regression> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/961126 >
[22:05] <wgrant> wallyworld: ^^
[22:05]  * wallyworld looks
[22:30] <wgrant> wallyworld: http://www.youtube.com/watch?v=qKc7mhy6t2s
[22:32] <rick_h> wgrant: when the tests run, is apache setup on the test box?
[22:33] <wgrant> rick_h: No.
[22:33] <rick_h> wgrant: ok, didn't think so, but wanted to dbl ckeck
[22:41] <wgrant> wallyworld: I don't understand the "'NOTHING' as permission
[22:41] <wgrant> " bit in findGranteePermissionsByPolicy
[22:41] <wallyworld> wgrant: it's a placeholder
[22:41] <wgrant> Is that just so Storm knows about the column?
[22:41] <wallyworld> yes
[22:41] <wallyworld> and a failsafe
[22:41] <wgrant> Right.
[22:42] <wgrant> I still don't see a DISTINCT there.
[22:42] <StevenK> wgrant: .set() might not work -- https://bugs.launchpad.net/storm/+bug/625071 ?
[22:42] <_mup_> Bug #625071: permit updates to fields on the far side of joins <Storm:New> < https://launchpad.net/bugs/625071 >
[22:42] <wallyworld> wgrant: look harder
[22:43] <wallyworld> wgrant: stormrangefactory and batching and decorated result sets suck - the main query is executed twice
[22:43] <wgrant> StevenK: You have to construct the query manually.
[22:43] <wgrant> StevenK: You can use Storm, but you can't use the existing attachments collection.
[22:44] <StevenK> wgrant: Why not, it's a DRS. :-(
[22:44] <wgrant> StevenK: wut?
[22:44] <wgrant> Oh, attachments is?
[22:44] <wgrant> Then you may be able to.
[22:44] <wgrant> You can if you can.
[22:44] <wgrant> You can't if you can't.
[22:45] <wgrant> wallyworld: Ah, right, I was misled by it still taking a grantees arg.
[22:45] <StevenK> wgrant: Yes, attachments_unpopulated returns a DRS directly.
[22:45] <wgrant> wallyworld: Forgot that was the full query now.
[22:46] <wgrant> Looks reasonable.
[22:46] <wgrant> Will check qastaging in 10 hours :/
[22:46] <wallyworld> wgrant: the grantees arg is used by a callsite in the service
[22:47] <wgrant> Yep.