/srv/irclogs.ubuntu.com/2011/12/02/#launchpad-dev.txt

lifelesswgrant: whats driving this; I thought we were happy with the owner/admin/member system00:00
wgrantlifeless: Owners are awkward, because they're an easily forgotten special case and they need to be queried for specially when reporting on access.00:01
wgrantAnd admins-can't-promote-admins confuses everyone, so needs to be abolished. And conflating admin+member is a bit silly and hard to display. Which means that ownership doesn't really have a purpose.00:02
lifelesswgrant: but owners don't get access, so they don't need special handling00:02
wgrantlifeless: Huh?00:02
lifelesswgrant: we stomped that out 6 months ago00:03
wgrantlifeless: My OEM project grants access to a project team.00:03
lifelessowners no longer get benefits granted to the team00:03
wgrantThe project team's owner has resigned :(00:03
lifelessthe team owner doesn't get access to the project00:03
wgrantBut my disclosure reporting views don't show the owner.00:03
lifelessand they don't need to.00:03
wgrantDespite they fact that they can add themselves or others to the team.00:03
wgrantThe reports are pretty damn useless if they don't tell me that Joe Random Former Employee can do whatever he wants.00:04
lifelessJoe Random could be in a private subteam with a legit sounding name and wouldn't be shown either00:06
wgrantSure, and that's the price we pay for supporting unstructured private teams.00:07
wgrantBut that can at least be detected.00:07
wgrantIf you hide the owner, it can't be.00:07
lifelessso, if admin doesn't imply membership you need the same special case for admins00:07
wgrantIf you have an invisible private team in your access list, you have to trust the team. We know that.00:07
wgrantYes.00:08
lifelessso, I don't think that removing owner is a good idea at the moment00:08
lifelessI acknowledge it may make sense00:08
lifelessbut it needs some thought, reasoning and consultatoin00:09
lifelessright now, my brain is full of u1 stuff, and its late for the folk I'm talking to about that, so I'm going to stay focused on that for nw.00:09
wgrantWhat have they broken now?00:09
lifelessas far as admin promoting admins; I think we need to check with our users there as well; particularly losa/gsa etc00:10
lifelesswgrant: they have a growing userbase00:10
huwshimiwallyworld_, wgrant: Have you guys managed to have a chat about whether the manage-disclosure pages will need to be changed again due to the changes you were talking about yestereday?00:19
wgrantWe probably won't know for weeks.00:19
huwshimiwgrant: Thanks, I won't worry about it unless I hear something then00:20
StevenKBleh. I think these failing tests assume that nominations created by admins are not automatically approved.00:43
sladenpoolie: no idea if that's the way to go:  lp:~sladen/launchpad/launchpad-microdata-bug-person  the way in which the data is dumped out doesn't immediately match up;  ask you've got eg.  _makeLink used around .unique_displayname00:57
wallyworld_huwshimi: looking at your mp now. been having some stupid router issues01:29
huwshimiwallyworld_: Ah, awesome :)01:30
lifelesswallyworld_: how hard do you think it would be to adapt https://github.com/marcello3d/node-buffalo to run (just the serializer) in chrome+ff01:46
lifeless?01:46
StevenKloltpg01:46
* wallyworld_ looks01:46
wallyworld_StevenK: why loltpg? it's been hardware issues at my end :-(01:47
wgrantlifeless: You haven't been turned off BSON yet?01:47
StevenKwallyworld_: I saw 'router issues' and assumed.01:48
wallyworld_StevenK: you know what they say about assuming :-)01:48
lifelesswgrant: a bug in one implementation isn't sufficient to scare me off :P01:48
wgrantDoes anybody else use BSON?01:48
wgrantAt all?01:48
wgrantApart from in MongoDB?01:48
wallyworld_we had a power outage last night and the router has been flakey ever since :-(01:48
rick_h_mongo folks :)01:48
rick_h_sourceforge uses it a bunch with their mongo stuff01:49
wallyworld_lifeless: i've not seen that project before. i can't give you an immediate answer01:49
rick_h_lifeless: what breaks? should just be able to inline the bson.js with the extern/xx files for their long support01:49
lifelessrick_h_: cool01:50
wgrantThe only benefits it seems to provide are obfuscation and storing binary data so our applications can crash.01:50
lifelessrick_h_: I haven't tried yet01:50
rick_h_the only node parts are the require/packaging stuff01:50
rick_h_wgrant: I'm with you, clarity/debuggable ftw01:51
=== Ursinha-lunch is now known as Ursinha
wgrantWe've reinvented about 20 square wheels already, and used another 15 or so triangular wheels from other places.01:53
wgrantLet's not add more...01:53
lifelesswgrant: speaking of crashes, did you file a bug for that oops you ofund yesterday in +filebug ?01:53
lifeless.01:53
lifelessadfreakingsl01:53
lifeless...01:53
wgrantlifeless: No, but matsubara id overnight.01:53
wgrantdid01:53
rick_h_wtf, this thing will serialize code?01:54
rick_h_heh, that's got to be interesting01:54
lifelessrick_h_: I'd like to hook up an oops like thing in our js01:58
lifelessrick_h_: to catch errors and report them immediately01:59
rick_h_lifeless: cool02:00
rick_h_I had something like that once for ajax requests in an app02:01
rick_h_glboal error handler that would then fire off an api request to log and notify of the error with a load of client info02:01
wallyworld_huwshimi: on the new screenshot, the affected project is not shown. where is it displayed now?02:02
huwshimiwallyworld_: It's not02:02
wallyworld_is that an issue?02:02
huwshimiwallyworld_: Well, my branch doesn't address that. The intention is that we revert to not showing the affected branch/project like we had previously except on pages that previously displayed it02:03
wallyworld_ah ok. i didn't recall that we previously did not show it02:03
huwshimiwallyworld_: https://bugs.launchpad.net/launchpad02:04
wallyworld_out of curiousity, if the user selects to show extra data like the project, it's in two lines then, right?02:04
huwshimilifeless: Can we really catch all our js errors while we have in page scripts?02:04
huwshimiwallyworld_: Yeah, that's right02:05
wallyworld_cool02:05
huwshimiwallyworld_: There's some helpful comments from Matthew on the bug about that02:05
wallyworld_ok02:05
huwshimiwallyworld_: Pages like this show a package: https://bugs.launchpad.net/ubuntu'02:05
wallyworld_so they do02:06
huwshimiwallyworld_: So those will hopefully still show a package (although I doubt the functionality exists yet as I believe the customisation of the columns is site wide)02:07
wallyworld_it's hard looking at those pages when the new bug listings look sooo much nicer02:07
lifelessrick_h_: exactly02:12
lifelesshuwshimi: all of? maybe not. More than we do today? Definitely.02:13
rick_h_lifeless: ok, I lied. It uses node buffers, which now needs node assert02:13
rick_h_wheee, dependency chaining here we go02:13
lifelessrick_h_: yah :(02:13
lifelessrick_h_: so I imagine there is some porting needed02:13
rick_h_lifeless: yea, and that needs util to do some inheritence binding02:14
huwshimiwallyworld__: Thanks heaps for the review02:34
huwshimiwallyworld__: I've been having router issues this week too, so I was gone for a sec then02:35
huwshimilifeless: Will the js errors be logged in the oops database? I'm just asking cause I want to set up a service for logging a/b test results (via ajax) and am interested to know if the architecture would be similar02:36
lifelesshuwshimi: yes02:36
huwshimilifeless: Ah ok02:36
huwshimilifeless: I was hoping to steal some code :)02:37
huwshimibut this will have to be different02:37
lifelesshuwshimi: generic wsgi microservice that listens on http, sanitises some fields and forwards over amqp to the oops db02:37
lifelesshuwshimi: AIUI most a/b test frameworks use log files rather than actual services, but I am probably wrong02:37
lifelesshuwshimi: what do you want to have happen?02:37
huwshimilifeless: To record the results of the test we'll need some js to test that a link has been clicked etc. The results need to be stored somewhere. I had imagined we would send off an ajax request to some kind of service and it would dump it in a db.02:39
huwshimilifeless: And a tool that returns the results would be needed too02:40
lifelesswell, when the link is clicked, LP gets the request doesn't it ?02:40
huwshimilifeless: We won't necessarily just be testing links, it could be that someone uses a bit of js interaction, or scrolls to the bottom of a page, the possibilities are endless02:41
lifelesssure02:42
lifelessthe easiest to deploy thing is just to make a GET request to <current-site>/+abtests/test/value with no referrer02:42
lifelessthis will go into our logs, and we can grep for it very easily02:42
lifelessyou can certainly do a service if you want02:43
huwshimilifeless: OK, that seems simple02:44
rick_h_yea, just make things small enough to json/add to request02:44
lifelessthe no referrer will stop it oopsing02:45
lifelessit will just be a random foreign request the appserveres and haproxy etc ignore02:45
rick_h_could almost just do something like dynamically add an image to the page and go through apache logs or something02:45
rick_h_are there real request logs out there?02:45
lifelessyes, but restricted access (ip address is personal information)02:46
lifelesshowever getting a script etc run on them is easy02:46
huwshimiAnyone know how to turn on the beta banner locally?03:01
rick_h_huwshimi: you need a feature flag with it limited in some way03:04
rick_h_deryck showed me today03:04
rick_h_set the buglisting flag for just your user, for instance03:04
rick_h_and that would trigger the beta banner03:04
huwshimirick_h_: Ah right!03:04
lifelessor just default 0 on03:04
lifelessshow it everywhere03:05
rick_h_right, but if it's default I think it doesn't show the banner right?03:05
lifelessit should, it just checks on some pages/templates for the flag evaluating03:05
lifelessto on/off03:05
huwshimirick_h_: That worked03:06
rick_h_huwshimi: cool03:06
huwshimilifeless: Wasn't working with default btw03:06
lifelessahm interesting03:06
huwshimilifeless: Which means we can't have features in beta for everyone, or at least have a notification for it03:08
lifelesshmm, it just means there is a small bug somewhere :)03:08
lifeless-or03:09
lifelessIIRC the theory is that 'when feature X is enabled for everyone it is out of beta'03:09
rick_h_yea, that's what I figured03:10
huwshimihmmm03:10
huwshimiwgrant: In regards to the download-cache stuff we were talking about the other day, how do I actually commit changes? Do I do a bzr checkout of lp:lp-source-dependencies and just push the changes?03:46
wgranthuwshimi: ~/launchpad/lp-sourcedeps/download-cache should be a bound checkout by default. You can commit straight to there, and it will push automatically.03:47
huwshimiwgrant: Oh right, thanks :)03:47
huwshimiA couple of reviews if someone wants them:03:57
huwshimihttps://code.launchpad.net/~huwshimi/launchpad/update-cssutils-version/+merge/8419903:57
huwshimihttps://code.launchpad.net/~huwshimi/launchpad/beta-banner-design/+merge/8419803:58
wgranthuwshimi: Where'd you get that tarball?04:02
wgrantThey don't seem to distribute one, AFAICT.04:02
huwshimiwgrant: you're right04:02
huwshimiwgrant: I grabbed the tarball from the tagged branch04:02
lifelessfwiw lp-land is the bomb04:03
wgrantlifeless: Oh?04:04
huwshimiwgrant: Is there a problem with that tarball?04:04
lifelesswgrant: handles prodconfigs ok04:04
lifelesswgrant: I'd forgotten to use it :P04:04
wgranthuwshimi: Doesn't match the 0.9.7 tag tarball that I got from bitbucket. We might be better off using the official 0.9.7 zip.04:05
wgrantThere's nothing wrong with it, besides not being official to being unreproducable and thoroughly confusing.04:05
wgrants/to being/so being/04:05
huwshimiwgrant: Oh, I couldn't find an offical one. I got mine from bitbucket, but the only place I could find was from the tagged branches04:05
wgranthuwshimi: Yeah, odd that its hash doesn't match. There's no official tar.gz, but there is an official zip which we can use.04:06
huwshimioh and I removed the double containing folder04:06
wgrantAh04:06
huwshimiwgrant: Oh right, should we just use the zip?04:06
wgrantThat would do it.04:06
wgrantProbably, yes.04:06
huwshimiwgrant: I actually didn't see the zip either04:06
wgrantmodifying upstream tarballs without labeling them as modified is a good way to get people upset :)04:06
wgranthttp://code.google.com/p/cssutils/downloads/detail?name=cssutils-0.9.7.zip&can=2&q= is one04:07
wgrantI thought there was one on pypi too.04:07
wgrantAlthough pypi makes it rather challenging to obtain a stable version...04:07
huwshimiwgrant: Oh right, I didn't look at the google code page04:07
wgrantLooks like they moved to bitbucket recently, and didn't bring across the old downloads.04:08
lifeless.04:08
huwshimiwgrant: Yeah ok, do you want me to replace it with the zip?04:08
wgranthuwshimi: That would be cleaner, I think.04:09
wgrantAnd sort of trivial.04:09
huwshimiwgrant: No problems04:09
wgrantThanks.04:09
wgranthuwshimi: Ahhhhh CSS3 gradients.04:12
wgrantThat is wonderful.04:12
huwshimi:D04:13
huwshimiwgrant: OK that file should be replaced04:14
wgranthuwshimi: Indeed, thanks.04:15
huwshimiwgrant: Thanks for the approve04:21
huwshimiwgrant: Is there any reason to not just lp-land the change to versions.cfg?04:22
huwshimiwgrant: Or should I be just as paranoid as I normally am04:22
wgranthuwshimi: It's late on Friday, so we can't deploy for three days anyway... might as well just land.04:24
wgrantIt works fine here.04:24
huwshimiwgrant: OK :)04:24
huwshimiargh!04:25
wgrantUhoh.04:25
huwshimiwgrant: Any ideas? http://paste.ubuntu.com/756731/04:25
wgrantHmm, that's pretty awesome.04:26
wgrantNot one I've seen before.04:26
huwshimiwgrant: I seem to have a knack of coming across pretty awesome bugs04:27
huwshimiwgrant: Usually when it's friday afternoon and I want to land a few things :)04:28
wgrantHmm.04:40
wgrantThe beta banner doesn't seem to appear at all in IE9.04:41
wgrantThe page just sits there loading eternally.04:41
wgrantDespite apparently having completely rendered otherwise.04:41
StevenKDo we care?04:41
huwshimiwgrant: Is that a js thing then?04:44
wgranthuwshimi: Probably. Other pages finish loading.04:44
wgrantIt's the same on prod.04:44
huwshimiwgrant: Strange04:45
wgrantUnsurprisingly.04:45
wgrantYeash04:45
wgrantyeah04:45
huwshimioh, I have no idea about this lp-land thing04:45
wgrantpqm-submit, I guess.04:45
rick_h_wgrant: https://bugs.launchpad.net/launchpad/+bug/89479704:46
_mup_Bug #894797: bug portlet ajax calls break in IE and break js for other features <bugs> <ie> <javascript> <markup> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/894797 >04:46
rick_h_wgrant: I tried to test some IE stuff and hit that04:46
wgrantrick_h_: Aha.04:47
wgrantThanks.04:47
rick_h_as soon as it hits an error it stops all other JS and the portlet stuff is pretty up there04:47
rick_h_might be what you're hitting, so other pages without the portlets are ok04:47
wgrantStevenK, wallyworld__: Could one of you review https://code.launchpad.net/~wgrant/launchpad/bug-728673/+merge/84205?04:48
huwshimiwgrant: oh, does that do a similar thing?04:48
wallyworld__wgrant: sure04:48
wgranthuwshimi: lp-land is a wrapper around pqm-submit.04:48
wgranthuwshimi: lp-land grabs the details from the MP and invokes pqm-submit the right way.04:48
huwshimiwgrant: oh right04:48
wgrantBut normally if you're submitting to devel you can just say 'bzr pqm-submit -m '[r=wgrant] Blah blah blah I am a commit message'04:49
huwshimiwgrant: Should I just ec2 land this? :)04:49
wgrantThat might fail the same way as lp-land.04:50
wgrantBut maybe not.04:50
huwshimiwgrant: I'll give it a go04:50
rick_h_ec2 land will run ec2 test first04:51
rick_h_so beware it'll run for a bit if you were trying to avoid the test run04:51
huwshimirick_h_: Yeah, but I'd rather that than accidentally screw something up :)04:51
wallyworld__wgrant: why remove the sprb formatter instead of just adding the permission check?05:09
wgrantwallyworld__: Because the only other difference between the two is that in one the archive was linked, while in the other it wasn't.05:09
wgrantwallyworld__: Which I've wanted to fix for a while anyway.05:10
wgrantwallyworld__: There's no reason for the SPRB one to exist separately.05:10
wallyworld__but the sprb formatter displays different text05:10
wgrantDoes it?05:10
wallyworld__it appears to from my reading of the code05:10
wgrantIf you look at the tests I changed, only the closing tag is differnt.05:10
wallyworld__ah, i think you are right05:11
wallyworld__i've misread the code i think05:11
wgrantIt's easy to do with some of the formatters we have :/05:11
wallyworld__yeah. thanks for humouring my question. i thought it best to double check05:12
wallyworld__wgrant: r=me. also, did you see my email in reply to sinzui's email?05:13
wgrantwallyworld__: I replied to it like 2 minutes later.05:13
wgrantThanks.05:13
* wallyworld__ hits refresh on thunderbird05:14
wallyworld__wgrant: ah, i see the problem now.05:15
wgrantThe private team implementation looks to have been a little lazy :)05:16
wgrantThat's interesting, actually.05:16
wallyworld__wgrant: i think we have a hole in that the only protection is via travsrsal, no?05:16
wgrantPerson searches may be a little revealing.05:16
wgrantYes.05:16
StevenKwgrant: So how will SPRBs show up with your change?05:16
wallyworld__since my dicking with a test allowed me to see attrs05:16
wallyworld__StevenK: the same as now afaiui05:17
wgrantStevenK: Same as BPBs. Building _$title_ [$person/$archive]05:17
wgrantOr 'Building private job'05:17
StevenKRight, then the formatter was buggy and useless05:17
wgrantRather than the current 'Building _$title [$person/$archive]_' and crash.05:17
wallyworld__wgrant: so if i fix this security issue, it will restore the current traversal protection and plug an access hole05:18
wgrantwallyworld__: Well.05:18
wgrantwallyworld__: You need to restrict all attributes to launchpad.View or launchpad.LimitedView rather than zope.Public.05:19
wgrantThis may cause a lot of fallout.05:19
wgrantIt remains to be seen.05:19
wallyworld__it does. but in theory, moving the IpersonPublic stuff behind a security adaptor which allows full access for public teams and delegates to the limitedview security adaptor for private teams should be the right thing to do05:21
wgrantIt's certainly the right thing to do.05:21
wgrantI just think it may well break stuff.05:21
wgrantBut we have to do it.05:21
wallyworld__yes. i'll do it and see what breaks in ec2 :-)05:22
wgrantUnlikely to catch everything, but not much more we can do.05:22
wallyworld__IPersonPublic is not really the correct name anymore either05:22
wgrantIndeed.05:22
wgrantIt hasn't been for a while.05:22
wgrantMove stuff onto IPersonView/IPersonLimitedView05:22
wallyworld__not limited view - we only want access to name, url, displayname for linited view05:23
wallyworld__should be moved to IPersonRestrictedView perhaps05:23
wgrantWell, yes, clearly only move the appropriate stuff onto LimitedView.05:24
wallyworld__IPersonRestrictedView required launchpad.View permissions05:24
wallyworld__which is what we want05:24
wgrantRight.05:24
wallyworld__and the security adaptor for that permission allows public teams unfetted access05:24
wallyworld__which is what we want05:24
wallyworld__here's hoping.... that not too much breaks05:25
micahgis it known the distro selection widget is broken?07:18
micahgon bugs that is07:18
micahgit shows the first one in the list as selected when trying to modify multiple values at once07:19
jtvmicahg: I'll have a look in the open bugs.07:21
micahgjtv: thanks, I can file a bug if one doesn't exist07:21
jtvmicahg: doesn't look like we have one open for this.  So yes, please do file one!07:22
micahgjtv: stale page cache on my end, everything's fine :)07:24
jtvHeh07:24
jtvUnless the next person is going to have exactly the same problem, of course, in which case it doesn't really matter that things are fine in theory.  :-)07:24
micahgwell, my use case was old bugs open in my session for quite a while, refresh still showed the issue, forced refresh shift+f5 fixed it07:26
=== wallyworld__ changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugtasks: 3*10^2
micahgwallyworld__: trying to scare people :)07:27
wallyworld__micahg: no?07:27
wallyworld__you mean the bug count?07:27
jtvhi wallyworld__ — on your way to the weekend?07:27
micahgwallyworld__: heh, yeah :)07:27
wallyworld__jtv: i wish :-( I have to finish some coding07:27
jtvOh well07:28
wallyworld__micahg: it was already like that. i just changed the reviewer :-)07:28
micahgwallyworld__: ah, ok, I must have missed that :)07:28
wallyworld__jtv: but i plan on popping a cork to help :-)07:28
wallyworld__micahg: but when it's written in that notation, it is scary for sure07:28
micahgwallyworld__: sorry, it's been like that for a while and I missed it :), yeah, I did a double take07:29
wallyworld__np :-)07:30
bigjoolsmorning08:57
=== almaisan-away is now known as al-maisan
adeuringgood morning09:44
jtvbigjools: I have two callback chains that I need to interleave just so for my test.  I would expect to have to orchestrate the events somehow.09:45
jtvhi adeuring09:45
adeuringhi jtv09:45
jtvadeuring: are you reviewing today?  If so, could you review one for me?  It's https://code.launchpad.net/~jtv/launchpad/bug-849683-cloner/+merge/8422209:46
bigjoolsjtv: let me just check the API09:46
adeuringjtv: I'll look09:46
jtvthanks09:46
=== adeuring changed the topic of #launchpad-dev to: : https://dev.launchpad.net/ | On call reviewer: adeuring | Critical bugtasks: 3*10^2
bigjoolsjtv: so you can call d.callback() to manually run the callbacks09:48
jtvAnd that will stop at the point where the callback chain makes another async request, I take it.09:49
jtvDo I then proceed with the new callback returned from the original callback?09:49
bigjoolsif there are new Deferreds created then it gets harder, yes09:49
bigjoolsjtv: I can't remember if Deferreds are processed in the order they are created in the reactor.  It's probably best not to depend on that anyway09:51
jtvRight. ISTM any way I'm going to do this will be brittle: the interleaving will happen at the wrong point, and the test will either break in a mysterious way or become meaningless.09:51
bigjoolsjtv: we can avoid that, we just need to make sure we fire Deferreds in a certain order09:52
jtvBut the order will be tightly coupled to internals that may change.09:52
bigjoolsjtv: no, I mean that you have a 2 deferreds in the test, the rest are incidental09:53
jtvThe problem is that nothing interesting happens in the original deferreds.  They return new deferreds, and so on.09:54
bigjoolsbut it would help if we could construct it such that there are no other deferreds created09:54
jtvI think we'd have to un-nest some functions.09:54
jtvA bit annoying given how they rely on local variables of the surrounding functions.09:55
bigjoolsjtv: the other option is to just keep calling the Deferred until None is returned09:55
bigjoolssee http://twistedmatrix.com/documents/current/api/twisted.internet.defer.Deferred.html09:55
jtvThat's fine for one, but I need to get the interleaving right.09:55
bigjoolsrunCallbacks()09:56
jtvThanks.09:56
bigjoolsit will be file09:56
bigjoolsfine09:56
bigjoolsthe chain of Deferreds only applies to a single builder09:56
jtv_runCallbacks?09:56
bigjoolsyes09:56
bigjoolsit stops when you get to a Deferred with no result, you'd just need to call _runCallbacks() on it09:57
jtvI guess we could follow the chain with a single builder, but it'll be less like the integration test you were hoping for.09:57
bigjoolsjtv: slightly less, but still valid09:57
bigjoolsthe interleaving we want is still there09:57
jtvThen what exactly do we test for?  Abort after every step and see that the changes are still there?09:58
jtvOr conversely, commit after every step, trigger a failure, and see that the changes are aborted?09:58
bigjoolswe are testing the scenario I explained09:58
bigjoolsstoreBuildInfo() defers to a communication with the builder09:59
bigjoolsin the meantime, another Deferred fires and aborts the txn09:59
jtvBut how do we get it to just that stage?09:59
bigjoolswhere "another" is in a different builder chain09:59
bigjoolswe make a fake builder than doesn't return the results that the storeBuildInfo() wants10:00
bigjoolswe can make it do nothing so the deferred does not return right away10:01
bigjoolshmmm do we even need to do that10:01
jtvThat's the question.  The problem is, we have to dig through at least some closures to get to a state where anything like the bug can happen.10:02
bigjoolsyes yes, I have it10:02
jtvthen give it to me!10:03
bigjoolswe use a fake builder that will sleep for a while when asked for the build info10:03
jtvArgh!10:04
bigjoolsnot a real sleep10:04
bigjoolsit's a callback-based one10:04
bigjoolsbear with me10:04
bigjoolsthen we set up the other builder that will abort10:04
bigjoolswe can use a special reactor were you can wind the clock forwards but less than the sleep interval10:05
bigjoolsit'll make the 2nd builder abort10:05
bigjoolsbut the first is still "waiting"10:05
bigjoolsok?10:05
bigjoolsI can show you an example10:05
jtvActually the part where the other builder fails can be simpler: we can call _scanFailed.10:06
bigjoolsor that10:06
bigjoolsit's easier to poke in a BrokenSlave10:06
jtvAlready have that, but it saves some reactoring.10:06
jtvIf we can just make the reactor return to us while storeBuildInfo is waiting to run, the rest should be easy.10:07
bigjoolslook in lib/lp/buildmaster/tests/test_manager.py10:07
bigjoolssearch for Clock10:07
bigjoolsit's a reactor that you can use instead of the testing one10:08
bigjoolslet's you control how Deferreds are fired10:08
bigjoolsby winding time forwards10:08
jtvtask.Clock?10:08
bigjoolsyes10:09
jtvI guess I need to adapt SlaveScanner.__init__ to accept a clock argument for testing, similar to the other scanners?10:10
bigjoolsyes10:11
jtvHmm… actually that only exists on NewBuildersScanner, which passes it to its LoopingCall.10:11
bigjoolsit's to override the LoopingCall10:12
jtvThe SlaveScanner has some equivalent to that?10:12
bigjoolsyes10:12
jtvAh, it has one too10:12
bigjoolsit sets the clock on the LoopingCall10:12
bigjoolsthis allows you to wind forwards one scanner but not another10:13
jtvbigjools: I can see how the clock would let me force the LoopingCall into action, but why not just do that by calling scan()?  The trouble is getting a simulated chain of interaction going and stopping it at the right point.10:21
adeuringjtv: the changes look good, and thanks a lot for the nice reformatting. just one question: what about a test?10:24
jtvadeuring: good point — we know that the column is initialized, but it'd be nice to check it for correctness.  Let me just see what the existing tests do.10:24
adeuringjtv: great, thanks!10:25
bigjoolsjtv: you need to set up a FakeBuilder so it pauses in the right place10:27
bigjoolsthen you advance it to the pause point10:27
bigjoolsthen run the other builder scan to completion10:27
bigjoolsjtv: you need a callLater() in the FakeBuilder to make it wait a bit10:28
jtvThat means that the _runCallbacks will stop at that point?10:28
bigjoolsdon't use runCallbacks10:28
jtvOh10:29
bigjoolsuse the Clock() as the reactor10:29
jtvAnd I guess I need a FakeSlave?10:29
bigjoolsyes10:29
jtvNot a FakeBuilder?10:29
bigjoolssorry, yes10:29
* gmb just realised that there's no TLA equivalent of "OTP" for "Having a conversation with another human being in real life"10:35
jtvHow on Earth did we get by all this time?10:36
nigelbfull sentences I guess ;)10:37
* gmb -> real life10:37
jtvgmr irl omg10:38
allenapbigjools, anyone: Do you think mbp will get miffed if I change the trunk branch of txfixtures (to one owned by ~launchpad instead of ~mbp)?10:48
wgrant~canonical-launchpad-branches, not ~launchpad10:49
jtvallenap: knowing him, no, as long as it's (1) well thought-out and (2) clearly documented and notified.10:49
bigjoolsI would not think so10:49
bigjoolsprobably just an oversight10:49
allenapwgrant, jtv, bigjools: Cool, thanks all :)10:49
jtvbigjools: meanwhile, back on the broad and twisted path to hell, I just discovered that the triggering event just before the simulated problem comes from the Librarian, not from the slave.10:50
wgrantallenap: https://dev.launchpad.net/CreatingNewProjects has setup instructions10:50
allenapTa.10:50
bigjoolsjtv: really?  I thought it was "        d = build.getLogFromSlave(build)"10:51
jtvbigjools: and you were right.  But, and this is exactly why I went with those narrow read-write policies, that call hides async calls to both slave and librarian.10:52
jtvOr maybe that's synchronous…  I'm not really seeing things clearly.10:53
jtvAhhh no, I think that's synchronous.10:54
bigjoolsjtv: it calls getFile() on the slave first and then does a blocking upload to the librarian.  Which is a bit crap.10:55
jtvBut in this case another welcome simplification.10:55
jtvEven though I imagine eventually we would change it, and thus break the test.10:55
mrevellWelcome danhg_10:55
jtvThis is all so much SA-80 and so little AK-47…10:56
jtvhi mrevell10:56
mrevellHey there jtv10:56
jtvbigjools: when I say SA-80 I'm referring mainly to how you're free to fire it left-handed, but it'll spit hot brass at you from the left and smash your nose from the front if you do.10:58
jtvActually surprisingly reasonable design choices when you look at the tradeoffs, but not foolproof.10:59
bigjoolsjtv: you have a way with words11:01
jtvbigjools: not implying you're a fool.11:02
bigjoolsjtv: but are these footguns?11:03
jtvIf you like.  But the SA-80 probably more so, since it's a bullpup.11:03
=== matsubara-afk is now known as matsubara
* jtv has a particular thing against people who don't mind where they point their assault rifles, especially when he ends up in front of them.11:04
jtvThat's enough ramblings from my overheated brain.  I must go.11:05
=== al-maisan is now known as almaisan-away
bigjoolsjtv: sounds like you need a good dose of paracetamol and bedrest11:08
jtvbigjools: unfortunately I have a train to catch.  Promised to take care of my friends' house.11:08
jtvOn the bright side, I sleep better on those night trains.11:08
bigjoolsI remember thoes11:08
bigjoolsthose11:09
bigjoolsno station stop announcements!11:09
jtvI think they do announce them _sometimes_…11:09
jtv…probably to lull you into a false sense of security.11:09
nigelbheh11:11
bigjoolswell it lulled me into a sense of no sleep11:12
nigelbbigjools: You've visited India yet?11:12
bigjoolsI have no plans11:12
nigelbaww :(11:13
bigjoolswgrant: yay you are fixing bug 72867311:14
_mup_Bug #728673: BuilderSet:+index crash (/builders) <oops> <Launchpad itself:In Progress by wgrant> < https://launchpad.net/bugs/728673 >11:14
stubjtv: Good luck with the train. Its a long weekend so will be packed!11:18
jtvstub: I booked ahead, thanks11:21
jtvgood weekend everyone11:22
=== almaisan-away is now known as al-maisan
=== bac changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: adeuring, bac | Critical bugtasks: 3*10^2
rick_h_morning13:16
bacmorning rick_h_13:17
jcsackettmorning, all.14:10
rick_h_morning jcsackett14:11
=== HOHOHaney is now known as Laney
sinzuigmb, deryck, allenap: Do either of you have time to talk about renaming BugTaskSearchParams.bug_supervisor or structural_subscriber ?15:03
derycksinzui, I'm sprinting and have two calls already this morning....15:05
derycksinzui, but if no one else can help, I can try.15:05
gmbsinzui: I have a little time. What do you need to know?15:06
sinzuigmb, I think I cannot remove  BugTaskSearchParams.bug_supervisor because it is in the api. I probably need to add structural_subscriber to support older api15:07
* gmb refreshes his memory15:07
sinzuigmb. search is actually looking at structural subscriptions, not bug supervisor in *most* cases15:07
sinzuigmb. The only case that may be interesting to search bug_supervisor is if you search from  team/user advanced search page and want to see all the bugs in all the projects the person supervises...15:09
gmbsinzui: Right, I'm with you.15:09
gmbI think you're right; I don't think bug_supervisor can be removed.15:09
gmb(At least until version 2.0)15:09
sinzuigmb: I can add a new param, and then fall back to the bug_supervisor is it was provided15:10
sinzui*if* it is provided15:10
gmbsinzui: Yes, I think that would work.15:11
jmlrandom fact: 1.2GB of space on my system was being taken up by postgresql logs in a hardy chroot that I made for LP hacking and then forgot about15:12
sinzuigmb: bug_supervisor search will fail in many current cases because the default supervisor is the maintainer; the supervisor field is null. I think we should drop this case. We want to search for structural subscriptions on projects instead15:12
gmbsinzui: I agree.15:13
sinzuigmb: dropping the bug_supervisor column clause will make most searches faster because we already search ubuntu.bug_supervisor when the user is only looking for package subscriptions15:13
gmbNice15:14
=== al-maisan is now known as almaisan-away
sinzuiokay. I am going to try this and hope the api tests like me15:14
gmbsinzui: Best of luck to you :)....15:16
sinzuithank you very much15:16
* gmb can't take the feeling that he's managed to let sinzui talk himself into a footcannon15:16
sinzuis/footcannon/disclosure/15:17
rvbaadeuring, bac, could one of you guys please have a look at https://code.launchpad.net/~rvb/launchpad/authorize-bug-898237/+merge/84269 ?15:17
adeuringrvba: sure, i'll look15:17
rvbata15:18
=== almaisan-away is now known as al-maisan
deryckabentley, standup time now ok?15:31
deryckadeuring, can you hear me on mumble?15:31
adeuringderyck: seems that mmle does use the tright sound output. just a second...15:32
deryckadeuring, still no sound luck?15:34
deryckadeuring, we hear you fine, FWIW.15:34
adeuringderyck: right...15:34
adeuringderyck: let me try another machine...,15:34
deryckadeuring, ok15:35
deryckadeuring, now we don't hear you at all.15:38
adeuringderyck: wierd... on this machine, all sounds goes to the headset -- only mumble does not use it...15:38
deryckadeuring, we need to start, so we'll go ahead.  we can chat with you via irc.  sorry.15:38
adeuringderyck: ok, sorry for the mess...15:39
deryckadeuring, we did hear you that time though.15:47
deryckadeuring, right.15:48
deryckadeuring, is mumble audio going to the right device?15:48
adeuringderyck: yes...15:49
deryckadeuring, I guess we lost you again?15:50
=== salgado is now known as salgado-lunch
deryckmrevell, my entire team will join for the check point.  will we skype or conf call in?15:53
mrevellderyck, Hey, I'm happy with Skype but I can also do the conference call. Is Skype okay for the Orange squad?15:55
deryckmrevell, yup, skype works for us.15:55
mrevellGreat15:56
dobeyderyck: i'm surprised you're not meeting on PSN Home ;)15:57
deryckdobey, dude, if I could! :)15:58
mrevellOkay, calling now. I don't have adeuring or rick_h_ in my Skype contacts.16:00
adeuringmrevell: try "adeuring"16:01
rick_h_mrevell: mitechie16:01
bigjoolsHALP.  Running tests here and it gets as far as "Set up canonical.testing.layers.AppServerLayer" and then hangs.... anyone else seen that?16:01
mrevellSorry jcsackett, accident.16:02
jcsackettmrevell: what was an accident?16:03
mrevelljcsackett, I thought I added you to a Skype conference.16:03
jcsackettmrevell: huh; i'm not on skype right now, so now worries. :-)16:03
jcsacketts/now worries/no worries/16:04
mrevellok :)16:04
=== beuno is now known as beuno-lunch
mrevellderyck, abentley flacoste danhg rick_h_ adeuring matsubara https://launchpadlibrarian.net/86370773/single_line_bugs.png16:20
=== beuno-lunch is now known as beuno
rvbaHi gary_poster, the branch that refactors LaunchpadSecurityPolicy to have it cache sub checks performed by classes inheriting from DelegatedAuthorization is up for review! (that's the one we talked about a few days ago).  Gavin is reviewing it but maybe you will be willing to have a look, out of curiosity if nothing else ;).16:27
rvbahttps://code.launchpad.net/~rvb/launchpad/private-ppa-bug-890927-2/+merge/8424316:27
=== al-maisan is now known as almaisan-away
mrevellmatsubara, "A way to specify the information displayed and ordering via the URL (bug 124342)"16:30
_mup_Bug #124342: It should be possible to specify bug list sort order via the URL <bug-columns> <lp-bugs> <Launchpad itself:Fix Released> < https://launchpad.net/bugs/124342 >16:30
matsubarathanks mer16:31
matsubarathanks mrevell16:31
mrevellderyck, https://dev.launchpad.net/Projects/CustomBugListings/Design16:38
=== salgado-lunch is now known as salgado
adeuringrvba: r=me (sorry for the delay)16:55
rvbano worries, thanks for the review adeuring.16:55
bigjoolscan I bug one of you guys for a review please16:56
gary_posterrvba, awesome! what kind of performance improvement to you expect?16:56
rvbagary_poster: well, the page ~canonical-isd-hackers/+archive/ppa/+index spends 8 sec doing the checks that will be cached now…16:58
rvbaSo I expect it the performance improvement to be pretty serious in this case, and hopefully it will help else were as well.16:59
rvbas/expect it/expect/16:59
* bigjools hi-fives rvba17:00
rvbabigjools: you should wait till this passes QA ;)17:00
gary_posterrvba, cool, me too.  I was hoping for hard (& exciting) numbers and I will look forward to them soon :-) ... have you timed this on qastaging so that you can get a relatively accurate comparison?17:01
bigjoolsI can merge it on DF right now if you want to test17:01
rvbagary_poster: well, this will fix repeated statements so it's pretty easy to guess what the gain will be (that is if everything does well).17:02
gary_posterright17:02
gary_posterI just like hard numbers :-)17:03
gary_poster(so bigjools' offer sounds good to me, but I'm a bystander)17:03
rvbagary_poster: hard numbers: https://launchpad.net/~canonical-isd-hackers/+archive/ppa spends ~6000 doing the repeated checks that will now hopefully be cached.17:04
rvba6000ms that is.17:05
rvbabigjools: why not… but I'll have to go in ~30 minutes.17:05
bigjoolsok, doing a load test on DF pre-patch17:06
bigjoolsrvba: which branch?17:06
rvbabigjools: lp:~rvb/launchpad/private-ppa-bug-890927-217:07
bigjoolsthat private PPA you posted *cough* takes 1.5 seconds pre-patch17:07
rvbabigjools: on df yes.17:08
rvbabigjools: https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-d84aaa754e954254c44f803f45871daf  https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1baf5eff75609f641e53992c0023acb617:08
rvbabigjools: can you access https://launchpad.net/~canonical-isd-hackers/+archive/ppa/+index ?17:09
rvba(Not on df that is)17:09
bigjoolsyes17:09
bigjoolsv quick, because I am commercial admin17:09
rvbabigjools: hum, also, on DF, we are admins so unless I'm mistaken the security checks are by passed…17:10
rvbaAm I right?17:10
bigjoolsrvba: not bypassed, just different17:11
rvbabigjools: right, so it's not a good test.17:12
gary_posterhttps://qastaging.launchpad.net/~canonical-isd-hackers/+archive/ppa takes 8 secs once it loads at all17:15
gary_posters 7.63 seconds17:15
rvbaRight.17:15
bigjoolsgary_poster: can you try https://dogfood.launchpad.net/~canonical-isd-hackers/+archive/ppa17:16
gary_postertrying17:18
gary_posterbigjools, 1.57 s17:18
bigjoolswoo :)17:18
gary_posterso that is post-patch bigjools?17:19
* bigjools hi-fives rvba17:19
rvbaThat's without the patch?17:19
bigjoolswith patch17:19
bigjoolsI can remove it to compare17:19
rvbaI'd like to see how it goes without the patch17:19
gary_posteryeah17:19
bigjoolsok try now17:20
gary_posterk17:20
bigjoolsunfortunately puppet is hammering DF17:21
gary_poster2.77 s, 1.71 s, 1.51 s17:21
gary_posterso no proof yet17:21
bigjoolsthere must be something else going on here17:21
bigjoolsneed to find a slow one17:21
rvbaAny private ppa with lots of different packages in it.17:22
bigjoolsthat you are a member of17:24
* deryck lunches with rick_h_ 17:27
tumbleweedbigjools: re sponsor-syncs-bug-827555: I assume "UI changes" includes visibility in source_package_publishing_history API objects?17:42
bigjoolstumbleweed: no, web UI17:42
bigjoolsthe API will be good17:42
tumbleweedLaney had a look at it and thought this merge wouldn't cover API visibility17:43
bigjoolsoh bugger actually I forgot one thing17:43
bigjoolswell then he's wrong :)17:43
tumbleweed:)17:44
bigjoolsI forgot to make the syncer known in the spph... darn.  Will fix that Monday.17:44
bigjoolsgood night all, have a nice weekend17:45
tumbleweedbigjools: thanks17:45
jcsackettbac: you free to review https://code.launchpad.net/~jcsackett/launchpad/redundant-message-is-redundant/+merge/84308 by any chance?17:56
bacjcsackett: sure18:03
=== adeuring changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: bac | Critical bugtasks: 3*10^2
bacjcsackett: done18:20
cjwatsonreal    3m23.752s18:21
cjwatson^- first cut at replacement for most of cron.germinate18:21
cjwatsonrunning on my laptop with some stuff involving networking, so I expect cocoplum will be able to do it faster18:21
jcsackettthanks, bac.18:37
cjwatson3m9s once I ensure everything's mirrored locally18:38
cjwatsonthat's with the major structural optimisations; there's surely still room for profiling18:39
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
deryckbac, hi.  rick_h_ and I have a branch for review if you have the time.18:57
bacderyck: sure do18:57
deryckbac, Thanks!  https://code.launchpad.net/~deryck/launchpad/buglists-loading-885272-final/+merge/8418318:57
deryckbac, and sorry for the length, but it's new js code, so not as much there as the line number indicates.18:59
bacyowzer!  :)18:59
deryckheh :)18:59
deryckrick_h_, https://dev.launchpad.net/Orange/NewStarter19:01
=== al-maisan is now known as almaisan-away
deryckrick_h_, https://dev.launchpad.net/MaintenanceRotationSchedule19:14
bacrick_h_, deryck: i don't understand this sentence:19:42
bacThis is using the YUI concept of class extensions to get us min-in like19:42
bac225+     * features from the Widget classes.19:42
bac"min-in like" ??19:42
rick_h_max-in19:42
rick_h_mix19:42
rick_h_that's me, meant mix-in19:43
rick_h_typo, but we actually ripped that out19:43
bacoh, ok19:43
rick_h_so that comment shold go away19:43
rick_h_should...if I could type19:43
bac:)19:43
abentleyrick_h_: Nobody's prefect.19:47
abentleyderyck: AFAICT person/+portlet-otherpackages is completely unused, but would be accessible via URL hacking.  Kill it with fire?19:48
deryckabentley, death die dying dead kill it :)19:49
bacrick_h_: Did Deryck write this or are you speaking Southern now?  "// Mess with the position of target div."19:55
deryckheh19:56
rick_h_bac: lol, I don't know, it is late in the week and I've been hearing too much twang this week19:56
deryckI think I wrote that, bac19:56
flacostebac: there is https://code.launchpad.net/~flacoste/launchpad/self-hosted-3rd-party-js/+merge/84319 in needs of a reviewer when you are free19:56
bacflacoste: ok.19:57
bacderyck: I see this a few times:  Assert.isFalse(this.indicator.get('visible'), 'visible is not set');19:58
bacIsn't the error message backwards?  The assert fails because visible is set.19:58
rick_h_the message was more a helper for us to see in the log that it came back wrong19:58
rick_h_because that onlyshows when it failed19:58
bacrick_h_: right, but it seems the message is backwards19:59
rick_h_so "what we did wrong" vs "what is the actual check"19:59
deryckbac, yeah, what rick_h_ says. I'd prefer to drop the message.  It is backwards, but it was meant more has "did the visible check fail or the other assert fail"19:59
derycks/has/as/19:59
bacflacoste: is the diff correct?  1921 lines?  (i suspect it is)20:06
flacostebac: probably, i haven't checked the number of lines, but most is ignorable, unless you want to review obfuscate Google GS code ;-)20:08
flacosteJS20:09
bacGoogleScript -- its coming20:09
jcsackettbac: isn't it called Dart? :-P20:16
bacflacoste: what is this doing, in the CSS?20:18
bacsrc: local('Ubuntu Italic'), local('Ubuntu-Italic'), url('https://themes.googleusercontent.com/static/fonts/ubuntu/v3/kbP_6ONYVgE-bLa9ZRbvvvesZW2xOQ-xsNqO47m55DA.woff') format('woff');20:18
bacflacoste: it is still loading from google, no?20:18
flacostebac: is is, but that's the web font specification20:18
bacbut just the font file, so it is ok?20:18
flacostewhich shouldn't be a problem20:18
flacosteright20:18
flacosteonly the font file20:18
bacok, that was the only suspect thing i saw20:19
flacosteCSS can be used to load JS extensions20:19
flacosteso that's why we removed the external CSS loading20:19
bacright20:19
flacostebut i'm not aware of any such vulnerability in woff20:19
flacosteso there have been a bunch of vulnerability in woff decoders over the years20:20
flacostebut that's usually in the form of a local exploit, rather than an attack against the site linking to it20:20
flacostealthough one could say that if I root your browser, it's as good as if I could execute JS in it20:21
flacostebut i don't think we should care about that20:21
rick_h_flacoste: did we look at caja or adsafe for running 3rd party JS safely?20:28
rick_h_flacoste: or just mandate it's not friendly regardless of method of inclusion?20:28
flacosterick_h_: we haven't20:30
nigelbjml: Can you turn off the logging to errors only?20:32
nigelbjml: Nevermind, stale scrollback :/20:32
flacosterick_h_: caja looks nice20:32
rick_h_flacoste: yea, watched a yui video from crockford that mentioned those last night20:33
rick_h_and wondered if they might help us keep some 3rd party js in a safe manner20:33
=== matsubara is now known as matsubara-afk
flacostei think it does20:38
flacostesince you can deny the contained JS access to the user cookies20:38
flacostewhich is what we are protecting for20:38
flacostebecause if you have the user's cookie, you can basically do anything you can over the API or web as that user20:39
flacostewhich is a lot20:39
sinzuiIf we had a charm to setup caja scripts, we could call it cajajuju. I would put a Kajagoogoo easter egg on the page. The "Too shy" song would play when your mouse crossed the 3rd party cookies text the description21:06
abentleybac: could you please review https://code.launchpad.net/~abentley/launchpad/packagebugs/+merge/84329 ?21:09
bacabentley: yes21:10
abentleybac: thanks.21:10
bacabentley: done,  thanks.21:48
deryckbac, FWIW img is a naturally self closing tag. ;)21:49
bacderyck: :)21:49
deryckbac, but I changed div to match.  I'm actually not that strongly opinionated about that, despite any past statements of mine. :)21:49
bacderyck: it is not something to get too worked up about!21:50
deryckindeed21:50
deryckYUI itself uses both forms.21:50
abentleybac: thanks.21:51
abentleybac: I extracted that code with minimal changes, but I'm happy to tweak its handling of "advanced".21:52
bacabentley: your call.21:52
abentleybac: I think it actually makes more sense to do that by doing params['advanced'] = '1'21:53
bacabentley: +121:53
=== bac changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugtasks: 3*10^2
wgrantflacoste: I don't believe you can do that.23:18
wgrantflacoste: The font names are not meant to be staitc.23:18
wgrantI'm glad we're going to send all our private URLs and other data to Google again :)23:21
lifelesswgrant: you know we have google dcs etc23:32
lifeless*docs*23:32
lifelesswgrant: ga getting our data wasn't ever an issue; the risks around site compromise were23:32
wgrantSure, but I still don't like it at all :)23:33

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!