[00:27] sinzui: How close is the merge QA? [00:34] wgrant: thanks for backing out the batchnav landing [00:34] lifeless: I see you've fixed p-r-f. Thanks. [00:34] I'll be looking at the API timeout regression this morning. [00:35] Once I do a bit more QA. [00:37] hi all [00:45] wgrant: awesome, thanks. [00:45] poolie: morning [01:23] Project devel build #632: FAILURE in 4 hr 46 min: https://lpci.wedontsleep.org/job/devel/632/ === StevenK changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: StevenK | https://code.launchpad.net/launchpad-project/+activereviews [02:34] poolie: OOPS-1929D68 (from bug #736421) doesn't sound like a qastaging OOPS... [02:34] <_mup_> Bug #736421: Person:+delete timeouts : Connect the UI the merge jobs < https://launchpad.net/bugs/736421 > [02:35] maybe i used the wrong domain? [02:36] poolie: Could you test on qastaging again? [02:36] i will [02:36] We need to get this QA'd ASAP. [02:36] Thankks. [02:36] i blame url completion [02:37] Heh. [02:37] either that or sunspots [02:37] hm so qastaging still thinks it has a ppa, even though i deleted the ppa from lpnet yesterday? [02:38] poolie: qastaging updates manually, every month or so. [02:38] staging updates once a week. [02:38] s/updates/restores/g [02:39] You might need DB hacking to get the PPA deleted :( [02:40] But that is easily done. [02:41] poolie: So, request deletion of the PPA, and we'll SQL it. [02:41] ppa deletion is broken only on qas? [02:41] Since the publisher doesn't run on qas, so it will stay DELETING forever. [02:42] The UI sets the status to DELETING, and then the publisher comes along, deletes it from disk, and sets it to DELETED. [02:42] qas doesn't have a publisher. [02:42] right [03:17] lifeless: is this one ok now? https://code.edge.launchpad.net/~wallyworld/launchpad/disabled-project-bugs-shown/+merge/57265 [03:20] wgrant: rereview ^ and I will mentor [03:21] lifeless: I'm rereviewing another of wallyworld_'s branches at the moment, but I'll get to it soonish. [03:23] wgrant: no panic [03:23] Not for this, at least... [03:23] wgrant: Would you accept http://pastebin.ubuntu.com/593393/ , or is it still dangeous? [03:24] *dangerous [03:24] StevenK: Still dangerous. [03:24] :-( [03:24] wgrant: Even though they don't share an archive? [03:25] StevenK: The initialisation and the builds it creates will work, but will live you in a bad state.' [03:25] We need to either decided that that bad state is OK, or fix it. [03:27] wgrant: What sort of bad state? [03:27] StevenK: The source has some binaries identical, some different. [03:28] wgrant: But we can even get that behavior with Ubuntu. [03:30] StevenK: Oh? [03:30] You can't have two different binaries with the same name in the same archive. [03:30] So no, you can't. [03:30] wgrant: Say 'libuser' is uploaded to Maverick, and it builds successfully on amd64, and i386, and fails on powerpc. The powerpc build isn't given back during Maverick's cycle. Natty opens, and the libuser amd64 and i386 binaries are copied in, and the powerpc build is re-created and is successful. So now we have some binaries identical and one different. [03:31] StevenK: Not different: unique. [03:31] The source is still copiable. There is no binary conflict. [03:32] Your concern is that if a series is derived while say, libuser is building we won't be able to copy the source? [03:33] Something like that. [03:33] This may be acceptable, but we need to think very carefully. [03:33] And see if there is a way we can fix it, because it's a problem for PPAs too. [03:34] wgrant: So even with that change, it's -1? [03:35] StevenK: Until I see discussion of the potential damage, yes. [03:35] Primary archive corruption is not something to be taken lightly. [03:35] I'm still failing to see how two seperate archives can impact each other. [03:36] They will not directly. [03:37] wgrant: Okay, would you mind explaining how this damage could occur? I'm afraid I don't see it yet. [03:39] StevenK: I can't think of a common case in this immediate feature that would be broken by the differing binary sets. But it is going to be very confusing, has potential to break future workflows, and is a problem that already plagues PPAs. [03:40] It is possible that the confusion is acceptable. We could declare that it is fine. [03:40] But we need to solve this at some point, and now is a good time to do that. [03:40] Until we've had this discussion it should not be permitted. [03:41] Copies will not work unless the copied source and series has a superset of the binaries that are in the target archive. [03:41] So creating conflicting sets makes some copies impossible. [03:45] wgrant: So, my current thought is this: I have a bug that states that derivation is impossible while builds are pending. The change I'm proposing helps with that, but I'm happy to open a new bug echoing your concerns and you, Julian and I can discuss it and come up with a solution? [03:45] StevenK: It helps with that by potentially creating bad state. The correct solution should be discussed in the bug. [03:46] Right, I can see that I'm only going to please you by having a fully correct solution. [03:47] wgrant: I've reverted to the __nonzero__ call that was the other push-back, do I need to fix that properly too? [03:47] StevenK: I will not let potential breakage in without a discussion of the potential breakage! [03:47] Particularly when it comes to primary archives. [03:48] Primary archives are serious business. [03:48] wgrant: I'm just frustrated, we've been arguing about this for hours! [03:53] wgrant: So, yes __nonzero__, or no __nonzero__? [03:53] StevenK: I do not strictly forbid it, but I suspect lifeless will. [03:54] lifeless: ^ [03:54] hi guys [03:54] wgrant: The reason I ask was we saw that SQLObject doesn't provide .is_empty() [03:54] whats up [03:54] StevenK: it provides it [03:54] StevenK: the interface declaration is bogus [03:55] I looked this up yesterday [03:55] lifeless: I couldn't do it with methodcaller() yesterday when I tried? [03:56] StevenK: thats correct, because the security proxy is stopping you calling the method [03:56] Oh, sigh [03:56] StevenK: your options are: [03:56] - removeSecurityProxy [03:56] - allow the attribute in a lp config.zcml [03:56] - fix the interface declaration in storm/zope/interfaces.py [03:57] The last one sounds like the proper solution [03:57] But likely requires a new storm [03:57] StormResultSet does not have __nonzero__, and I think its likely it won't ever, given the overhead of accidental evaluation. [03:57] I'm having one of those days [03:57] lifeless: lp:storm is fine to fix? [03:58] I'll put a new storm together for you after I enicreamenate [03:58] After you ... what? [03:58] StevenK: lp:storm will break lp on two counts: datetime marshalling has changed, and we're running with a WITH patch that is still under review. [03:58] enicecreaminate [03:58] Oh [03:58] No wonder dict(1) didn't know the word [04:01] poolie: 740338 (dup of 513591) doesn't seem to be an issue anymore. but 735290 still is. you last commented on the first bug mentioned on 2011-04-10. did you see that is was broken at that time? [04:01] just trying to see if something has been fixed in the past few days [04:02] * poolie looks [04:03] wallyworld_: hi [04:04] yello [04:04] so jools was hitting bug 513591, and because of that he then hits bug 735290 [04:04] <_mup_> Bug #513591: Assignee selector on +filebug trashes form input due to missing javascript < https://launchpad.net/bugs/513591 > [04:04] <_mup_> Bug #735290: changing Project drop down in project group +filebug loses all your work < https://launchpad.net/bugs/735290 > [04:04] poolie: there around 9 dups of that bug [04:04] right [04:04] poolie: the assignee selector is not blue anymore - the ajax link works [04:04] i think it's the 735290 part that makes it super annoying [04:04] right [04:04] on qastaging and lp.net [04:05] but 735 can still be hit in other cases, as described on that bug [04:05] there are several other things that are very nearly dupes of it [04:05] poolie: yes, so i'll fix the project drop down [04:05] wallyworld_: Still blue for me. [04:05] and others that i can see [04:05] wgrant: ?? [04:05] well, really https://bugs.launchpad.net/launchpad/+bug/553946 is the key thing [04:05] <_mup_> Bug #553946: JavaScript breaks ability to recover +filebug form data < https://launchpad.net/bugs/553946 > [04:05] https://bugs.launchpad.net/launchpad/+bug/553946/comments/4 [04:05] <_mup_> Bug #553946: JavaScript breaks ability to recover +filebug form data < https://launchpad.net/bugs/553946 > [04:05] wgrant: works fine for me. wonder what gives? [04:05] wallyworld_: The assignee selector on +filebug? [04:06] wgrant: yes [04:06] Which browser? [04:06] wgrant: ff4 [04:06] * wallyworld_ think he will have to open ff3 [04:06] Intriguing! FF works. [04:06] Only broken in Chromium. [04:06] zh [04:06] ah [04:07] I didn't realise that. [04:07] i would be thrilled if that is fixed [04:07] wgrant: still, even with js off or whatever, it's bad that people lose their work [04:07] Definitely. [04:07] wgrant: not sure how to solve it though in the non js case [04:08] what happens in the non jscase? [04:08] a separate form? [04:08] poolie: try ff :-) [04:08] poolie: i think a separate page, yes [04:08] poolie: haven't tried without js recently [04:08] wallyworld_: The link should be hidden without JS. [04:09] anyhow imbw but i think the key thing there is not to dynamically add the textarea [04:09] wgrant: forcing people to type directly into the assignee text field? [04:10] wallyworld_: Yes. [04:11] poolie: i haven't looked yet at the implementation, but you're talking about the deleting of people's work when the project changes when you refer to the textarea? [04:11] poolie: want a catch up chat? [04:11] No other way to do it, really... [04:11] wgrant: yeah, agreed [04:11] * wallyworld_ wonders why it broke on chrome. will look into that [04:12] * wallyworld_ needs food first [04:12] thumper: sure [04:13] want to try voip? [04:13] poolie: sure [04:13] poolie: mumble or sip? [04:13] what's my name again? [04:13] poolie: Martin [04:13] 7806 [04:13] on sip [04:13] can you try calling me? [04:14] I can tru [04:14] try [04:21] StevenK: https://code.launchpad.net/~lifeless/storm/bug-759384 - am merging it up to our storm now [04:24] lifeless: Are you self-reviewing, or are you looking for a +1? [04:26] StevenK: neither, just letting you know [04:26] StevenK: you can apply that locally to your unpacked storm egg to do your testing without waiting for me [04:26] wgrant: what was that egg-info chicken [04:27] nvm [04:27] lifeless: Love the docstring error that you corrected for __nonzero__. [04:28] StevenK: yah. c&p FTW [04:28] dist/storm-0.18.0.99-lpwithnodatetime-r392.tar.bz2 is in the download cache [04:29] StevenK: do a bzr update there, and update the version in versions.cfg; then bin/buildout and you are good to go. [04:30] I shall, after lunch [04:50] https://bugs.launchpad.net/launchpad-project/+bugs?search=Search&field.status=New triage is falling behind [04:53] It would help if my bookmark was launchpad-project instead of just launchpad. [04:53] * wgrant fixes. [04:55] I guess bug #758758 wants to be moved to bzr? [04:55] <_mup_> Bug #758758: bzr out of memory during auto-build < https://launchpad.net/bugs/758758 > [04:56] poolie: ^^ [05:02] iz dupe I think [05:02] Of a fix-released bug. [05:02] So not really. [05:11] wallyworld_: Rereviewed your picker branch. Sorry about the delay. [05:12] wgrant: np. i've had other stuff to keep me busy [05:13] Looking at your disabled projects one now. [05:22] lifeless: Your storm stuff has landed? [05:23] StevenK: no [05:23] StevenK: I've added an egg with it to the downloadcache [05:24] you just need to update your versions.cfg to use it [05:24] I've proposed a branch to storm [05:24] but we're running a fork anyway [05:30] Oh, you have to got to be kidding me. [05:31] IDistroSeries.section is a SQLObjectResultSet, but IDistroSeries.components is a list. [05:31] s/\(section\)/\1s/ [05:33] And the XXX in IDistroSeries.components makes me sob. [05:40] oh grah [05:40] 'incomplete bugs' links to 'expirable bugs' [05:40] THESE ARE NOT THE SAME [05:41] StevenK: components is a list for cachability. [05:46] wgrant: so, in cases like this - task on bzr [core work happens there], task on lp [have to deploy the resulting work] [05:46] wgrant: But then I can't just call is_empty() on it :-( [05:47] StevenK: Yeah :( [05:47] lifeless: I guess. [05:52] wgrant: When IDistroSeries get Stormified, that point is moot, isn't it, since ResultSets can be easily cached? [05:53] wgrant: its what we do elsewhere [05:53] StevenK: ResultSet doesn't cache [05:53] StevenK: and you can use storm queries on sqlobject base classes [05:54] StevenK: so I'm confused about what you're saying/the problem you're facing [05:54] lifeless: I'm just wondering if we can drop the list() in IDistroSeries.components [05:54] No. [05:55] StevenK: only if we stop using it [05:55] Sorry, I wasn't being clear, I don't mean now, I mean 'at some point' [05:55] StevenK: thats what I mean [05:56] StevenK: if we do a persistence layer like I'm threatening, we'll get rid of all query objects in model code [05:56] StevenK: (so it wouldn't need listifying, it would /be/ a list) [05:56] StevenK: alternatively, if we setifiy all our logic, we don't need the attribute [05:56] StevenK: (but this makes quick-small hacks harder to write) [06:01] hi wgrant [06:04] Hi poolie. [06:10] wgrant: +localpackagediffs on staging makes me sad [06:13] Bleh, more import policy violations [06:13] wgrant: Can you look over https://code.launchpad.net/~stevenk/launchpad/ids-bugfixes/+merge/57270 again? [06:14] StevenK: The lack of base versions? [06:14] bigjools and I were looking at that last night. [06:16] wgrant: That, but mostly the large number of DSDs with the same version in both Natty and Sid. [06:16] Ah, yes. [06:16] Has that fix landed yet? [06:16] jtv: ^ [06:16] He's EOWed. [06:17] Ah, bah [06:17] * StevenK checks kanban, then [06:17] Ahh. [06:17] He ec2'd it 10 minutes before my testfix. [06:17] So it probably just missed. [06:17] I might throw it through again. [06:18] Or you could. We probably don't want to wait until Monday. [06:18] Yeah, I'm happy to. [06:18] It's tiny [06:18] Thanks. [06:19] lifeless: https://code.launchpad.net/~wallyworld/launchpad/disabled-project-bugs-shown/+merge/57265 and https://code.launchpad.net/~wallyworld/launchpad/assign-non-contributor/+merge/55869 would both like to be mentored. [06:20] 1.4 second tag summaries so far - with visibility but doublecounting on redundant subscriptions [06:20] wgrant: poolie: that assignee link on the bug page works fine for me in Chrome :-/ wonder why it's broken for you? [06:20] which one? [06:20] on filebug? [06:21] poolie: yes. the one that says "Find..." in blue. except for me it doesn't. it says "Choose..." in green :-) [06:21] so, so far i'm unable to see the reported problem [06:22] it is blue for me and sends me to /people [06:22] which seems kind of weird for a non-js fallback [06:22] but i think i've never wanted to click that [06:22] i know the ids of every person i want to assign bugs to [06:22] wallyworld_: Let me see. [06:23] my complaint with this page is just the more general issue that it breaks history [06:23] poolie: agreed. i'm just curious as to why we're seeing different behaviour. but i think i need to add an option to not show the Find... if there's no javascript [06:24] wallyworld_: Which URL? [06:24] that would be fine [06:24] wgrant: lp.net/someproject/+filebug [06:24] lp.dev even [06:24] wgrant: Right, after fighting with utilties/ec2, I've tossed it successfully. [06:25] wallyworld_: Which domain? launchpad.dev, or bugs.launchpad.dev? [06:25] wgrant: sorry, bugs [06:25] + qs = Y.lp.client.append_qs(qs, 'name', vocabulary); [06:25] 300 + qs = Y.lp.client.append_qs(qs, 'search_text', search_text); [06:25] Although neither work for me, we've had cross-domain JS problems like this before. [06:25] 301 + qs = Y.lp.client.append_qs(qs, 'batch', BATCH_SIZE); [06:25] 302 + qs = Y.lp.client.append_qs(qs, 'start', start); [06:25] does the javascript client manually track the batching implementation ?! [06:25] lifeless: Yes, pickers have their own batchnav UI. [06:26] I didn't realise they did it like that, though :/ [06:26] * lifeless deadhesks [06:26] Haha [06:26] wgrant: a db-devel merge caused some trouble, so it's back into EC2 [06:26] jtv: It's a race! [06:26] wallyworld_: oh btw i like the assignee thing a lot [06:26] wgrant: poolie: actually, it works for me using bugs.lp.dev but fails on bugs.lp.net. so something must have been fixed [06:26] jtv: Ah, should I stop mine? :-) [06:26] poolie: me too :-) [06:26] (i realize there are details to sort out but thumbs up anyhow) [06:27] wallyworld_: What about qas? Which version Chromium? [06:27] StevenK, wgrant: did you try to land it as well? [06:27] poolie: yeah, it's a first cut. it certainly can be improved but good to get something out there [06:27] jtv: I asked StevenK to. [06:27] jtv: Since you're not here. [06:27] Which I'm not. [06:27] jtv: I *just* threw it at ec2, so I'm happy to kill it. [06:27] Kill. [06:28] wgrant: broken on qas too. 11.0.696.43 beta [06:28] poolie: Oh dear, that whole form is constructed in JS? [06:28] poolie: This is revolting. [06:28] yus [06:28] pop quiz [06:29] is subsecond tag / count aggregates acceptable ? [06:29] cunningly designed to disable browser history mechanisms [06:29] No, needs to be <1µs [06:29] poolie: Indeed! [06:29] Let's see. [06:29] i spent probably 20m typing into it the other week [06:29] was very sad [06:29] I think we've all done that :( [06:30] wgrant: Time: 17.281 ms [06:30] wgrant: for bzr [06:30] wgrant: Time: 743.434 ms [06:30] lifeless: µs, not ms. [06:30] wgrant: for ubuntu [06:30] Insufficient. [06:30] What :/ [06:30] wgrant: I get a Unicode error, you mean microsecond? [06:30] wgrant: Time: 135.709 ms [06:31] wgrant: ubuntu anonymous [06:31] Why is activateConstrainBugExpiration called on *every* page? [06:31] When it's only used on Product:+configure-bugtracker? [06:31] wgrant: since it works on lp.dev and not qas or lp.net, must be some issue with how we run prod vs local? [06:31] * StevenK manages to get ec2 list to hang, so checks AWS by hand [06:31] wallyworld_: Yeah... I'm trying to work out where we actually hook it up. [06:32] wgrant: a lot of it uses the lp formk infrastructure [06:32] the assignee is a IPersonChoice and there's a standard widget for that [06:32] We need a new creation form system. [06:32] wgrant: vocabulary-picker.js.template is used and has some pararameters wired in [06:33] wgrant: lp.app.widgets.popup.py is also part of it [06:33] wgrant: it provides VocabularyPickerWidget [06:34] aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [06:34] https://bugs.launchpad.net/launchpad/+bug/758587/comments/10 for folk interested in the summary table [06:34] <_mup_> Bug #758587: summarising bugs is expensive < https://launchpad.net/bugs/758587 > [06:34] "You should not import PrefixFilter from lp.services.log.logger" -- but it's in __all__? I'm confused [06:34] StevenK: Not here it's not. [06:35] wgrant: Here, r12811 of devel it is. [06:36] StevenK: Erm. [06:36] 'Nullhandler' [06:36] 'PrefixFilter', [06:36] Wrong caps, and missing comma. [06:36] Ah ha [06:36] So we now have a NullhandlerPrefixFilter [06:36] wgrant: Right, fixing. Thanks. [06:38] wgrant: in form-picker.pt inserts the javascript from the vocabulary-picker.js.template into the page [06:39] wgrant: but i'm not sure why it all works locally on lp.dev and not elsewhere [06:39] wallyworld_: Maybe a race? [06:39] wallyworld_: The form is loaded in a separate request. [06:40] wgrant: maybe. looking into it as we speak. [06:40] wgrant: you mentioned something though about setting cross domain issues? [06:41] seeing [06:41] wallyworld_: That's not the problem here. [06:41] Just something we've seen elsewhere. [06:41] So thought it was best to be exactly sure about where you were seeing it. [06:41] np. didn't think so but just wanted to double check in case i was being stpuid again [06:42] Ah hm. [06:45] I wonder if what we're doing is actually legal. [06:45] I saw some similar strange JS-ignoring behaviour in your branch yesterday. [06:45] An XSS attempt failed. [06:45] SpamapS: oh btw [06:45] , etc worked fine, but