/srv/irclogs.ubuntu.com/2012/03/06/#launchpad-dev.txt

jelmerargh, still a surprising amount of people registering imports of http://code.launchpad.net/ URLs00:00
bigjoolsdamn, I need to procrastinate but I can't be bothered00:00
wgrantjelmer: Yeah, I'm not quite sure how we have so many terrible users :(00:01
wgrantbigjools: Enjoying the slow Internet access, at least? :)00:01
StevenKHaha00:01
bigjoolswgrant: it's actually quite quick00:01
bigjoolsbetter b/w than I had back at my house in the UK00:02
wgrantBandwidth-wise, sure :)00:02
bigjoolslatency not so good but I'm not that fussed00:02
bigjoolsLP is noticably slower to start loading pages00:02
StevenKYes00:02
jelmerwgrant: I think our UI (at least this bit of it) is worse than our users :)00:03
lifelesswgrant: I think we should blame our users, en masse, last, not first, when there is a repeated issue.00:04
lifelessits much more likely that we are confusing them, than that they all arrive pre-confused.00:04
wgrantlifeless: Mmm, seeing some of the questions that come through...00:04
wgrantWe have some preeeeetty moronic users.00:04
lifelessI have no doubt that there are some which get excruciatingly confused; so far down the learning curve its hard to show them that they have stuff to learn00:04
lifelessbut still00:05
wgrantNow, the UI around all this abominable.00:05
StevenKNote how many recipes are against lp:launchpad/stable00:05
wgrantBut some of the mistakes are so incomprehensible that it can only be explained by users being braindead.00:05
lifelesswgrant: I think you underestimate the confusion causable by poor UI00:10
wgrantDoes anyone know what one does about whoopsie crash reports?00:12
wgrantIt does the WER thing.00:12
lifelesschat to ev00:12
wgrantOf just submitting and then disappearing.00:12
lifelessits the new shiny00:12
wgrantSo I can't track the progress of the X crash that I see hourly.00:12
wgranthttps://lpstats.canonical.com/graphs/WildcherryCPU/20111106/20120307/ is pretty00:41
wgrantIn 3 months wildcherry should have no load at all :)00:42
lifelesshah00:48
lifelessits dropped 15%00:48
lifelesswhich is substantial00:48
wgrantAnother 7% will go once slony dies.00:49
wgrantNow, with a few fixes to the store selection code, we can sensibly have downtime on wildcherry without hardware upgrades :)00:51
wgrantWhich means that once slony is gone we will never have any reason to have downtime ever again.00:52
wgrant(we might just have to pause write requests for a few seconds here and there)00:53
lifelesswgrant: and reads...00:54
wgrantNah. We can do a rolling upgrade on the DB servers to avoid that.00:54
wgrantPause replication, pause writes, switch to slave-only, upgrade master, switch to master-only, unpause writes, reattach slaves, wait for slaves to sync, switch to normal.00:56
wgrants/reattach slaves/unpause replication/00:56
lifelesswgrant: we've had this talk before00:57
lifelesswgrant: I know you're convinced; I'm not00:57
lifelesswgrant: I'd like to make sure that we don't count on something that isn't (yet) known to work-or-not work : decide at the last possible moment00:57
wgrantI'm hoping one day I'll catch you over-tired and you'll be convinced too.00:57
lifelesswe can talk on skype now if you want00:58
lifelessI'm certainly over-tired ATM00:58
wgrantNah.00:58
wgrantThis is still a while off :)00:58
wgrantHeh00:58
lifelessthe fundamental issue I see is that we don't have a hard timeout on scripts yet, don't have the hard timeout <=5 seconds everywhere, and without both of those things, downtime will be faster overall.00:59
wgrantAlso, pg9.1 has some pretty nice lock reductions which let fkey modifications etc only take out exclusive read locks.00:59
wgrantEr00:59
wgrantexclusive *write* locks00:59
wgrantSo reads can continue while you're adding constraints.00:59
wgrantWhich is interesting.00:59
wgrantSutre, there are those issues.01:00
wgrantThis is a future thing :)01:00
wallyworldStevenK: discovered the ff issue - not a real issue. there's a "legit" try/catch in the yui code to handle new vs legacy querySelector behaviour and it seems firebug had "break on exception" on (i didn't turn it on). you turn it off using the toolbar button in the console panel01:01
StevenKRight01:03
wallyworldthe other thing is that sadly even with the new html5 browser behaviour to use lucid's webkit the yui tests still pass locally01:04
StevenKRun ec2 with -p?01:05
wallyworld-p does?01:05
wgrantOr ec2 demo, ssh in, and test manually?01:05
wallyworldmight try that. will ec2 demo do all the setup that ec2 test does?01:06
StevenK-p is --postmortem01:06
wgrantPretty much01:06
wallyworldwith -p i have to wait for failure, right? whereas with ec2 demo i can get straight in and try stuff01:06
StevenKRight01:07
wgrantwallyworld: Want me to try them locally?01:07
wallyworldwith the html5 browser, i had to move and egg from lp-source out of the way so it would use the system version01:07
wgrantI think I have YUITestLayer working now.01:08
wgrantIn my container.01:08
wallyworldwgrant: that would be nice if you could01:08
wallyworldwgrant: you would need to pull pillar-access-service-infrastructure,  more-accesspolicy-service, more-accesspolicy-service-2, more-accesspolicy-service-3, more-accesspolicy-service-401:09
StevenKOr just more-accesspolicy-service-4?01:09
wallyworldand then bin/test -vvct test_observertable01:09
wallyworldit's a pipe, so the previous ones are needed01:09
wgrants/are/are not/01:10
StevenKNot if you've used bzr pump01:10
wallyworldwhich i have01:10
wallyworlddidn't realise that01:10
wgrantPipelines aren't magical.01:10
wgrantThey're just a series of branches with a command to merge between them, basically.01:10
wallyworldright, i didn't appreciate/forgot that pump did the merge01:11
StevenKIt does mulitple if you pump from the first pipe :-)01:12
wallyworldyeah. and i've had several conflicts to resolve doing that the past week or so01:14
StevenKWelcome to pipelines01:14
wgrantAh01:14
wgrantThe tests run better when the JS has been built, it turns out.01:14
wallyworldindeed01:15
wgrantThere we go, errors.01:15
wallyworldthat is a new thing due to the combo loader work01:15
wallyworldso wonder why it errors for you and not me01:15
wallyworldgiven we are both using the lucid webkit etc01:15
wgrantThis is on lucid01:15
wgrantYou're not using lucid webkit01:15
wallyworldwonder why your lxc seup worked then01:16
wgrantYou're using a possibly old version of webkit that's in precise, but might not actually be old.01:16
wallyworldwgrant: did you run "sudo lxc-create -t ubuntu -n lpdev -f /etc/lxc/local.conf -- -r lucid -a i386 -b $username" ?01:17
wgrantDifferent name and different config file, but yes.01:17
wgrantlxc.network.type = veth01:17
wgrantlxc.network.link = lxcbr001:17
wgrantlxc.network.flags = up01:17
wgrantWas the config I used01:17
wgrantNote that the bridge device should be lxcbr0 in precise, rather than virbr0 in earlier releases.01:18
wallyworldi used virbr001:18
wgrantShould still work, if you have a virbr001:18
wallyworldbut my issue what the container wouldn't start01:18
wgrantBut it's not created by default when you install lxc01:18
wgrantOh?01:18
wallyworldit said could not mount rootfs01:18
wallyworldand then other error messages from there01:19
wgrantTried disabling the apparmor profile?01:19
wgrantsudo ln -s /etc/apparmor.d/usr.bin.lxc-start /etc/apparmor.d/disable/; sudo apparmor_parser -R /etc/apparmor.d/usr.bin.lxc-start01:20
wallyworldi think i tried that. will try again01:20
wallyworldwell fuck me, that worked01:20
wallyworldi will go add that to the wiki01:21
wallyworldthanks01:21
wallyworldwonder why apparmor doesn't like lxc01:21
wgrantBug #92502401:22
_mup_Bug #925024: apparmor makes it impossible to install postgresql-common on Precise <apport-collected> <bot-stop-nagging> <kernel-request-3.2.0-13.22> <kernel-request-3.2.0-14.23> <precise> <rls-p-tracking> <running-unity> <linux (Ubuntu):Confirmed> <lxc (Ubuntu):Confirmed> < https://launchpad.net/bugs/925024 >01:22
wgrantIt seems to be a kernel bug.01:22
wgrantAFAICT the rejected operations should be permitted.01:22
wgrantSo possibly cgroups and LSM don't like each other very much.01:22
wgrantAgain.01:22
wgrantwallyworld: Note that for html5-browser to work in the container it'll need an X server.01:22
wgrantSo either ssh in with -X, or use xvfb-run01:23
wallyworldwill try that, thanks01:23
wallyworldwgrant: do you use a separate source tree for lp? otherwise you need to make each time you switch using lxc to metal01:23
wallyworlddue to python 2.6 vs 2.7 etc01:23
wgrantwallyworld: I don't run on metal.01:24
wallyworldah, ok01:24
wgrantInterestingly, the rest of the workarounds on /Running/LXC seem to be unnecessary on precise.01:24
wgrantAll I needed was to apt-get install lxc, disable the apparmor profile, lxc-create, and rocketfuel-setup01:24
wallyworldi find it too much of a pita to start/login to lxc so i stick to metal01:25
wgrantI have stuff in ~/bin to handle that.01:25
wgrantJust tiny shell scripts01:25
wallyworldstill extra typing01:25
wgrantlp-start, lp-sh, lp-stop01:25
wallyworldi need to run rocketfuel with --no-workspace too01:25
wgrantlp-sh handles sshing in with -A -X, and changing to the right dir01:25
wgrantAnd lp-bounce restarts the appserver in the current directory.01:25
wgrantReasonably smooth.01:26
wallyworldyes, doesn't wound too bad. you also need to hack postgres config too i think01:26
wallyworldif you run postgres outside the container01:26
wgrantThey should be unrelated.01:26
wgrantOh, you mean run the client outside the container?01:27
wgrantYou could, but I just do it through SSH01:27
wallyworldyou need to alter the config to allow "external" connections. well i did last time i tried lxc01:27
wallyworldah yes, client outside container i think was it01:27
lifelessthe main thing for me is editing hsots all the time01:30
lifelessdrives batty me01:30
wallyworldmy view is that using lxc just isn't worth the hassle, expecially when lp dev is painless on metal01:30
wgrantlifeless: Why do you have to edit it frequently?01:31
wallyworldi'm only using it to try and reproduce a ec2 test failure01:31
wgrantMy dnsmasq tends to be good about reassigning the address like once every 6 months.01:31
lifelesswgrant: so my primary lxc is on my desktop (which has 8 cores and 16GB ram); it doesn't keep the same IP (which is being allocated from my LAN dhcp server)01:31
wgrantAh01:32
wgrantlifeless: It has a static MAC...01:32
lifelessI haven't tracked down how it gets a 'hwaddr' for its 'ethernet'01:32
lifelesswgrant: it should, but ..01:32
wgrant$ grep hwaddr /var/lib/lxc/lplucid/config01:33
wgrantlxc.network.hwaddr= 00:16:3e:24:3f:3e01:33
lifeless grep hwaddr /var/lib/lxc/lucid-test-lp/config01:33
lifelessrobertc@lifeless-64:~$01:33
wgrantloloneiric?01:33
lifelessnatty01:33
lifelessI think01:33
lifelessanyhoo01:33
wgrantYeah01:33
wgrantprecise is muuuuch nicer01:33
lifelesshow does that interact with ephemeral01:34
wgrantNo workarounds required.01:34
wgrantGood question.;01:34
lifeless(I'm on precise)01:34
wgrantlifeless: https://code.launchpad.net/~wgrant/launchpad/more-bug-heat-murder/+merge/9603301:45
pooliebigjools, thanks :), 'instant virgin' or 'comic sans'?01:56
poolieoh dev tips :)01:57
wallyworldwgrant: can you recall the command to recompile things like svn libs in sourcecode since my lxc is 32bit and host is 64bit and stuff won't run atm01:57
lifelesswallyworld: make clean; make01:58
wgrantwallyworld: make -C sourcecode clean all01:58
pooliesudo make shorter01:58
wgrants/all/build/, maybe01:58
wallyworldlifeless: did make clean; make, will try what wgrant said01:58
wallyworldah -C sourcecode does delete all the .so files01:59
StevenKwgrant: What's the ppad user?01:59
wallyworldwgrant: faaaaark. now bin/test -vvct test_observertable gives me a core dump02:07
lifelessquick reminder02:08
lifelessdoes the job runner switch db user?02:08
lifelessor do they all run as one megaar user ?02:09
wgrantStevenK: Ancient, from before ArchiveRework02:23
wgrantlifeless: It switches sometimes.02:23
wgrantwallyworld_: You're running with -X?02:23
wgrantwallyworld_: It'll segfault or abort if there's no X server.02:23
wallyworld_wgrant: ah ffs. forgot that. thanks02:23
wallyworld_wgrant: i was recalling how previously we had issues running a 32 bit lxc container on a 64 bit host and there were seg faults02:24
wgrantwallyworld_: That's what I'm doing.02:24
wgrantAlways have done.02:24
wallyworld_there were segfaults mid last year02:24
wallyworld_and curtis had to add changes to html5 browser02:25
wgrantOh, for html5-browser02:25
wallyworld_strangely, some of the yui tests passed without X02:25
wgrantI've never really used it.02:25
wallyworld_wgrant: that's what's used to drive the yui tests02:25
wgrantI know.02:25
wgrantI hadn't run them before today.02:25
wallyworld_ah ok02:25
* wallyworld_ sees a pommy git ^H^H^H^H^H bigjools arriving at his house to use the printer02:34
wgrantHeh02:35
nigelbhaha02:35
wgrantlifeless: I suspect this branch will fail ec2.02:35
wgrantlifeless: Because person merge will still want to talk to the table.02:36
wgrantIt should really have landed with the patch, to db-devel.02:36
wgrantBut we'll see.02:36
lifelessshould be able to drop bugjob tonight no ?02:39
wgrantMight *just* be in db-stable in time.02:39
wgrantOr did it make it through before the devel failure?02:39
lifelessenoidea02:39
wgrantIt's been in db-stable for about 20 minutes.02:41
wgrantEr02:41
wgrants/db-//02:41
wgrantSo it will be in db-stable in about 6.5 hours02:41
wgrantSo it's probably going to be tomorrow.02:41
wgrantUnless we violate the usually procedures and do the db-deploy from stable02:41
lifelesswgrant: whats the new shiny for db user switching ?02:49
lifelessStevenK: have you landed your enterprise id helper yet ?02:51
wallyworld_I'd just like to say that bigjools is awesome02:53
* wallyworld_ decides to locks his screen next time he makes that pommy git a coffee02:53
wgrantlifeless: see lib/lp/testing/dbuser.py02:56
wgrantwith dbuser('foo')02:56
wgrantOr with lp_dbuser()02:56
wgrantOr switch_dbuser('foo') if you hate life and context managers.02:56
wgrantlifeless: Unless you want to do it in production code, in which case you're approaching things the wrong way.02:57
lifelessnah, just writing smoke tests02:58
lifelessand oot of practice02:58
=== mwhudson_ is now known as mwhudson
StevenKlifeless: Playing in ec2 last I checked03:13
StevenKadd-enterpriseid => devel                 [OK]       (up for 4:31:32) i-dbc91abf03:13
StevenKSo, 30 minutes ago? :-P03:13
StevenKlifeless: Just landed. r1490703:16
sinzuiwallyworld_, have you made progress? Is there a firefox defect in Lp's javascript?03:40
wallyworld_sinzui: html-browser still worked fine on precise with the older webkit, but i did get lxc working - needed to disable apparmor03:41
StevenKsinzui: Based on my investigation, public bugs with private branches work fine, and that bug can be closed.03:41
wallyworld_sinzui: the issue is that a Y.one() call is returning null when it shouldn't - i have printed the innerHTML and the requested node is there03:42
sinzuiStevenK, really? okay03:42
StevenKsinzui: It worked for me on .dev, if you have a few minutes we can try it on prod03:42
wallyworld_sinzui: the one issue i can see is that there is an <img blah blah> with no closing tag within the <span> that is being selected and not returned03:43
sinzuiwallyworld_, are events involved...is the node not there *yet*, but is byt the time print happens03:43
sinzuiStevenK, sure03:43
sinzuiwallyworld_, !03:43
wallyworld_sinzui: but the mustache template uses "<img blah />" and we do that same thing in lots of other places. using "<img blah></img>" makes no difference03:44
StevenKsinzui: Do you have a private branch that you can see and I can't?03:44
sinzuiwallyworld_, invalid HTML does indeed lead to unpredictable DOM traversal03:44
sinzuiwallyworld_, "<img blah></img> really is invalid and a *HTML* parser will throw a wobbly03:45
wallyworld_sinzui: weird thing - using "<img blah></img>" and logging innerHTML still prints "<img blah>" with no closing tag03:45
sinzuiand <img ...> will also throw the *HTML* parser for a wobbly if the page claims it is xhtml03:45
wallyworld_so it should be <img blah /> ?03:45
sinzuiwallyworld_, do not assume that the thing printing is the thing interpreting03:46
wallyworld_what's the correct syntax for img ?03:46
sinzuithat is how lots of fucked up markup is introduced03:46
sinzuiwallyworld_, we state we serve xhtml, the tag is a self-closing empty tag03:46
wallyworld_sinzui: like "<img blah />"? that's what's in the mustache template03:47
sinzuiwallyworld_, yes03:47
wallyworld_but print innerHTML is leaving out the closing tag03:47
wallyworld_which i was thinking was the issue03:48
wallyworld_but is not03:48
sinzuiwallyworld_, yes because that method is 1, not in any standards03:48
sinzuiand 2 it predated xhtml by 3 years03:48
wallyworld_so it still makes no sense why the Y.one() is failing on lucid03:48
wgrantwallyworld_: What is the precise text of the template?03:49
wallyworld_wgrant: https://pastebin.canonical.com/61669/03:51
wgrantIs that valid?03:52
wgrantAn img with no src?03:52
sinzuiwgrant, I think you have a point03:52
wgrantYou might mean <a href="#" class="editicon sprite edit">&nbsp;</a> or so03:53
wgrantI'm not sure what the usual pattern is.03:53
wgrantSince there's like 4 different ways to do it in the codebase already.03:53
wgrantLet's throw in a couple more :)03:53
wallyworld_wgrant: sinzui: got it working. used Y.one("[id=xxxx]") syntax03:54
wallyworld_instead of "#xxx"03:54
wgrantStill, not valid HTML03:54
sinzuiwgrant, close enough. We use hidden text for TestBrowser, which will never see this anyway03:54
bigjoolswallyworld_: I smell of Baldrick03:54
wgrant  src         %URI;          #REQUIRED -- URI of image to embed --03:54
wgrantQED03:54
wallyworld_bigjools: too much info03:54
wallyworld_wgrant: here there is no src, it's a sprite03:55
sinzuiwallyworld_, I think that means an invalid id was generated. does it have dots in it03:55
wgrantwallyworld_: Then it's not an img03:55
bigjoolswallyworld_: enjoying the pommy weather?03:55
sinzuior was it a duplicate...which is also invalid03:55
wallyworld_sinzui: nope, otherwise i would not haves used #03:55
wallyworld_not a dupe either03:55
wallyworld_bigjools: no03:56
bigjoolswallyworld_: bwahaha :)03:56
bigjoolswallyworld_: anyway strictly speaking, you're the pohm03:56
wgranthttp://www.w3.org/TR/xhtml1/dtds.html#dtdentry_xhtml1-strict.dtd_img agrees03:56
wgrantSo both XHTML1(.1) and HTML4.01 hate you03:56
wallyworld_wgrant: i see where i fucked up - i don't need the img03:57
wallyworld_i just needed to add class = "sprite edit" to the anchor03:57
wgrantYeah, and probably an nbsp or similar inside it03:58
wgrantOtherwise it can end up zero-width03:58
sinzuiwallyworld_, correct. we use sprites on other elements to avoid the img element03:58
wgrantWhich isn't awesome for displaying bgimages.03:58
sinzuiwe do not want to tempt the browser to download03:58
wallyworld_sinzui: so webkit on precise must be more forgiving03:58
wgrantWe've had problems like that before, yeah.03:59
wgrantSome old Firefoxes don't like self-closing <div>s, for example.03:59
sinzuiwallyworld_, yes. the newer lib emulates the behaviours of gecko and trident better03:59
wallyworld_sinzui: i started out using img with src='@@/edit' or whatever and when i decided to use sprites instead messed up the conversion04:00
sinzuiyes, a div is not allowed to be empty. the same is true for <p>04:00
wgrantAh04:00
wgrantEasily fixed :)04:00
wallyworld_sinzui: there should be a strict xhtml or fail mode on the newer libs04:00
sinzuiwallyworld_, that is from 2009. by 2010 we were supposed to stop using @@/ urls because they waste resources04:01
wallyworld_sinzui: yeah, i copied from elsewhere and realised sprites were preferred and messed up the fix04:01
sinzuiwallyworld_, lots of old code still uses the spectacles/testicles style04:01
sinzuiwallyworld_, IE 9 actually has a instruction to tell it not to fallback. ...do xhtml or html5 or die trying04:02
wallyworld_sinzui: i'm still perplexed at the behaviour - Y.one('#xxx') fails, Y.one('[id=xxx]') works, and in both cases, the offending <img> is well inside the containing element being selected04:03
wgrantYou're invoking undefined behaviour.04:03
wgrantOf course it's perplexing :)04:03
wallyworld_sinzui: so no webkit library strict xhtml switch ?04:04
sinzuiwallyworld_, The fact is some many people never learn the standards, that all the engines are written in a try/except pattern. Try to do the doc type. on exception slow down, choose to re-write the dom to be valid, or fallback to quirksmode04:04
wgrantwallyworld_: Serving as application/xhtml+xml will cause Gecko and WebKit to parse it as XML04:04
wgrantIE9 too04:04
wgrantBut we can't do it, because Microsoft are fucktards and didn't support it until IE904:05
wallyworld_sinzui: also, i hacked in hide_console_messages=False to see the logged output04:05
wallyworld_i think that's what you were going to put back in as a cmd line switch?04:05
wallyworld_wgrant: i was meaning xhtml for running the tests04:06
sinzuiwallyworld_, I don't see anything wrong with id="P1-permission"04:06
sinzuiMaybe we need to look at the whole file to see if something interfered with the block under test04:07
wallyworld_sinzui: me either. but since the <span> contains that invalid <img> it must bark04:07
wallyworld_barf04:07
sinzuiwallyworld_, this test is from your 3rd branch right?04:08
wallyworld_sinzui: yes04:08
wgrant-404:09
wallyworld_-304:09
wallyworld_or -404:09
wallyworld_introduced in -304:09
wgrantAh04:09
wgrantThe test results were from -404:09
wallyworld_wgrant: that's the one i was landing04:09
wallyworld_wgrant:  sinzui: but fixing the <img> still fails when i used Y.one('#xxx')04:09
wallyworld_s/fixing/deleting04:10
wgrant:(04:10
wgrantWhile it didn't make much sense that that would cause the problem, I had hoped the layout engine was retaliating to discourage people from writing blatantly invalid markup.04:11
wallyworld_but Y.one('[id=xxx]') works04:11
sinzuiwallyworld_,  Can you convince the console to print everything in the body?04:11
wallyworld_sinzui: yes, believe so. let me do that04:11
wgrantthe fuck04:12
wgrantLine 47 of base-layout.pt04:12
* wgrant deletes04:12
wallyworld_sinzui: ah, ffs. i know why i left the img in there. lazr ChoiceSource requires an editcon img node04:13
wallyworld_i will have to look at the ChoiceSource src code to see if there's a way around that04:13
sinzuisee, we wrote a lib that requires us to screw with things04:14
wallyworld_sinzui: so rather than go back to using <img src='@@/edit'/> i'll fix ChoiceSource or figure out how to call it differently04:15
sinzuiwgrant, stab away04:15
wallyworld_i may just be able to pass in the anchor04:15
wgrantwallyworld_: Then we can fix the inline bug modifying stuff to not be terrible :)04:15
wgrantCurrently the edit icon loads late04:15
wgrantBecause it's not a sprite04:15
wallyworld_yeah :-(04:15
wallyworld_well, what a frustrating day or so04:16
sinzuiwallyworld_, the image is secondary to the id-lookup-fail04:16
wallyworld_sinzui: ok, will get print the body, just a sec04:16
wallyworld_sinzui: https://pastebin.canonical.com/61671/04:20
wallyworld_let's see if it looks valid04:21
sinzuiwallyworld_, looking at the source _observer_policy_template may be creating duplicate ids if there is more than one user04:21
wallyworld_sinzui: you may be correct there - this is in the li elements04:22
wallyworld_sinzui: and indeed, in the test, data for 2 users is rendered04:23
sinzuiyep04:24
sinzuithe ids are reused04:24
sinzuithey MUST fail since they are invalid04:24
wallyworld_sinzui: scary that it passes on precise04:26
sinzuiwallyworld_, I declare shenanigans. I see some of the test already looks up id as a normal attr. I think only the first id in the tree is returned04:26
sinzuior in the case of a tree fragement, only the child matches04:27
wallyworld_sinzui: all but one of those test lookups do lookup unique ids04:28
wallyworld_so should be changed to #04:28
sinzuiI see this is common practice in out code too because zope is putting dots in our ids :(04:28
wallyworld_yes :-(04:28
sinzuiwallyworld_, we do want to it be #, but we need to add the user to the id's string as was done with remove04:29
wallyworld_sinzui: the other workaround used is to Y.DOM.xxx04:29
wallyworld_yes, i need to fix the template04:29
wallyworld_sinzui: my point about it being scary that the tests pass on precise still stands though. we should see if something can be done04:33
sinzuiwallyworld_, I am looking at http://webkitgtk.org/reference/index.html right now04:34
wallyworld_ok ;-). and i'm figuring out how to adjust my use of partials to get the required data available for the template to use04:35
sinzuiI do not see a strict flag to ensure the test dies04:35
wallyworld_that is unfortunate04:35
sinzuiwallyworld_, !04:35
wallyworld_?04:35
sinzuiwallyworld_, your test html does not claim to be xhtml strict04:35
sinzuiwallyworld_, set this as the first two declarations04:36
sinzui<?xml version="1.0" encoding="UTF-8"?>04:36
sinzui<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">04:36
wallyworld_in the test harness html?04:36
sinzuichange transitional to strict04:36
sinzuiyes04:37
sinzuiThat will change how any browser written in the last 5 years interprets the content04:37
wgrantWe should really be polyglot (X)HTML5 with a doctype of <!DOCTYPE html>04:37
wallyworld_sinzui: test_observertable.html has:04:38
wallyworld_<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"04:38
wallyworld_  "http://www.w3.org/TR/html4/strict.dtd">04:38
wgrantlolwut?04:38
wgrantLaunchpad has *never* been HTML 4.0104:38
wgrantIt's had a doctype of XHTML 1.0 Transitional from the very start.04:38
StevenK% bzr grep Transitional | grep -c 4.0104:38
StevenK604:38
sinzuiwgrant, I was thinking about that last week. I suspect there will be some oddness that we need to test to ensure we do not gt stung. such as our ids04:39
StevenKlib/lp/registry/help/sharing.html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"04:39
* wgrant blames wallyworld and jcsackett for living in the 1990s :)04:40
sinzuiwgrant, We tried html5 in the 2.0 design. IE hated it. we know know it is trivial to make it accept it04:40
wgrantsinzui: Well, AIUI IE6 is now dead to us.04:40
wallyworld_sinzui: given test_observertable.html appears correct, i'm not sure what else i should be changing04:41
wgrantIE7 and IE8 still only have HTML4.01 parsers, with no HTML5 or XHTML, but they should cope better.04:41
sinzuiIe 7 and 8 need a js initiate dom check to reenable css after it encounters html 504:41
StevenKwgrant: I didn't think we could declare IE6 support dead?04:42
wgrantIE6 is more than 10 years old.04:43
wgrantEven if there's a good reason to support it, there's no good reason to support it.04:43
sinzuiLike Jimmy Hoffa and Elvis, we do not need to declare them dead. They are dead, and we will ignore them04:43
wgrantNow, Microsoft continues to fuck the world over by preventing IE9 from running on Windows XP. But at least declaring IE6 and potentially IE7 dead gives us *some* freedom.04:44
sinzuiregardless, the js-dom-creation hack works in IE 6 and restores CSS after the html5 element is encountered04:44
sinzuior at least say, you must try another OS, how about Ubuntu04:45
=== jtv1 is now known as jtv
StevenKsinzui: Are you undistracted now? :-)04:46
sinzuiyes04:46
StevenKsinzui: Do you have a private branch on prod that you can see, but I can't?04:47
sinzuimaybe04:47
sinzuiStevenK, what bug do you want me to link it too?04:49
StevenKsinzui: https://bugs.launchpad.net/moblin-multimedia/+bug/221429 ?04:51
_mup_Bug #221429: moblin media fails to launch <intel> <acton:Invalid> <Moblin Applets:Invalid> <Moblin Multimedia:In Progress by prajwal-linux> <Ubuntu Mobile Edition:Fix Released> < https://launchpad.net/bugs/221429 >04:51
sinzuilinked04:51
sinzuiStevenK, can you still see the bug?04:52
StevenKsinzui: Looks good to me. No Linked branches.04:52
StevenKsinzui: Can you see the branch linked?04:52
sinzuifab. This tested private team and private branch04:52
sinzuiI removed the link04:53
StevenKOh, wait, it's talking about a different page04:54
sinzuiis this a doh moment04:54
sinzui?04:54
StevenKNo, I'm wrong, the user says he can't see a bug page linked from +assigned-bugs04:54
StevenKSo it is IBugTask:+index that is implicated.04:55
sinzuiStevenK, that is still the bug page04:55
StevenKsinzui: I'll comment and mark it fix released, do you want me to just archive the card?04:55
sinzuiyes. We did time on it04:55
StevenKsinzui: Plan to tackle 933759 for the rest of the day04:56
StevenKSigh. bug 93375904:56
_mup_Bug #933759: Added information_visibility_policy to bug and branch <branches> <bugs> <disclosure> <Launchpad itself:Triaged> < https://launchpad.net/bugs/933759 >04:56
StevenKI just wrote 2 garbo jobs, what's one/two more04:57
sinzuiHave fun storming the castle. I plan to take a Cadbury chocolate bar for the rest of my day04:57
StevenKI suppose it requires a DB patch first04:57
StevenKwallyworld_: Has your enum landed? If so, what is it called?05:30
StevenKOh, duh, it's AccessPolicyType05:33
StevenKDoes that mean bug 933759 is out of date and the column on bug and branch should be named differently?05:33
_mup_Bug #933759: Added information_visibility_policy to bug and branch <branches> <bugs> <disclosure> <Launchpad itself:Triaged> < https://launchpad.net/bugs/933759 >05:33
lifelessStevenK: cool05:40
StevenKwgrant: Am I right? I should be adding an accesspolicy column to bug and branch?05:57
StevenKlifeless: Can you untestable or something r14902?05:58
wgrantStevenK: Not accesspolicy06:00
wgrantPotentially accesspolicytype06:00
StevenKwgrant: A shorter form of what sinzui suggested is information_visibility, but the enum is AccessPolicyType.06:01
StevenKPerhaps visibility_policy06:01
wgrantIt is complicated.06:01
wgrantBecause there are public bits in AccessPolicyType06:01
wgrantWhich I had not envisioned.06:01
huwshimiwgrant, wallyworld_: In a private project isn't everything Proprietary data?06:02
wgranthuwshimi: It should be, yes.06:02
huwshimiwgrant: Do you have the option for anything else?06:02
wgrantI'd hope not.06:03
wgrantPotentially you could argue that userdata and embargoedsecurity could exist in a private project.06:03
wgrantBut I don't believe we've been asked to do that.06:03
huwshimiwgrant: and some public projects can have some Proprietary data?06:03
wgrantAll three can exist in a public project with optional proprietary bugs.06:03
huwshimiwgrant: Gotcha06:04
huwshimiwgrant: Thanks for that06:06
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
wallyworld_wgrant: I am adding a mthod to IAccessPolicyGrantSource....07:09
wallyworld_    def delete(grants):07:09
wallyworld_        """Delete the specified grants.07:09
wallyworld_        :param grants: a collection of (`IAccessPolicy`, grantee `IPerson`)07:09
wallyworld_            pairs.07:09
wallyworld_        """07:09
wallyworld_that ok with you?07:09
wallyworld_i need it for the +sharing page07:09
wallyworld_wgrant: also, have you considered using named tuples for the various parameters and return types?07:11
wgrantwallyworld_: s/delete/revoke/07:12
wallyworld_ok07:12
wgrantwallyworld_: I avoided namedtuples because they're not very JSON-friendly.07:12
wallyworld_i thought there would be support for them07:13
wallyworld_seems like an expected thing to have07:13
wallyworld_but maybe not07:13
wgrantWhy would you expect that?07:14
wgrantThey're a native feature in just about 0 languages.07:14
wgrantThey're an awkward hybrid of a map and a list.07:14
wgrantWhich has very little reason to exist.07:14
wallyworld_they are implemented under the covers like a normal tuple07:15
wgrantSure.07:15
wallyworld_so i thought the generated implementation might have something07:16
wgrantBut you can't represent a namedtuple in JSON.07:16
wallyworld_since it would be such a common requirement07:16
wgrantHeh, common?07:16
wgrantThere's no sensible way to represent a namedtuple in JSON, so it's unlikely that people would do it...07:16
wallyworld_but you can represrnt a dict in json which a named tuple can be mapped to i think07:16
wgrantNo.07:17
wgrantnamedtuples have order07:17
wgrantYou could map a namedtuple to a dict.07:17
wgrantBut you can't round-trip through a sensible JSON representation.07:17
wallyworld_sure, but the order could be encoded in the json07:17
wgrantHow?07:18
wgrantMake JSON map definitions order-sensitive?07:18
wallyworld_as a list of names07:18
wallyworld_for example07:18
wallyworld_it would just need serial/deserialisation on the named tuple generation07:18
wallyworld_s/generattion/generated class07:18
wgrantYou can't deserialise.07:19
wgrantBecause you don't know what namedtuple to deserialise to.07:19
wallyworld_you'd encode that as well07:19
wallyworld_i used to do this sort of thing in java all the time07:19
wgrantAdding namedtuples to JSON would provide very minimal benefit for large additional complexity.07:19
wallyworld_surely pythin can support similar pluggable serialisation mechanisms07:20
wgrantSure.07:20
wgrantBut this isn't Enterprise Java XML SOAP Beans EE2 7.507:20
wallyworld_anyways, it's more of a pub discussion :-)07:20
wgrantThis is JSON07:20
wgrantIt's simple.07:20
bigjoolsawesome - bugs.kde.org changed its design and now the crash reporting assistant fails to work...!07:21
wallyworld_it can be done simply in java, without any "enterprise" stuff, it's supported by the langiage07:21
wgrantwallyworld_: It's not supported by the format.07:21
wallyworld_bigjools: what, bugs in kde? surely not?07:21
bigjoolswallyworld_: shocking I know07:21
wgrantwallyworld_: And I would damn well hope it's not supported by the language.07:21
wgrantBy parts of the (potentially standard) libraries, perhaps.07:21
wallyworld_wgrant: what's so bad about pluggable serialisation?07:22
wgrantNothing, but serialisation doesn't belong in the core language :)07:22
wallyworld_the language sh/could support mechanisms to add it07:23
wallyworld_easily07:23
wallyworld_via libraries available at runtime07:23
wgrantAnyway, there's no reason to serialise namedtuples to JSON.07:24
wallyworld_don't agree, but doesn't matter07:25
wallyworld_wgrant: another question - why in the impl for IAccessPolicyGrantSouuce call AccessPolicyGrant?07:26
wallyworld_and not AccessPolicyGrantSource?07:26
wgranteparse07:26
wallyworld_the implementing class07:26
wgrantOh, s/in/is/?07:26
wallyworld_is07:26
wallyworld_sorry, tying07:26
wallyworld_typing07:26
wallyworld_arrgh07:26
wgrantIt's one of the two major conventions we have.07:27
wgrantEither you have Foo implementing IFoo, and FooSet implement IFooSet07:27
wgrantOr you have Foo implementing IFoo, and class methods implementing IFooSource07:27
wgrantThat was used a bit more in code07:27
wgrants/code/Code/07:27
wgrantWell, I guess technically Foo implements IFoo, and provides IFooSource.07:28
wallyworld_hmm. ok. i find that latter convention "interesting"07:28
wgrantMost of Launchpad is "interesting"07:29
wallyworld_lol07:29
* wallyworld_ pauses new AccessPolicyGrant method implementation - off to have dinner with bigjools. he is even older today07:31
bigjoolswallyworld_: where's my birthday pizza you aussie git?07:31
wallyworld_i am leaving to pick it up now you pommy whinger07:31
StevenKHaha07:32
* bigjools hears aussies whinging07:32
=== jtv1 is now known as jtv
wgrantHa ha hgwefwhui07:49
wgrantSo it turns out that some of our pagetests only work because our HTML is invalid, preventing some directives from being parsed.07:50
wgranteg. zope.testbrowser follows http-equiv refresh07:50
wgrantBut currently they have an illegal <noscript> element before them.07:51
wgrantSo mechanize doesn't see them.07:51
bigjoolsheh07:58
adeuringgood morning08:55
* StevenK stabs kanban09:02
czajkowskiGood morning09:05
wgrantjelmer: https://code.launchpad.net/~elementary-os/+recipe/elementary-os-qt4-x11-patch dies with a bzr MemoryError... do you want a bug?10:07
wgrantUsing 800MB so far in my test.10:07
jelmerwgrant: yes, please10:11
jelmerwgrant: any idea what's so particularly big about the branches in that recipe?10:11
wgrantjelmer: Qt :)10:12
wgrantWow10:12
wgrant5.4GB so far in bzr's progress meter10:12
wgrantover HTTP10:12
wgrant431MB on disk so far10:12
jelmerurgh10:12
wgrantUp to 1GB resident10:13
jelmerthat is one ginormous branch10:13
=== gmb changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: gmb | Firefighting: - | Critical bugtasks: 4*10
StevenKgmb: Ah ha, so evil BT managed to fix their crap.11:11
gmbStevenK, Wasn't their fault, as it happens; some electronics needed replacing at the exchange. I guess it's the telecoms equivalent of a NIC burning out.11:13
gmbThey fixed it pretty quickly.11:13
gmbOh, wow. I've been given a £0.01 refund on the Game of Thrones DVD set. Thanks Amazon, I'll try not to spend it all at once...11:14
StevenKgmb: Telstra here don't tend to admit that here. "Oh, it's affecting ... some other people. Which may or may not be geographically close to you."11:14
gmbStevenK, Ah, we're a small enough community for them not to be able to get away with that. Also, there's an engineer living in the village, so breakages tend to affect him, too.11:15
StevenKHeh11:15
StevenKThe last time I can remember Telstra pulling that crap was when one of their conduits wasn't properly closed in. So within about five minutes of it raining, bang, DSL drops.11:16
gmbNice11:16
StevenKWith some bullying on my part I got the nice girl to admit that it was impacting ~ 200 people which is why it got fixed in 3 hours instead of 3 days.11:17
StevenKsalgado! Why is workitems run from frequently? :-(11:42
salgadoStevenK, because it's low-overhead11:43
salgadois it causing problems?11:43
StevenKIt shouldn't be frequently, there is absolutely no need for it11:44
salgadoStevenK, it's important to have it run frequently because then it will kick in as soon as we switch it on in production, thus reducing the time window where we have the new UI but not all work items migrated12:08
StevenKsalgado: Utterly pointless. You are not going to lose much by using hourly, and even so, you can make sure the workitems are migrated before switching the UI on.12:09
salgadoStevenK, I don't want to do the migration before the UI is live, for obvious reasons12:09
StevenKsalgado: Frequently is used for things that will cause production issues if it lags, like OpenID gardening and so on. I am distinctly uncomfortable with it being in frequently12:10
salgadoStevenK, that's not what the docstring says12:12
StevenKThat was the entire reason it was added by stub.12:12
StevenKBut, whatever, I'm tired of arguring.12:13
=== matsubara-afk is now known as matsubara
jelmerwgrant: did you end up filing a bug for that qt branch?13:03
stubsalgado, StevenK: We have started moving stuff with low setup costs into frequently because the load gets distributed better (a small bit of work every 5 minutes vs. a larger chunk of work every hour). But things are trivial to shuffle between daily/hourly/frequently if one of them gets overfull or 'low overhead' turns out to be not so low.13:47
deryckMorning, all.14:11
deryckabentley, adeuring -- let's hold standup for 30 minutes past normal time.  so 15:00 UTC.14:12
adeuringderyck: ok14:12
abentleyderyck: okay.14:12
deryckabentley, adeuring -- I have sick kids again. :(  And their aunt is coming for them at normal standup time.14:12
abentleyderyck: That's too bad.14:13
deryckyeah, it's like we're on a flu/cold loop at my house.14:14
sinzuiabentley, I restored my patch the bzr-pqm because ec2 land failed: https://bugs.launchpad.net/bzr-pqm/+bug/92274114:19
_mup_Bug #922741: AttributeError: 'BzrBranch7' object has no attribute 'get_config_stack' <amd64> <apport-bug> <patch> <precise> <running-unity> <Bazaar PQM Plugin:New> < https://launchpad.net/bugs/922741 >14:19
sinzuiabentley, do you want me to retarget the bug to lp-dev-utils?14:20
abentleysinzui: did it fail locally?14:20
sinzuiabentley, I don't understand14:21
abentleysinzui: Yesterday you tried it on your local machine and said it was fine.  I don't understand what's changed.14:21
sinzuiabentley, I used bzr pqm-submit yesterday14:21
sinzuitoday I used ec2 land14:21
abentleysinzui: did you use the lp-dev-tools version of ec2 land?14:22
sinzuino I  used the one in the Lp tree14:22
abentleysinzui: I would be very surprised if the lp-dev-tools version was affected.14:23
sinzuiI will revert and do it again14:24
abentleysinzui: because the problem with the launchpad-tree version is that it's using a beta version of 2.5.  The lp-dev-tools version will use your system bzr, and any non-beta bzr should work with it.14:26
sinzuiabentley, I see you are correct14:30
sinzuiI am now marking that bug invalid14:30
abentleysinzui: Or maybe affects: launchpad.14:31
sinzuiDidn't you commit to removing the ec2 from Lp's tree14:31
=== almaisan-away is now known as al-maisan
abentleysinzui: Yes, but it may not be for a day or so, because I want to get a suitable version of bzr-pqm in the PPA.14:33
* sinzui nods14:34
abentleysinzui: My plan to copy the package has been thwarted because only the Precise package built successfully.14:37
sinzuiabentley, good enough for me14:37
sinzuiabentley, Ubuntu is in beta...Lp engineers are supposed to be on Precise now14:38
deryckgrrr, my home internet provider hates me some days.14:39
abentleysinzui: true.  Maybe that's good enough.14:39
sinzuiabentley, stevenk deleted packages for unsupported series. I imagine he is already eyeing oneiric14:40
* deryck is waiting on the new laptop to upgrade14:41
sinzuiwhat are you getting? Are you joining the SSD party14:42
abentleysinzui: I believe deryck's getting a System76 with an SSD.14:43
=== deryck_ is now known as deryck
salgadodanhg, hey there.  was wondering if you'd have some time to chat about the results of the user testing with those two new LP pages?14:43
czajkowskisystem 76 do nice machines alright14:43
deryckI am indeed getting system 76.  16 Gb RAM, Super hot graphics card, and 480 Gb SSD.14:44
czajkowskinice14:45
al-maisan"480 Gb SSD" -- wow!14:45
* al-maisan envies deryck 14:45
deryck:)14:45
sinzuiI was very disappointed with System76's quality and support. They would not admit there was a defect in the cdrom drive because it is revealed their source. I had to borrow someone's windows installer to install the free firmware fix that they did not want to admit existed. The display died 4 months later. Though they fixed it, the trackpad became unreliable 6 months after that.14:46
deryckouch14:52
deryckI've heard stuff like that, and heard others who love them.14:52
deryckI'll let you all know what I think soon :)14:52
deryckadeuring, abentley -- standup in 2?14:58
adeuringack14:59
abentleyderyck: sure.14:59
deryckg+ is taking a bit, sorry15:02
salgadomrevell, hi there.  did you get my email about the notification about work-items that can't be migrated automatically?15:14
salgado(on launchpad-dev@)15:14
czajkowskisinzui: aye one reason I didnt buy one, lving in the UK wasnt sure of the level of customer care15:16
czajkowskisinzui: the last 2 licence review projects that I had waiting in there I was leaving to ask you stuff about them. one was eclisep but owned by us I think, and the other you'd left comments on the white board15:17
sinzuiczajkowski,  I approved both15:18
czajkowskiok as I didnt know what the comments on the white board were referring to15:18
sinzuithe epl is legitimate. There was a branch but the user did not set it as the focus of development15:18
czajkowskihence me leaving them, only noticed they were gone when I refreshed the page15:18
sinzuiczajkowski, the other project was warning in the past the NC was not open and free, their project is fine now that they picked a license from the know good licenses.15:19
czajkowskinods it's hard for me to understand the comments as I dont know what is being referenced15:20
czajkowskiaso hard for you to know I'm doing the licence review either as I leave al my tabs open and review them all durin the day15:20
czajkowskias going by the rotation maintence schedule15:20
sinzuiI panic when I see 5 tabs open15:22
czajkowskisinzui: everyone has their own working method, I've a desktop for lp work and irc and mail, another desktop for browsing15:22
czajkowskieverying has it's place15:23
=== matsubara is now known as matsubara-lunch
mrevellsalgado, How would you send the notification email to people's whose blueprints haven't migrated? I don't understand because in your email you say that it wouldn't work if you sent the notification from the script.15:36
salgadomrevell, a separate, throw-away, script to send notifications to the owner/assignee of a list of BPs15:38
mrevellsalgado, Ah, I see.15:38
czajkowskidoes that mean I'm going to get a ton of notifactions about bluerprints which are 4 cycles ago ?15:38
mrevellczajkowski, I'm guessing only if you're the owner. IS that right salgado?15:38
salgadoonly if you're the owner/assignee and the work items there can't be parsed15:39
czajkowskinot if you're subscribed to them15:39
czajkowskiugh gonna create a filter now I'm gonna get a lotta mail15:39
salgadoand even then we might decide to completely ignore BPs older than, say, 6 months15:39
mrevellczajkowski, Can you help salgado gauge how old a blueprint people in the Ubuntu community care about?15:40
mrevellsalgado, Wouldn't it be better to email only the blueprint owner, rather than the subscribers as well?15:41
salgadomrevell, I don't have plans to email subscribers. I only considered owner/assignee15:41
czajkowskihmm owner would make sense, but not all blueprints may have an assingee can go and find out15:41
salgadoif there's no assignee then just the owner15:42
salgadoI mean, if a BP has no assignee we notify only the owner15:42
czajkowskisalgado: and the driver?15:44
salgadosure, we can notify the driver as well15:45
mrevellSounds good to me salgado15:46
czajkowskicool15:47
salgadomrevell, cool. I'll send you the notification text for review if that's ok with you?15:50
czajkowskisalgado: 15:48 < cjohnston> not all BPs use cycles... would be my only concern15:51
czajkowski15:48 < jussi> czajkowski: what cjohnston said.15:51
mrevellsalgado, Do you mind sending it to danhg?15:51
salgadomrevell, not at all15:51
mrevellsalgado, I'd love to look too but it's his area now.15:51
danhgSending what?15:51
danhgSorry, I've not been following the thread.15:52
salgadomrevell, btw, what about the announcement?  should I pester danhg about it as well?15:52
czajkowskisalgado: those were comments fro folks who use blueprints reguarly each cycle.15:52
salgadoczajkowski, right, and that means we may want to notify people about all WIs that can't be parsed and not just for the recent ones?15:53
mrevelldanhg, A notification to tell people that we tried to migrate their work items from the whiteboard on their blueprint to the work items box, but it didn't work. If you read up you'll see the conversation.15:53
mrevellsalgado, As for the announcement, yeah, I think danhg will handle that and I'll make sure he's up to speed.15:54
salgadomrevell, cool!  any idea when we can have that?  the code is done and we're just waiting for the announcement/notification-script to get it deployed :)15:55
salgadodanhg, I guess you might be in a better position to answer that ;)15:55
czajkowskisalgado: nods15:55
mrevellsalgado, danhg and I have a catch-up now so I'll see how Dan's schedule is looking. It may be that it's quicker for me knock one out after that call.15:55
czajkowskisalgado: possibly again the lists and contacts I suggested before to be sent to as well15:56
mrevellBy "knock one out", I mean "carefully craft".15:56
salgadoczajkowski, I don't think sending 200+ messages to those folks/lists will help.  the whole point of sending to the owner/assignee/driver is to email only the relevant people15:57
salgadothe people who will know how to fix the WIs so that we can parse them15:58
czajkowskihmm ok15:58
sinzuiI agree with salgado. only the assigned people can fix the data, and the data is not doing what they thought it was16:06
sinzuisalgado, I had two rounds of emails when hardening bugs and teams. We set a cut off date and fixed the remaining data to meet our deadlines16:07
salgadosinzui, cool.  btw, what's the best way to write this one-of script to get a list of BPs and send a fixed notification to their owners/assignees/drivers?  can I do that as a script to be cowboyed into a LP tree and ran from there?16:09
sinzuisalgado, I pulled email addresses from staging and deduped them. I then wrote a script that sent the email though canonical.16:10
* sinzui looks for example script and data16:11
salgadosinzui, from your own email address?16:11
sinzuiyes16:11
salgadoyeah, that's probably easier16:14
sinzuisalgado, I have a script that send an email to people found in a psql report. I did /massage/ the report to ensure no one got 2 emails. I think I had to research two email address for teams16:15
sinzuiI will sed you the script, with the example sql and output that was used to test and send the email16:16
salgadosinzui, great, thanks a bunch!16:16
=== salgado is now known as salgado-lunch
=== salgado-lunch is now known as salgado
=== matsubara-lunch is now known as matsubara
=== al-maisan is now known as almaisan-away
=== deryck is now known as deryck[lunch]
=== deryck[lunch] is now known as deryck
lifelesssinzui: ♥ my hero20:04
* sinzui wonders what he has done20:07
lifelesspartial fix for person merge of proposed memberships20:21
sinzuiah.20:22
lifelessI say partial, because pg8.4 will let races exist still20:22
sinzuiI am writing the SQL to fix the remaining production data now.20:22
lifelessbut in practice we can probably ignore it, as long as once the merge is scheduled attempts to propose are rejected20:22
lifelessdo we guard new proposals (in either direction) against being done after a merge is requested ?20:23
sinzuilifeless, we do not guard against new proposals. Merge does not need to know about it since the work is not calculated until the moment the merge happens. Since the merge process opens a cursor and starts updating and deleting, I assume it has a wrote lock preventing anyone from proposing a membership in the seconds needed to complete the merge20:34
sinzuiThe team being merged has a warning on its page explaining the scheduled merge.20:34
sinzuiSomeone with a stale browser could propose a merge the instant after a team is merged. It will error, just like it can happen now in cases like bug subscription20:35
lifelesssinzui: inserting a new row into another table is protected in 9.1, not in 8.420:56
lifelesssinzui: here is a sequence that I believe will work in 8.420:57
lifelessA: begin20:57
lifelessA: read person row20:57
lifelessB: begin20:57
lifelessB: read person row, insert proposed membership20:57
lifelessA: write to person row (blocks on B, blocks new inserts of related rows)20:58
lifelessB: commit20:58
lifelessA: read proposed memberships - does not see the one from B20:58
lifelessA: commit20:58
lifelesssinzui: so I think we need to guard against new proposals after the merge is scheduled20:58
lifelesssinzui: to be fully safe20:58
sinzuiwhy21:01
sinzuilifeless, why. There is no db conflict.21:02
lifelesssinzui: exactly21:02
lifelesssinzui: if A is the merge job, and B is a stale browser POST request, we end up with bad data again.21:02
sinzuilifeless, I do not write jobs that presupose work. The pending merge will still remove the pending membersip21:02
sinzuimembership21:03
lifelesssinzui: no, because A *is* the merge21:03
sinzuiThen Lp should not let any user use any team that is in a pending merge job. This has nothing to do with pending memberships21:03
sinzuiThis condition exists to day with merge proposals, drivers, maintainers, supervisors, contacts, subscriptions21:04
lifelesssinzui: +121:04
=== matsubara is now known as matsubara-afk
sinzuiNo user has ever reported there is an issue with one user scheduling a merge and another user putting the same team in a new relationship21:05
lifelessperhaps I'm paranoid.21:06
lifelessI'm not asking you to do the work now or anything.21:06
lifelessI am however sure that this race exists.21:07
sinzuiI can show you sql that might make you cry. It shows everything I know of that is superfluous  data left behind by merge and deactivation. I might even consider some of it a security risk, but I think sharing policies fix that21:08
lifelessAs long as we have a bug identifying this stuff, I won't cry. I might sob a little.21:09
sinzuiThere are no comprehensive bugs describing that merged/deactivated users continue to have artefact subscriptions.21:11
lifelesssinzui: may I impose on you to create one ?21:12
sinzuiWe have about 12,000 rows of data we search work with to send emails, but we abort because the user/team is gnoe21:13
lifelesssinzui: where is grackle at? Schema designed I know, but is it code-started? no-code-yet? ...21:13
sinzuiThere is code. The client lib is 50% ready and the browser code is 90% there21:14
sinzuiNo work on the server to show yet21:14
sinzuiI only work on it on Fridays21:14
lifelessthats cool21:15
lifelessI want to let -tech know about the use of cassandra21:15
sinzuiActually, I failed to work on it last Friday. I owe it an day of labour?21:15
lifelessdon't fear the grackle21:15
abentleyderyck: There's no OCR.  Could you please review https://code.launchpad.net/~abentley/launchpad/upgrade-all-2/+merge/96247 ?21:31
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Firefighting: - | Critical bugtasks: 4*10
deryckabentley, sure21:33
abentleyderyck: thanks.21:34
abentleyderyck: btw, how does one claim ec2 expenses?  I've never done it before.21:35
deryckabentley, file expenses through canonical admin.  Send in copy of receipt to the email we normally send in receipts.21:39
deryckabentley, and the charges are listed as "misc" on the expense report.21:39
deryckabentley, and r=me on the proposal.21:40
abentleyderyck: thanks.  I will ec2 land it, of course :-)21:41
deryckabentley, awesome :)21:42
wgrantlifeless: Are you referring to predicate locking?21:59
lifelesswgrant: SSIS or whatever it is22:00
wgrantlifeless: Right, with predicate locking.22:04
wgrantlifeless: To use that effectively we'd have to garboify the thing.22:04
wgrant(which we possibly should anyway, but it's complicated)22:04
lifelesswgrant: you're talking person merge?22:06
lifelesswgrant: I thought we already did that in a Job22:06
james_whi wgrant, are you on the stakeholders mailing list?22:07
lifelessjames_w: which one22:07
james_wLP\22:08
lifelessI think he is,yes.22:08
wgrantlifeless: Um, by garbo I mean looptune22:11
wgrantlifeless: Currently it's in a single transaction, I think.22:11
lifelesswgrant: I don't see the issue; as long as we do merge > Hard-timeout after any started transactions, and we reject use of to-be-merged persons, we're safe.22:12
wgrantlifeless: It could take minutes.22:13
wgrantlifeless: Keeping a serialised transaction open like that sounds dangerous.22:13
lifelesswgrant: ehhh22:13
lifelesswgrant: I think there is a massive comms fail happening here22:14
lifelessand planet earth is blue22:14
wgrantOh?22:14
lifelessI didn't suggest minutes, nor keeping a serialised xaction open the whole time22:15
lifelessI didn't imply it either :)22:15
StevenKlifeless: Can you untestable or something r14902? Please?22:15
wgrantlifeless: Using SSI in something like the current implementation implies it22:16
lifelesswgrant: I am not proposing SSI, I was saying in the absence of it ...22:16
lifelessStevenK: Naturally. I was waiting for it to hit staging so it can be QA'd.22:17
james_wwgrant, did you see the discussions around creating commercial PPAs?22:17
StevenKlifeless: Bah, this whole devel versus db-devel thing.22:18
lifelessso, staging is running22:18
lifelessand has the right revno22:18
lifelesschecking logs22:19
wgrantjames_w: Yeah. IIRC we basically want to make commercial-ppa-uploaders a celebrity or add an extra field on distribution, which allows setting of commercial.22:19
wgrantI suspect the latter.22:19
lifeless0.3 of a second22:20
lifelessStevenK: having looked in backlog I see you pinged me last night; if it was on staging already you could have qa'd it - no need to block on me.22:20
StevenKlifeless: I was implying that you should practise what you preach in terms of QA. :-P22:23
lifelessStevenK: I preach that we should qa each others stuff22:23
wgrantjames_w: Are you looking at implementing it?22:23
lifelessStevenK: and I qa other folks stuff, so  :-P22:24
james_wwgrant, do we also want to make ~commercial-ppa-uploaders a private team, so that we don't have to worry about also being able to make archives private?22:24
james_w(the team loaded for me today, so I was able to see that it is currently public)22:24
james_wor maybe cleaning up Launchpad.CommericalAdmin would be a maintainance win that would offset the increased lines of code22:24
james_wwgrant, it's a blocker to the work we want to do next, so yeah22:24
wgrantjames_w: Mmmm. That's a hard one.22:26
sinzuiwgrant, this appears to generate sane ids http://pypi.python.org/pypi/z3c.form22:35
wgrantAnyone feel like reviewing https://code.launchpad.net/~wgrant/launchpad/html-wtf/+merge/96265?23:59

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