[00:00] wgrant: blacklist +1 [00:00] lifeless: But that means having the list of exclusions in a separate tree. [00:00] wgrant: we've needed one exclusion in 6 years [00:01] wgrant: I think we can deal [00:01] True. [00:01] Pushing. [00:03] Ah, allenap beat me to a bulk loading helper. [00:03] * lifeless isn't sure its the right way [00:04] I'm not sure it is either. [00:04] we want, for instance, to eager load visibility rules etc [00:05] so I think it needs per-type handling rather than a separate helper [00:05] however, allenap has written something that will be usable for somethings [00:05] Right, that's what I was thinking. It is a pattern that we already use in several places. [00:06] And this helper can do nice stuff like not issuing a query if everything is already preloaded. [00:06] it introspects the storm cache? [00:06] Since that is going to become a common case, I think. [00:06] *can do* [00:06] Not does now. [00:06] ah [00:06] sure [00:07] arse [00:07] leonardr: I don't suppose you are still around? [00:07] leonardr: I have a lazr-restful problem [00:07] thumper: i'm here [00:07] ah, awesome [00:07] leonardr: let me pastebin something... [00:08] lifeless: https://code.launchpad.net/~wgrant/launchpad/exclude-lpnet-template/+merge/52497 [00:10] Thanks. [00:10] lifeless: You're landing lamont's thing and the staging fix? [00:11] thats how I found this, yes. [00:11] I'm not sure what branch the check checks out [00:11] Checking. [00:11] leonardr: http://pastebin.ubuntu.com/577252/ [00:11] ./launchpad bzr+ssh://bazaar.launchpad.net/~launchpad-pqm/launchpad/stable [00:11] fuuuu [00:11] leonardr: getting TypeError: Only a read-only field can have a mutator method. [00:12] lifeless: But you can fix that in the branch :P [00:12] wgrant: meh, will wait for bb [00:12] leonardr: wanting the accessor and mutator only in "devel" [00:12] stable is not unreasonable [00:13] leonardr: any ideas? [00:16] reading [00:17] thumper: have you tried putting @operation_for_version first? [00:17] leonardr: first as in at the top, or bottom? [00:17] at the bottom [00:17] * thumper tries [00:18] nope, that doesn't fix it [00:18] right now the mutator is exported in beta nad the field is not exported at all in beta [00:18] same error? [00:18] yep [00:19] thumper: the field itself needs to be read-only. it can't just be exported as read-only [00:19] oh? [00:19] see the mutator_for method in lazr.restful declarations.py [00:19] really? [00:19] that's what it says [00:19] if not self.field.readonly: [00:19] raise TypeError("Only a read-only field can have a mutator " [00:19] "method.") [00:19] hmm... [00:19] we should fix that [00:19] maybe... [00:20] Why can't you make the field read-only? It only affects forms and the webservice. [00:20] sinzui: are you going to land the new lazr restful egg? [00:20] wgrant: because the forms edit it [00:21] wgrant: I'd have to override the field... [00:21] :( [00:21] wgrant: and it changes the permissions [00:21] wgrant: if the field is readonly, the permissions don't allow setting [00:21] It doesn't affect security proxies. [00:21] lifeless: i think it would be okay to let mutator_for succeed if the field is never *published* as read-write in any version for which it has a mutator [00:22] Hmm, unless maybe it affects set_schema, but not much uses that. [00:22] * leonardr has to go [00:22] wgrant: I think it does... [00:22] leonardr: ok [00:22] thumper: Anyway, shouldn't the form be using the mutator anyway? [00:23] wgrant: it means more hoop jumping to extract the field from the data dictionary, getting the delta object first, raising the object modified event manually [00:23] man I wish our form infrastructure used the API :) [00:25] * thumper has a plan [00:26] :( [00:27] ohh... tentative success [00:35] :( now getting You tried to modify a read-only attribute. in the 400 response [00:41] checkwatches OOPSes and bye-bye-nullbugtask today, I think. [00:43] wgrant: but its perf tuesday! [00:43] lifeless: Killing NullBugTask gets rid of some timeouts! [00:43] But OK. [00:44] Maybe getBuildRecords. [00:44] \o/ [00:44] I also need to attack +copy-packages again.. the copying is now fast, but the rest of the page is not :/ [00:45] wgrant: its a never ending story [01:00] thumper: it sounds like the lookup of the mutator operation didn't succeed. you could try putting a breakpoint in generate_entry_adapters() (lazr.restful declarations.py) [01:00] it should be creating a PropertyWithMutator for the field in the appropriate version [01:01] i'll try that [01:02] * thumper sighs [01:02] every freaking entry [01:04] ok [01:04] lots of continues, and found the right interface [01:16] huwshimi: Bug 730535 [01:17] <_mup_> Bug #730535: Enter key ignored the first time in bug tag editing field < https://launchpad.net/bugs/730535 > [01:17] huwshimi: is that a regression from your changes? [01:18] lifeless: it looks like the same issue. I believe my changes won't be rolled out until lazr-js is updated in LP. [01:19] huwshimi: ah! then your bug should not be closed [01:20] huwshimi: and this new bug should be a dupe. [01:20] lifeless: yeah [01:20] lifeless: I think it was marked as closed during a deployment or something [01:22] * thumper sighs [01:22] huwshimi: do you know how to move forward on this? [01:22] lifeless: Nope :) [01:22] ok [01:23] first things first, lets get the bugs sorted out [01:23] find your old one [01:23] set to in progress [01:23] dupe the new onto the old [01:23] the old one should have two tasks, one on lazr-js and one on launchpad,t he lazr-js one should be fix released if your change is merged into it. [01:24] I'm moderately sure deryck finished upgrading us to the latest lazr-js recently so your fix should be easy to get to. [01:25] Ah, sorry, that was probably my fault. I thought I set it back, though :/ [01:32] lifeless: The old one (bug #580404) doe not have a lazr-js task, I assume I can just add that? [01:32] <_mup_> Bug #580404: pressing enter in tags field doesn't save them < https://launchpad.net/bugs/580404 > [01:33] huwshimi: yes [01:33] huwshimi: you made the change in lazr-js right ? [01:37] lifeless: ugh, sorry I'm getting random lockups with my keyboard and mouse (but I can see that the OS is still working) [01:37] lifeless: Yes the changes were made to lazr-js [01:38] Yippie, build fixed! [01:38] Project db-devel build #427: FIXED in 5 hr 14 min: https://hudson.wedontsleep.org/job/db-devel/427/ [01:42] lifeless: ok, I've done all that. What next? [01:42] next, you need to figure out whats new in lazr-js leading up to the commit where your patch landed, so you can decide how much qa you want to do [01:43] and/or whether you want to land everything or just up to your patch [01:43] use bzr and or bazaar.launchpad.net to look at the history and decide [01:43] pick the rev of lazr-js you want to update to [01:43] and then we go to the actually-doing-it step [01:44] lifeless: ok thanks will take a look [01:46] lifeless: How do I know what hasn't been landed? [01:47] lifeless: Or rather released [01:47] look at versions.cfg, see the version there, look at the branch for lazr-js, walk back until the release [01:51] lifeless: I'm not entirely sure what you mean by that, there are a lot of version numbers in that file and none seem to refer to lazr-js? I may be completely mis-understanding you [01:52] lazr-js = 1.6DEV-r202 [01:53] OOPS reports during release week are depressing. [01:53] wgrant: because deploys stop ? [01:53] https://lpstats.canonical.com/graphs/AppServerRequestLpnet [01:54] 14:51 < huwshimi> lifeless: I'm not entirely sure what you mean by that, there are a lot of version numbers in that file and none seem to refer to lazr-js? I may be completely mis-understanding you [01:54] 14:51 < lifeless> lazr-js = 1.6DEV-r202 [01:54] lifeless: Sorry crashed again [01:54] lifeless: Yes. [01:55] lifeless: Ah right, you're referring to the versings.cfg in Launchpad, not the one it lazr-js :) [01:56] lifeless: ok, so there is one other commit since the last release [01:57] * 1954 Exceptions [02:00] lifeless: The other commit does not have an attached bug, is it still possible for me to be able to qa it somehow? [02:01] huwshimi: of course [02:01] bugs don't permit qa, they are just about recording stuff [02:02] huwshimi: make an assessment of the other change [02:05] lifeless: It's a module that's been updated (looks like a file has been replaced with a whole new version). [02:17] ok next time this crashes I'm giving up and going back to my old laptop [02:17] huwshimi: what is it? [02:17] lifeless: the laptop? [02:17] huwshimi: so you need to decide if its safe to include in lp as-is [02:17] yes the laptop [02:17] it's a 2011 Macbook Pro. [02:18] lifeless, and now? [02:18] I forgot to change a link [02:18] sorry [02:18] Ursinha: brilliant [02:20] ok that time it was Natty crashing. Laptop, I'm giving you one more chance [02:29] lifeless: from a quick grep I can't find any references to that lazr-js module. [02:29] where ? ;) [02:30] lifeless: in the launchpad codebase [02:30] lifeless: I could be wrong though :) [02:32] huwshimi: so if we're not using galery-form, its a no brainer [02:32] huwshimi: I think its on the wiki somewhere, but what you need to do next is make a new sdist, put it in the lp download cache (copy it in, bzr add, bzr commit), update versions.cfg in lp and propose that as a branch to land in devel [02:33] lifeless: Where do we define which javascript files we include? [02:37] * thumper leaps through a few more hoops [02:38] huwshimi: I don't know [02:59] lifeless: So I'm wrong about us not including that file [03:02] huwshimi: in which case, check that lp will still work with the new version :) [03:04] lifeless: And how do I do that? :) [03:05] I'm sure you'll think of something [03:05] e.g. how did you make sure the bug tag editing worked [03:06] lifeless: Well I'm trying to figure out if we actually use this module at all [03:17] wgrant: do you remember where we set allowed attributes for built in types? [03:18] thumper: ^ [03:19] for built in types? [03:19] like what [03:19] ? [03:19] dict [03:19] for instance [03:19] lifeless: hmm... [03:19] in this case, defaultdict [03:19] no [03:19] doesn't have __getitem__ permitted [03:20] grep is your friend :) [03:20] and making an interface would be batshit [03:20] it'll be in a configure.zcml [03:22] Does anyone here know how we handle which javascript files are included in Launchpad? I've found this, but it doesn't seem to be correct: https://dev.launchpad.net/JavaScriptBuildSystem [03:23] huwshimi: what do you want to know? [03:23] I've learned some things [03:24] lp_sitecustomize.py [03:24] thumper: There is a javascript file (as part of lazr-js) that is included in our launchpad.js, but I can't see where we actually include that to be built. [03:25] jsbuild is full of magic [03:25] and a PITA [03:25] make jsbuild calls out to a couple of utility scripts to determine dependancies [03:27] thumper: do you remember which scripts they are? [03:28] huwshimi: look in the Makefile [03:28] for the jsbuild: target [03:28] they are in backquotes [03:28] The file list is hardcoded now, isn't it? [03:30] In utilities/yui-deps.py [03:32] wgrant: does that include the lazr-js bits? [03:34] huwshimi: are you doing something in lazr-js? [03:34] huwshimi: I have a request [03:35] thumper: Ah, no, just all of YUI :( [03:36] thumper: I'm trying to build lazr-js for Launchpad and trying to determine if we are using a module that was updated to a new version by someone else. [03:36] thumper: What's the request [03:36] ? [03:36] huwshimi: somewhere in the picker code, it is adding a   [03:36] huwshimi: it needs to die, and CSS used instead [03:39] thumper: I don't think I want to change anything else right now or else my brain will melt, but feel free to file a bug or something and I'll try and get to it :P [03:39] :) [03:39] ok [03:45] thumper: if you landed a branch quickly I could probably include this in the build. [03:45] huwshimi: ETOOMUCHTODO [03:45] thumper: Fair enough :) [03:46] huwshimi: I've already been on a diversion [03:49] anyone: https://code.launchpad.net/~thumper/launchpad/choice-widget/+merge/52357 [03:52] thumper: Those scripts don't seem to mention lazr-js stuff [03:53] thumper: or am I missing something? [03:54] lib/canonical/launchpad/icing/lazr/build/lazr.js [03:54] huwshimi: that is the last line of the jsbuild command in the Makefile [03:54] huwshimi: I'm guessing that you'll find that is a symlink to the location where lazr-js is built [03:55] What's the setuptools sdist option to add a version suffix? [03:55] using the jsbuild_lazr make target [03:55] wgrant: I don't remember but I need it too [03:55] wgrant: what are you packaging? [03:55] thumper: Updating pydkim. [03:55] * wgrant greps logs. [03:56] not in my history sorry [03:56] Because it's not in --help :( [03:56] -b [03:57] thumper: Ah right, so we do just include the whole of lazr-js and don't control which files we include. [03:57] huwshimi: maybe... [03:58] thumper: Thanks for that. Now I can get on with my investigating. [03:58] Except that the egg_info command doesn't work here :/ [04:00] It's like setuptools isn't installed... [04:22] lifeless: so I think after all that we include that file but don't use it, but I can't be sure [04:23] Does anyone want to fix the failed stable into db-devel merge? [04:23] Not again :( [04:23] Fixing. [04:23] wgrant: Thanks [04:23] This is changing one that I already resolved on Saturday :( === MTecknology is now known as MT-TakinBreak [04:36] wgrant: Can you have another look at https://code.launchpad.net/~stevenk/launchpad/populate-spr-changelogs/+merge/52363 ? I've addressed all of your concerns, bar IMasterStore, since everything else done by garbo uses it. [04:37] StevenK: You renamed getCandidateSPRIDs, but it still returns SPR IDs... [04:38] Also, why are we still restricting to Debian? [04:39] 1. Our sampledata sucks. 2. I don't think there is any point doing it over more. [04:39] Apart from that it looks good. [04:39] What about all the Ubuntu publications from more than a year ago? [04:39] wgrant: Er? It returns a ResultSet of SPRs ordered by id? [04:40] No, it returns a ResultSet of SPR.id ordered by id. [04:40] Bah, fixed [04:41] wgrant: I'm happy to say upload_archiveID IN (ubuntu.main_archive.id, debian.main_archive.id) [04:41] StevenK: Why say that at all? [04:41] Running it over sampledata which the tests is horrid [04:41] Er. Which the tests do [04:42] It's easy to clean the sampledata up. [04:42] I'd rather just delete it :-) [04:42] Right, but deleting it in the tests is hard. [04:42] lifeless: What should I do with this then? I don't want to release these changes if they'll break things... [04:43] huwshimi: will they break things? [04:44] lifeless: Well that's the problem, I don't know. I can't see where we're using this module, but that doesn't mean we're not using it. I could just be looking for the wrong things. [04:45] wgrant: Personally, I'd prefer to leave it for Debian. For the derived case, we aren't going to care about the older Ubuntus [04:45] StevenK: There is stuff in Natty that has no changelogs... [04:45] huwshimi: check the wiki for info, failing that ask for help: mail the dev list asking for 'how to find out where a lazy-js module is used by lp' [04:45] Really? [04:45] lifeless: OK thanks, will do. [04:46] StevenK: Anything that was uploaded before we started importing changelogs not-very-long-ago. [04:46] wgrant: The DB on DF for maverick said zero had a null changelog ... [04:47] StevenK: With upload_distroseries=natty? Sure. [04:47] But not much stuff in natty was uploaded to natty. [04:47] The natty DB on DF is very little [04:47] Even moreso there. [04:47] StevenK: the point is the things uploaded to maverick that haven't been changed in natty [04:48] wgrant: So, how do you propose I have the tests ignore the sampledata? [04:48] StevenK: Expire all LFAs at the start of the test. [04:48] The brutal approach. [04:48] Allow me to say "Ew" [04:48] It is better than sampledata. [04:49] * StevenK tries to work out how to do so [04:49] We may eventually want two template DBs, one without crap. [04:50] Since we won't be able to drop the crapful one for a long time :( [04:54] wgrant: I can't think of an elegant way to expire all the LFAs [04:55] StevenK: Store.find(LibraryFileAlias).set(content=None)? [04:59] wgrant: Having it return SPRs directly complains about the GROUP BY [04:59] StevenK: Group by SourcePackageRelease instead. [04:59] Hmm. [05:00] That might be why I was grabbing IDs... grouping by all the fields may have proved slower, although that seems odd. [05:00] Since it should be able to optimise to a pkey grouping. [05:00] shoulda coulda woulda [05:00] the way to do that is to use the id based query as an inner query [05:01] like e.g. _getExternalMessages does [05:17] StevenK: can you think of any reason why gina would initialize the references in SPPHs it creates using the ids for distroseries, SPR, etc. instead of the actual model objects? [05:18] Nope [05:18] gina is .... special [05:21] * StevenK grumbles [05:21] jtv: code fragment ? [05:21] Now it dies due to a variable used before assignment :-( [05:22] And if I change its indent level, it loops until killed [05:22] lifeless: [05:22] entry = SourcePackagePublishingHistory( [05:22] distroseries=self.distroseries.id, [05:22] sourcepackagerelease=sourcepackagerelease.id, [05:22] status=PackagePublishingStatus.PENDING, [05:22] component=component.id, [05:22] section=section.id, [05:22] datecreated=UTC_NOW, [05:22] datepublished=UTC_NOW, [05:22] pocket=self.pocket, [05:22] archive=archive [05:22] ) [05:22] StevenK: is gina special enough to warrant that? [05:23] I have a branch which fixes that. [05:23] jtv: I would change it to distroseriesID=self.distroseries.id etc [05:23] jtv: Er, things like that are the REASON why gina is special [05:23] we shouldn't overuse Reference objects, they are fragile [05:23] Okay, but is there any justification? [05:23] For manually instantiating it, rather than using PublishingSet.newSourcePublication? [05:24] No, for using the ids instead of the model objects. [05:24] I suspect SPPH support was bolted on. [05:24] Because I'm trying to make it use newSourcePublication. [05:24] https://code.launchpad.net/~wgrant/launchpad/unify-publication-creation [05:24] One remaining issue: it doesn't set datepublished. [05:25] Which is fine [05:25] We don't want it to [05:25] It shouldn't even do that in the first place. [05:25] Perhaps so, but inconsistent. [05:25] Shame that branch sat around for half a year—it's a change I need for my current work. [05:26] jtv: I didn't want to get into the gina argument at that point. [05:27] But all in all we don't really know whether there's any particular reason to use ids there? [05:27] There isn't one. [05:28] If you see something odd in gina, it's because gina is crap, not because it needs to be that way. [05:28] That's nice to hear. [05:29] Brings me to the next question: newSourcePackagingPublication creates a new DSP if one does not exist—which is breaking gina tests. [05:29] I added a permission in that branch. [05:30] I think it's the right thing to do. [05:30] I was wondering if maybe it was just laziness of the test, and there should always be a DSP [05:30] gina predates DSP. [05:30] There's no problem with creating one. [05:31] wgrant: Why didn't you want to get into a gina argument? [05:31] StevenK: Because nobody knows whether we want to stop setting datepublished or start creating them Published or burn gina to death. [05:32] whats gina used for? [05:32] Julian said yesterday we want to stop setting datepublished [05:32] OK, how does _'s string interpolation work? [05:32] lifeless: It imports Debian [05:32] lifeless: Importing Debianish archives into the DB and librarian. [05:32] And so the datepublished=UTC_NOW is completely bogus [05:33] jtv: It is a lie, and not one with considerable utility. [05:33] Kill it. [05:33] I had already done that. [05:33] wgrant: http://pastebin.ubuntu.com/577330/ makes me sad [05:34] StevenK: Oh? [05:34] It makes me happy. [05:34] http://pastebin.ubuntu.com/577331/ [05:35] StevenK: Which line does it fail on? [05:36] self.start_at = spr.id + 1 [05:36] Ah, that's not a new issue. [05:37] It'll happen whenever there are no SPRs to process. [05:38] :-( [05:50] 200 tasks -> 10 second renders :( [05:51] lifeless: But it at least renders now? [05:51] thats on my laptop [05:51] Ah. [05:51] which is an i7 [05:51] Ow. [05:53] 50ms per bugtask hmm === almaisan-away is now known as al-maisan [05:58] lifeless: Is wampee running with the second new set of appservers? [06:00] wgrant: yes [06:00] Excellent. [06:05] wgrant, want to review my branch? https://code.launchpad.net/~jtv/launchpad/bug-730460-use-spph-factory/+merge/52515 [06:05] jtv: Gladly. [06:05] Thanks. [06:10] wgrant: I split off the factory part to free me up for the real work, so there's not much there. [06:11] lifeless: Could you mentor that? === al-maisan is now known as almaisan-away [06:21] I'll go grab some food. === jtv is now known as jtv-eat [08:09] lifeless: What would you recommend as a Python testrunner these days? I normally use nose, but you probably have better ideas. === almaisan-away is now known as al-maisan [08:18] wgrant: testr with subunit.run as the core [08:20] lifeless: subunit.run doesn't do test discovery, does it? [08:20] wgrant: it does if you have python 2.7 or the discovery module installed [08:21] Ah, handy! [08:21] Thanks. [08:35] good morning [08:52] wgrant: So, that script doesn't love me. [08:59] StevenK: Oh? [08:59] FeatureError: Single aggregates aren't supported after a GROUP BY clause [09:00] bigjools: What do you think about replacing cron.daily-ppa with DiskPool improvements? [09:00] wgrant: I think we're going to have to shift back to ids ... [09:00] wgrant: see the oops-repository .testr.conf for inspiration [09:00] StevenK: Yeah, probably. [09:00] or [09:00] wrap the result as I suggested [09:00] wgrant: Will you rescind your issue with it if I do that? [09:01] see _getExternalthingy in translations for an example [09:01] StevenK: Maybe. [09:01] lifeless: No lp:oops-repository? [09:03] wgrant: https://code.launchpad.net/oops-repository [09:03] wgrant: sounds reasonable as long as it doesn't slow down the publisher [09:03] wgrant: I haven't setup a 'trunk' yet, nor all the metadata [09:03] figure out where empty dirs are left [09:04] bigjools: The file removal method will just check if the directory it's removing from is empty. [09:05] So it will slow p-d-r insignificantly. [09:06] poifekt [09:20] lifeless/stub: can you guys look at my MP with schema changes please? [09:23] bigjools: I'll look in the morning - brain is hurting ;) [09:23] bigjools: I've just enough energy left to send a perf tuesday mail :) [09:24] lifeless: it is the morning :) ok, no prob [09:24] morning schmorning [09:25] wgrant: :-( [09:36] hmm [09:47] When do we merge db-devel -> devel? I've got a futzed merge proposal up (it will land on devel, but contains stuff currently only in db-devel) [09:47] bigjools: I'll look now [09:48] c=heers [09:48] cheers, even [09:50] bigjools: you targetted to devel, not db-devel [09:50] FFS, I didn't, but bzr send did :/ [09:50] grar [09:51] stub: anytime prior to the pqm freeze [09:51] stub: so anytime in the next 4 weeks [09:53] bigjools: point me to an updated mp when you have one. its r=stub, patch-2208-52-0.sql === Ursinha is now known as Ursinha-afk [09:54] I think that is anytime prior to reopening db-devel for landings, innit? [09:55] stub: ta [09:55] stub: db-devel is open [09:55] stub: we had the freeze for this month already [09:55] There are changes on that branch that landed before the freeze that are not in devel [09:56] stub: we merged everything from db-stable [09:56] hmm [10:00] night y'all [10:00] nn lifeless [10:03] I can't see a db-devel or db-stable merge since feb [10:03] stub: when it scans: https://code.launchpad.net/~julian-edwards/launchpad/publisher-config-db-schema/+merge/52530 [10:03] oic it [10:04] nfi how my stuff missed going across - it landed on Friday [10:05] I even got poked to qa it [10:06] Mine can wait, but if an earlier revision got merged we might be missing something important. [10:08] stub: We merged the rev right before yours. [10:09] stub: Yours was un-QA'd at the time. [10:09] ok [10:09] We were already very much out of LOSA time, so we didn't want to push it. [10:10] We could almost sensibly merge again, though... [10:12] there is no particular reason to land it this cycle. [10:12] There is. [10:13] The spam from the old one is irritating! === al-maisan is now known as almaisan-away === almaisan-away is now known as al-maisan === vila is now known as vila-afk-lunch === al-maisan is now known as almaisan-away === henninge_ is now known as henninge === henninge is now known as henninge-lunch === almaisan-away is now known as al-maisan === vila-afk-lunch is now known as vila [12:11] can somebody land https://code.launchpad.net/~jameinel/launchpad/use_loggerhead_trunk/+merge/52062 [12:11] At least, lifeless said on IRC, "Just land the branch" because loggerhead's pqm didn't actually run the test suite [12:11] so we didn't bother setting it up again yet [12:14] jam: sure thing. [12:14] jam: will let you know when the EC2 instance has detached. [12:15] jml: thanks [12:16] hmm. looking at the diff, I'll skip EC2 [12:16] ffs. [12:16] lp-land requires a local checkout [12:16] jml: it is pretty simple :) [12:18] jam: it's in PQM now. [12:18] jml: thanks [12:37] this whole Storm Unicode vs RawStr thing is driving me potty [12:39] what about it? [12:39] I can't throw str at unicode and expect it to work [12:40] jam: "81 queries/external actions issued in 10.73 seconds" -- I want to debug your problem instead of answering email :\ [12:40] if I try and use RawStr and str() everywhere, somehow unicode gets in.... [12:42] bigjools: the first thing you said is basically the whole point. A str doesn't have any encoding information, so it can't be used to represent human-readable text. [12:42] but it can ... [12:43] jml: this is http://pad.lv/OOPS-1893C1040 ? [12:43] no, it's just bytes. a_str.decode('utf8') is something that might represent human-readable text [12:44] jam: yes. [12:45] I would not mind if this was consistent everywhere, but it's not [12:46] bigjools: can you give an example of where it's not? [12:47] (Python is lousy at this, but Storm is pretty good) [12:47] le sigh [12:48] jml: I defined a text column in PG, the storm model was RawStr, and I poked in some data from a form with an explicit str() case. When Storm reads it back, it blows up with a unicode error. [12:48] I'm reverting it all back to unicode now [12:49] benji: since you approved https://code.launchpad.net/~jameinel/launchpad/suppress-generator-exit-726985/+merge/52414 [12:49] can you ec2land it? [12:49] Or does it need a second review because you didn't mark it overall approved. [12:49] jml: I'd be happy for you to fix it :0 [12:50] It isn't a page I go to often [12:50] jam: I'll be lucky to have caught up on my email by the end of the day. [12:50] so not something that is blocking me. But a bit surprising to have it take 14s to load a code overview [12:51] jam: it doesn't need more approval unless you think it does [12:52] benji: fine with me. I don't think it is very controversial [12:52] wgrant might want to look at it. Since he asked me to write it. but it was up there for him yesterday :) [12:52] I guess can land it for you if you need. === al-maisan is now known as almaisan-away [12:54] benji: well, if you think it needs ec2land, I would appreciate it. Since I'm not an lp dev, I don't have an ec2 account, etc. === almaisan-away is now known as al-maisan [12:54] ah, gotcha; sure I'll do it for you [12:55] jam: Looks great. [12:55] benji: Thanks. [12:55] wgrant: what time is it there? [12:55] jam: Not quite midnight. [12:55] ah, k [12:56] wasn't sure if it was late enough to be considered "early" yet [12:57] Heh, no. === henninge-lunch is now known as henninge [14:17] losas, is there a way for me to check how long the current staging update has taken without bothering you? [14:20] gary_poster: I think devpad.canonical.com:/srv/launchpad.net-logs/staging/sourcherry/2011-03-08-staging_restore.log holds the answer, but I'm not entirely sure how to read it [14:20] benji, cool, thanks, looking [14:22] sinzui: if a project is marked as inactive, that still doesn't free up the name for another project to use, does it? [14:32] benji, losas, AFAICT staging started Tue Mar 8 04:14:09 UTC 2011 and ran without errors, and yet 10 hours later we still have no staging. :-( (I synced the logs just to make sure I wasn't missing anything) [14:33] benji, just sharing with you in case you were curious :-) [14:33] gary_poster: let me take a look [14:33] thank you Chex_ [14:33] I am. [14:37] gary_poster: ok, appears we had a postgres/slony failure, getting you a pastebin [14:38] thanks Chex_. Did I just miss it in that log benji mentioned above, or was it somewhere else? [14:39] gary_poster: yes, it fools me often as well, the slony error happens before the end of the process, see here for where it was in the logfile: https://pastebin.canonical.com/44394/ [14:39] * Chex_ looks at his nick, and frowns [14:40] ah! ok, sorry Chex_, will be more careful next time === Chex_ is now known as Chex [14:41] I guess I'll go look at the server log, because I have no idea how to remiedaiate that so far [14:41] jcsackett, I think you were talking to an absent sinzui before, and he is now present [14:42] * leonardr also wishes to talk to a present sinzui [14:42] ah, thanks gary_poster. [14:42] :-) [14:42] sinzui: if a project is marked as inactive, that still doesn't free up the name for another project to use, does it? [14:42] I did not know I was offline. [14:42] Not at all [14:42] sinzui: clearly, neither did i. :-P [14:43] We rename them on request, or we give the old project to the user [14:43] ah, okay. i am looking at https://answers.launchpad.net/launchpad/+question/148314 [14:45] global does look like it's not doing anything. but as project-reviewing-overlord, perhaps you would like to weigh in, sinzui? [14:46] just rename the old project to global-old [14:46] stub, you around by chance? [14:47] I'd like to know if there's any remediation you can suggest for https://pastebin.canonical.com/44394/ which is causing staging to be down [14:48] jcsackett: this issue relates to bug 106501 [14:48] <_mup_> Bug #106501: Automatically warn about, then delete, unused projects < https://launchpad.net/bugs/106501 > [14:48] sinzui: i concur. [14:49] that process would be nice. [14:51] so, you think we can offer to make the person the head of global, sinzui? [14:52] jcsackett: just rename the old one. [14:52] sinzui: cool. [14:53] jcsackett: we really do not think about it. we just get the trash out of the way [14:53] sinzui: sounds good. [14:54] sinzui, when will you have time to revisit my sampledata problem? [14:54] leonardr: about 45 minutes? [14:54] sinzui, cool [15:15] sinzui: Hi ... I've been tasked with bug 727632 and I wonder if you could give me hints on how you think it should look in the UI as I'm still fairly new to the UI (or the code for that matter). I just sent you an email with a few details and a mockup. [15:15] <_mup_> Bug #727632: distro and distro series pages do not specify their owner < https://launchpad.net/bugs/727632 > [15:16] Do they have an owner? [15:16] No they do not [15:16] distros and series have registrants. [15:17] The owner is always the project maintainer === Ursinha-afk is now known as Ursinha [15:19] rvba you can cargo cult the "registering" slot from a lp/registry/templates/product-index.pt into the distro and series pages. The tales need to pull the series/owner field, but the wording will be "Registered by" [15:20] sinzui: isn't this what's currently displayed already? [15:20] rvba: oh. I think soo [15:20] so [15:20] rvba, is the real issue that we do not have this data in the schema [15:21] I confess I'm not sure if the issue is only in the UI or in the data. I though it was only a UI bug. [15:21] rvba, poolie is confused in this bug [15:22] we do not have "owners" of these objects, They must be like projects and project series [15:22] * sinzui looks at the schema [15:23] rvba. These pages look like the project and series pages. They are correct! I think the issue may be that the schema does not provide the the information, so it is pulled from a surprising field. [15:25] sinzui: maybe I'll just correct the wording "Registered" instead of "registered" and ask poolie more details about this then ...? [15:26] rvba distro is missing the registrant field! we are showing the maintainer as the registrant. This is a lie. *All* distros and distros series were registered by a losa, most by mthaddon actually [15:27] sinzui: ok I get it. So the information is wrong then. [15:27] rvba: distro has a owner field, but it is actually the registrant. The owner is always the distro maintainer (owner). [15:27] oops [15:28] disrgard that [15:28] *distroseries* has a owner field, but it is actually the registrant. The owner is always the distro maintainer (owner). [15:29] so if we want to display the owner field I just have to pull that info from the corresponding distro (for series) [15:29] rvba: so this bug is about 1, the distro does not know who the registrant is. 2, distroseries stores the registrant in the owner field. [15:30] rvba: Many object store the registrant in the owner field because the PrimaryContext (project or distro) always owns them [15:30] * sinzui looks for bug [15:30] * rvba looks into the datastructure [15:33] excellent. I find duplicate bugs [15:34] rvba: This issue overlaps with bug 153333, bug 188402, bug 207532 [15:34] <_mup_> Bug #153333: Clean up owner and registrant attributes < https://launchpad.net/bugs/153333 > [15:34] <_mup_> Bug #188402: Include registrant on people page < https://launchpad.net/bugs/188402 > [15:34] <_mup_> Bug #207532: Product, Project and Series don't have read-only registrant < https://launchpad.net/bugs/207532 > [15:36] sinzui: this is much more involved than I anticipated :-) [15:37] rvba: you do not need to fix everything. those bugs provide context by what we mean by registrant and owner in the schema [15:37] rvba: I updated your bug about what is wrong with distro and distroseries [15:38] sinzui: all right, I'll focus on fixing this problem for series and distro series [15:38] but still, since registrant and owner are two different things (?) the UI will have to evolve to present the 2 informations right? [15:40] There is one caveat. both distro and distroseries implement IHasOwner, which means they must have an owner field, but in the case of distro we mean maintain, and in the case of distroseries, we mean registrant [15:40] We either change the interface / implementation of these objects, or we continue to ignore them. [15:43] sinzui: don't you think that changing the interface / implem should be part of the larger refactoring you were just talking about === al-maisan is now known as almaisan-away [15:46] rvba: we could remove the registrant field from distros so we stop lying. We could stop there. As pointed out in the other bugs. registrant should be immutable. Since distros series do not have a direct owner, it seemed okay in the past to reuse the field for registrant. but owner is intended to be mutable. It is not possible BTW to change a series owner. We removed the field from edit forms [15:48] sinzui: thanks for the clarification [15:49] sinzui: I guess I'll fix the interface for now since we (red team) are in feature mode. [15:51] rvba: this could get tricky. set a limit of a few hours for each task and if you do not make progress on the task, shout for help. you are in 6 years of muddled code and It is easy to loose scope [15:51] if I understand correctly to fix it properly we would have to create proper interfaces like IHasRegistrant and refactor quite some code ... plus the data migration. [15:52] gmb, ping. you got a sec? [15:55] rvba: I think that increases scope. I am sure you do not want to retrofit that into all the objects. [15:56] sinzui: you're saying I should focus on distributions and distroseries? [15:56] rvba: maybe we want to make add registrant to distroseries and make the property always return the owner. We can export owner as registrant. [15:57] sinzui: so no data migration if I understand you suggestion [15:57] s/you/your/g [15:58] rvba: yes the issue is about making the ui clear. You need to add a registrant field to distro. that is a schema..ui change. I do not think we can migrate the data, it is all lies. We usually state the object was registered by ~registy in this case. [15:59] rvba: I think these are two bugs, because you need two branches to fix the different needs of each object and page [15:59] deryck: Sure. [16:00] gmb, so I retriaged bug 605923 at leonardr's request. It's the missing archived debian bug bugwatch issue again. [16:00] <_mup_> Bug #605923: bug watches for archived debian bug reports appear not to exist < https://launchpad.net/bugs/605923 > [16:00] Ugh [16:00] gmb, I was wondering if you could take a look at the bug and just brain dump some info there, for anyone wanting to look into fixing it? [16:01] deryck: Sure. I'll take a look at it in a little bit. [16:01] gmb, many thanks! [16:01] np [16:01] sinzui: so you want to add a registrant field to the distro but still populate the owner field? [16:01] rvba: add registrant to distro, the migration script will set the value to ~regisrty [16:02] sinzui: I'm not sure I understand the delimitation of the "2 bugs" properly [16:03] rvba: most distros were registered by kiko, most distroseries where registered by mthaddon. both cases they were admins, they were not involved in the project and no one should contact them about them [16:04] rvba: 1. distro need a registrant field. the page needs to use the registrant field in the registering slot. the migration script will set all existing distro registrants to ~registry [16:06] rvba: 2. distroseries registrant field is the owner, we have choices: a) rename the field field to registrant, b) add a registrant property that always returns the owner, update the interface to export the owner as registrant. [16:07] sinzui: all right ... this seems to be good bug to deep further into the code [16:08] sinzui: unless you think you need to give me more information I think I'll dive in and come back with question when I'll be stuck [16:08] rvba: happy hacking. [16:08] sinzui: s/question/questions/g [16:09] sinzui: thx a lot [16:12] henninge, looking at your MP.... should TranslationSharingDetailsMixin also raise NotImplementedError for is_sharing and can_edit_sharing_details? [16:12] henninge, so the API is clear? [16:13] deryck: Yes, I think that makes sense. I thought about it, too, but I don't know why I discarded the thought. [16:13] henninge, ok, cool. [16:33] henninge, ok, looks good to me otherwise. I'm not sure I see the value in both the page test and the browser unit test. they seem very similar.... [16:34] henninge, but I guess there is already too much there and it needs updating. [16:34] deryck: The browser unit test never checks the actual URL, but the page test does. [16:35] henninge, what value is there in the URL? Just that hitting the URL produces the page we expect? [16:36] The link is still dead at this point, so it's just showing that it is pointing to the right place. [16:37] henninge, sure, that's fine. Seems like a lot of page test for this. but no worries. it's your call. [16:37] hi leonardr: I think I have my head clear and can help. I recall we were looking a test failures that I thought were really because the test was not setup right; sample data is wrong [16:37] henninge, so r=me, with the tiny change mentioned above. [16:38] sinzui: right [16:38] deryck: thanks a lot ;-) [16:38] np [16:38] sinzui: my code is at lp:~leonardr/launchpad/bug-106338 [16:40] the failure is in patches-view.txt [16:41] leonardr: I saw many tests fail last year when we added code that checked that the package was legit. I fixed them by ensuring they were published in Ubuntu: [16:41] self.factory.makeSourcePackagePublishingHistory( [16:41] sourcepackagename='alsa-utils', distroseries=distroseries) [16:42] i think that could solve the 'a52dec is not in ubuntu' error === jtv is now known as jtv-zzz [16:42] do you think it makes sense to go through patches-view and get it to stop using sampledata? [16:43] this test sucks [16:43] I want to delete the test and declare victory [16:44] the whole thing? do we have coverage elsewhere? [16:44] I doubt there is proper test coverage [16:45] where is the failure in this test? [16:45] * sinzui runs [16:45] it [16:47] sinzui: there are some problems creating the data in the first place, and then there are problems where the new validation code i added says there are problems with which bugs are conjoined to other bugs [16:47] this test could use the factory instead [16:49] leonardr: is evolution and a52dec the problems? I think there are missing SPPH in hoary in sample data. We can use the factory to make them genuine ubuntu packages [16:49] ok, i'm going to write some code that might or might not work [16:49] leonardr: pause [16:50] k [16:50] I just got this built. I will play the test and try a trick with the factory and transaction.commit() to put the packages in the right state. Feel free to look at something else or get some tea [16:52] ok, i'm working on another project as well [16:52] excellent, someone solved this in a story before [17:03] leonardr: sorry. I had make schema. I think I have this fixed. Looks like I fixed the same problem in a bug story last year [17:04] that's great [17:05] in https://launchpad.net/+apidoc/1.0.html#person the field hide_email_addresses [17:05] "hide_email_addresses" [17:05] what should it be set? [17:05] true/false?\ [17:09] m4n1sh: yes [17:10] leonardr: can it be reflected in the WADL? [17:10] WADL file [17:11] unity is a memory hog [17:11] yes, we could set type="xsd:boolean" as we have for dates [17:11] and I think it leaks like a sieve. [17:12] sinzui: it has a great ALPHA plastered all over [17:12] leonardr: under which project should I file a bug for this? [17:12] foundations? [17:13] m4n1sh: put it in lazr.restful [17:13] thanks [17:14] leonardr: I need to reboot to reclaim 1.5G of memory to run the test suite: This is what I did and It think it will fix the issue: http://pastebin.ubuntu.com/577529/ [17:14] sinzui, thanks === deryck is now known as deryck[lunch] [17:27] sinzui: ok, that got rid of the sampledata problem. i still have the problem that the validation is preventing bugtasks from being created [17:28] make_bugtask(bug=bug_a, target='hoary', target_is_distroseries_name=True) [17:28] => [17:28] LaunchpadValidationError: This bug is already on Ubuntu. Please specify an affected package in which the bug has not yet been reported. [17:29] leonardr: are we certain that these bugs are unique? They may not given this is a story test [17:31] sinzui: well, the bugs are created within the test [17:31] so any bug tasks for that bug only exist within the test [17:31] yes, but since the test does note setup isolation from the blocks in each narrative, it is easy to step on something [17:33] sinzui: looking at the calls to make_bugtask, for bug_a we have a task on the 'trunk product series of patchy, [17:33] the evolution source package (of what?) [17:33] the a52dec source package (of what?) [17:33] and then we try to create one on hoary [17:36] could the source-package ones be interfering with the attempt to create a generic hoary bugtask? [17:38] leonardr: possibly. If the validator looked at distroseries before source package [17:40] leonardr: the calls to create SPPH were in hoary. I assume that we are working hoary in the test because it is the current series in sample data [17:41] sinzui: here's the validate code [17:41] target = None [17:41] if distribution is not None: [17:41] validate_new_distrotask(bug, distribution, sourcepackagename) [17:41] elif sourcepackagename is not None: [17:41] target = distroseries.getSourcePackage(sourcepackagename) [17:41] else: [17:41] target = product or productseries [17:41] if target is not None: [17:41] valid_upstreamtask(bug, target) [17:41] that was the best i could figure out when to call validate_new_distrotask/validate_distrotask/valid_upstreamtasks [17:41] you think source package name should take precedence over distribution? [17:41] yes I do [17:43] I think the rules are package before series before primary context [17:44] ok, trying that now [17:44] sinzui: 'series before primary content' -> product or productseries should come before distribution? [17:50] I think it is distro before project. project and distribution are primary context...that is to say they are pillars, they are the first item we traverse [17:53] sinzui: i gotta tell you that everything you say on this topic goes off on a 45 degree angle from me understanding it [17:55] leonardr: bugtasks and conjoined bugs, packages and publishing history are arcane stuff. If the test were good, this would not be a morass. [17:56] leonardr: I write something that I think is the correct test, then delete everything that contradicts it. [17:56] sinzui: but i have no idea how this works. i'm just trying to make an error give a 400 status code when it happens [17:57] let's see what happens now... [17:57] leonardr: :( this is why these bugs are so old. fixing it means making our applicate make sense [17:58] sinzui: revising the check to my understanding of the precedence doesn't affect the error [17:58] i'll paste [18:00] hmm, well maybe we do not need the sourcepackage check. does validate_new_distrotask already do that? [18:01] sinzui: i think it does. can we call validate_new_distrotask on a distro series or can it only be a distribution? [18:02] i think it can only be a distribution [18:02] so, if we're passed in a distro series, we still need the sourcepackage check === MT-TakinBreak is now known as MTecknology [18:03] okay [18:12] sinzui: http://pastebin.ubuntu.com/577553/ [18:12] i've spelled out the precedence in such explicit detail that i now understand it, and i'm still getting the error [18:12] does that code look right? [18:15] leonardr: It looks right, but it makes me weep. === deryck[lunch] is now known as deryck [18:17] validate_new_distrotask is called twice I know a distroseries is never upstream, yet we validate it with upstream. I think something stinks below your method. I would not ask you to fix it just yet given the difficulties we are having in the branch too [18:17] ^ leonardr if your branch starts passing tests now, lets report a bug about this insanity and let it block the value your branch already provides [18:18] sinzui: tests are still not passing [18:18] validate_new_distrotask is raising the exception [18:18] leonardr: doh, I do *not* want to block your branch from landing. I prefer to report a bug about the issue and say we are done [18:18] am i calling it when i should not be? [18:19] leonardr: maybe. [18:23] sinzui: ok, i understand what's happening [18:24] this code prohibits you from adding a bugtask to the 'ubuntu' distribution if there is already a bugtask in ubuntu's 'evolution' sourcepackage [18:24] is that the correct behavior? [18:24] I am thinking [18:26] leonardr: I want to say no, but if I were more involved in Ubuntu, I think I would say this is sensible. A bug is Ubuntu is generic. the bug must really be in a package. We know many users cannot guess the correct package. We move the bug to the package during triage... [18:27] but I still believe I could have a task that is definitely not in the package specified, and I do not know where it is [18:27] * sinzui plays on staging [18:27] sinzui: i do not want this branch to change the behavior [18:27] staging I hate you. May a pox befall your first born [18:28] no, the first born is production [18:29] leonardr: the validator is correct. We do not want a generic bug when we have a bug that is specific. The test needs to be buried alive, then dug back up and shot [18:30] done filing the bug https://bugs.launchpad.net/lazr.restful/+bug/731518 [18:30] <_mup_> Bug #731518: Set hide_email_addresses in person of type xsd:boolean < https://launchpad.net/bugs/731518 > [18:30] anyone can have a look at it [18:30] * sinzui looks at what could be deleted [18:33] leonardr: If I find that one template/view is governing all the layout in this test, I will start chopping [18:33] sinzui: ok, let me push my revisions [18:40] leonardr: there is one view and one template. This test is repetitive nonsense. It works on bugtarget. We do not care about each bugtarget, neither does the user according the the bad narrative in the so-called story. We can delete from the second header to the end of the test. "Patches View by Distro" onward is redundant with product. [18:41] m4n1sh, the quickest way to get that into lazr.restful would be if you gave me a branch. you just need to add binary support to WadlFieldAPI.type, and copy some tests from what we do to test xsd:datetime [18:41] leonardr: the story should be about "a bug target, such as a project" [18:42] ok... [18:42] leonardr: will do in meanwhile when I get time [18:44] sinzui: ok, do i have r=you on the changes i've already pushed + destroying the rest of that test? [18:44] * sinzui looks one more time [18:45] * leonardr has now pushed everything [18:52] leonardr: r=me with the fixing of the two issue I think I see in the diff: http://pastebin.ubuntu.com/577568/ [18:52] I seem to have traded a memory leak for a runaway proc. ubuntuone ate 66% of my battery in one hour. [18:59] * sinzui restarts to kill procs [19:01] ok, bombs away [19:10] gary_poster, benji: help requested re https://code.launchpad.net/~jml/launchpad/what-is-in-the-web-ui/+merge/52594 (any other zope experts or interested punters welcome too) [19:10] * jml is off for the evening [19:10] g'night all. happy hacking. [19:39] hi sinzui [19:47] lets play spot the deploy: http://webnumbr.com/launchpad-critical-bugs === ajmitch_ is now known as ajmitch [20:04] hi bac: sorry. I was dealing with a run away proc. you have my attention now [20:05] hi sinzui. np [20:05] i was just going to ask you some yui test questions. [20:06] i'm trying to get some debugging output. Y.log() disappears. i tried console.log() too but it doesn't output to the browser console. any tips [20:07] um. no. are you saying the out never arrives, or that something clears it? [20:08] expected to see it in the browser console but see nothing [20:09] sinzui: oh, wait, i do see it in the console div, amongst the other output. i was looking in the error console [20:10] oh, I was nervous asking if you were sure you were looking at the log [20:19] sinzui: got a minute to mumble? [20:23] sinzui: deryck pointed out that commenting out the console in the test_.js dumps everything into the console and is interogatable. [20:27] thumper: I can talk now [20:55] sinzui: https://code.launchpad.net/~sinzui/lazr.restful/json-not-xhtml-0 looks like it isn't actually landed [20:57] lifeless: I do not know what is up with that. I do not see it, but I think I pushed it. [20:57] * sinzui tries again [20:57] sinzui: I looked at https://code.launchpad.net/~lazr-developers/lazr.restful/trunk [20:58] so did I ;( [21:01] wgrant: remerging db-devel would be cutting it -real- fine [21:02] leonardr: mumble? [21:02] thumper, yes [21:04] lifeless: sorry, I think I had pushed to the wrong location :(. The fix is in rev 178, version 0.17.4 [21:06] sinzui: thats cool; are you going to do the lazr.restful update in lp itself? [21:06] leonardr: can you look at the revs in https://code.launchpad.net/~lazr-developers/lazr.restful/trunk ? I am having a panic attack. I think something you landed today is missing because of my rememerge [21:06] sinzui: it's possible, i'll look [21:06] lifeless: please wait for leonardr to be sure I did not loose something [21:06] sinzui: of course [21:06] lifeless: can you take a look at the reply to the mp of mine that stub added you to? and if you have any further concerns holding it back from being landed, let me know? [21:06] sinzui: I'm hoping we can get the oem bug through qa for the deploy on thursday [21:07] jcsackett: if its a db patch, the requirement is stubs approval - I just audit so I'm in the loop on db schema changes [21:07] jcsackett: per the db schema change policy [21:08] lifeless: dig, i just saw a pending review for you that i didn't add. :-P [21:08] jcsackett: so, you *should* have added it :) but you don't need my vote [21:08] right on. :-) [21:09] lifeless: did i read an earlier comment correct, that we may be remerging db-devel before the rollout? [21:09] no [21:09] oh good. [21:09] wgrant was expressing enthusiasm for getting more fixes in [21:10] lifeless: dig. i had some concern there. [21:12] sinzui: i think we may have lost your *own* changes [21:13] leonardr: I really think I lost that last revision. if you have a copy of lazr-restful from you push today. I think you want to repush, maybe with overwrite. bzr cdiff -r176..-1 | less -r only shows my changes [21:15] leonardr: but...I though I had pushed my changes yesterday, lifeless reported they were not there. So I remerged and pushed. So regardless of what happened. I want to be sure both out changes are in the branch [21:19] leonardr: https://code.launchpad.net/~wallyworld/launchpad/recipe-request-builds-existing/+merge/52389 [21:19] sinzui: i'm on revision 178 and my change to _resource.py is present [21:20] leonardr: raise e? [21:20] yeah [21:21] raise e within the else clause [21:21] okay I see that, We lost your commit message though [21:21] see the bottom of the page: https://code.launchpad.net/~lazr-developers/lazr.restful/trunk [21:22] leonardr: I would be happy if you could push your copy to be trunk, then restart my merge so that the changelog is correct [21:24] sinzui: have time to talk on mumble briefly? [21:24] sinzui: i'm not sure how to do that. 'bzr push lp:lazr.restful' says no new revisions to push [21:24] oh [21:25] brb [21:25] leonardr: does push --overwrite do nothing? [21:25] let's see [21:25] leonardr: bzr log -n 0 -r 177..178 shows my remerge swallowed out commit message. So I do not think we lost code, I just messed up the log of histrory [21:26] i agree [21:26] --overwrite also does nothing [21:28] :( I suck [21:29] leonardr: thanks for your time. I will try a reverse merge to undo this [21:29] do you want my original commit message? [21:34] wallyworld: are we talking about 2 extra web service calls, or 2n extra calls? [21:35] * wallyworld thinks for a second [21:36] leonardr: akin to 2n - 1 per archive and 1 per distroseries [21:36] i think the current approach is fine [21:36] sinzui: you don't suck, the trunk isn't setup correctly [21:36] leonardr: cool. it just seems kludgy [21:36] sinzui: when you have time i'd like to ask you about how yui unit tests find the local JS resources. [21:36] it needs the setting in bzr for no history changes to be set [21:36] it is, but kludgy is better than super-inefficient, and we don't have a good alternative right now [21:37] leonardr: it would be nice to somehow be able to specify what attributes we wanted to return for elements in a collection_link [21:37] when the link is fetched [21:37] wallyworld: yeah, that's part of expand-and-filter [21:38] leonardr: is that something currently in progress? [21:38] wallyworld: no, i planned to work on it but then the teams were rearranged. it needs to be scheduled as a large new feature [21:39] leonardr: imho it a pretty important feature as we move towards more xhr support in lp, so it would be good to see it on the radar :-) [21:39] wallyworld: leonardr: can I but in and ask about the context ? [21:40] s/but/butt/ [21:40] lifeless: i'm retrieveing a collection of build records via the ws api from javascript [21:40] lifeless: by getting a collection link [21:40] lifeless: the records contain links to other objects [21:41] but i need attributes on those objects and the returned collection elements just have the links [21:41] wallyworld: planning to, or are ? [21:41] lifeless: i have a mp for review [21:41] I mean, is this in trunk already ? [21:41] wallyworld: so, this sets of red flags for me. [21:42] me to but there's no infrastructure to support what i need yet [21:42] what are the alternatives ? [21:42] see leonardr's comment about expand and filter support [21:42] lifeless: i have an alternative - and am using it in the mp [21:42] sorry, I wasn't clear [21:43] what are the alternatives to crippling our appservers when users hit this page [21:43] * lifeless adds hyperbole to help the discussion [21:43] lifeless: but we don't cripple the app servers - i'm not making N+1 calls - the mp uses another way of doing it [21:43] lifeless: wallyworld is using url hacking to make 1 request instead of 2n [21:43] ok, whew. [21:43] thats brilliant [21:43] i told him that was the right thing to do [21:44] lifeless: give me some credit - i'm not that stupid :-) [21:44] leonardr: lifeless the history is back in the correct order. My remerge did not increment version.txt so my log fix really was wanted [21:44] wallyworld: well, I read '10:41 < wallyworld> lifeless: i have a mp for review' as meaning the 2n approach [21:44] lifeless: i was just after a +1 from leonardron the kludgy approach used [21:44] wallyworld: leonardr: thanks for humouring me, totally agree we should use the kludge [21:44] lifeless: fair enough :-) [21:45] cool [21:45] sinzui: great, so - are you going to do the lazr.restful upgrade for lp ? [21:45] lifeless: yeah, but we will run into more cases requiring it as we expand out xhr support, so I +1 on leonardr implementing expand and filter support into lazr restful :-) [21:46] if we ever get the time to do such things :-) [21:46] sinzui, lifeless: i have a branch in ec2 land that will upgrade launchpad to 0.17.3, but you probably want 0.17.4 [21:46] lifeless: I do not what what i do for that. cut a release, push it to pypi, increment egg version in buildhout? [21:46] leonardr: which branch? I will cargo cult [21:47] sinzui: the one you were looking at earlier [21:47] https://code.launchpad.net/~leonardr/launchpad/bug-106338 [21:47] ah. [21:48] sinzui: here's my 'release script': http://pastebin.ubuntu.com/577617/ [21:48] excellent. thank you! [21:50] sinzui: cut a release; add to download-cache and commit, then update versions.cfg in lp and merge that to devel. [21:52] gary_poster: hi [21:52] lifeless, hi [21:53] hi [21:53] this bug I filed [21:53] bug 731099? [21:53] <_mup_> Bug #731099: structural subscriptions have poor queries on bugs with many bugtasks < https://launchpad.net/bugs/731099 > [21:53] yeah [21:54] at the risk of being annoying, I was wondering if you had the time to chat - just here - about it interactively [21:54] subscription portlet shouldn't use the same code path anymore. I haven't checked. That's a bug IMO if it does [21:54] sure [21:54] so what I did locally was add 200 bugtasks to a single bug [21:54] leonardr: you ok to approve the mp so i can push it through ec2? thanks :-) [21:54] the main bug html rendered without the query I saw - it was the async population of the subscribers portlet that did the big query [21:55] ah-ha [21:55] if you get me that url I'll look at it lifeless. essentially, here's where I am: [21:56] /bugs/1/+bug-portlet-subscribers-content [21:56] <_mup_> Bug #1: Microsoft has a majority market share is what my local log shows [21:57] 1) the portlet should not use that "let's send things" query. There's a much simpler approach that gives a reasonable approximation. [21:58] Further, Jono and I have tentatively agreed that the subscribers info should probably be deleted because it is no longer accurate enough or interpretable-by-humans enough to be of value, but that's a but of a by the way. [22:00] 2) the best way to get rid of the doubling in query size is to add with support to Storm (which I'd love to get to, but is not currently a priority). What we can do now without losing functionality is to make an intermediate query so we don't have to duplicate things. As I said in the bug report, I'm not convinced it is the right balance of things, but it's not an inner loop, so it probably won't make that big of a [22:00] that was probably truncated :-/ [22:00] As I said in the bug report, I'm not convinced it is the right balance of things, but it's not an inner loop, so it probably won't make that big of a diff either way [22:00] gary_poster: it looked to me eyeballing the query that the inner clauses are able to be optimised out - but that may be my eyes glazing over at hand evaluating OR vs AND precedence [22:01] There are two possibilities in your eyeballing [22:01] that I see [22:01] gary_poster: specifically, what I saw was (project-or-product and (status-of-filter) OR (project-or-product and (status-of-filter) [22:02] 1) what you said [22:02] gary_poster: and I thought it might be factorable to (status-of-filter and (project-or-product OR project-or-product OR ..) [22:02] 2) I missed something [22:02] heh, I was going to go on for a while so I went for summaries ;-) [22:03] :) [22:03] lifeless, is there a pertinent bit in the stuff you filed that's an example? Let's see if I can explain it or not [22:04] context - [22:04] L [22:04] EFT JOIN BugSubscriptionFilterTag ON BugSubscriptionFilterTag.filter = BugSubscriptionFilter.id WHERE StructuralSubscription.id IN (1) [22:04] repeating bits - [22:04] AND ((StructuralSubscription.product = 4 OR StructuralSubscription.project = 4) AND (BugSubscriptionFilt [22:04] erImportance.importance = 20 OR BugSubscriptionFilterImportance.importance IS NULL) AND (BugSubscriptionFilterStatus.status = 10 OR BugSubscriptionFilterStatus.status IS NULL) [22:04] OR [22:04] (StructuralSubscription.product = 130) AND (BugSubscriptionF [22:04] ilterImportance.importance = 5 OR BugSubscriptionFilterImportance.importance IS NULL) AND (BugSubscriptionFilterStatus.status = 10 OR BugSubscriptionFilterStatus.status IS NULL) [22:04] (repeats with only the product clause changing in each repeeat [22:06] lifeless, that's because the individual bugtasks have those values, individually [22:06] ok [22:07] so we could group this into one complex thing per (importance,status) tuple [22:07] which would be about 25 clauses on pathological bugs [22:07] gary_poster: I think we should be data driven about whether this matters [22:07] gary_poster: the /bugs/1/+bug-portlet-subscribers-content url on a machine with the filters will let us gather that data [22:07] <_mup_> Bug #1: Microsoft has a majority market share lifeless, right; I thought about the optimization and rejected it. I didn't expect anything like 200 bugtasks. bug 1 is like that, I take it? [22:08] <_mup_> Bug #1: Microsoft has a majority market share gary_poster: 1 is small - [22:09] 1 | 21 [22:09] 230350 | 159 [22:09] my goodness [22:09] why, out of curiosity? [22:10] when I get the main page for bug 230350 rendering, I can tell you [22:10] <_mup_> Bug #230350: Missing Debian Maintainer field :-P [22:10] It looks like a very meta bug [22:10] packages were missing a field, and it got batch filed on all the packages with that issue. [22:11] we could have bugs with thousands of tasks of this nature [22:11] wow, blech [22:11] isn't that indicative of a bug in whatever is using LP? [22:11] in any case... [22:11] it *is* what multiple tasks are intended for. [22:12] its just a scale that us devs don't inuit [22:12] *intuit* [22:12] IOW, it is reasonable to expect one bug to have action items in 150+ projects? [22:13] This is pure curiosity [22:13] I'm trying to assemble my action item summary in a separate "thread" [22:13] there are three action items I can take [22:14] I believe 159 is our largest bug at the moment [22:14] Right, my question is not whether they exist, but whether they actually serve a useful purpose [22:14] FWIW, performance was fine at the time the bug was filed. [22:14] But subscription noise stopped us from using them. [22:15] but this is also self limiting at the moment - the bug page scales at 50ms per task *after* 5 patches to improve it, so falls over well before larger split-outs [22:15] wallyworld: sorry, didn't realize you wanted me to review the whole branch [22:15] 1) if you file a bug about /bugs/1/+bug-portlet-subscribers-content tickling this code path and assign it to me, I'll promise to see if I can address it quickly. If I can't address it quickly, I'll push it off till bug rotation. [22:15] <_mup_> Bug #1: Microsoft has a majority market share gary_poster: I'll retitle the current bug, because it should be more clear anyway [22:16] leonardr: sorry. you don't have to. i can get the ocr to do it no problems. [22:16] wallyworld: that would be better, i'm eod [22:16] leonardr: will do. [22:16] 2) if there's an indication that this code path is causing timeouts, I can try to do the optimization you describe. Even though I'm fairly skeptical of its utility, I've been wrong plenty before. [22:17] gary_poster: I don't know that there are timeouts on this yet, https://bugs.qastaging.launchpad.net/bugs/230350/+bug-portlet-subscribers-content renders ok [22:17] <_mup_> Bug #230350: Missing Debian Maintainer field gary_poster: and staging is down as you noted [22:19] 3) I continue to want to reduce the duplication of the SQL size as I was describing in that bug, but I want to do that with the WITH statement. It is an easy experiment to see if an intermediate query helps in this case, though, so that's another thing we can try. [22:19] If you want me to prepare a branch with that change for you to test with (in the 200 bugtask page), I could do so in a min of half hour and a max hopefully of 2 hours. [22:20] Meanwhile, I have to run. Please ping me with any bugs you create [22:20] bye everyone [22:22] gary_poster: ciao [22:23] gary_poster: I've retitled the bug, I think high pri is appropriate and we should see how it behaves on that bug's subscriber portlet on staging when its back [22:23] gary_poster: no point polishing something that is ok for now [22:30] lifeless: leonardr: My bad day continues. I seem to have destroy my lp tree in an errant branching of launchapdlib [22:31] please bear/bare/bair/bar with me as I look for where I placed my brain [22:32] sinzui: >< [22:33] sinzui: i do not appear to have sound. give me a moment. [22:34] sinzui: I appear to be getting very intermittent sound from everyone, restarting mumble [22:34] yay! mumble issues for everyone. [22:35] sinzui: ugh this is useless [22:44] huwshimi: I called an end to the stand up. I hope we can talk tomorrow and the monkey god of software is kind [22:45] sinzui: Ah ok, I'm not sure what went wrong. It might have been network issues or something [22:46] huwshimi: jcsackett was having similar issues (although it eventually came mostly good), so I suspect it's not your fault. [22:46] sinzui: i found the test in question. [22:46] wgrant: huwshimi: i find mumble is frequently having issues. [22:47] jcsackett: does it look sane and simple. I think I was sane that day I wrote it [22:47] sinzui: it looks fairly direct, yes. [22:48] huwshimi: wgrant: yes sound is very dodgy now. At least the new sound-indicator tells me I have not in/out. [22:49] Oh, but it does not tell me when mumble + pulse will throw a wobbly and take my CPU with it [22:49] sinzui: The U1 crasher is fixed now, btw. [22:49] thumper: leonard has eod. he's fine with the approach since we don't have expand and filter implemented in ws yet. can you +1 it? https://code.launchpad.net/~wallyworld/launchpad/recipe-request-builds-existing/+merge/52389 [22:49] fab. I was thinking of not taking updates for few days === Ursinha is now known as Ursinha-afk [23:48] meh, bug text wrapping breaks my brain [23:49] wgrant: hey [23:49] -> Index Scan using securesourcepackagepublishinghistory_sourcepackagerelease_idx on sourcepackagepublishinghistory (cost=0.00..0.50 rows=1 width=4) (actual time=0.011..0.011 rows=0 loops=1276160) [23:49] Index Cond: (sourcepackagepublishinghistory.sourcepackagerelease = sourcepackagerelease.id) [23:49] Filter: ((sourcepackagepublishinghistory.archive = ANY ('{1,534}'::integer[])) AND (sourcepackagepublishinghistory.distroseries = 106) AND (sourcepackagepublishinghistory.component = 3) AND (sourcepackagepublishinghistory.status = 2)) [23:49] whats that filter checking for in english [23:50] lifeless: Published sourcepackagereleases in universe, natty(?), primary and partner. [23:50] hmm, I think this is the issue though [23:50] -> Index Scan Backward using bugtask_importance_idx on bugtask (cost=0.00..116380.60 rows=110413 width=276) (actual time=9.909..2039.202 rows=3788 loops=1) [23:50] Filter: ((distribution = 1) AND (status = 10)) [23:50] -> Index Scan using sourcepackagerelease_sourcepackagename_idx on sourcepackagerelease (cost=0.00..4.77 rows=21 width=8) (actual time=0.508..34.643 rows=337 loops=3788) [23:51] Index Cond: (sourcepackagerelease.sourcepackagename = bugtask.sourcepackagename) [23:52] What's this from? [23:53] Oh. [23:53] Component bug searches? [23:53] https://bugs.launchpad.net/launchpad/+bug/731679 [23:53] <_mup_> Bug #731679: distribution:+bugs timeout < https://launchpad.net/bugs/731679 > [23:53] I'm trying to figure out the intent, yes [23:53] I think its 'new bugs only' [23:54] but https://bugs.launchpad.net/ubuntu/+bugs?orderby=-importance&search=Search&field.status=NEW is snappy [23:55] Which OOPS is that from? [23:55] wgrant: the first one [23:55] I'd say it was from DistroSeries:+bugs... [23:57] oh, I see. [23:57] Of course. [23:58] A component filter should be all that is necessary. Have you tried that? [23:58] Yeah, that works. [23:59] Where "works" is "times out" [23:59] https://bugs.launchpad.net/ubuntu/+bugs?field.component=3 [23:59] https://bugs.launchpad.net/ubuntu/+bugs?field.searchtext=&orderby=-importance&search=Search&field.status:list=NEW&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_supervisor=&field.bug_commenter=&field.subscriber=&field.component=1&field.component-empty-marker=1&field.tag=&field.tags_combinator=ANY&field.status_upstream-empty-marker=1&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_m