| wgrant | abentley: https://code.launchpad.net/~abentley/launchpad/duplicate-msgid/+merge/62697 seems a bit heavy-handed. | 00:21 |
|---|---|---|
| wgrant | abentley: I can understand skipping duplicate messages to the same place... but not to all of Launchpad. | 00:22 |
| wgrant | abentley: (that includes mailing lists, so you can no longer send an email both to a bug and a mailing list) | 00:22 |
| lifeless | huh | 00:23 |
| lifeless | the preview diff is empty :( | 00:23 |
| wgrant | r13139 | 00:23 |
| lifeless | hmm | 00:28 |
| lifeless | I agree | 00:28 |
| lifeless | duplicate message ids are normal across the system | 00:28 |
| lifeless | only abnormal in one context - same list, or same bug etc | 00:29 |
| wgrant | Exactly. | 00:29 |
| wgrant | Shall I roll it back? | 00:29 |
| lifeless | its 7:30 pm for Aaron | 00:29 |
| lifeless | yes, I think it needs rollback | 00:29 |
| lifeless | we can't deploy with it | 00:29 |
| lifeless | but | 00:30 |
| lifeless | lets check just a little more | 00:30 |
| wgrant | Sure. | 00:30 |
| lifeless | so the error encountered is a duplicate msgid on one bug | 00:31 |
| lifeless | when the notification for it is being raised | 00:31 |
| wgrant | Well, adding the duplicate message results in a DB exception. | 00:31 |
| lifeless | bug 595166 | 00:31 |
| _mup_ | Bug #595166: IntegrityError raised filing a bug using the email interface <easy> <email> <lp-bugs> <oops> <Launchpad itself:In Progress by abentley> < https://launchpad.net/bugs/595166 > | 00:32 |
| wgrant | That's the one. | 00:32 |
| lifeless | its raised when *notifying* tha the second message was added | 00:32 |
| wgrant | Only because that's when the flush occurs. | 00:32 |
| wgrant | Oh. | 00:32 |
| lifeless | no, *really* when notifying | 00:33 |
| wgrant | That's not the OOPS I"ve seen before. | 00:33 |
| wgrant | The one I saw violated bugmessage__bug__message__key | 00:33 |
| lifeless | thats on a link to message | 00:33 |
| lifeless | not to two messages with the same msgid | 00:33 |
| wgrant | Hmm? | 00:34 |
| lifeless | OTOH so is the notification one | 00:34 |
| wgrant | Two emails with same msgid and same content => one Message row | 00:34 |
| lifeless | sure | 00:34 |
| lifeless | this check isn't complete though | 00:34 |
| lifeless | which is the other issue | 00:34 |
| lifeless | aieee | 00:38 |
| lifeless | other broken code | 00:38 |
| lifeless | for email_addr in addresses: | 00:38 |
| wgrant | Oh? | 00:38 |
| lifeless | discards all but the last handler found | 00:38 |
| wgrant | Heh | 00:38 |
| lifeless | see the end of handle_one_mail | 00:38 |
| lifeless | looks like using cc: can make our mail handling do some interesting and odd stuff | 00:39 |
| lifeless | anyhoo | 00:39 |
| lifeless | *blinkers* | 00:39 |
| wgrant | Why would it be using To or Cc? | 00:39 |
| wgrant | It should be using X-Launchpad-To | 00:40 |
| lifeless | shoo. Go read. | 00:40 |
| wgrant | Which is the envelope sender. | 00:40 |
| lifeless | thou shalt be blind. And don't say I didn't warn thee. | 00:40 |
| wgrant | So, yes, it uses X-Launchpad-To unless it's not present. | 00:40 |
| wgrant | Not that bad. | 00:40 |
| lifeless | well | 00:41 |
| lifeless | we've some funky in our mail pipeline and we haven't identified it | 00:41 |
| wgrant | Well, we fixed some of it two weeks ago. | 00:41 |
| lifeless | ok please rollback | 00:54 |
| lifeless | I have written up a hopefully helpful explanation for abentley | 00:54 |
| lifeless | if you've other or better suggestions for how to tackle it, please say so | 00:55 |
| wgrant | lifeless: Done, thanks/ | 00:59 |
| lifeless | thank you | 01:01 |
| LPCIBot | Project windmill-db-devel build #347: STILL FAILING in 1 hr 5 min: https://lpci.wedontsleep.org/job/windmill-db-devel/347/ | 01:14 |
| wgrant | lifeless: The security hole is this: using a crafted or predicted msgid an attacker can cause Launchpad to generate a link to a mail that was sent to a private bug or mailing list when they have no such permission. | 01:50 |
| wgrant | lifeless: I thought so too. | 01:50 |
| wgrant | But it's not the case. | 01:50 |
| wgrant | I investigated when I looked at trying to fix this bug a few weeks back. | 01:50 |
| wgrant | It grabs all the Messages with the right Message-ID, and compares the content. | 01:51 |
| wgrant | You can possibly obtain attachments if you know all the textual content, I guess. | 01:51 |
| === Ursinha-afk is now known as Ursinha | ||
| lifeless | wgrant: fromMessage is fine | 01:52 |
| lifeless | wgrant: aarons patch wasn't | 01:52 |
| wgrant | lifeless: I don't see a new security bug. The returned message isn't used for anything. It just returns None to exit the handler, right? | 01:55 |
| lifeless | wgrant: if the patch were changed to call the handlers using the result of messageset.get(rfc822id), it would open a security hole. | 01:57 |
| wgrant | lifeless: Yes. | 01:57 |
| lifeless | (not to mention still crashing in the same way) | 01:57 |
| lifeless | wgrant: thats what I meant. | 01:57 |
| lifeless | the usage of messageset.get(rfc822id) is not sufficient to determine 'same email' nor 'can see the email' | 01:58 |
| wgrant | Ah, it helps if I read your entire reply. | 01:59 |
| lifeless | *snort* | 01:59 |
| wgrant | It was long, and my initial skim revealed a statement that I knew to be false! | 02:00 |
| lifeless | feel free to reply and editorialise | 02:00 |
| LPCIBot | Project windmill-devel build #155: STILL FAILING in 1 hr 10 min: https://lpci.wedontsleep.org/job/windmill-devel/155/ | 02:24 |
| poolie | hi all | 02:28 |
| lifeless | hi poolie | 02:31 |
| lifeless | poolie: random question for you | 02:31 |
| lifeless | if the lp bzr+ssh/sftp codehosting project were a separate tree, do you think your team would do anything interesting with it ? | 02:32 |
| spiv | lifeless: hmm. Occasionally users ask about how to run a bzr server with some access control and/or authentication that isn't easily satisfied by using authorized_keys directives and filesystem permissions | 02:37 |
| spiv | lifeless: so I guess having a less intimidating tree to extract that from, or at least learn from, might be helpful to someone. | 02:38 |
| poolie | hi lifeless | 02:39 |
| lifeless | spiv: tim has extracted the code but adapted it to a uni hosting solution | 02:39 |
| poolie | well | 02:39 |
| lifeless | so one of the candidate services - and I think a low hanging fruit - is one that still talks xmlrpc | 02:39 |
| poolie | you know there was john's forking lp server project | 02:39 |
| poolie | that would probably have needed to touch only that code | 02:39 |
| poolie | and landing it has been pretty hard | 02:39 |
| poolie | partly just because of bugs that appeared under heavy load; and those would have needed to be solved anyhow | 02:40 |
| lifeless | right | 02:40 |
| poolie | but, i think it would certainly have made it easier | 02:40 |
| lifeless | I was going to say | 02:40 |
| poolie | for instance easier to run up an ec2 instance and hammer it | 02:40 |
| lifeless | poolie: really? | 02:40 |
| lifeless | 'ec2 demo'; wait; hammer it. | 02:40 |
| poolie | hm | 02:40 |
| poolie | i wonder if jam tried that | 02:41 |
| poolie | perhaps not actually any easier | 02:41 |
| lifeless | spivs comment is more interesting :) | 02:41 |
| poolie | anyhow i guess there are two questions here | 02:41 |
| lifeless | the friction-to-change-in-lp aspect is well covered I think | 02:41 |
| poolie | :-P | 02:41 |
| lifeless | I'm curious about other interesting things | 02:41 |
| poolie | i don't think this would really directly satisfy those users | 02:42 |
| lifeless | like - adopt it for bzr's on server (make some of the policies pluggable, for instance) | 02:42 |
| poolie | it might be a step towards having a common codebase | 02:42 |
| lifeless | *own* | 02:42 |
| poolie | hm, there is an _apparent_ contradiction here with wanting to make codebrowse more folded into launcphad | 02:43 |
| lifeless | how so ? | 02:43 |
| lifeless | actually | 02:43 |
| poolie | at any rate there is a kind of precedent there for having one program that is used both by lp and externally | 02:43 |
| lifeless | contractors here | 02:43 |
| lifeless | I will be back in a bit | 02:43 |
| lifeless | ah no | 02:43 |
| lifeless | false alarum | 02:43 |
| poolie | a few dimensions: | 02:45 |
| poolie | - would this make it easier to make changes on codehosting in lp.net | 02:45 |
| poolie | - are we actually likely to want to make any changes to it | 02:45 |
| poolie | - would it make it easier to reuse externally | 02:45 |
| lifeless | so cool interesting things is actually what I wanted to ask about :) | 02:47 |
| lifeless | you could say no to all your three things there and still do something cool or interesting with it | 02:47 |
| lifeless | I merely mean to encourage out-of-box stuff | 02:48 |
| poolie | it could well do | 02:48 |
| poolie | hm | 02:48 |
| poolie | could well do | 02:51 |
| poolie | i may be inside the box but it seems like they would still be gated by needing to actually get run somewhere | 02:52 |
| poolie | either deployed on lp or run by other people | 02:52 |
| lifeless | sure | 02:53 |
| lifeless | perhaps saying to to /all 3/ isn't plausible :) | 02:53 |
| poolie | at the moment i feel those 3 dimensions all get a weak yes at the moment | 02:54 |
| poolie | i'm trying to think of things that would make sense to do in there but not in standalone bzr serve | 02:54 |
| poolie | perhaps structured audit logs or notifications? | 02:54 |
| lifeless | it implements ssh | 02:58 |
| lifeless | so user management | 02:58 |
| lifeless | multiplexing onto one account | 02:58 |
| poolie | mm | 02:59 |
| poolie | oh, easy deployment on windows? | 02:59 |
| poolie | fsvo easy :) assuming you have to install twisted and everything | 02:59 |
| lifeless | brb | 02:59 |
| poolie | it would be an interesting case where you'd like to provide a fake/simple implementation of the other side of the services it uses | 03:00 |
| poolie | the registry type things read by xmlrpc | 03:00 |
| lifeless | yes | 03:25 |
| lifeless | wow | 04:12 |
| lifeless | only 2 failures | 04:12 |
| wgrant | lifeless: On? | 04:18 |
| lifeless | mailed you for your edification | 04:22 |
| wgrant | Ah, that bug. | 04:23 |
| lifeless | hmm | 04:23 |
| lifeless | person.join(team) and team.addMember are asymmetric | 04:23 |
| lifeless | I suspect this will cause issues | 04:23 |
| lifeless | however | 04:24 |
| lifeless | I shall close my eyes and go bravely forward. | 04:24 |
| lifeless | (specifically team.join doesn't honour admin or owner rights) | 04:25 |
| lifeless | it prefilters, wrongly | 04:25 |
| lifeless | hah | 04:28 |
| lifeless | it goes deeper though | 04:28 |
| lifeless | getDirectAdministrators includes the owner | 04:28 |
| lifeless | I'll leave that for now | 04:28 |
| wgrant | The bug says that. | 04:28 |
| lifeless | bah so it does | 04:31 |
| lifeless | actually | 04:33 |
| lifeless | I'm going to exclude that | 04:33 |
| lifeless | there is a (reasonable) argument that owner implies admin | 04:34 |
| lifeless | (or that our admin stuff is not granular enough) | 04:34 |
| lifeless | mmm, but then it might be confusing. | 04:34 |
| lifeless | it would be odd for an owner to have to join the team to rename it or change its metadata | 04:35 |
| lifeless | so - excluding admin for now | 04:35 |
| lifeless | why does the sample data have someone called 'dumper' ? >< | 04:48 |
| wgrant | Same reason as mark is there, I guess. | 04:49 |
| wgrant | Renamed to avoid pings. | 04:49 |
| lifeless | ah | 04:49 |
| lifeless | wgrant: do you have any ideas about the first failure there ? | 04:56 |
| lifeless | its got me a little flummoxed | 04:56 |
| lifeless | mark has a row for membership in ~admins | 05:00 |
| lifeless | hah | 05:02 |
| lifeless | I wonder if we have naffed sample data | 05:02 |
| lifeless | mark.inTeam(getUtility(ILaunchpadCelebrities).admin) | 05:02 |
| lifeless | False | 05:02 |
| LPCIBot | Project windmill-db-devel build #348: STILL FAILING in 1 hr 5 min: https://lpci.wedontsleep.org/job/windmill-db-devel/348/ | 05:03 |
| wgrant | lifeless: Hah. Probably. | 05:13 |
| wgrant | lifeless: There's a script for that. | 05:13 |
| lifeless | its more subtle than that | 05:19 |
| lifeless | can_edit_team is returning False | 05:19 |
| lifeless | also its checking the way-bong side of the equation but thats a different discussion | 05:20 |
| wgrant | Hm, TP seems consistent. | 05:20 |
| wgrant | :( | 05:20 |
| lifeless | eah | 05:23 |
| lifeless | s/^/y | 05:24 |
| lifeless | ok its true at the start | 05:29 |
| lifeless | something in this test script corrupts it | 05:29 |
| lifeless | bsearch time | 05:30 |
| lifeless | and looks like we manually expire mark from admins | 05:31 |
| wgrant | Yay | 05:31 |
| lifeless | line 612 | 05:31 |
| lifeless | this test was only working because mark owns ~admins in the sample data | 05:32 |
| wgrant | Awesome. | 05:32 |
| lifeless | which is what I'm changing | 05:33 |
| lifeless | ok now its just weird | 05:37 |
| lifeless | admin_person *is* an admin | 05:37 |
| lifeless | but its still throwing a security proxy error | 05:37 |
| wgrant | inTeam cache busted? | 05:42 |
| lifeless | I tried disabling that | 05:42 |
| lifeless | its not reach inTeam | 05:42 |
| lifeless | so a cached security assertion or something | 05:42 |
| wallyworld_ | lifeless: is there a pattern we use to bulk load (eager fetch) fields of type CollectionField? rather than just single object references | 05:54 |
| lifeless | yes, see lp.services.database.bulk.load_referenced | 05:55 |
| wallyworld_ | thanks | 05:55 |
| wallyworld_ | lifeless: you mean load_referencing? i'm using that and it's not preventing db hits | 05:57 |
| wgrant | You need to make it a cachedproperty. | 05:57 |
| lifeless | wallyworld_: that gets the data, it won't seed it for traversals. | 05:58 |
| wallyworld_ | bugger | 05:58 |
| wallyworld_ | it's not worht making it a cachedproperty since the field is only referenced once for each object | 05:59 |
| wallyworld_ | i guess there's no way to bulk load *and* seed the traversals? | 05:59 |
| lifeless | why do you say its not worth it ? | 06:01 |
| lifeless | also which types are we talking about ? | 06:01 |
| lifeless | wgrant: >< its still using 'mark' for some -bizarre- reason | 06:02 |
| * lifeless tries to figure it out | 06:02 | |
| wallyworld_ | lifeless: there's a list of 6 people. we display irc nick. we only have to access the irc nic collection field once per rendering per person | 06:04 |
| wallyworld_ | but that does one query per person | 06:04 |
| lifeless | right, you want a cached property. | 06:04 |
| lifeless | totally appropriate | 06:04 |
| lifeless | see the other use of load_referencing | 06:04 |
| wallyworld_ | in this case, the irc nic is only defined as a class field of type SQLMultipleJoin. so i will need to introduce a new property? | 06:06 |
| lifeless | yes | 06:06 |
| lifeless | you need to move the join attribute to a private attribute | 06:07 |
| wallyworld_ | ok | 06:07 |
| lifeless | add a cached property with the same name as the current join attribute | 06:08 |
| lifeless | seed it appropriately and deal with fallout | 06:08 |
| wgrant | Do you need the join attribute? | 06:08 |
| lifeless | well, perhaps not. | 06:09 |
| wgrant | Just Stormify it. | 06:09 |
| wgrant | In the cachedproperty. | 06:09 |
| wgrant | Return a list of a Stormified query. | 06:09 |
| lifeless | wgrant: Reference is storm :P | 06:09 |
| wgrant | Less SQLObject, better for the world :) | 06:09 |
| wgrant | SQLMultipleJoin is not. | 06:09 |
| lifeless | true | 06:09 |
| lifeless | but stormify != remove join attribute | 06:10 |
| lifeless | anyhow | 06:10 |
| lifeless | wtf | 06:10 |
| lifeless | pasting you a snippet | 06:10 |
| wgrant | k, I am intrigued. | 06:10 |
| wallyworld_ | also - Person.preferredemail is a cachedproperty. but it hits the database once per person cause it does a query inside the property getter. and no luck so far seeding the data | 06:10 |
| wgrant | lifeless: Hm? I meant create a Stormified query. | 06:10 |
| wgrant | Not Stormify the class. | 06:10 |
| wgrant | wallyworld_: Which name are you seeding? | 06:10 |
| lifeless | wgrant: yes, you could also just use a storm Reference directly. | 06:10 |
| wgrant | ReferenceSet, possibly, yes. | 06:11 |
| wgrant | Hmm. | 06:11 |
| wgrant | How is admin_person set there? | 06:11 |
| wallyworld_ | perhaps i'm not doing the seeding correctly | 06:11 |
| wallyworld_ | bulk.load_referencing(EmailAddress, persons, ['personID']) | 06:11 |
| lifeless | wgrant: >>> admin_person = personset.getByEmail(ADMIN_EMAIL) | 06:11 |
| lifeless | wallyworld_: use PersonSet.getPrecachedPersonsByIds | 06:11 |
| wallyworld_ | it does the correct sql from what i can see, but.... | 06:11 |
| lifeless | wallyworld_: and listify its output | 06:12 |
| wallyworld_ | right. will take a look. thanks | 06:12 |
| lifeless | wallyworld_: *always* use that when dealing with persons | 06:12 |
| lifeless | wallyworld_: also change the vocab to just return the Person ids | 06:12 |
| wgrant | lifeless: Shouldn't that always be name16? | 06:12 |
| lifeless | wgrant: yes. | 06:12 |
| lifeless | wgrant: and it is! | 06:12 |
| wgrant | So why is the test saying it should be something else? | 06:12 |
| lifeless | exactly! | 06:13 |
| wallyworld_ | lifeless: so this will need to be done across the board for all person related vocabs | 06:13 |
| lifeless | wallyworld_: one query at a time | 06:13 |
| wgrant | Welcome to massive layering violations :) | 06:13 |
| wallyworld_ | np, just wondering | 06:13 |
| wallyworld_ | i guess the vocab stuff predated the getPrecachedPersons... stuff | 06:14 |
| lifeless | yes | 06:14 |
| lifeless | until 11 months ago we liked to requery everything | 06:14 |
| wallyworld_ | right. | 06:15 |
| wallyworld_ | context = makes more sense | 06:16 |
| lifeless | can has review? https://code.launchpad.net/~lifeless/launchpad/bug-227494/+merge/62943 | 06:28 |
| wgrant | lifeless: Have you checked the teams that this will affect? | 06:31 |
| wgrant | They were mostly Ubuntu teams when I last looked. | 06:31 |
| lifeless | ~admins :) | 06:31 |
| lifeless | no I haven't | 06:32 |
| poolie | lifeless: putting a commit message on my restfulclient mp didn't cause it to land | 06:34 |
| lifeless | 1300 rows | 06:35 |
| lifeless | poolie: hmm, need to ask someone that knows. benji or gary come to mind. | 06:35 |
| lifeless | poolie: unless README says something useful | 06:35 |
| wgrant | "cause it to land"? | 06:35 |
| wgrant | Landings don't happen automatically. | 06:35 |
| poolie | i guess what i really want to ask is: how is the trunk of restfulclient maintained | 06:36 |
| poolie | by pqm, tarmac, manually, etc | 06:36 |
| poolie | i could mail them | 06:36 |
| lifeless | wgrant: some subprojects use tarmac | 06:36 |
| wgrant | lazr.restful is manual. | 06:36 |
| wgrant | Not sure about restfulclient. | 06:36 |
| wgrant | lifeless: Do they? | 06:37 |
| poolie | i'll subscribe benji | 06:37 |
| poolie | thanks | 06:37 |
| wgrant | lifeless: person.merged IS NOT NULL | 06:37 |
| wgrant | Er, IS NULL | 06:37 |
| wgrant | Cuts it down to 500ish. | 06:37 |
| lifeless | wgrant: 471 | 06:37 |
| lifeless | wgrant: already done that | 06:37 |
| lifeless | wgrant: some are truely noddy - https://launchpad.net/~ubuntu-jewish | 06:38 |
| wgrant | lifeless: You're calling *that* noddy? | 06:38 |
| wgrant | There are far worse :) | 06:38 |
| wgrant | Far, far worse. | 06:38 |
| lifeless | wgrant: I am - it has 1 proposed member, and the owner has left the team. | 06:38 |
| lifeless | wgrant: I wasn't saying anything about the name or intent of the team. | 06:38 |
| wgrant | I know. | 06:39 |
| wgrant | But there are the teams which invite every team. | 06:39 |
| wgrant | And have no members. | 06:39 |
| lifeless | yes | 06:39 |
| lifeless | affected by this ? | 06:39 |
| wgrant | Like the one that showed up last week. | 06:39 |
| wgrant | Invited dozens of teams. | 06:39 |
| wgrant | Owner had left it. | 06:39 |
| wgrant | Awesome. | 06:39 |
| lifeless | win | 06:39 |
| lifeless | anyhow | 06:39 |
| lifeless | so, I think we want to do this | 06:39 |
| wgrant | And then some of the invited teams had bad admin settings, so randoms approved them, and the real admins couldn't leave :( | 06:40 |
| wgrant | Yes. | 06:40 |
| wgrant | I think so. | 06:40 |
| lifeless | I will happily blog before it goes live | 06:40 |
| lifeless | its arguably exploitable today | 06:40 |
| lifeless | (find something that checks one way but not the other and leverage it) | 06:41 |
| wgrant | Yeah | 06:41 |
| lifeless | poolie: it should still be approved ;) | 07:00 |
| lifeless | poolie: I just meant ask benji about landing mechanisms | 07:00 |
| poolie | ffs "ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'" _again_ | 07:02 |
| poolie | do you ever see this? | 07:02 |
| poolie | should we subscribe some lp developer team to loggerhead reviews? | 07:10 |
| poolie | at the moment they seem to go by default to.. beuno and ~bzr or something | 07:11 |
| lifeless | loggerhead-reviewers is the reviewer team | 07:12 |
| lifeless | https://launchpad.net/~loggerhead-reviewers/+members | 07:12 |
| lifeless | so they already are | 07:12 |
| poolie | oh, ok | 07:12 |
| poolie | i must have implicitly claimed it | 07:12 |
| poolie | nm then | 07:13 |
| LPCIBot | Project windmill-db-devel build #349: STILL FAILING in 1 hr 6 min: https://lpci.wedontsleep.org/job/windmill-db-devel/349/ | 07:16 |
| === almaisan-away is now known as al-maisan | ||
| === al-maisan is now known as almaisan-away | ||
| lifeless | wgrant: follow up on https://code.launchpad.net/~lifeless/launchpad/bug-227494/+merge/62943 ? | 07:47 |
| wgrant | lifeless: You are arbitrarily changing the user to an admin half-way through because the owner has no privs. | 07:49 |
| wgrant | That may be invalidating subsequent tests. | 07:49 |
| wgrant | Even if it isn't, it's rather confusing to change it partially globally when only that one block needs it. | 07:50 |
| lifeless | wgrant: have you looked through that doctest ? | 07:50 |
| lifeless | hint: it does this a lot already | 07:50 |
| wgrant | It's a doctest. No. | 07:50 |
| lifeless | and the previous user was one it thought was an admin. | 07:50 |
| wgrant | Ah, I see. | 07:50 |
| wgrant | OK. | 07:50 |
| wgrant | An admin, but not an Admin. | 07:50 |
| wgrant | Not an ~admin, sorry. | 07:50 |
| lifeless | yes, a ~admin | 07:50 |
| wgrant | How did it stop being an admin? | 07:51 |
| lifeless | because it was mark | 07:51 |
| wgrant | Because it was the owner of ~admins? | 07:51 |
| lifeless | yes | 07:51 |
| wgrant | But the test removed that membership? | 07:51 |
| lifeless | yes | 07:51 |
| wgrant | ahhhhhhhh | 07:51 |
| wgrant | Carry on, then. | 07:51 |
| lifeless | it was BROKEN | 07:51 |
| wgrant | Preferably beating that test to death on the way. | 07:51 |
| lifeless | now I just need a reviewer. | 07:53 |
| lifeless | Perhaps we should graduate you now | 07:53 |
| wgrant | Hi StevenK. | 07:53 |
| wgrant | Heh | 07:53 |
| wgrant | Possibly. | 07:53 |
| lifeless | I have been waiting for you to consistently look below the surface on non-soyuz code | 07:53 |
| lifeless | which you have been improving on | 07:54 |
| lifeless | I don't recall finding things you missed recently other than the extraordinarily messy gpghandler stuff, which confused everyone. | 07:54 |
| lifeless | so, I think graduation is in order | 07:55 |
| wgrant | Yeah, the gpghandler example is bad, but I don't think anyone non-Twisted and non-you would have caught that either.' | 07:56 |
| wgrant | Since most people don't have much idea of Twisted :( | 07:56 |
| lifeless | facepalm | 07:58 |
| * lifeless sobs | 07:58 | |
| wgrant | ? | 07:58 |
| wgrant | The other test? | 07:58 |
| spm | wgrant: are you being mean to lifeless again??? | 07:58 |
| lifeless | https://code.launchpad.net/~xaav/loggerhead/export-tarball/+merge/62941 | 07:58 |
| lifeless | copy and paste from bzrlib | 07:58 |
| lifeless | with mild tweaks | 07:58 |
| wgrant | Heh | 07:59 |
| wgrant | lifeless: So, am I graduating? | 07:59 |
| mrevell | Good morning | 07:59 |
| lifeless | wgrant: yes, I am mailing -dev | 08:00 |
| wgrant | lifeless: Thanks! | 08:00 |
| StevenK | wgrant: Grats! | 08:00 |
| wgrant | return dumps({ | 08:03 |
| wgrant | 'row_id': 'tasksummary%s' % self.context.id, | 08:03 |
| wgrant | 'bugtask_path': '/'.join( | 08:03 |
| wgrant | [''] + canonical_url(self.context).split('/')[3:]), | 08:03 |
| stub | lifeless: BugSummary.viewed_by is painful because of indirect subscriptions. | 08:05 |
| lifeless | stub: they don't grant visibility | 08:06 |
| lifeless | stub: so shouldn't be counted and don't matter | 08:06 |
| stub | So only direct subscribers can view private bugs? That should be fine then. | 08:07 |
| lifeless | yes | 08:07 |
| lifeless | where direct means 'in the team that is in the bugsubscription' | 08:07 |
| stub | Do bug supervisors get bugsubscription records created when a bug becomes private? | 08:07 |
| lifeless | yes | 08:08 |
| lifeless | all indirect subs do (thats a bug) | 08:08 |
| stub | Maybe it is now a feature ;) | 08:08 |
| lifeless | well | 08:08 |
| lifeless | the creation is fine | 08:08 |
| lifeless | the fact that all random 'happen to have a structural subscription' get subscribed is the bug | 08:08 |
| lifeless | wgrant: so, is that +1 on the branch then ? | 08:15 |
| wgrant | lifeless: I rereviewed a couple of minutes ago. | 08:16 |
| wgrant | So, yes. | 08:16 |
| lifeless | the mail just came in | 08:17 |
| adeuring | good morning | 09:13 |
| lifeless | stub: are our fti indices bloated again ? | 09:21 |
| lifeless | 94 / 42 Person:EntryResource:searchTasks | 09:21 |
| lifeless | 70 / 24 Distribution:EntryResource:searchTasks | 09:21 |
| lifeless | 45 / 12 Distribution:+bugs | 09:21 |
| lifeless | top timeouts | 09:21 |
| stub | lifeless: back at 70% bloat, yeah. | 09:22 |
| stub | bug_fti I mean | 09:23 |
| lifeless | >< | 09:23 |
| * lifeless stabs bug heat | 09:23 | |
| nigelb | Wait, so canonical employees don't automatically become reviewers? Wow, that's interesting | 09:24 |
| StevenK | nigelb: It's a little more complicated than that, but not much. | 09:25 |
| StevenK | But no, they don't. | 09:25 |
| stub | lifeless: it is bloating between 1% and 2.5% per day looks like. It should be trivial to confirm this is bug heat calculation - just turn that script off for a day or two. | 09:25 |
| nigelb | StevenK: But how open is the process to outsiders, like me, for instance | 09:25 |
| lifeless | nigelb: quite open | 09:26 |
| === gmb changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | On call reviewer: gmb | Critical bugs:208 - 0:[######=_]:256 | ||
| lifeless | nigelb: the one thing you can't do is get to the point of approving other non-staff changes or actually landing changes | 09:26 |
| gmb | allenap: Any objections to me marking https://code.launchpad.net/~allenap/launchpad/rabbit-fixture-cookie-file/+merge/62709 as Work In Progress to make it go away from my todo list? | 09:26 |
| lifeless | nigelb: we require that all changes have *a* staff member involved. | 09:27 |
| lifeless | nigelb: because of the way things deploy and the risks around data exposure | 09:27 |
| nigelb | Ah, that explains that yes. | 09:27 |
| allenap | gmb: None, done. | 09:27 |
| gmb | allenap: Ta. | 09:27 |
| nigelb | lifeless: I expect there's a lot of private data with the hidden emails which would be illegal for a non-staff member to access. | 09:28 |
| gmb | poolie: Similarly, do you want https://code.launchpad.net/~mbp/launchpad/mail-scope/+merge/60281 reviewed now or should it wait until you've fixed the test failures? | 09:28 |
| lifeless | bigjools: :( - bug 790535 | 09:30 |
| bigjools | is that the bug where mup won't tell me what it is? :) | 09:30 |
| lifeless | Distribution:+ppas timeouts | 09:34 |
| lifeless | https://bugs.launchpad.net/launchpad/+bug/790535 | 09:34 |
| poolie | gmb more review now would be good | 09:37 |
| poolie | i doubt if the failure is deep | 09:37 |
| gmb | poolie: Righto, I'll take a sken presently. | 09:37 |
| StevenK | gmb: 'sken' ? | 09:38 |
| gmb | StevenK: "Look". | 09:38 |
| poolie | reading inference 101 | 09:38 |
| poolie | ls | 09:38 |
| StevenK | gmb: I figured as such, I was just wondering about its entomology. | 09:39 |
| gmb | StevenK: It has nothing to do with insects. | 09:39 |
| gmb | :) | 09:39 |
| StevenK | Oh, arse. | 09:39 |
| gmb | But it's Lancs / Yorks (possibly other northern places too) dialectic slang, AFAICT. | 09:39 |
| gmb | I grew up with it, so I've no idea where it came from. | 09:39 |
| gmb | StevenK: But if it helps, The Beatles probably said it. (Boom boom). | 09:40 |
| gmb | It's only 9:41am and I'm being punny. What else will the day hold? | 09:41 |
| nigelb | This channel wins for the most interesting conversations EVAR. | 09:43 |
| gmb | I suspect that the barrier to entry for that competition is very, very low. | 09:43 |
| nigelb | No, I'm in #ubuntu-offtopic, so its very high | 09:44 |
| nigelb | I still need to fix a bug I introduced to LP, sigh. | 09:45 |
| dpm | hi danilos, morning. Do you happen to remember where rosetta/deleted-templates (the location where we used to put templates we wanted out of the way) went after the unification of all lp applications into a single launchpad project? I already asked you a while ago and you found out, but I can't remember where it was and I can't find it in my logs | 09:49 |
| dpm | or if anyone else can help ^ | 09:49 |
| danilos | dpm, probably the 'null' project | 09:56 |
| danilos | dpm, also, there's old-lp-translations that's just a deactivated and renamed 'rosetta' project, so that's what has deleted-templates stuff as well | 09:56 |
| dpm | thanks danilos, I'll try both | 09:57 |
| dpm | danilos, old-lp-translations/deleted-templates worked, thanks | 10:01 |
| danilos | yw | 10:01 |
| LPCIBot | Project windmill-devel build #156: STILL FAILING in 1 hr 8 min: https://lpci.wedontsleep.org/job/windmill-devel/156/ | 10:02 |
| gmb | poolie: r=me | 10:13 |
| === almaisan-away is now known as al-maisan | ||
| poolie | thanks gmb | 10:40 |
| poolie | gmb: do you think you could pilot-in james's patch https://code.launchpad.net/~james-w/launchpad/more-matchers/+merge/32057 | 10:42 |
| gmb | poolie: Sure thing. | 10:42 |
| poolie | and perhaps some of the loggerhead patches | 10:42 |
| poolie | james's should be trivial | 10:42 |
| poolie | hooray :) | 10:43 |
| gmb | poolie: I've never landed a loggerhead patch before; anything special I need to know? | 10:43 |
| gmb | Or is it PQM all the way down? | 10:43 |
| poolie | i don't think there is a pqm | 10:43 |
| poolie | imbw | 10:43 |
| poolie | i think it's just direct commits | 10:43 |
| poolie | the hard thing will be getting to know the code enough to review it :/ | 10:43 |
| poolie | oh, but jam is online, and he knows about it | 10:44 |
| gmb | Ah, good. THat might be safer. | 10:44 |
| poolie | but if you drive them that would be good | 11:10 |
| poolie | some review or landing is better than none | 11:10 |
| gmb | poolie: Sure. I'll take a look at them today. | 11:11 |
| poolie | legend | 11:11 |
| === al-maisan is now known as almaisan-away | ||
| lifeless | night all | 11:58 |
| === almaisan-away is now known as al-maisan | ||
| LPCIBot | Project windmill-devel build #157: STILL FAILING in 1 hr 8 min: https://lpci.wedontsleep.org/job/windmill-devel/157/ | 12:21 |
| henninge | Hi gmb! Could you have a look at this mp of mine, please? ;-) | 13:31 |
| henninge | https://code.launchpad.net/~henninge/launchpad/bug-778129-person-picker/+merge/62894 | 13:31 |
| gmb | henninge: Sure thing. | 13:31 |
| gmb | henninge: r=me with comments | 13:43 |
| henninge | gmb: thanks | 13:43 |
| henninge | gmb: I copied the indention from another test case in the same file. I can fix both. | 13:44 |
| gmb | henninge: Brilliant, thanks. | 13:44 |
| henninge | gmb: is !=== also to be used when comparing to literal numbers? | 13:45 |
| gmb | Oo. | 13:45 |
| gmb | henninge: Good question. In that case, leave it. | 13:45 |
| gmb | I'm not sure ( and if it works, don't fix it) | 13:46 |
| gmb | But if you want to find out, that's fine by me :) | 13:46 |
| gmb | Like I said, it's not worth blocking on. | 13:46 |
| henninge | although Crockford acts like there is only === and !===, so it will probably just work. | 13:46 |
| * henninge tries out. | 13:46 | |
| === matsubara-afk is now known as matsubara | ||
| gmb | jam: Do you know what the situation is with https://code.launchpad.net/~malept/loggerhead/standalone-auth/+merge/18828? | 13:52 |
| jam | not offhand | 13:52 |
| gmb | Okay. | 13:52 |
| gmb | I'll add a comment and put it to work in progress then to make it leave the review queue. | 13:52 |
| deryck | henninge, ping for standup | 14:02 |
| henninge | deryck: sorry | 14:05 |
| deryck | henninge, http://pastebin.ubuntu.com/615334/ | 14:09 |
| === jam1 is now known as jam | ||
| LPCIBot | Project windmill-db-devel build #350: STILL FAILING in 1 hr 6 min: https://lpci.wedontsleep.org/job/windmill-db-devel/350/ | 14:34 |
| * gmb -> short break | 14:35 | |
| flacoste | wgrant: congratulations for your reviewerhood! | 14:47 |
| wgrant | flacoste: Thanks! | 14:47 |
| nigelb | oooh, yeah. I saw that mail when I woke up. | 14:47 |
| nigelb | Congrats wgrant! | 14:47 |
| bigjools | damn, now we have to start being nice to him | 14:48 |
| jcsackett | clear | 15:01 |
| jtv | gmb: got a free slot on the review queue? https://code.launchpad.net/~jtv/launchpad/db-bug-790161/+merge/63002 | 16:07 |
| gmb | jtv: Sure thing. | 16:07 |
| jtv | Splenders. | 16:07 |
| gmb | Tip-top. | 16:07 |
| gmb | jtv: r=me | 16:52 |
| jtv | thanks! | 16:52 |
| gmb | np | 16:52 |
| sinzui | gmb: is it too late for you to review https://code.launchpad.net/~sinzui/launchpad/display-name-with-id-0/+merge/63006 | 16:53 |
| gmb | sinzui: Nope. I'll look presently. | 16:54 |
| * deryck goes offline for lunch, back soon | 16:54 | |
| === beuno is now known as beuno-lunch | ||
| === matsubara is now known as matsubara-lunch | ||
| gmb | sinzui: r=me | 17:29 |
| === gmb changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | On call reviewer: - | Critical bugs:208 - 0:[######=_]:256 | ||
| sinzui | thanks gmb | 17:33 |
| === al-maisan is now known as almaisan-away | ||
| jcsackett | exit | 17:40 |
| bigjools | You have running jobs | 17:51 |
| sinzui | jcsackett: do you have time to talk? | 17:53 |
| === salgado is now known as salgado-lunch | ||
| === beuno-lunch is now known as beuno | ||
| LPCIBot | Project windmill-devel build #158: STILL FAILING in 1 hr 9 min: https://lpci.wedontsleep.org/job/windmill-devel/158/ | 18:53 |
| LPCIBot | Project db-devel build #601: FAILURE in 4 hr 40 min: https://lpci.wedontsleep.org/job/db-devel/601/ | 19:01 |
| jcsackett | sinzui: i am available when you are. | 19:03 |
| === salgado-lunch is now known as salgado | ||
| === matsubara-lunch is now known as matsubara | ||
| sinzui | jcsackett: I am available to talk now | 19:39 |
| jcsackett | sinzui: cool. mumble or sip? | 19:39 |
| sinzui | I am on mumble now | 19:39 |
| * jcsackett goes to fire up mumble. | 19:39 | |
| LPCIBot | Project windmill-db-devel build #351: STILL FAILING in 1 hr 4 min: https://lpci.wedontsleep.org/job/windmill-db-devel/351/ | 19:57 |
| flacoste | wtf | 20:18 |
| flacoste | what is this not_exported = TextLine(title="Not exported") | 20:19 |
| flacoste | ? | 20:19 |
| flacoste | in interfaces declaration in sourcepackage.py | 20:19 |
| flacoste | ok | 20:22 |
| flacoste | disregard that wtf | 20:22 |
| flacoste | i was in a test file, not in sourcepacakge.py | 20:22 |
| lifeless | moin | 20:25 |
| LPCIBot | Project windmill-db-devel build #352: STILL FAILING in 41 min: https://lpci.wedontsleep.org/job/windmill-db-devel/352/ | 20:39 |
| abentley | lifeless: can we chat about bug #595166? | 20:41 |
| _mup_ | Bug #595166: IntegrityError raised filing a bug using the email interface <bad-commit-13139> <easy> <email> <lp-bugs> <oops> <qa-bad> <Launchpad itself:Fix Committed by abentley> < https://launchpad.net/bugs/595166 > | 20:41 |
| lifeless | abentley: sure thing | 20:49 |
| lifeless | abentley: just give me 5 minutes to sort some cats out | 20:50 |
| abentley | lifeless: sure. | 20:50 |
| lifeless | ok they seem happy for now | 20:55 |
| lifeless | would you like voice ? | 20:55 |
| abentley | lifeless: yes, please. Skype, I imagine? | 20:55 |
| lifeless | yeah. .nz.win ;) | 20:56 |
| lifeless | interestingly the canonical voip service works well | 20:56 |
| lifeless | just mumble hates freedom :) | 20:56 |
| === almaisan-away is now known as al-maisan | ||
| abentley | lifeless: btw, I would be curious to try canonical voip. I recently set it up on my phone. | 21:25 |
| lifeless | abentley: nice | 21:27 |
| lifeless | abentley: lets do that next time | 21:27 |
| === al-maisan is now known as almaisan-away | ||
| flacoste | gary_poster: i'm testing object's permission, I would use check_permission, but I think you had another suggestion | 22:00 |
| flacoste | check_permission coming from canonical.launchpad.webapp.authorization | 22:00 |
| gary_poster | flacoste, I generally try to use canWrite and canRead (might have forgotten names) from zope.security | 22:01 |
| gary_poster | on call | 22:01 |
| flacoste | ack | 22:01 |
| lifeless | walk the dinosaur? | 22:02 |
| flacoste | lifeless: ? | 22:02 |
| lifeless | flacoste: ;) referencing a song | 22:04 |
| abentley | lifeless: care to do the review? https://code.launchpad.net/~abentley/launchpad/no-dedup/+merge/63044 | 22:07 |
| lifeless | abentley: sure, done. | 22:11 |
| abentley | lifeless: thanks. | 22:11 |
| lifeless | I editorialised a little for future reference | 22:12 |
| lifeless | I wonder if our mail handling doctests have something about duplication in them? | 22:12 |
| abentley | lifeless: could be. test_messages didnt. | 22:12 |
| abentley | lifeless: my new toy "fault line" didn't find strong correlations between changes to messages.py and changes to particular test files. | 22:14 |
| lifeless | abentley: does it consider mainline commits only ? | 22:15 |
| lifeless | abentley: I can imagine feature branches not having a high association but the mainline diffs having one | 22:15 |
| abentley | lifeless: no, it only looks at revisions that modified the file. I"d like to change that, but I don't know how to do it efficiently. | 22:15 |
| lifeless | you need the 'first mainline rev after the rev that modified the file' | 22:17 |
| abentley | lifeless: Yes. | 22:17 |
| lifeless | this is retrievable from merge_sorted revisions | 22:17 |
| abentley | lifeless: isn't that a whole-graph operation? | 22:17 |
| lifeless | abentley: yes, 4 seconds for me on lp | 22:18 |
| lifeless | abentley: you'd do it once per run though, giving you an efficient data structure to answer the question for all the modified revs | 22:18 |
| abentley | lifeless: Acceptable, given the whole operation takes ~20 seconds for me. | 22:19 |
| abentley | lifeless: message.txt does fail. Thanks for the tip. | 22:20 |
| lifeless | no worries | 22:20 |
| lifeless | sinzui: hi | 22:37 |
| lifeless | sinzui: got a few minutes? | 22:37 |
| sinzui | I do | 22:37 |
| lifeless | I had two questions for you | 22:37 |
| lifeless | one simple, one a little complex (perhaps needs voice) | 22:37 |
| lifeless | the simple one is with person/fmt:link-name-id | 22:37 |
| lifeless | do we still want fmt:link at all ? | 22:37 |
| lifeless | I was thinking we were going to change it everywhere | 22:38 |
| lifeless | which would be a simpler patch - just change the existing formatter. | 22:38 |
| sinzui | yes. It is correct for most cases such as tables and summaries | 22:38 |
| lifeless | That confuses me a little but ok. | 22:38 |
| sinzui | We have a specialised formatter to communicate the Lp id, but we never fully implemented | 22:38 |
| sinzui | I intend to complete the implementation | 22:39 |
| lifeless | the other question is about private public team membership interactions | 22:39 |
| lifeless | if you can spare some time to talk about it - doesn't need to be now - I'd like to tease the issues apart. I suspect we agree. | 22:39 |
| sinzui | lifeless: my sip is 7642 | 22:40 |
| === matsubara is now known as matsubara-afk | ||
| LPCIBot | Project windmill-db-devel build #353: STILL FAILING in 1 hr 5 min: https://lpci.wedontsleep.org/job/windmill-db-devel/353/ | 23:34 |
| LPCIBot | Yippie, build fixed! | 23:41 |
| LPCIBot | Project db-devel build #602: FIXED in 4 hr 40 min: https://lpci.wedontsleep.org/job/db-devel/602/ | 23:41 |
| lifeless | sinzui: I hope I captured things well in bug 405277 | 23:47 |
| _mup_ | Bug #405277: Private teams are not able to join other teams (public or private) <disclosure> <lp-registry> <Launchpad itself:Triaged> < https://launchpad.net/bugs/405277 > | 23:47 |
| lifeless | sinzui: it seems like 3 fairly contained changes to me. | 23:47 |
| sinzui | lifeless: this looks very good. Thank you/ | 23:48 |
| === salgado is now known as salgado-afk | ||
| lifeless | oh, I forgot the bit about 'and tell them the implications' | 23:56 |
| lifeless | adding that in | 23:56 |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!