/srv/irclogs.ubuntu.com/2011/03/28/#launchpad-dev.txt

lifelessthumper: hoot00:05
lifelessthumper: *shoot*, or did you want voice? (can do that too)00:05
thumperyou suggest using closures rather than functors00:05
thumperI'm not sure I get the subtleties00:05
lifelessmwhudson: I'll get someone else to review; need deeper restructuring to make the concept work00:05
lifelessthumper: oh, less code00:06
thumperlifeless: and here I was thinking you were hooting about my link in -ops00:06
lifelessuses more of the language facilities, which tends to feel more natural00:06
lifelessthumper: I linked that here last week :P00:06
thumperlifeless: can you give me an example00:06
thumperah... ok00:06
thumperwell it was new to me :)00:06
mwhudsonlifeless: ok, thanks for letting me know00:07
lifelessso - a class with only __call__ is equivalent to a function00:07
lifelessmwhudson: (the symmetric vs asymmetric difference is biting here)00:07
lifelessmwhudson: e.g. product can be symmetric, branch.owner can't be, not for merge proposals00:07
mwhudsonlifeless: oh right yes, duh00:07
lifelessmwhudson: kindof reflects some limits in the collections approach00:08
lifelessconceptually we might be better off with a merge proposals collection taking two branch collections as constraints, but then the constant folding will become *hard*00:08
thumperlifeless: I think I get your suggestion now...00:09
lifelessso, it makes me wonder more about whether ditching the layer would just be a net win.00:09
lifelessthumper: right - rather than implement N classes + factories, implement N functions, and for some of them use currying (or partial()) to capture whatever constraints you need00:10
lifelesswgrant: are you deploying us up ?00:10
wgrantlifeless: I shall.00:11
lifelesskk00:11
* mwhudson gets ready to shuffle off00:22
lifelesshttp://pastebin.com/yVLXtDse00:55
pooliehi all00:57
=== StevenK changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
wgrantspiv: The package importer was only changed to specify a reviewer three weeks ago, and that may have been deployed even more recently.01:04
wgrantlifeless: Actually, we can't really delete the code. Makes it impossible to test things without real DNS.01:05
wgrantLike, say, a development environment.01:05
wgrantAlthough I guess we could.01:05
spivwgrant: well, the other curious part is it appears to only or at least mainly affect imports that had been affected by bug 726584, which was a bzr issue01:06
_mup_Bug #726584: flash-kernel import fails apparently mismatching maverick and natty branches <hpss> <udd> <Bazaar:Fix Released by spiv> <Ubuntu Distributed Development:New> < https://launchpad.net/bugs/726584 >01:07
spivwgrant: but perhaps it's just more likely to trigger that situation with relatively stale imports01:07
wgrantspiv: It only creates MPs when there is a conflict.01:07
wgrantAnd it will affect all of them.01:07
wgrantThe API usage is wrong.01:07
spivWhat do you mean by "all of them"?  I don't see the number of import failures rising, so I presume most of them have been passing.01:08
wgrantspiv: It will affect anything with an import conflict.01:09
lifelesswgrant: how so? we can inject stuff into the client01:11
lifelesswgrant: and/or select the specific names we need a priori01:11
wgrantlifeless: I guess.01:12
lifelesscan has review? https://code.launchpad.net/~lifeless/launchpad/bug-736008/+merge/5502801:33
poolieis it just my flakey network or is lp refusing ssh connections?01:45
lifelesspoolie: works for me01:45
lifeless(just tested)01:45
pooliethanks01:46
lifelessspm: he's noticed, you can take the special case for poolie out now01:46
spmhmm?01:47
spmoh. right. yes. will do.01:47
lifelessStevenK: https://code.launchpad.net/~lifeless/launchpad/bug-736008/+merge/5502801:48
lifelessStevenK: I know you are around :)01:48
* StevenK grumbles at lifeless 01:49
StevenKlifeless: I note you're adding two methods getCandidateBranchesWith(). There is a little bit of duplicated code there, are you able to up-call from the more explicit one to the anonymous one?01:54
lifelessStevenK: no01:55
lifelessStevenK: anonymous(generic)  and visible(generic)01:55
lifelessthe generic class does no filtering by user; the anonoymous one filters as though an anonymous user, the visible as though a user is logged in01:55
lifelessI think it should be refactored away from subclassing and into a strategy helper.01:56
lifelessnice 477 Time Outs01:59
StevenKlifeless: Sounds good, do that.02:00
StevenK:-P02:00
StevenKlifeless: If you want the refactoring to be done in another iteration, I'm happy enough to say r=me02:00
lifelessStevenK: I think it should be done, I have no plans to do it.02:00
StevenKlifeless: Okay, then I'd suggest you add an XXX to that effect.02:01
lifelessStevenK: I don't think thats useful to do:02:01
lifeless - such XXX become stale all the time02:01
lifeless - its not a 'bug'02:01
lifeless - the refactoring might be wrong, until someone tries, who knows02:01
StevenKlifeless: I might just be overly grumpy, but you asked for a review, not an argument.02:02
lifelessStevenK: yes, and I appreciate that - you've mentioned two things; one that the *current code structure* isn't optimal and two that I record *one approach* to fixing it in the code base.02:03
lifelessfor the former, I'm agreeing with you vigorously, but the thing I'm trying to achieve is orthogonal to the current code structure02:03
StevenKThen I withdraw my objection, r=me02:03
lifelessfor the latter, I'm saying that encoding a guess about what might be better in the code base isn't a useful thing to do02:03
lifelessStevenK: thanks!02:05
lifelessStevenK: http://bazaar.launchpad.net/~lifeless/storm/with/revision/387 - is the change to storm I'm bundling02:06
StevenKI think I've read that before02:07
lifelessyeah, i pastebinned it, when it was in-tree in lp02:07
huwshimiIs it just me or do other people find that a lot of AJAX requests hang in Launchpad? Probably 60% of the time I do something it doesn't work and I have to refresh and do it again.02:16
wgranthuwshimi: I've not seen that.02:17
huwshimiwgrant: Really?02:17
huwshimiwgrant: What browser are you using?02:17
wgranthuwshimi: Chromium 11, mostly.02:17
huwshimiwgrant: Ah right. I thought it might be a chrome thing, but I guess not02:18
huwshimiIt02:18
huwshimiIt's really annoying02:18
wgranthuwshimi: Bug task actions?02:18
huwshimiwgrant: Yeah02:19
wgrantEr.02:20
wgrantIs something wrong with OOPS reporting?02:20
wgrantOur top two OOPSes have disappeared.02:20
wgrantMaybe the broken remote branch is fixed, and the package importer has unbroken...02:20
wgrantBut hmm.02:20
spivwgrant: the package importer has stopped retrying that failure02:21
wgrantspiv: Ah.02:21
spivhttp://package-import.ubuntu.com/status/: “51 packages failed to many times to retry with key lazr.restfulclient.errors.HTTPError”02:21
spivI can kick it over and over today if you'd like lots more OOPSes :)02:22
wgrantYeah, the 717 critical OOPSes is a bit low. The extra 1400 will do us some good :)02:23
lifelesshuwshimi: possibly you're hitting lots of timeouts + the poor reporting we have of those class of errors02:26
wgrant        1 /    2  BugTask:EntryResource02:27
wgrantNot likely.02:27
poolieis it just me or are there no longer tick/cross buttons when editing mp descriptions?02:41
poolienm, just me, they probably failed to load02:41
lifelesshuwshimi: I guess you need to track the requests and see what happens02:49
huwshimilifeless: Yeah next time it happens I'll take more notice :)02:50
lifelesswow02:54
lifelesshttps://lp-oops.canonical.com/oops.py/?oopsid=1912O253#statementlog is special02:54
wgrantI was looking at that before.02:55
lifelesshttps://bugs.launchpad.net/launchpad/+bug/74397002:55
_mup_Bug #743970: ProductSet:+all timeouts <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/743970 >02:55
wgrantI don't understand what it's trying to do.02:55
wgrantThere were some pretty slow queries for what should be a fairly trivial operation.02:56
lifelessso the first clause is 'direct teams for person X with membership status 3'02:56
lifelessthe second clause is 'all active team memberships02:57
lifelessthe first clause can probably be radically simplified02:57
wgrantWell, I didn't look at the queries in depth. I mostly just scanned the log and saw some 800ms queries that didn't make sense for listing products.02:57
wgrantSo I decided that I might come back to it later.02:57
huwshimiMy apologies to whoever is getting notifications for all the bug changes I'm making today.03:07
wgrantHow dare you try to fix our UI.03:07
lifelesshuwshimi: I'm not sure easy-ui is a sensible tag though :(03:11
lifelesshuwshimi: if you see js error bugs - per the list thread - they should be criticaled03:13
huwshimilifeless: sure.03:13
huwshimilifeless: It is a bit of a misnomer, but I couldn't think of a better one03:14
lifelesshuwshimi: what is the intent you want to convey?03:14
lifelesswallyworld: hey, web_service_request_to_notification_request - seems to be entirely redundant. Can't you just use the INotificationRequest directly ?03:15
wallyworldlifeless: probably. i'm a bit clueless when it comes to zope and adaptors03:15
wallyworldi'll give it a go03:16
huwshimilifeless: They should be fairly straight-forward, only take a few hours and not really require much discussion. The sort of thing that can be just picked up and done.03:16
lifelesshuwshimi: I suggest tagging them easy, ui03:17
lifelesshuwshimi: a search for easy & ui will bring them back trivially03:17
huwshimilifeless: The problem with that is that implies that they are actually easy. I think I need to pick another word instead of that03:19
lifelesshuwshimi: shallow trivial simple tech-debt friction polish03:19
wallyworldlifeless: i can't use your suggestion because INotificationRequest is lp specific and the implementation code is in lazr restful03:20
lifelesswallyworld: you have an adapter registration with a factory line03:20
lifelesswallyworld: in the one merge proposal03:20
lifelesswallyworld: why can't you put the factory as ....INotificationRequest03:21
wallyworldlifeless:  ah. i think i understand now. you mean "factory=canonical.launcpad.webapp.interfaces.INotificationRequest"03:22
wallyworld?03:22
lifelesswallyworld: that seems like a trivial inlining03:24
lifelesswallyworld: yes03:24
lifelesswallyworld: def foo(bar): return quux(bar)    is equivalent to foo=quux, after all03:24
lifelessyou may be able to do better, but I was just pointing out the direct simplification I thought I saw03:24
lifelesslib/lp/registry/browser/product.py makes baby jebus sad03:25
wallyworldlifeless: thanks. i'll make the zcml change03:25
lifelesswgrant: check line 101403:26
lifelesswgrant: and ask yourself, why would this show up in projects/+all03:26
wgrantlifeless: It surely is not invoking ProductView for every project.03:27
lifelesswgrant: :) :) :) :)03:28
lifelessconfigure.zcml 143403:29
lifeless+listing-detailed is the culprit03:31
wgrantYay03:32
wgrantHmm.03:41
wgrantDamn.03:41
wgrantI had merged MixedFileAliasView into LibraryFileAliasView.03:41
wgrantBut that's not safe.03:41
wgrantBecause we may leak restricted LFAs in various places, which is safe at the moment because the code needs to explicitly ask for the token view.03:43
lifelessyeah03:44
lifelessbtw03:45
lifelessI *thought* I saw lp asking for appserver verification of public bug attachments or something the other day03:45
lifelessthat could be streamlined03:45
wgrantRight, ProxiedLibraryFileAlias always goes to the appserver first.03:45
lifelessfor public files, we should bypass that03:46
wgrantWhat if they become private?03:46
lifelesswill make branding load faster03:46
lifelesswgrant: they they will get a 40403:46
wgrantWhat? Branding doesn't go through ProxiedLibraryFileAlias.03:46
lifelesswgrant: mmm, perhaps, I could swear it was03:46
lifelessanyhow, there are two classes of links03:46
lifelesscurrent and persistent03:46
lifelessfor bug mail using the appserver redirect is appropriate03:47
wgrantRight.03:47
lifelessfor web pages rendered, its very unlikely that the bug will go private before the user clicks - and if it does, shrug.03:47
lifelessthe race exists regardless because we don't hand out tokens for public files03:47
lifelessthe bug might go private between asking for the real url and actually requesting the content from the librarian03:48
lifelesswgrant: different thing than what you're doing03:49
wgrantI know.03:49
lifelesswgrant: I only mention it so you can bear it in mind in any refactoring you do.03:49
thumperwallyworld: you realise that Javascript doesn't have method overloading?03:51
wallyworldthumper: :-( i thought it did03:52
thumperwallyworld: nope, it is more like python03:52
wallyworldthumper: you mean the recipe text xss branch?03:52
thumperyep03:52
wallyworldok. will do a fix03:53
thumperwallyworld: just check for undefined03:53
thumperwallyworld: if someone calls a function with one param when it takes two, the second is undefine03:54
* wallyworld nods03:54
thumperd03:54
thumperwallyworld: did you want a voice catchup?03:54
wallyworldthumper: ok.03:54
* wallyworld plugs stuff in03:54
thumperwallyworld: with no leonardr now, we can do it at a more convenient time for you03:54
wallyworldteam of 203:54
wallyworld:-)03:55
wallyworldthumper: i can hear you03:55
thumperI no hear you03:55
lifelessand yay - prejoining fail again03:56
wallyworldthumper: not muted but no sound03:56
* wallyworld restarts :-(03:56
thumpermic plugged in?03:56
wallyworldthumper: yes!03:56
thumperwallyworld: time to try something different?04:02
thumperwallyworld: mumble doesn't seem to be working for you, how about skype?04:03
wallyworldthumper: just testing with skype now and it works fine04:04
lifelessanyone know why cve:+index has edit widgets for the bug tasks?04:08
lifelesscan has review? https://code.launchpad.net/~lifeless/launchpad/bug-743970/+merge/5503304:09
lifelessStevenK: ^ its tiny, if you feel like it.04:13
* lifeless will bbiab04:13
lifelessStevenK: thanks!04:42
StevenKwgrant: I think I've come up with a tiny fix for python-debian's permissiveness04:43
wgrantStevenK: Oh?04:45
StevenKwgrant: http://pastebin.ubuntu.com/586329/04:45
wgrantStevenK: Looks reasonable.04:46
lifelessok, why can't I ssh to ec2...05:08
StevenKwgrant: Bleh, it isn't quite that simple. :-(05:15
StevenKlifeless: What does ssh -v say?05:15
lifelessdebug1: Connecting to ec2-75-101-221-93.compute-1.amazonaws.com [75.101.221.93] port 22.05:17
StevenKI don't think your instance is up05:18
lifelessInstance i-c201daad starting.......................................... started on ec2-75-101-221-93.compute-1.amazonaws.com05:18
lifelessStarted in 3 minutes 37 seconds05:18
StevenKI think the default security group allows ICMP05:18
lifelesscouldn't ping it either, and it should be in the ec2test group05:20
StevenKlifeless: Do you have ElasticFox?05:20
StevenKThat should allow you to see what Amazon thinks about this05:20
spivStevenK: "ka-ching", I expect05:21
StevenKspiv: Two drums and a cymbal fall off a cliff05:21
huwshimiStevenK: I thought it was two elephants05:22
StevenKhuwshimi: Not heard that one05:23
StevenK(Okay, that was bad)05:23
lifelessI think its a routing issu05:30
lifeless*issue*05:31
lifelesshttp://developer.amazonwebservices.com/connect/entry.jspa?externalID=609&categoryID=88 fails to connect too05:31
StevenKlifeless: Hm, works for me05:32
lifelessjust came good, will see whats up05:33
lifelessin the mean time05:35
lifelesswould someone like to ec2land https://code.launchpad.net/~lifeless/launchpad/bug-743970/+merge/55033 and https://code.launchpad.net/~lifeless/launchpad/bug-736008/+merge/55028 ?05:35
lifelessulp, nevermind05:36
lifelessit really is happier now05:36
wgrantCan I tell a testbrowser not to follow redirects?05:48
StevenKwgrant: Sadly, it wasn't that simple. But http://pastebin.ubuntu.com/586340/ makes it work05:50
StevenKwgrant: So, do you think resolved DSDs should lose the diff?06:08
wgrantStevenK: I'm not sure.06:10
StevenKwgrant: I was going to get DSD.update() to lose them if the status is NEEDS_ATTENTION so they can be re-requested06:11
=== almaisan-away is now known as al-maisan
StevenKHas anyone seen http://pastebin.ubuntu.com/586348/ ? Or should I fix it?06:25
wgrantDidn't I see that in one of your branches/diffs last week?06:25
StevenKA diff06:26
StevenKI'm just surprised it's gone unfixed06:27
wgrantCould I convince someone to look at an oversized branch?06:36
wgrant948 lines (+108/-606)06:36
wgranthttps://code.launchpad.net/~wgrant/launchpad/delete-librarian-streaming/+merge/5503906:36
StevenKwgrant: r=me, with a niggle06:43
StevenKhttps://code.launchpad.net/~stevenk/launchpad/apihelpers-imports/+merge/5504006:44
wgrantStevenK: Bah, yes, people fail at sorting imports.06:44
StevenKHaha06:45
wgrantThe test fallout from this could be *amusing*.06:46
StevenKOh, NFS, DIALCF.06:46
wgrantWhat's it doing?06:46
wgrantIt can't be as flaky as nfsv4+krb5.06:47
StevenK% ls -lh /media | tail -n 106:47
StevenKd????????? ? ?      ?         ?                ? media06:47
wgrantWell then.06:47
StevenKI finally managed to find an operation that actually told me what was going on, which was Stale NFS file handle06:48
StevenKExcept now the client thinks it's mounted, but the server and client are playing no-speakies. Awesome.06:49
StevenK% sudo start portmap06:51
StevenKstart: Job failed to start06:51
StevenKCould I have a clue, Upstart? Please?06:51
lifelessStevenK: they cost more06:57
StevenKlifeless: Hmph.06:57
StevenKlifeless: Can haz review?06:57
lifelesssure07:10
StevenKlifeless: https://code.launchpad.net/~stevenk/launchpad/apihelpers-imports/+merge/55040 if you missed it07:11
=== henninge changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: henninge | https://code.launchpad.net/launchpad-project/+activereviews
henningeGood morning!07:15
=== al-maisan is now known as almaisan-away
wgrantMorning henninge.07:20
henningeHi wgrant! ;)07:23
StevenKhenninge: Hai!07:23
henningeAnd hello StevenK! :)07:23
StevenKhenninge: You guys switched to daylight savings on the weekend?07:24
henningeYes we did.07:24
StevenKMeans we probably lose ours in about a week.07:24
henningeoh07:26
stubThis should be fun - I've got a branch that consistently fails with KeyboardInterrupt07:32
StevenKstub: Stop bashing Ctrl-C during the test, then? :-P07:32
stubStevenK: The keyboard is in another continent ;)07:33
* wgrant stabs germanium.07:33
wgrantStop being so slow.07:33
* wgrant stabs mizuho too.07:38
StevenKwgrant: Same reason, or a different one?07:40
wgrantStevenK: Same one.07:41
StevenKgermanium has an excuse, I didn't think mizuho did.07:41
wgrantMaybe the DC just hates me.07:42
wgrantI can't get more than 100KB/s from mizuho.07:42
wgrant(substantially less from germanium. and request latency is terribly)07:42
StevenKWhat's your path to the DC?07:44
wgrantOptus->L3(US)->Canonical07:45
* spm leaves the "throttle wgrant" block in place for another day07:46
wgrant:(07:46
spmwgrant: have you done any sniffs locally and seen the effect on a Time Sequence graph?07:46
wgrantA hwhat?07:47
spmwoooo! I know something wgrant doesn't. /first!07:47
wgrant:(07:47
spmhttp://www.tcptrace.org/manual/node12_mn.html07:48
wgrantThanks.07:48
spmmy #1 go to tools for 1st step debuging funky network crap07:48
spmethereal (or whatever they call it this week) has a not as useful version of that07:49
StevenKwireshark07:49
spmthat's it. ta.07:49
StevenKAnd it hasn't been renamed for like 2 years?07:49
wgrantMore.07:49
StevenKMore proof spm is just old07:49
wgrantalmost 5 years07:49
wgrantMay 200607:49
wgrantWow.07:49
StevenKCrumbs07:49
wgrantDoesn't seem like that long ago :/07:49
StevenKHaha07:49
spmif you give me a bit, I can probably even tell you it's earlier name. and find a binary.07:50
StevenKFor which Unix? :-P07:50
spmheh, I was actually looking for the windows version... /blush07:51
StevenKHah, fail07:51
spmwgrant: so the trick you're looking for - is your tcp window saturated; or are you getting lots of normal flow then big gaps; multiple acks can be bad; etc. it depends.07:54
spmalso, getting a similar view off a different spot can be helpful. I've used my VPS in the USA to debug server woes in Oz, completely different network path and that can eliminate some imponderables.07:56
wgrantFrom my US VPS it's fine.07:56
spmI'd blame your ISP then. ;-)07:56
StevenKwgrant: Oh, you also have a Linode?07:57
wgrantI guess I don't grab much other big stuff from Europe.07:57
wgrantStevenK: Of course!07:57
StevenKwgrant: Fremont?07:57
wgrantIndeed.07:57
StevenKwgrant: Win07:57
* StevenK looks up his host07:57
StevenKfremont3507:58
wgrantI seem to be on fremontreallyslowio07:58
StevenKHaha07:58
wgrantaka fremont8707:59
StevenKHaha07:59
StevenKwgrant: If it's a problem, open a ticket08:00
wgrantIt's not really an issue at the moment.08:00
StevenKlifeless: SIGH! I've not been able to self-review before, but thanks.08:01
StevenKlifeless: Should have realised08:01
wgrantHuh, it looks like -backports is going to be usable in natty.08:03
jkakarthumper: Still there?08:11
nigelbWould a server editiion Ubuntu be alright for lp install?08:12
StevenKhenninge: I have one for you -- https://code.launchpad.net/~stevenk/launchpad/dsd-lose-diffs/+merge/5505908:12
wgrantnigelb: No, it only runs on Windows Server.08:12
stubbzrlib.errors.InvalidHttpResponse: Invalid http response for https://code.launchpad.net/~stub/launchpad/trivial/%2Bmerge/54692/.bzr/branch-format: Unable to handle http code 405: expected 200 or 404 for full response.08:12
nigelbwgrant: Har har08:12
wgrantstub: bazaar.launchpad.net, not code.launchpad.net?08:13
stubwgrant: This is from ec2 land08:13
nigelbwgrant: I didn't want to kill my processor with a full install08:13
stubGah... pebkac08:13
huwshimirvba: Morning08:13
rvbahuwshimi: morning08:13
huwshimirvba: I have some icons for you08:14
huwshimirvba: Well if they're ok08:14
rvbahuwshimi: nice!08:14
StevenKhenninge: I have one for you -- https://code.launchpad.net/~stevenk/launchpad/dsd-lose-diffs/+merge/5505908:14
nigelbwgrant: In revenge, I'll pick your brains, when I finish the installation.08:15
henningeStevenK: looking08:16
wgrantnigelb: Sounds like a good idea.08:16
StevenKnigelb: Feel free to ask anyone, rather than just picking on wgrant?08:16
wgrantThat could work too.08:17
nigelbStevenK: Sure :)08:18
henningeStevenK: Shouldn't you also test for parent_package_diff being None?08:20
StevenKhenninge: I can, if you wish08:21
StevenKhenninge: http://pastebin.ubuntu.com/586364/08:22
henningeStevenK: Looks good. Why did you chagne to Equal?08:22
StevenKhenninge: Because it was bugging me before I asked for the review08:23
henningeStevenK: but why only on the second assert?08:23
StevenKhenninge: Because that one was assertTrue(... is None) which is effectively Equal. The former is assertFalse(... is None)08:24
wgrantStevenK: assertIs(None, foo)08:24
wgrantNot assertEquals.08:24
StevenKFixed08:24
henningeYes, that's what I would have expected.08:25
wgrantAnd assertIsNot08:25
StevenKhenninge, wgrant: http://pastebin.ubuntu.com/586365/08:25
henningeStevenK: r=me08:26
StevenKhenninge: Thanks!08:26
henningethanks wgrant ;)08:26
StevenKjelmer: Ping!08:40
jelmerStevenK: goooood morning08:41
StevenKjelmer: Hai!08:41
adeuringgood morning08:41
henningeMoin adeuring!08:41
adeuringhi henninge08:41
StevenKjelmer: Did you know the Version class in debian.changelog isn't strict enough?08:41
jelmerhi henninge, adeuring08:42
jelmerStevenK: No, I didn't. In what regard is it not strict enough?08:42
henningeHey jelmer ;)08:42
adeuringhi jelmer08:42
StevenKjelmer: The regex allows : in the upstream character class -- that is only allowed if the epoch is not None. I have a patch at http://pastebin.ubuntu.com/586340/08:43
jelmerStevenK: ah, nice catch08:45
StevenKjelmer: Okay, so you like my patch. :-) What's the next step?08:46
jelmerStevenK: a test would be nice, and sending it upstream08:47
StevenKjelmer: Just file a bug in the Debian BTS?08:48
jelmerStevenK: Yep; we should probably poke James or one of the other devs to have a look, my last patch was sent to the mailing list but hasn't seen much attention.08:49
jelmer(I'm not upstream)08:49
StevenKjelmer: Ah, I thought you were, sorry.08:50
StevenKjelmer: How do I run the test suite?08:50
StevenKAh, there's even a Makefile08:51
jelmerStevenK: Yep, that's specific to Launchpad's friendly fork though08:51
StevenKIt helped me check the test I wrote, so win08:52
bigjoolsmorning all09:09
=== almaisan-away is now known as al-maisan
wgrantMorning bigjools.09:16
LPCIBotProject windmill build #110: STILL FAILING in 1 hr 8 min: https://lpci.wedontsleep.org/job/windmill/110/09:17
wgrantbigjools: Do you have an opinion on bug #740892?09:17
_mup_Bug #740892: Ownership of package sets doesn't get preserved when a new series gets initialized <Launchpad itself:Triaged> < https://launchpad.net/bugs/740892 >09:17
bigjoolswgrant: I agree with your last bug comment.  Also, he's not stated exactly why changing the owner is a problem.09:19
wgrantbigjools: Because the DMB is given several of the packagesets.09:19
wgrantbigjools: So they can administer them without involving the TB for every single thing.09:19
bigjoolsok09:19
bigjoolsis DMB anywhere on the distro data?09:20
wgrantNo.09:20
bigjoolshm09:20
wgrantThe TB should be, but the DMB probably shouldn't be.09:20
bigjoolsin that case they need to set it manually09:20
wgrantWhy?09:20
bigjoolshmm actually09:20
bigjoolswe can preserve it for the same distro, change it for new distros09:21
wgrantThat's what I was suggesting, yeah.09:21
wgrantI think that should work.09:21
bigjoolscool09:21
wgrantbigjools: Also, archivepublisher's tests suck.09:22
bigjoolswgrant: tell me something I don't know09:23
wgrantbigjools: I was changing Release file generation, and it looks like it's only slightly tested in soyuz-upload.txt and nowhere else.09:24
wgrantSigh.09:24
bigjoolsblame celso :)09:24
wgrantMmm. I think it's probably mostly just old, complex code. Other bits of LP were also pretty bad.09:25
=== jtv1 is now known as jtv
=== al-maisan is now known as almaisan-away
deryckMorning, all.12:02
henningeHi deryck!12:04
mrevellHello everyone. Has anyone here tried working through the getting started guide for daily builds?12:16
wallyworldderyck: hi. you tried to run windmill tests with firefox 4? the Launchpaduser.ensure_login() method fails for me. "current_url = client.commands.execJS(code='windmill.testWin().location;')['result']['href']" fails12:16
deryckwallyworld: ah, no, I haven't tried it with 4 yet.12:16
deryckwallyworld: that sucks :(12:17
wallyworldderyck: yeah :-( i don't want to reinstall ff312:17
deryckwallyworld: is the site actually broken in 4?  Or the test just fails?12:17
wallyworldderyck: the site/page loads but the javascript inside the call to ensure_login() fails12:18
wallyworldderyck:  client.commands.execJS(code='windmill.testWin().location;') returns a near empty dict12:18
wallyworldi mean the 'result' value is a near empty dict12:19
deryckwallyworld: ah.  hmmm, let me look more closely at this now....12:19
wallyworldhence there is no 'href' key and it barfs12:19
wallyworldderyck: thanks. i had a quick look at the windmill devs google group but nothing jumped out. if now is not convenient for you to look, that's fine. it's way past eod for me  and i was hoping to take a shortcut in asking you :-)12:23
deryckwallyworld: yeah, I don't know without looking.  Sorry.  I don't mind digging in the innards of the windmill js objects today.12:25
deryckwallyworld: it might also be better to see if we can get the url in an easier way.12:25
wallyworldderyck: np. i'll look tomorrow also. thanks12:26
daniloshenninge, hi, I've got a very nice branch that requires your both reviewer and ui expertise :)12:28
daniloshenninge, https://code.launchpad.net/~danilo/launchpad/bug-740640/+merge/5512312:28
daniloshenninge, most of the UI visible in https://devpad.canonical.com/~danilo/screencasts/inline-validation-error.ogv12:28
henningedanilos: I am watching it right now ;)12:29
henningecool12:29
* henninge replays12:29
danilosheh :)12:29
deryckwallyworld: np!12:29
daniloshenninge, fwiw, I am unsure about "select all" after re-focusing on the field with the problem12:30
jmlwgrant: have to say again that I really appreciate you making the PQM step much faster. It makes a big difference to landing branches.12:32
lifelessjml: quick chat?12:33
=== almaisan-away is now known as al-maisan
jmllifeless: sure.12:34
lifelessskype? voip? mumble is still very crackly12:35
wgrantjml: Indeed. It is pretty nice.12:35
daniloshenninge, and whoops, lint issue due to code I should have removed (an unneeded nested function definition)12:35
henningedanilos: np, just push it12:36
daniloshenninge, done already :)12:36
lifelessjml: ^12:36
henningedanilos: wow, you're quick!12:36
jmllifeless: skype is trying to connect as we speak12:37
lifelesss/as we/so we can/ :P12:37
=== mrevell is now known as mrevell-lunch
LPCIBotYippie, build fixed!13:13
LPCIBotProject db-devel build #497: FIXED in 5 hr 16 min: https://lpci.wedontsleep.org/job/db-devel/497/13:13
=== benji changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: henninge, benji | https://code.launchpad.net/launchpad-project/+activereviews
jamI have a question about config overlays, anyone feel expert enough to help out?13:14
jam(basically, I'm trying to create a custom development config, without having to actually modify the source tree, so I can run LP in a VM)13:15
jmlI'm getting 'cat: lib/canonical/launchpad/icing/yui/dom/dom-style-ie.js: No such file or directory' errors when running 'make schema' in db-devel13:15
henningedanilos: is the UI review for the whole dialog?13:16
jamjml: rm -rf lazr-js/build ; make ?13:16
jamI've had a lot of problems there13:16
daniloshenninge, nope13:16
jammay not have anything to do with you13:16
daniloshenninge, just the validation bits :)13:16
henningeok13:16
jambut the build script seems to assume the targets must exist13:16
jamif the dir does13:16
jamjml: though that specifically sounds like somebody forgot to add a file13:17
jmljam: I'll run 'make clean', see what happens.13:17
jkakarSometimes I think bug descriptions should be optional... so many of the bugs I file have a descriptive enough subject so I just end up writing 'Yep, we need this' as the description.13:21
jamjkakar: you must have really shallow bugs :)13:23
jkakarjam: Sometimes, yes... For example, I just filed one like 'Need a way to migrate foo's from the old schema to the new one'.13:24
jkakarjam: There isn't really anything more worth describing... I guess the issue is that I'm using bugs, in this and possibly the common case, to track work as opposed to for describing a problem with symptoms, workarounds, etc.13:24
jamyou could still put context13:25
jamwhere it is useful13:25
jametc13:25
jambut sure, I see your point13:25
jkakarjam: Yes, for sure.  It's important to provide context when, er, it's important.  I just find I end up filing a lot of bugs with 'Yep, we do' as the description... maybe I'm just being too lazy.  Hmm.13:26
jamjml: quick twisted question. If you call 'addCallbacks' on a deferred, it will trigger the call immediately if the data is already present, right?13:27
jmljam: yes.13:27
jamI'm trying to track through an lsprof, though twisted seems to destroy the call tracking13:28
jambut 50% of the time is in "addcallback" I figure that is just actually running the function13:28
jmljam: http://paste.ubuntu.com/586438/13:28
jamjml: sure. In this case I'm dealing with Launchpad xmlrpc stuff, which I don't think is actually deferred13:29
jmljam: tbh, I've never had to seriously profile Twisted code. #twisted will probably have someone who has.13:29
jmljam: it uses Deferred, at least on the client side13:29
jamjml: It is guaranteed to be exactly as synchronous as the passed-in  proxy.13:30
jambut since the trigger is happening under the callback, I'm pretty sure it is synchronous13:30
jmlit's synchronous, but it uses Deferred13:30
jamjml: right. But I think the point of abstracting via Deferred is because they wanted to allow async (at least, avoid blocking)13:31
jmlyeah.13:31
jamATM, I'm thinking XMLRPC might be killing some of the codehosting perf13:31
jamgiven that the request is sync13:31
jamand is *blocking* everyone else at the same time13:31
jmlthe sftp server uses exactly the same code, but uses an async client13:31
jmlhmm13:31
jmljam: I'd really doubt that13:31
jmljam: the XMLRPC takes place in the server for auth, and that uses an async xmlrpc client13:32
jmljam: then the spawned bzr processes use a sync client, and that wouldn't block anyone else.13:32
jamjml: well, running "initialize_on_transport_ex" on my VM is 30ms, under launchpad's implementation, it is 500ms, on Prod, we saw it ~3s13:32
jamjml: you're right about probably not blocking others13:32
=== mrevell-lunch is now known as mrevell
jamso far, I've only been able to track it to the twisted layer. It also looks like handling exceptions is extra expensive13:33
jambecause twisted opportunistically expands the current stack13:33
jamto give 'nice tracebacks'13:33
jambut --lsprof lies, too :)13:33
bacallenap: sorry i didn't get to your big branch on friday13:33
jmljam: interesting.13:34
jamhttps://bugs.launchpad.net/launchpad/+bug/74075913:35
_mup_Bug #740759: creating bzrdir on launchpad is slow (BzrDirFormat.initialize_ex_1.16) <codehosting-ssh> <hpss> <lp-code> <performance> <Launchpad itself:Triaged> < https://launchpad.net/bugs/740759 >13:35
jam 29 0 0.4081 0.2940 twisted.python.failure:416(__getstate__)13:35
jamout of ~0.6s for run_argv13:35
jamso 400+ms spent in failure.__getstate__13:35
jamagain, lsprof sometimes lies, and makes things that are super fast in locals slow while traced13:36
jamjml: but 29 calls to __getstate__ generated 35k calls to safe_repr13:36
jmljam: that seems an unreasonably large number.13:40
jamjml: it walks self.frames, and calls safe_repr() across all objects it finds13:41
jamAFAICT13:41
jamso, walk the current stack13:41
jamand safe_repr every live object available13:41
jmljam: as an experiment, you could patch out cleanFailure to do nothing, and then see what affect that has on the run time.13:41
jamjml: something worth trying, I was going to try to just avoid exceptions-as-return-codes, but I'll start with your idea13:42
jamof course, the flip side is that it probably starts leaking references to other objects13:43
jmljam: well, yes.13:43
jamsince it no longer indirects via safe_repr13:43
jama lot better under lsprof, trying without13:46
=== Ursinha-afk is now known as Ursinha
LPCIBotProject windmill build #111: STILL FAILING in 1 hr 9 min: https://lpci.wedontsleep.org/job/windmill/111/13:53
jamjml: http://paste.ubuntu.com/586444/13:53
jamnot 100% definitive, but averaging <300ms vs >450ms13:54
jamfor just changing "cleanFailure: return"13:54
jmljam: yeah, interesting.13:54
jmljam: I'm not sure if we could tolerate the memory leak on production. On the one hand, the processes have a fairly short lifespan, on the other, bzr is already very memory hungry.13:59
jamjml: yeah, I'm not thinking that is a production change. But finding some way to avoid calling it at all would be worthy13:59
jamIt seems like it is about "nice failure tracebacks"13:59
jamwhich is great, but costing us half our runtime isn't so nice14:00
jmljam: a version of Failure which didn't keep the traceback would be interesting and maybe even generally useful.14:00
jamjml: how would you inject it, though?14:01
jam(tell the Deferred it really wanted to use *this* class of failure)14:01
jmljam: you would have to monkey-patch.14:02
jmljam: i.e. it's not supported14:02
jamjml: yipee !14:02
jmljam: another option would be to have a flag on Failure like 'debug', except that it said "don't store tracebacks at all"14:02
allenapbac: No worries, it is oversize and I wasn't able to stay around.14:11
abentleyadeuring: Have you made any further changes that I should merge?14:16
adeuringabentley: not yet14:16
abentleyadeuring: cool.14:16
daniloshenninge, hi, how's the review going? anything I can help clarify perhaps?14:38
henningedanilos: sorry for the delay, I got a bit distracted ...14:43
daniloshenninge, no worries, as long as you don't give up on me :)14:49
=== salgado is now known as salgado-brb
jamjml: if I change Failure to not walk the stack frame and traceback frame, it drops all the way down to 30ms like I expected14:58
jamTwisted Failure is just *way* more expensive than Exception14:58
jmljam: :(14:58
jamjml: Failure starts by walking the traceback and stack frames and copying all global state14:59
jamwell, the state leading to local14:59
jambut that is locals.copy() and globals.copy()14:59
jmljam: this sounds like something that ought to be raised on twisted-python@twistedmatrix.com.15:00
henningedanilos: err, all those tests ...15:20
henningedanilos: they are quite repetitive, aren't they?15:20
daniloshenninge, indeed they are, but I was lazy to factor them out more nicely :)15:20
daniloshenninge, if you really insist, though,... :)15:21
henningedanilos: I think I do. :-P15:21
daniloshenninge, oh well, that's the life of a developer... I mean sure thing! :)15:21
henningedanilos: also, this looks very likely to break:15:23
henninge 196+            field_container.get('parentNode').get('parentNode').setStyles(15:23
henninge197+                {height: 'auto'});15:23
daniloshenninge, well, what I actually need there is to trigger a recalculation of height (it is already set to 'auto'): any suggestions on that front?15:24
jamjml: so I was wrong it my measurements, it is only 183ms. So the big cost is cleanFailure but __init__ is a little expensive, too.15:24
daniloshenninge, when I add a new element, it doesn't properly resize15:24
henningethat's bad :(15:24
daniloshenninge, yeah, it is, and this was the only solution I could come up with15:25
henningedanilos: but my issue was more about finding the right element to apply the style to.15:25
daniloshenninge, I know, but I am using the opportunity to pick your brain as well :)15:25
daniloshenninge, anyway, how would you suggest to do it? actually get the ID for the element in question?15:26
henningeor the class, maybe?15:26
henningeyou could have a clase "resizeme" or similar.15:26
henningeand you could simply apply the style to all of them (because there are two in the overlay).15:27
henningeIt won't hurt where it is not needed.15:27
daniloshenninge, I believe CSS selectors don't have a nice "find me a parent which has 'resizeme' class on it", which is why I didn't bother15:28
daniloshenninge, as far as not hurting where it's not needed, so much is true with how it is already :)15:28
henningedanilos: I did not mean to search for a parent of the input by class but for a child of the overlay.15:29
henningeY.all(overlay_id + ' class=sizeme')15:29
henningeI am not sure that selector is correct, though.15:30
daniloshenninge, right, I don't like the implicit "it might be any 'resizeme' element in the overlay"15:30
henningehence the "won't hurt" comment from me ... ;-)15:30
daniloshenninge, well, it should be Y.all(overaly_id + ' .sizeme')15:30
henningerightg15:30
henninget15:30
daniloshenninge, and hence my reply on that :)15:30
henningejust my suggestion15:31
daniloshenninge, anyway, if you think that's better, I am fine15:31
daniloshenninge, in general, I don't like any of the solutions too much, because it's basically a hack to work-around an observed problem15:31
henningeit's "possible side effects" vs. "fragility"15:32
daniloshenninge, "pick one"? :)15:32
daniloshenninge, anyway, sure, I'll go with your suggestion (or something along those lines)15:33
henningecool15:34
jamjml: I was blocked from posting to twisted. Should I really subscribe for this?15:37
jamOr can I send you the email and you post it for me.15:37
=== al-maisan is now known as almaisan-away
jamI went ahead and subscribed15:44
jmljam: asking on #twisted, everyone seems to like the idea of a version of Failure that implemented the same API but minimally, perhaps based on whether debug is set.15:46
jmljam: filing a ticket & including benchmarks would help, or maybe commenting on http://twistedmatrix.com/trac/ticket/246615:47
jamjml: of course, I think that requires an account as well :)15:47
jmljam: yes. technology is terrible.15:47
jmljam: oh right, just saw your email to twisted-python15:49
danilosbenji, hi, henninge was already looking at https://code.launchpad.net/~danilo/launchpad/bug-740640/+merge/55123 (I noticed that you claimed it)15:51
benjidanilos: ah, thanks for letting me know15:51
henningebenji: sorry, forgot to claim it.15:52
benjihenninge: np, I've reassigned it15:52
jmljam: also, dropping our sftp support would let us re-write the lpserve thing without Deferreds15:52
jmljam: I'd be OK with that, I think.15:54
henningedanilos: what's this for? I don't see it appearing when I use the dialog.15:59
henninge> +        overlay.showError(15:59
henninge> +            'Value for ' + error_text + ' is invalid.');15:59
daniloshenninge, when you try to save with the errors still present, it should show up at the bottom of the overlay16:07
daniloshenninge, save == "submit checkbox"16:07
henningeduh16:07
henningethanks ;)16:07
henningedanilos: code review done.16:15
henningedanilos: both reviews done, r=me16:21
=== salgado-brb is now known as salgado
=== henninge changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: benji | https://code.launchpad.net/launchpad-project/+activereviews
daniloshenninge, thanks16:36
jmlsinzui: hi16:38
sinzuihi jml16:39
jmlsinzui: we said we were going to have a call.16:39
jmlsinzui: but I forgot. got time for a quick call now?16:39
sinzuiyes. I am on mumble now16:39
sinzuiI do16:39
=== deryck is now known as deryck[lunch]
LPCIBotProject windmill build #112: STILL FAILING in 1 hr 1 min: https://lpci.wedontsleep.org/job/windmill/112/17:29
=== beuno is now known as beuno-lunch
adeuringabentley: I have new version of the branch with the "set branch links" for the translation sharing settings page18:00
abentleyadeuring: Cool.18:00
abentleyadeuring: by "new version", do you mean that it's a new branch, or just new revisions on the old one?18:01
adeuringabentley: a new version of the existing branch18:01
adeuringabentley: lp:~adeuring/launchpad/js-translation18:01
adeuringabentley: The links are now quite often hidden18:02
adeuringfor anon users and non-privileged users18:02
adeuringand when no packagaing links exists18:02
abentleyadeuring: I see.18:02
abentleyadeuring: It looks like you don't need to import getMultiAdapter in browser/sourcepackage.py.18:16
adeuringabentley: gahh, right18:17
abentleyadeuring: same for ILink.18:17
adeuringrigtt18:17
abentleyadeuring: Also, I think you don't mean "If a product ls linked", but "If a product is linked" in edit_branch_link docstring.18:19
adeuringyes ;)18:19
abentleyadeuring: could you please submit this branch for review, but not land it?  I'll land it as part of this work.18:22
abentleyadeuring: actually, if you want to land it, that's fine, too.18:22
adeuringabentley: ok, I'll submit it.18:23
abentleyadeuring: thanks.18:23
abentleyderyck[lunch]: chat (when you're back) ?18:28
=== beuno-lunch is now known as beuno
jcsackett_benji: can i request a review of https://code.launchpad.net/~jcsackett/launchpad/affects-before-bug-email/+merge/55184 ?18:45
benjijcsackett_: sure18:45
=== jcsackett_ is now known as jcsackett
jcsackettbenji: thanks!18:46
benjijcsackett: done18:49
jcsackettbenji: my, but you're speedy. thanks again. :-)18:49
benji:)18:49
=== deryck[lunch] is now known as deryck
deryckabentley: have call with flacoste now, but can chat after that.19:32
abentleyderyck: cool.19:33
lifelessmoin19:36
lifelessgary_poster: hi19:36
gary_posterlifeless, hi.  thank you for email.  was very good.  I've been doing allhands review stuff today so have not gotten to that except for reading it.  I am going to review what I've done in light of what you said also19:37
lifelessgary_poster: kk19:37
=== lifeless changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | On call reviewer: benji | https://code.launchpad.net/launchpad-project/+activereviews
=== Ursinha is now known as Ursinha-lunch
lifelessstatik: ping20:07
deryckhi abentley.  I can mumble now if you wants to.20:32
abentleyderyck: cool.20:32
lifelessflacoste: yo20:57
flacostehi lifeless20:57
flacosteskype time?20:57
lifelessyarp20:57
nigelb3% rocketfuel21:22
nigelbI guess its a good idea to run it overnight21:22
=== Ursinha-lunch is now known as Ursinha
LPCIBotProject windmill build #113: STILL FAILING in 1 hr 9 min: https://lpci.wedontsleep.org/job/windmill/113/21:51
wallyworldthumper: mumble?22:01
thumperwallyworld: aye22:02
lifelessderyck: http://people.canonical.com/~huwshimi/ajax_time_log.ogv22:11
=== benji changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
deryckLater on everyone.22:23
thumpersinzui: still around?23:13
sinzuithumper: yes23:13
thumpermumble?23:13
sinzuithumper: https://bugs.launchpad.net/launchpad/+bug/41710023:40
_mup_Bug #417100: ajax picker for distro source packages needs to display better info <lp-registry> <packages> <search> <Launchpad itself:Triaged> < https://launchpad.net/bugs/417100 >23:40
sinzuithumper: bug 618366 and  bug 73601423:41
_mup_Bug #618366: Question:+huge-vocabulary is often slow (10% of requests) <lp-answers> <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/618366 >23:42
_mup_Bug #736014: BugTask:+huge-vocabulary timeout <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/736014 >23:42

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