[02:52] <wgrant> OOPS-1575B227
[02:52] <wgrant> Probably a DB locking issue.
[02:52] <wgrant> Can somebody please tell me the problematic statement?
[02:56] <wgrant> Alternatively it could be taking ages to close the several bugs attached.
[02:56] <wgrant> It would be handy to know which.
[03:44] <cody-somerville> wgrant,  TimeoutError: 'SELECT PackageUploadSource.id, PackageUploadSource.packageupload, PackageUploadSource.sourcepackagerelease FROM PackageUploadSource WHERE PackageUploadSource.packageupload = %s ORDER BY PackageUploadSource.id', [<storm.variables.IntVariable object at 0x2aaaadddca28>]
[03:45] <wgrant> Gnargh not that one again.
[03:45] <wgrant> cody-somerville: How long did it take?
[03:46] <wgrant> That particular query, that is.
[03:48] <cody-somerville> As long as what ever the timeout value is I assume
[03:49] <wgrant> cody-somerville: Basically I'm wondering if that query was the straw that broke the camel's back, or if it took a long time on its own.
[03:49] <cody-somerville> wgrant, It doesn't show up in the long SQL statements list.
[03:50] <cody-somerville> wgrant, although it does show up in the repeated SQL statements
[03:51] <cody-somerville> and its a subselect for a lot of repeated queries too
[03:51] <wgrant> cody-somerville: Can you see how long the final statement in the query log took?
[03:52] <cody-somerville> 4ms
[03:53] <wgrant> OK. Thanks.
[03:53] <cody-somerville> "SELECT BugJob.json_data, BugJob.bug, BugJob.id, BugJob.job, BugJob.job_type FROM BugJob, Job WHERE BugJob.bug = %s AND BugJob.job_type = %s AND BugJob.job = Job.id AND Job.id IN (SELECT Job.id FROM Job WHERE Job.status = %s AND (Job.lease_expires IS NULL OR Job.lease_expires < (CURRENT_TIMESTAMP AT TIME ZONE 'UTC')) AND (Job.scheduled_start IS NULL OR Job.scheduled_start <= (CURRENT_TIMESTAMP AT TIME ZONE 'UTC'))) LIMIT 1" a
[03:53] <cody-somerville> ppears very costly. 432.0 and repeated 7 times.
[03:53] <wgrant> Ahhh.
[03:53] <wgrant> so it *is* the bugs.
[03:54] <wgrant> But 432ms each? Seriously?
[03:57] <cody-somerville> thats the average
[03:57] <cody-somerville> some take longer
[03:57] <cody-somerville> one took 632ms
[03:58] <cody-somerville> 'TypeError: Only a read-only field can have a mutator method' <-- I guess sinzui was wrong about bug_supervisor being read only already :P
[03:58] <wgrant> cody-somerville: He was right, and I was right.
[03:58] <wgrant> There are two aspects to read-onlyness:
[03:59] <wgrant>  - the schema in the interface. Currently writable, and what lazr.restful looks at.
[03:59] <wgrant>  - The attribute security, in configure.zcml. Currently read-only.
[03:59] <cody-somerville> Did I mention I hate zope?
[03:59] <wgrant> It goes without saying.
[04:00] <wgrant> Although, well, for what LP is it could be worse.
[04:00] <cody-somerville> but clearly in the context I was talking about earlier I was referring to the former and not the attribute security.
[04:01] <cody-somerville> but maybe it doesn't matter and he just assumed I'd understand what he meant.
[04:01] <wgrant> He was clearly misunderstanding and speaking about the ZCML, though.
[04:02] <cody-somerville> oh well, in the end it meant I learnt something new so all good.
[04:02] <cody-somerville> so I assume if I set the attribute to readonly its not going to cause problems since the attribute security already makes it readonly?
[04:03] <cody-somerville> doh, I was afraid I'd run into this: TypeError: A mutator method must take one and only one non-fixed argument. setBugSupervisor takes 2
[04:03] <wgrant> That's OK.
[04:03] <wgrant> You just need to use something (operation_parameters()? I forget) to pre-populate the second argument with REQUEST_USER.
[04:04] <wgrant> grep around for REQUEST_USER if you're unsure of details.
[04:04]  * wgrant lunches.
[04:05] <cody-somerville> wgrant, I already do
[04:05] <cody-somerville> wgrant, @call_with(user=REQUEST_USER)
[04:06] <wgrant> cody-somerville: You removed the incorrect self argument?
[04:06] <cody-somerville> wgrant, yup
[04:07] <wgrant> cody-somerville: paste(bin) all your decorators and the method definition itself?
[04:08] <cody-somerville> wgrant, https://pastebin.canonical.com/31276/
[04:08] <wgrant> cody-somerville: EPERM
[04:08] <cody-somerville> oops
[04:09] <cody-somerville> http://pastebin.ubuntu.com/421428/
[04:10] <wgrant> cody-somerville: You might need to export_write_operation too, and all the other examples I'm looking at have mutator_for first (ie. executed last)
[04:10] <wgrant> Anyway, really lunching now.
[04:11] <cody-somerville> true true
[04:11] <cody-somerville> looks like that works
[04:14] <cody-somerville> woot. works. Now I just need to write tests.
[04:25]  * wgrant returns.
[08:49] <mwhudson> woo all tests pass in no-hosted-area
[08:52] <wgrant> mwhudson: Nice!
[08:57] <mwhudson> not sure the very last test fixes will pass review but i guess there's monday for that
[08:57] <thumper> mwhudson: congrates
[08:58] <thumper> :)
[08:58] <thumper> please ignort that last typo
[08:58] <thumper> had almost a bottle of wine
[09:00] <mwhudson> haha
[20:07] <magcius> Where exactly in the code is the source for the launchpad.net landing page and project pages on there? What is the "app" name for the "Overview" section of a project page?
[20:15] <adiroiban> magcius: launchpad.net landing page? Can you please add an URL of that page?
[20:15] <adiroiban> I don't know exactly about what page are you talking about
[20:15] <magcius> adiroiban: something like http://launchpad.net or http://launchpad.net/bzr
[20:15] <adiroiban> http://launchpad.net/bzr
[20:16] <magcius> adiroiban: what subapp is that?
[20:16] <adiroiban> is the IProduct +index page
[20:16] <adiroiban> it should be registry
[20:16] <magcius> ah, registry
[20:16] <adiroiban> I am not sure about the launchpad.net start page ... let me check
[20:16] <adiroiban> I usualy just look at some text on that page
[20:17] <adiroiban> and do a full text search on all files
[20:17] <magcius> heh
[20:17] <magcius> what I'm really looking for is the timeline graph JavaScript code
[20:18] <adiroiban> magcius: the one under „Series and milestones” ?
[20:18] <magcius> adiroiban: yes
[20:21] <adiroiban> registry/templates/timeline-macros.pt
[20:23] <adiroiban> magcius: that should be the starting point... then look for javascript code in lib/canonical/launchpad/javascript/registry
[20:23] <magcius> adiroiban: alright, thank yo
[20:23] <adiroiban> or if it was moved... in lib/lp/registry/javascsript