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

* thumper still writing tests00:06
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews/
lifelessgrr bug heat updates00:22
lifelesswgrant: ID OOPS-1901QS500:23
thumperlifeless: you'd like my current tests00:24
lifelessthumper: I will?00:24
thumperlifeless: they all have self.assertThat(recorder, HasQueryCount(Equals(0)))00:24
wgrantwith NoStormStatements:00:34
wgrantlifeless: How? I changed the target of the original bug to a different project, and it sent me to the bug page as expected...00:36
wgrantUsing both +editstatus and the inline form of deprecation.00:36
=== StevenK changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: StevenK | https://code.launchpad.net/launchpad-project/+activereviews/
lifelesswgrant: I think I hit a redeploy00:42
wgrantlifeless: How would that change things?00:46
lifelesswgrant: transaction committed, appserver killed, refresh - boom00:46
wgrantMmm, I guess.00:47
lifelesswgrant: have you seen https://devpad.canonical.com/~lpqateam/ppr/lpnet/2011-03/daily_2011-03-13_2011-03-14/categories.html - lots of requests :)00:47
wgrantAnyway, once my branch lands it will just redirect instead.00:47
wgrantOf course it conflicted with leonard's...00:47
lifelesswgrant: even on post ?00:47
wgrantlifeless: HTTP is just that awesome.00:47
wgrantWe already do it in some circumstances :/00:48
lifelesswgrant: sarcasm doth not befit thee00:48
wgrantlifeless: That's daily?00:48
StevenKlifeless: Is "sarcasm doth not befit thee" or did you make it up?00:49
wgrantlifeless: Do we have a graph of 99% time over time?00:49
StevenKSigh. Is it a quote00:49
StevenKmwhudson: Hi!00:50
lifelesswgrant: thats one day, yes00:53
lifelesswgrant: https://lpstats.canonical.com/graphs/PPR/00:55
wgrantlifeless: The translations graph is nice.00:55
wgrantAnd should be even nicer tomorrow, I suppose.00:55
lifelesswgrant: because of the drop ?00:56
lifelessPOFile:+translate was at 9.7seconds 99th percentile00:56
wgrantlifeless: Right.00:56
lifelesshopefully it will be better now ;)00:56
lifelessbut todays ppr failed to generate00:56
wgrantlifeless: +translate seems to mostly complete in under 2 seconds. Nicely done.00:57
lifelesswgrant: I think so00:58
lifelesspure fluke that I bothered to try a with plan00:58
lifelessthere may be a fat index impeding regular queries; not sure00:58
lifelessI want https://lpstats.canonical.com/graphs/PPR/ to be on a log scale01:02
wgrantIndeed, most of our graphs should be.01:03
lifelessspm: can tuolumne do that ?01:04
spmlog scale? not that I'm aware of.01:05
wgrantLooks like pycairochart might not support it.01:07
mwhudsonStevenK: hello?01:07
StevenKmwhudson: I was talking to Julian yesterday about DSDs, and he was mentioning that we might want to delete DSDs -- which would remove comments associated with the DSD. Would you prefer the DSD hung around to preserve them?01:09
wgrantUnder what circumstances would you remove DSDs?01:10
StevenKThat is what I'm not certain about, but Julian seems to think the DSDJ runner needs to do it.01:10
mwhudsonStevenK: dsd?01:10
StevenKmwhudson: DistroSeriesDifference01:10
wgrantI don't think removing them before a series is finished would be a good idea...01:10
mwhudsonStevenK: you are asking me because i have linaro in my cloak i presume?01:11
StevenKmwhudson: And you're in my TZ. :-)01:11
lifelessmwhudson: we hear you are slightly technical01:11
mwhudsoni'm not sure i'm the right person to ask about this though sadly01:12
mwhudsonStevenK: i think i plead EINSUFFICIENTCONTEXT01:13
mwhudsonStevenK: maybe get julian to talk to james_w ?01:13
mwhudsonStevenK: or you can try to explain a bit more context i guess01:14
StevenKOr I can in my morning01:14
mwhudsonlike, as wgrant says, "when would you remove them" ?01:14
wgrantThey need to be kept even between series if the difference persists.01:15
StevenKLike I say, I'm unclear on why Julian wants to do that, and I want to get the simple cases working for the DSDJ runner before I bother diving into the harder stuff.01:15
mwhudsonStevenK: i suggest we acquire some more clarity before discussing further then :)01:17
* wgrant declares war on Makefile.01:17
StevenKmwhudson: Do you know where to find some? :-P01:17
mwhudsonStevenK: well, find out why julian wants to delete them?01:17
lifelessdata that is no longer interesting shouldn't be kept around in our primary tables01:18
* StevenK teaches mwhudson about "humour"01:18
lifelessmwhudson: ^ I suspect he's thinking about what is/isn't interesting01:18
mwhudsonStevenK: heh01:18
StevenKmwhudson: Something you might be able to help with -- I'm writing a run() method for a IRunableJob and I'd like to get at the log, so I can add messages to it, is that easy?01:19
mwhudsonStevenK: isn't there a self.logger or something?01:20
wgrantI have never worked out how to get the log from outside a RunableJob, either.01:20
wgrantThat would be really handy.01:20
mwhudsonmaybe i'm not thinking of the right object01:20
mwhudsonmaybe there just should be :-)01:20
mwhudsonsigh, a coherent logging strategy would be nice01:22
StevenK... yes01:22
lifelessa good logging framework would be too01:22
StevenKthumper helped that by binning about 15 loggers from the tree01:22
pooliehi all01:22
wgrantHi poolie.01:23
mwhudsonlogging is one of those things that seems easy, but i've never seen it done satisfactorily01:23
StevenKIt doesn't matter how much it logs, you always want it to log more.01:24
StevenK(or less, if it never breaks)01:24
mwhudsonwell01:24
thumperStevenK, wgrant: is a SourcePackage object _ever_ created without a distroseries?01:24
mwhudsonjml added some overenthusiastic logging to the sftp server once01:24
mwhudsonwhen the log got to 8 gigs within a day or something, that was decided to be "a bit too much"01:25
StevenKHaha01:25
thumperStevenK, wgrant: see lp.bugs.model.bug line 113501:25
thumperish01:25
lifelessthumper: SourcePackage should be called DistroSeriesSourcePackage01:26
thumperlifeless: I realise that01:26
lifelessthumper: there is a DistributionSourcePackage, which shouldn't exist01:26
lifelessand a missing table which should exist01:26
thumperlifeless: but I've found some weird code in bugs01:26
thumperlifeless: it assumes that distroseries may be None in SourcePackage01:26
thumperI didn't think it could be01:27
lifelessin ISourcePackage, not SourcePackage01:27
lifelessone sec01:27
wgrantthumper: I think you're right.01:28
thumperrequired = True01:28
thumperin which case, I'll simplify the bug code01:28
wgrantthumper: But our sample data and/or tests are probably fucked.01:28
wgrantRemove it and see what breaks, then fix it.01:28
* thumper nods01:28
lifelessthumper: ok, that looks bogus01:29
thumperlifeless: I've simplified the bug code01:29
thumperlifeless: as part of my work01:29
thumperwhat I don't understand01:30
thumperis the requirements of certain tasks01:30
thumperlike...01:30
thumperwhat is needed for a source package task to exist?01:30
thumpera distroseries task01:30
thumperor a distro source package task01:30
thumperor either01:30
thumperor both01:30
thumperthere seems to be implicit rules01:30
wgrantA SourcePackage task has a DistroSeries and a SourcePackageName.01:30
thumpernot enforced by the model code01:30
wgrantA DistributionSourcePackage task has a Distribution and a SourcePackageName.01:30
wgrantSee determine_target01:31
thumperwgrant: yes... I understand that01:31
thumperwgrant: there are implicit expectations of certain tasks though01:31
wgrantthumper: Ah, with regard to conjoinment?01:31
thumperyou can't have a distroseries task without a distro task01:31
wgrantRight.01:31
wgrantWell, you can, but you're not meant to.01:31
thumperwgrant: well, exactly01:31
wgranteg. bug #43150 will make you cry.01:31
_mup_Bug #43150: [SRU] maxima frontends fail to connect <wxmaxima (Ubuntu):Fix Released> <gcl (Ubuntu Dapper):Fix Released by wgrant> <maxima (Ubuntu Dapper):Fix Released> < https://launchpad.net/bugs/43150 >01:31
thumperthe database nor model doesn't enforce it01:31
lifelessthumper: \d bugtask01:32
lifelessthumper: see the checl constraints01:32
wgrantThe current series task model only came about in late 2006, early 2007.01:32
wgrantSo there are old bugs (like 43150) that have invalid things.01:32
thumperlifeless: we don't have check constraints of other rows01:32
lifelessindeed01:32
lifelessI'd like to delete the conjoined concept01:32
lifelessI see no benefit in cross-row rules01:33
lifelessbetter to have a more powerful concept of 'target' and fix our seach01:33
lifeless*search*01:33
lifelesswgrant: wow, the rendering of that bug is --broken--01:34
lifelessOTOH, 2.38 seconds01:34
thumperI still don't understand the conjoined thing01:34
lifelesskinda slow01:34
wgrantlifeless: What's broken?01:35
lifelesswgrant: no package name shown for the first two tasks01:35
wgrant(I use that bug a lot, since it has lots of subscribers, lots of strucsubs, a few dupes, a few tasks, some series tasks, and various bits of activity)01:35
wgrantlifeless: Right.01:35
wgrantlifeless: There is no DSP task for them.01:36
wgrantlifeless: Because they predate the new release management stuff.01:36
wgrantWell, "new" meaning "4 years ago"01:36
wgrantWe need to discuss it with Ubuntu (to convince them to use milestones instead), but I think we can probably fairly sensibly just remove conjoinment.01:38
wgrantIs there a function around to mash a string into valid_name?01:42
thumpernot that I know of01:43
wgrantAh, sanitize_name.01:44
lifelesswgrant: well, they don't have the conjoined layout01:46
lifelesswgrant: but we could render them nicely regardless01:46
wgrantlifeless: They are not meant to exist, so rendering them nicely probably isn't desired.01:46
wgrantBut I filed a bug on this a long time ago.01:46
lifelesswgrant: I think we're either completely agreeing, or talking past each other01:47
thumpersomeone should write a script to add the missing bugtasks01:47
lifelesswgrant: my point is that conjoined masters don't express anything that single bugtasks can't01:47
wgrantRight.01:47
lifelesswgrant: there is a /behaviour/ change needed when the default series is altered01:47
lifelesspossibly01:48
lifelessanyhow - milestones are orthogonal I think01:48
lifelessthumper: or we could just simplify things and get rid of the redundant data01:48
wgrantlifeless: They're not orthogonal.01:48
wgrantlifeless: Do you know how Ubuntu uses series tasks?01:48
lifelessfor guiding developer effort in backports01:49
lifelessnot 'backports'01:49
wgrantHah.01:49
wgrantNo.01:49
lifelessI know what I mean01:49
wgrantThat's one use.01:49
wgrantThey are used for security updates and SRUs.01:49
lifelessyes01:49
wgrantBut also for indicating release criticality.01:49
wgrantTargetting something to the dev series makes it release critical.01:50
sinzuithumper: wgrant: I am exhausted, but I can see that this conversation is a sequel to my predicament from last week. thumper the rules and sample data are bad. We may have fixed the factory in the last 12 hours. Have fun storming the castle01:50
lifelesswgrant: so, conjoined masters are not needed for that01:50
wgrantlifeless: Eeeeh.01:50
wgrantlifeless: If there is no DSP task, then the bug won't show up in most listings.01:50
lifelesswgrant: that is - and always was - a bug in those listings01:51
lifelessour concept of 'bug target' doesn't map directly to obvious queries01:52
lifelessif we fix that: e.g. search on distribution=1 or distroseries = distribution.development_focus - a lot of pain just disappears01:53
wgrantRight.01:53
sinzuimake it so01:54
lifelessarguably we should search on distribution=1 or distroseries in (distribution.distro_serieses)01:54
lifelessthat would be a behaviour change01:54
lifelessmy point here is that we can, without changing behaviour, eliminate conjoined bugtasks01:54
lifelessmake the bugtask table smaller01:54
lifelessand make a bunch of code cleaner01:55
wgrantBehaviour is still slightly changed.01:55
wgrantBut I agree fully.01:55
thumperI suppose I should go and get my kids from school01:57
* thumper wanders off01:58
lifelessand that using milestones, or not, is a different discussion, *because* we could do this separately01:58
lifelesswow01:58
lifeless252 Time Outs01:59
lifelesseven *with* that search issue01:59
wgrantNice.01:59
wgrantLess than 1500 critical OOPSes.01:59
lifelessand a lovely long list of page ids01:59
lifeless    2 /    0  https://api.launchpad.net02:00
wgrantAnd full listings.02:00
wgrantYeah.02:00
lifeless>< wadl02:00
wgrant=== Top 50 Exceptions (total of 96 unique items) ===02:00
wgrant:(02:00
wgrantI guess that is potentially less bounded than the pageids.02:00
lifelessnah, oops-tools code breaks my brain02:01
wgrantsinzui: Did you get anywhere with the TP corruption?02:01
wgrantWe should be just below 1000 exceptions tomorrow.02:01
wgrantEr, day after.02:01
sinzuiwgrant: I did not. I wanted to talk to henning. I wondered if he knew something about changes to launchpad translations coordinators02:01
lifelessmight drop us another second tomorrow02:02
wgrantlifeless: Go all the way to 10.02:02
lifelesswgrant: no02:02
wgrant:(02:02
sinzuiwgrant: 1. I believe we could fix the data with a stealthy add remove using the UI, but I want to know how this state happened first02:02
wgrantsinzui: The SQL breaks my brain.02:02
StevenKlifeless: Isn't this our third drop in like a week?02:02
wgrantsinzui: I assume there must be a bug there.02:02
wgrantStevenK: Only the second.02:02
wgrantHence me wanting to go to 10.02:02
lifelesswgrant: a second at a time mitigates the risk of multiple pages right on the boundary and not clear in the ppa02:03
lifelessppr02:03
lifelessbah02:03
wgrantMeh02:03
sinzuioh, I can get jcsackett involved. It might bring back traumatic memories, but I think it will make him stronger02:03
lifelesswgrant: this strategy is working, so I take your 'Meh' and raise you 'Meh'02:03
wgrantlifeless: Meh.02:04
lifeless147.19s  OOPS-1900K1313  Person:+contactuser <>02:04
wgrantSomeone's trying to talk to big teams.02:04
lifelesswow 973  OOPS-1900M785   Product:+download02:04
lifelesswgrant: yes, the 'spam me' button is alive and well :>02:04
StevenKK, M, C, Q are all different appservers?02:04
lifelessStevenK: yes02:04
wgrant   2 ProgrammingError: permission denied for relation revisionauthor02:04
wgrantIn branchmail.02:05
wgrantHuh.02:05
StevenKlifeless: Okay, but we don't really care which appserver, right?02:05
lifelessStevenK: if you suspect GIL contention02:05
lifelessStevenK: then you will want to lookup and see if its a 1/2 thread server, or a 4-thread server02:05
lifelessin lp-production-configs02:05
sinzuiWe have had a mechanism for queuing emails to users for 2.5 years and it has exactly one call site, person.merge. I think we can speed up a lot of registry and answers reusing it02:05
StevenKI think we can speed up some of soyuz by also reusing it02:06
lifelesssinzui: +1 without looking at the code ;)02:06
wgrantStevenK: Oh?02:07
wgrantStevenK: Only queue accepts send email.02:07
wgrantAnd then only two per package.02:07
wgrantIt's not great, but it's like 0.1% of the time.02:07
lifelessPOTemplate:+index 12529 37194.36 8.0302:07
lifelesstranslations will still have a high 99th percentile I think02:08
lifelesstill that page gets improved02:08
lifelessPreviewDiff:EntryResource has a 54 second 99th percentile ><02:08
lifelessDistribution:+edit - 33seconds02:09
wgrantWe need to use <blink> on the timing information if it exceeds the 99%02:09
wgranthttps://code.launchpad.net/~wgrant/launchpad/bug-456616/+merge/53556, anyone?02:11
lifelesswgrant: do you mean by the uid ? and if its over our target 99th percentile?02:12
wgrantlifeless: The one by the UID, but anything over the current 99th percentile.02:14
wgrantThat way it decreases without everything flashing.02:14
wgrantWith red 72pt bold.02:14
lifelesswgrant: if you want to do it, I can describe how I'd do it.02:15
wgrantNo.02:15
lifelesswgrant: I was thinking of a background stylesheet - like demo - with the word 'SLOW' on it.02:15
wgrantHah.02:15
wgrantOh, even better, an animated GIF background!02:15
lifelessno02:15
wgrantWe can take slow pages back to the 90s.02:15
lifelessgreen on black baby02:16
lifelessswitch the stylesheet02:16
lifelessso - seriously.02:16
lifelessin my original concept for this, I wanted a pervasive, unintrusive message on problem pages02:16
wgrantI was sort of thinking an FF which highlights the time in red if it's exceeded.02:17
lifelessthe watermark idea was one way to do it02:17
wgrantBut your suggestion might be nice.02:17
sinzuilifeless the background image is really easy. weather configured or using a onload event (life the query count), we can add a class to the body like we do private. huwshimi is landing a replacement for the private background soon too02:17
lifelessyes, a new FF which sets the time to alert-if-exceeded would be the implementation I'd choose02:17
lifelesssinzui: can you stack background images ?02:17
sinzuino02:18
lifelesssinzui: so I wouldn't want to break private pages and make them appear public02:18
lifelesssinzui: how is that handled on staging etc?02:18
sinzuibut we also have the maincontent div which allows us to have multiple backgrounds with a little more effort02:18
lifelesssinzui: if anyone wants to wire this up, I'd be ecstatic; if they need help or input on getting a value in the main template to trigger this - I can do that in ~ 5 minutes, and its -dead- easy.02:19
huwshimisinzui: lifeless: css3 does actually give us the ability to have multiple background images, but they need to be defined differently.02:19
sinzuilifeless: config.is_demo is checking in the base-template and it adds a class to body02:19
lifelesslike the time in the top right, it will need to be onload based.02:19
thumperlifeless: at least this one is solved :-)   2 / 0NullBugTask:+index02:44
wgrantthumper: That class no longer exists.02:44
wgrantIt's unfortunate that it didn't time out much on its last day.02:45
thumperwgrant: exactly. Solved.02:45
wgrantHeh.02:45
cody-somervillewgrant, do PPAs not generate kernel udebs or something?02:49
wgrantcody-somerville: AFAIK they should.02:49
thumperwallyworld_: ping02:51
wallyworld_thumper: hi. hope things are ok with your friend02:51
thumperwallyworld_: he is feeling much better02:52
thumperwallyworld_: got mumble?02:52
wallyworld_yep. give me a sec02:52
lifelesspoolie: what was the search you were making that timed out? [also, my preference is for new bugs please]03:32
lifelessits much easier to dup than to split03:33
lifelesspoolie: bugsearch, for instance, has about 10/20 different components, all of which can be a problem, so theres no particular reason to think that a timeout in one search is meaningful for a timeout in a different search, unless its hitting the same code path with the same data03:34
pooliesurely the search is in the oops?03:36
pooliefor EOFError in /bzr iirc03:37
lifelesspoolie: oopses take up to 20 minutes to get visibility03:38
lifeless2.45 seconds for me : https://bugs.launchpad.net/bzr/+bugs?field.searchtext=eoferror&orderby=-importance&search=Search&field.status:list=NEW&field.status:list=INCOMPLETE_WITH_RESPONSE&field.status:list=INCOMPLETE_WITHOUT_RESPONSE&field.status:list=CONFIRMED&field.status:list=TRIAGED&field.status:list=INPROGRESS&field.status:list=FIXCOMMITTED&field.assignee=&field.bug_reporter=&field.omit_dupes=on&field.has_patch=&field.has_no_pa03:38
lifeless(if that didn't truncate)03:39
StevenKDid03:41
StevenK&field.has_no_pa03:41
lifelesshttps://bugs.launchpad.net/bzr/+bugs?field.searchtext=eoferror03:41
lifelesswgrant: hah, I had just started to look at 60795403:45
lifelesswgrant: enjoy :)03:45
wgrantlifeless: Just finishing it up now.03:45
wgrantThe page is actually very lucky.03:45
wgrantIn most cases now it avoids another three queries per diff.03:46
wgrantBecause it's already preloaded them accidentally.03:46
lifelesshahahahah03:46
wgrantOh, I hate circular imports.03:47
lifelessok, all soyuz errors are clearly visible in the new report03:47
spmyou should try circular servers some time. server A depends on server B being alive and working; B depends on C; C depends on A. Boom.03:47
poolieif it happens persistently i'll file a new bug03:47
lifelesspoolie: thanks03:47
poolieit does not seem as regular as it was yesterday03:47
lifelessspm: we do that to keep you on your toes03:48
pooliei guess the one off will show up in the oops report?03:48
lifelesspoolie: we're down 50% on timeouts from yesterday03:48
lifelesspoolie: yes, it will03:48
lifelesspoolie: and 75% on timeouts from the week before03:48
poolieway to go03:51
* StevenK looks for the critical bug graph03:56
mwhudsonStevenK: http://webnumbr.com/.join(launchpad-oops-bugs.all,launchpad-timeout-bugs.all,launchpad-critical-bugs.all) ?03:57
wgrantHuh.03:59
wgrantI was going to say that that expression could be simplified. I didn't realise it was a real URL.03:59
lifelessStevenK: its about to jump04:00
lifelessStevenK: as I'm going to file bugs for all the timeouts04:00
StevenKHeh04:00
wgrantlifeless: Requested the timeout drop yet?04:01
lifelesswgrant: *tomorrow*04:01
lifelesswgrant: I want a full day without search index fail etc04:01
wgrantAh, right.04:02
lifelesswgrant: so when the oops reports come out tomorrow, I'll get spm to drop it, and awaaaay we go04:02
lifelesswgrant: I assure you, I'm ask keen as you are to get the cap down low04:03
lifelesss/ask/as/04:03
wgrantHeh04:04
lifelessbugs domain was 50% of our page renders last month04:04
lifeless20M/40M04:04
mwhudsonlifeless: does that exclude robots?04:05
lifelessmwhudson: its apparently  bong04:05
StevenKOr API scripts?04:05
mwhudsonlifeless: :)04:05
lifelesshttps://devpad.canonical.com/~lpqateam/ppr/lpnet/latest-monthly-categories.html04:05
wgrantAPI scripts are excluded.04:05
lifelessAll Launchpad except operational pages04:05
lifeless(?<!\+opstats|\+haproxy)$3942199904:05
wgrantI don't trust that number, though.04:05
lifelessAPI04:05
lifeless^https?://api\.7490173204:05
lifelessLaunchpad04:05
lifeless.16482104504:05
lifelessso, raw count is 164M04:06
lifelessapi 75M04:06
lifelessbut 'non opstats' is only 40M.04:06
lifelesswtf04:06
wgrantYeah.;04:06
wgrantThat's what I'm wondering.04:06
lifelessthus - 'bong'04:06
lifelessfraaaaaaaanics04:06
wgrantSince the daily non-opstats counts are much higher than 39000000/3004:06
StevenKAnd Bugs - search is zero04:06
StevenKWhich amuses me04:06
lifelessthats a whack reges is all04:06
StevenKlifeless: Tautology04:07
lifelessah04:07
lifelessdown the bottom04:07
lifelessAll launchpad except opstats04:07
lifeless(?<!\+opstats)$11847361404:07
lifelesswhich is santer than the non-haproxy inclusive one ><04:07
lifeless-no-freaking-idea04:07
wgrantBut look at daily categories.html04:07
StevenKRegistry is bong, too04:07
wgrant6.5m non-opstats-non-haproxy04:07
* StevenK deletes shipit04:08
wgrantOh. But that might include API.04:08
wgrantYeah.04:08
wgranthttps://devpad.canonical.com/~lpqateam/ppr/lpnet/2011-03/daily_2011-03-05_2011-03-06/categories.html appears to have 3.2m non-API non-haproxy non-opstats requests.04:08
lifelesswgrant: yes04:09
lifelesswgrant: according to the daily ppr, most of our growth was scripts04:09
wgrantEven assuming a conservative 20 working days a month, that's still 64m page views.04:09
wgrantSo where is 40m coming from,.04:09
lifelessah, I see what you're cross referencing04:09
lifelessyes, its bong04:09
jtvlifeless: I'm looking at the feature flag controller.  The handling of per_thread.features looks pretty messy — so I'm wondering if maybe there's some good reason why we're manipulating per_thread.features ad-hoc in so many places?  (If not, I'd like to clean it up)04:36
wgranthttps://code.launchpad.net/~wgrant/launchpad/bug-607954/+merge/53567, anyone?04:37
jtvwgrant: oh, I'm OCR so I might as well04:37
=== jtv changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: StevenK, jtv | https://code.launchpad.net/launchpad-project/+activereviews/
lifelessjtv: the right way would be a participation annotation, but - meh04:37
jtvlifeless: what's a participation annotation?04:38
lifelessmaybe I mean interaciton annotation04:38
wgrantYou probably want the interaction.04:39
wgrantParticipation could work too, but I like to pretend that participations don't exist.04:39
lifelessjtv: anyhow, it doesn't seem like an overhaul here would help you at all04:41
jtvWould improving that be complicated in any way if I replaced all the various reads from and writes to per_thread.features with calls to the existing getter and a new setter?04:41
lifelessjtv: and you were concerned about rabbit holes the other day04:41
lifelessjtv: I suspect its a noop change04:42
jtvI find there's not a lot of cost to cleaning it up, but it saves some wtf in the code that we already have and the code that I need to add.04:43
jtvI was just wondering if maybe there's some clever grand scheme behind the current mess.04:43
lifelessnope04:47
jtvok, a single getter & single setter it is then.04:49
StevenKThe London Olympics countdown clock has clapped out after less than a day, the BBC reports.04:56
StevenKThe precision timepiece was triumphantly unveiled in Trafalgar Square yesterday, but failed to clear the first 24-hour hurdle and is now stuck on 500 days and 7:06:56.04:56
* StevenK cackles.04:56
lifelessjtv: fwiw, assignment is a single setter.04:58
wallyworld_StevenK: it's probably running on windows :-)04:59
StevenKI thought the Reg's joke of "Well, don't power it with one AAA battery ..." was funnier.05:01
LPCIBotProject db-devel build #456: FAILURE in 4 hr 17 min: https://hudson.wedontsleep.org/job/db-devel/456/05:33
jtvlifeless: it's not just assignment, it's setattr as well.  Both encode both the per_thread variable and the reference at every instance.  And then a mix of getattr and get_relevant_feature_controller to read it.05:34
StevenKlp.services.job.tests.test_runner.TestTwistedJobRunner.test_timeout fails on db-devel on Jenkins again. :-(05:44
wgrantYeah.05:44
StevenKjtv: Why createForPublication()? Every single other job uses create()05:45
jtvStevenK: this doesn't create a job though05:45
jtvit may create any number of jobs05:46
jtvSo it deserves a different name from the existing create() method.05:46
jtvAlso, I wanted to specify the relationship to the publication explicitly because it's not as simple as one might infer from just create().05:47
StevenKI note you don't actually create the job for distroseries05:47
StevenKYou create jobs for direct children (which is fine), and the parent (which isn't)05:48
jtvAh damn you're right05:48
jtvIt should be the children and the distroseries itself.05:48
StevenKRight05:48
jtvCould you file a bug?05:48
StevenKI'll fix it05:48
jtvThanks, and sorry05:48
StevenKAnd then test_createForPackagedPublication_creates_job_for_parent_series fails05:50
StevenKWhich is broken, anyway05:50
jtvYes, what I got wrong was what the code should do, not just the code itself.05:52
StevenKThat test is far more broken, with a three-tiered distroseries on distroseries action05:54
StevenKBut I can use that.05:56
=== _mup__ is now known as _mup_
wgrantjtv: I have three reviews for you now... or should I throw them at someone else?06:22
StevenKwgrant: I'll take one06:23
wgrantStevenK: https://code.launchpad.net/~wgrant/launchpad/bug-390543/+merge/53568 is the most pressing.06:23
wgrantThanks.06:23
StevenKwgrant: I can understand the culling of the first 40 lines of checkwatches.txt. Why the rest?06:27
wgrantStevenK: I needed to move some of the bits further down, and switch DB users in a couple of places. So I changed the doctest to use the context manager.06:27
wgrantMore readable and shorter.06:28
StevenKwgrant: This is a niggle, but you no longer test checkwatches oops use the 'CW' prefix06:28
wgrantStevenK: That was why I hadn't fixed this earlier. But I decided that I don't care enough about testing that to keep that exception around.06:30
wgrantSince no other script has a test like that.06:30
StevenKRight.06:30
StevenKwgrant: You could replace the login() call on 231 with 'with person_logged_in()' if you wished06:30
wgrantStevenK: I could.06:31
StevenKBut I'm not certain how much of the rest of the doctest wants admin rights, so "Meh"06:31
wgrantExactly.06:31
StevenKwgrant: r=me06:31
wgrantThanks.06:31
StevenKHow long I have waited to say that.06:32
wgrantStevenK: The others are pretty simple. Could you look at them too?06:32
StevenKwgrant: I dunno. What have you got to offer?06:32
wgranthttps://code.launchpad.net/~wgrant/launchpad/bug-734573/+merge/53572 and https://code.launchpad.net/~wgrant/launchpad/bug-607954/+merge/53567 are the MPs in question.06:33
wgrantI am afraid I have no offering beyond the glory of reviewing them.06:33
StevenKNo beer?06:34
StevenKOh, that's right, you aren't old enough to buy it.06:34
StevenKwgrant: Ah, and some trailing whitespace fixed. r=me for the first.06:36
StevenKwgrant: https://code.launchpad.net/~wgrant/launchpad/bug-607954/+merge/53567 looks like it is errornously linked to bug 39054306:36
_mup_Bug #390543: Checkwatches shouldn't record an OOPS if there isn't an ExternalBugTracker for a given BugTrackerType <lp-bugs> <oops> <Launchpad itself:In Progress by wgrant> < https://launchpad.net/bugs/390543 >06:36
wgrantStevenK: Ah, good catch. I was committing to the wrong branch when I was working on 390543, then removed the problematic revs but forgot to unlink.06:37
wgrantFixed.06:38
StevenKwgrant: my only concern with the second is line 71. Why are you changing it to a set?06:39
wgrantStevenK: It eliminates duplicates, making queries more readable.06:40
wgrantSince in most cases the archive and distributions will all be the same.06:40
wgrantThis will do 'id IN (1,)' instead of 'id IN (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)'06:41
StevenKwgrant: Could I beg for a comment, since that's quite elegant.06:41
wgrantI could do it in the callsite, but this is going to be useful everywhere.06:41
wgrantWill do.06:41
wgrantStevenK: Thanks.06:43
StevenKwgrant: You're welcome. Three critical fixes is awesome.06:44
wgrantThat's eight for the day. Maybe I'll make it to 50 this cycle.06:45
StevenKCrumbs.06:45
StevenKPity it is cheaper to file criticals than it is to fix them.06:45
wgrantHeh.06:48
wgrantYeah.06:48
wgrantStevenK: sinzui unfortunately did a lot of CSS fixes for 11.03, so he nearly caught up to me :(06:51
StevenKHaha06:51
* StevenK wields his nailgun and nails jtv to the Internet06:55
lifelesswgrant: how many did sinzui do?06:56
=== StevenK changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: jtv | https://code.launchpad.net/launchpad-project/+activereviews/
wgrantlifeless: 25 bugs in total :(07:03
lifelesswgrant: and you? what time period ?07:06
lifelesswgrant: what did I do ?07:06
wgranthttps://launchpad.net/launchpad/+milestone/11.0307:07
wgrantI did 34, you 17.07:07
lifelessI should stop reopening, or doing bugtask:=index :> - if I cared about the sheer counts07:08
wgrantHeh, BugTask:+index is nearly under control.07:08
wgrantIt helps that I handled a lot of tiny incident-critical fixes last months.07:09
lifelesshelps both your stats, and the project :) winwin07:16
wgrantWell, it had better be a winwin, because those incidents are damn annoying. :)07:16
wgrantlifeless: I can has patch number for bug #715236?07:20
_mup_Bug #715236: Validate architecturetag <Launchpad itself:In Progress by wgrant> < https://launchpad.net/bugs/715236 >07:20
lifelesswgrant: stub should be around soon, if you want to optimistically grab one - do so from the wiki page07:30
lifelesswgrant: what needs changing ?07:30
wgrantlifeless: distroarchseries.architecturetag needs valid_name applied.07:30
lifelessas a check constraint ?07:30
wgrantYes.07:31
lifelesskk07:31
jtv1wgrant: sorry, got distracted and forgot about your review.  What still needs reviewing?07:37
wgrantjtv1: StevenK did them all. :(07:38
wgrantSo you are safe for now.07:38
jtv1whoops07:38
jtv1Terribly sorry about that.07:38
wgrant'tis fine. StevenK was glad to exercise his new superpowers, I am sure.07:39
jtv1Ah yes07:39
lifelesswgrant: 'Note that adding new users requires manual DB reconfiguration' - security.py might want to detect and error clearly08:04
pooliei like the new loggerhead skin08:04
wgrantlifeless: Then we have DB upgrades failing instead of scripts.08:06
wgrant== bad08:06
wgrantAnd it's also really hard to detect that...08:06
wgrantI'm not sure if it's even possible.08:06
lifelesswgrant: security.py isn't part of the ddl scripts sequence08:07
lifelesswgrant: it runs after08:07
wgrantlifeless: True.08:07
wgrantBut it's still not really feasible to detect.08:07
lifelesspoolie: on b.l.n?08:12
poolieyes08:13
lifelessits quite nice08:14
lifelessI really want to ditch the b.l.n domain - incorporate loggerhead as routes within c.l.n.08:14
lifelesspoolie: your timeout was an 11 second count08:15
lifelesspoolie: something bong there08:15
lifelesspoolie: given that there are only 4 matching bugs08:15
wallyworldpoolie: bug 73520208:16
wallyworldit gives a 404 as expected when i try it locally08:16
wallyworldnot sure why08:16
pooliehttp://pad.lv/73520208:16
wallyworldit works locally but fails on lp.net08:16
wallyworldperhaps someone already fixed it and it's not deployed yet?08:17
poolieare you sure you're using the same data situation?08:17
wallyworldi try and access a private bug08:17
wallyworldit gives 40408:17
lifelesswallyworld: using launchpadlib08:17
wallyworldwhen i mark it non-private, it returns the data08:17
wallyworldlifeless: i used curl to api.lp.dev like in the bug report08:18
wgrantwallyworld: Heh, that changed this morning.08:18
lifelesskk08:18
wgrantAs of a few hours ago they 404.08:18
wgrantI should probably take that bug.08:18
wallyworldpoolie: ^^^^^^^^^^^^^^08:18
wallyworldwgrant: i guess that may have been the case08:18
wgrantIt was an unrelated change.08:18
poolieoh great08:18
wgrantWell, sort of related.08:18
* wallyworld looks for another bug to fix08:18
wgrantBut not raelly.08:18
lifelessdeleting code good08:19
lifelessonly another 300KLOC to go08:19
wgrantIt's more than that.08:19
lifelesswgrant: lp ? yes, I don't want to delete lp. Just the fat.08:19
wgrantHeh.08:20
wgrant~/launchpad/lp-branches/clean-devel$ find -type f -name '*.py' | xargs wc -l | tail -n 1 605989 total08:20
wgrantThat's more than I expected :/08:20
pooliewallyworld, i filed a couple of similar ones08:21
wallyworldpoolie: ok08:24
stubUrgh.... feels like the beginnings of tonsillitis :-(08:36
lifelessstub: :(08:46
adeuringgood morning08:50
jtvhi adeuring08:52
adeuringhi jtv!08:52
jtvDo we have any reviewers here who are very familiar with feature flags?08:53
jtvlifeless: I thought stub can set feature flags?08:54
stubPower, yes. Understanding?08:55
jtvNa, who cares about understanding08:55
jtvJust the thing I needed to be saying at the exact point my boss walked into the room, at the opening of review season…08:56
jtvstub: I've got a patch up for review that, among other things, lets us disable scripts by feature flag (and the feature would also be suitable for tweaking log levels later).  I thought that would let us reduce losa interrupts, but according to lifeless it doesn't help much in that regard.08:57
* bigjools waves at jtv09:00
jtvso you saw that then :)09:01
* bigjools averts eyes09:01
jtvjml, are you into feature flags in a big way?  I need a reviewer for https://code.launchpad.net/~jtv/launchpad/bug-735319/+merge/5357809:03
jtv(Or if not a review, at least a tie-breaker—see comments :)09:04
pooliethanks for tackling that jtv09:04
pooliei'll have a look too09:04
jtvoh thanks09:04
jtvbigjools: I'd be a lot more comfortable with rewriting cron.publish-ftpmaster knowing that it was tested09:08
bigjoolsjtv: chicken/egg09:08
bigjoolswe can do manual testing easily on DF09:09
jtvBut sounds like the first thing to do is figure out what it does, and write tests for that.09:09
wgrant"easily09:09
wgrant"09:09
bigjoolsyes, easily09:09
bigjoolswgrant is so negative!09:09
jtvGiven how people tend to say "trivial" for things that turn out to be a lot of work, "easy" really worries me as well.09:09
bigjoolsit's all relative jtv :)09:10
bigjoolsjtv: I can do a pre-imp about it with you09:10
jtvOh nice, a pre-imp sprint.  Is next week good for you?09:10
bigjoolsonly if you come here :)09:11
lifelessjtv: policy for FF changes is losas do09:11
jtvoic09:11
lifelessjtv: and, as I say its overloaded with the non-db style of killing, and we *must not* attempt a db-style disable during db-deploys.09:11
jtvOK, I'll take that bit out then.  Thanks for pointing it out.09:12
lifelessthanks09:12
bigjoolslifeless: what makes bzr do a repack when I pull?09:13
bigjoolsand can I put it off to a time when it's not inconvenient to wait 30 minutes? :)09:13
pooliebigjools, if your local repository passes a certain size threshhold09:14
poolieurk09:14
bigjoolsah thanks poolie09:14
wgrantbigjools: Mine has done that twice today :(09:14
bigjoolsI might file a bug about this, I think it should prompt/nag09:14
lifelessmeep - 665  OOPS-1900K1319  Person:+contactuser09:14
lifelessbigjools: its an exponential backoff09:15
lifelessbigjools: 30 minute ones should be -extremely- rare, but you can make sure it never happens by putting 'bzr pack' into cron09:15
lifelesswe could/should also permit backgrounding it automatically - packs don't block writers09:16
lifeless*packing does not*09:16
bigjools30 mins might be exaggerating, but the last one on my desktop took 15-20, and I am now waiting for dogfood which has slow disks :(09:16
wgrants/disks/everything/09:16
bigjoolsbackgrounding/nag/prompt all good :)09:17
wgrantstub: Thanks.09:17
* bigjools filez09:17
bigjoolsGnome apps really stand out on my desktop, they're the only ones that don't restore their state and throw a million error dialogs.09:17
wgrantGNOME session saving used to work great.09:18
wgrantI think I last used it in 2002, though..09:18
bigjoolsI know :/09:18
bigjoolsI think I last used gnome in 2002 :)09:23
wgrantHah.09:23
bigjoolsapart from you watching me flinch at that UDS when I tried it09:23
wgrantYes, that was amusing.09:24
* bigjools installed KDE4.6 yesterday, not a Unity in sight :)09:26
StevenKYes, we know KDE isn't unified.09:26
bigjoolsbwahaha, you've seen the Gnome project? :)09:27
StevenKI was hoping you weren't going to point out the irony, but you did ...09:27
wgrantUnity has only crashed once this week!09:28
bigjoolssorry, I wasn't aware Australians did irony09:28
wgrantAnd I actually quite like it now.09:28
StevenKbigjools: Isn't that some kind of metal?09:28
pooliejtv, ok, done09:28
bigjoolsStevenK: it's what your wife does09:28
poolieand so, goodnight09:28
bigjoolsnn poolie09:28
poolieif China wants to buy irony we'll sell it09:29
StevenKI can see this conversation going nowhere good.09:29
poolieoh, Blacktown? :)09:29
bigjoolsWest Sydney09:29
StevenK /ragequit09:29
bigjoolslmao09:29
poolie:-P09:29
pooliegood night gentlemen09:29
bigjoolslifeless, poolie (if you're around), my bzr pull took 24 minutes :)09:33
bigjoolsI filed a bug anyway09:33
lifelesscool09:39
lifelessI filed 22 :P09:39
lifelessnight all09:39
wgrantlifeless: :(09:49
LPCIBotYippie, build fixed!09:53
LPCIBotProject db-devel build #457: FIXED in 4 hr 19 min: https://hudson.wedontsleep.org/job/db-devel/457/09:53
wgrantjtv: Want to review https://code.launchpad.net/~wgrant/launchpad/bug-715236/+merge/53576?10:09
wgrantAlmost as trivial as they get.10:09
StevenKwgrant: r=me10:12
jmlhow did we get 18 new critical bugs over night?10:12
StevenKjml: One word: lifeless10:13
wgrantlifeless filed a bug for all the timeouts.10:13
wgrantStevenK: Thanks.10:13
jmldo we have new timeouts?10:13
=== almaisan-away is now known as al-maisan
wgrantjtv: We now have a full list.10:13
wgrantEr, jml10:13
jmlmeh. I've been told that before10:13
wgrantjml: The OOPS reports used to only have the top 10, but lifeless fixed that.10:13
jmlwgrant: ok. that gives some grounds for confidence.10:14
wgrantjml: So, we will still have missed some that only occur a couple of times a week, but there probably aren't too many of those.10:14
wgrantHopefully.10:14
jmlit's been so exciting watching the number of critical bugs go down this last week10:15
wgrantI've landed 10 fixes today... so we are only up by about 10.10:16
jml\o/10:16
adeuringjtv: could you please review a small MP: https://code.launchpad.net/~adeuring/launchpad/translation-branch-sync-return-to-referrer/+merge/53597 ?10:23
jtvadeuring: otp10:24
adeuringjtv: ?10:25
jtvon the phone10:25
=== henninge_ is now known as henninge
jmlbug 1234510:37
_mup_Bug #12345: isdn does not work, fritz avm (pnp?) <isdnutils (Ubuntu):Fix Released by doko> < https://launchpad.net/bugs/12345 >10:37
bigjoolsisdn!10:41
jtvadeuring: I'm back… still need that review?10:43
adeuringjtv: yes please10:43
jmlcan I url hack to change the batch size?10:47
bigjoolsjml: yes, lots of people do10:51
jmlhow do I do it?10:51
bigjoolsdon't ask me to remember that sort of thing :)10:51
jmlheh10:54
jmlwell, my immediate need has passed.10:55
henningeadeuring: Hi!10:56
adeuringhi henninge10:56
jtvadeuring: you have been reviewed10:56
henningeadeuring: Is that the ReturnToReferrer branch you are having reviewed?10:56
bigjoolsjml: lib/canonical/launchpad/doc/batch_navigation.txt10:56
henningeHi jtv!10:56
=== jtv changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews/
jmlbigjools: ta10:56
jtvhenninge: have had.10:56
bigjoolsjml: fuck me, documentation :)10:56
adeuringhenninge: well, jtv said so ;)10:56
adeuringand thanks, jtv!10:57
henningeadeuring: I put a card for that on the board but I'll leave the satisfaction of moving it to you ... ;-)10:57
bigjoolsbasically ?batch=N10:57
henningeadeuring: and added bug 73596010:58
_mup_Bug #735960: Return to translation sharing details page <Launchpad itself:In Progress by adeuring> < https://launchpad.net/bugs/735960 >10:58
adeuringhenninge: thanks for doing my bureaucracy :)10:58
henningeadeuring: I know how you loath^Wlove it.10:58
jmlbigjools: thanks.10:59
jmllooks like it's batch=FOO10:59
bigjoolsthat's what I said :)11:03
jmlbigjools: oops, I missed that.11:04
jmlthe standard library should have a tzinfo object for UTC.11:06
deryckMorning, all.11:06
bigjoolsjml: pytz.UTC ?11:07
jmlbigjools: yeah, I'll use that, but it should be in the stdlib11:08
bigjoolswhy do you think that?11:08
jmlthe Python documentation even has an example UTC object11:08
jmlbigjools: because it would be convenient for many people, and doesn't have the ridiculous politically-imposed maintenance cost of other timezones11:09
jml(and because stacks of methods in datetime mention utc explicitly)11:09
bigjoolsfair reasons11:10
jmland, also,11:10
jmlthere's an example in the documentation! so they have to maintain the code anyway.11:10
=== al-maisan is now known as almaisan-away
bigjoolsheh11:15
=== m4n1sh_ is now known as m4n1sh
jmlhttp://paste.ubuntu.com/581050/ <- crit bug breakdown11:49
wgrantlaunchpad-buildd? Really?11:51
wgrantHuh, indeed.11:52
=== almaisan-away is now known as al-maisan
=== henninge is now known as henninge-lunch
leonardrcan someone point me to a real-life example of a bugtask with a conjoined master? i'm trying to qa bug 55651512:24
_mup_Bug #556515: OOPS when editing conjoined bugtasks via API <dhrb> <lp-bugs> <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/556515 >12:24
=== matsubara-afk is now known as matsubara
wgrantleonardr: Anything on https://bugs.qastaging.launchpad.net/ubuntu/natty should do.12:27
leonardrwgrant: any idea why this happens?12:36
leonardr>>> series12:36
leonardr<distro_series at https://api.qastaging.launchpad.net/1.0/ubuntu/natty>12:36
leonardr>>> len(series.searchTasks())12:36
leonardr012:36
wgrantHee hee hee.12:36
wgrantTry omit_targetted=False, or something like that.12:37
wgrantThere's a bug.12:37
StevenKJust one?12:37
wgrantI can't find it.12:39
wgrantBut I didn't really try very hard.12:39
wgrantBug #32059612:39
_mup_Bug #320596: Series.searchTasks() always returns an empty collection <api> <lp-bugs> <qa-ok> <ubuntu-qa> <Launchpad itself:Fix Released by brian-murray> < https://launchpad.net/bugs/320596 >12:39
wgrantBut it's meant to default to False.12:40
wgrantHm.12:40
leonardrok, now the proble12:49
leonardrm is i don't have permission to edit any of these tasks12:49
wgrantleonardr: You can set some things...12:51
wgrantleonardr: Anyone can set a bug from Triaged to New, for example.12:51
wgrantI can do just about anything, though, if you need more testing.12:52
leonardrwgrant: i think i just need you to answer my dumb questions about how these bugs work12:52
leonardris this task conjoined? https://api.qastaging.launchpad.net/1.0/ubuntu/natty/+source/nvidia-graphics-drivers/+bug/71140912:53
_mup_Bug #711409: [MASTER] -nvidia broken after Jan 31st updates, because it does not yet support xserver 1.10 <i386> <natty> <nvidia> <ubuntu> <xorg> <nvidia-graphics-drivers (Ubuntu):Fix Released> <nvidia-graphics-drivers (Ubuntu Natty):Fix Released> < https://launchpad.net/bugs/711409 >12:53
leonardri was able to edit its status12:53
leonardr_mup_ says that's the master12:53
wgrantleonardr: That's a conjoined slave.12:53
wgrant[MASTER] is in the summary.12:53
wgrantIt doesn't indicate that it's a conjoined master.12:53
leonardrah12:53
leonardrok, so, i was able to edit a conjoined slave, which afaict shouldn't happen12:55
wgrantEr, wait.12:55
wgrantThat is a *master*.12:55
wgrantConfusing terminology is confusing.12:55
wgrantThe series task is the master, the distribution task is the slave.12:55
wgranthttps://api.qastaging.launchpad.net/1.0/ubuntu/+source/nvidia-graphics-drivers/+bug/711409 (no natty) is the slave.12:55
_mup_Bug #711409: [MASTER] -nvidia broken after Jan 31st updates, because it does not yet support xserver 1.10 <i386> <natty> <nvidia> <ubuntu> <xorg> <nvidia-graphics-drivers (Ubuntu):Fix Released> <nvidia-graphics-drivers (Ubuntu Natty):Fix Released> < https://launchpad.net/bugs/711409 >12:55
leonardri was also able to edit the slave12:56
leonardrlet's see what happens on the website12:56
wgrantErk.12:57
wgrantThe slave's details are hidden from the web UI, but you can see them through the API.12:57
leonardryeah, it says 'status tracked in natty'12:57
leonardrok, got it!12:58
=== abentley changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: abentley | https://code.launchpad.net/launchpad-project/+activereviews/
=== mbarnett` is now known as mbarnett
=== henninge-lunch is now known as henninge
deryckjml: ping13:39
jmlderyck: pong13:41
deryckhenninge: ping for standup14:01
henningederyck: oh yeah, coming14:04
=== al-maisan is now known as almaisan-away
henningeadeuring: for your search: files are placed in the import queue with a call to addOrUpdateEntry(FromTarball)14:29
adeuringhenninge: thanks14:30
henningeabentley: I guess the job creation is not hidden behind a feature flag?14:42
henningeShould it be?14:42
henningeIs that even doable?14:43
abentleyhenninge: It's not.  I don't think it should be.14:43
henningeabentley: are the jobs being processed now on production?14:43
abentleyhenninge: Not yet, we need a config change.14:43
henningeabentley: https://code.launchpad.net/~henninge/launchpad/devel-735954-merge-job-display/+merge/5362914:44
deryckabentley: sorry it's taken me so long.  A few conversations developed.  But I have a good head around all the mocking we've done so far....14:49
deryckabentley: however, my call with henninge is in 10 minutes.  Shall we chat after that?14:50
abentleyderyck: no worries.14:50
abentleyderyck: after henninge's call makes sense.14:50
deryckabentley: great, thanks.  Chat soon then.14:50
vilajam, jelmer: care to join mumble to test my new setup ?14:50
vilameh wrong channel14:51
deryckhenninge: coming.... sorry.  1-2 more minutes and I'll join you.15:02
* henninge hurries to get there first ...15:02
deryckheh15:03
jcsackettderyck: i need some javascript help, and you seem to be the guy to talk to. :-)15:06
jcsackettgot a few minutes?15:07
jcsackettoops, your otp.15:07
deryckjcsackett: yeah, call, sorry.15:12
jcsackettderyck: no worries, i should have been paying attention. :-P15:12
deryckjcsackett: np, really.  so you're right.  I am *the* guy ;)15:12
deryckjcsackett: however, you need to take a js-number :-)15:12
deryckjcsackett: I have a call with Aaron about js, and then we can chat :-)15:13
jcsackettderyck: sounds good. thanks. :-)15:13
deryckabentley: shall we chat now?  Mumble?15:15
abentleyderyck: sure.15:15
=== almaisan-away is now known as al-maisan
abentleyderyck: http://pastebin.ubuntu.com/581151/15:42
deryckabentley: so this works as I thought -- variable names are determined by var keyword.  function names are bound to the closure.  Which is why I was confused the first pass of the discussion. :-)16:00
deryckabentley: so a named function outside of a YUI block would be global, but because YUI blocks are closures, named functions are private to the closure.16:01
abentleyderyck: Is var foo = function() equivalent to function foo() then?16:01
deryckabentley: inside a YUI block, basically yes.16:02
deryckabentley: it may be a bit slower to execute, but I can't say that for sure.  I would avoid assigning to var names inside yui.16:02
jcsackettderyck: i'm unavailable for the next hour, so don't worry about me for a bit if your chat with abentley ends before then. :-)16:02
abentleyderyck: okay.16:03
deryckjcsackett: it ended 5 minutes ago, but I had the above follow up hacking. ^^  I'm done now, though.16:03
deryckjcsackett: but I assume we'll chat later?16:03
jcsackettderyck: yup. will you be free in about an hour?16:03
deryckjcsackett: actually, no.  I have team lead call top of the next hour.  After that?16:04
jcsackettderyck: sounds good.16:04
deryckjcsackett: ok, chat with you then16:04
henningeabentley: I replied to your review and pushed a new version. Thanks a lot. I have to leave now but I hope you can approve this now.16:06
abentleyhenninge: Okay, I'll have a look.16:07
=== matsubara is now known as matsubara-lunch
=== deryck is now known as deryck[lunch]
abentleyhenninge: r=me16:12
henningeabentley: thanks a lot!16:12
abentleyderyck[lunch]: could you comment on whether the YUI tests here should be Windmill tests? https://code.launchpad.net/~wallyworld/launchpad/inline-multicheckbox-widget/+merge/52943 (644-827)16:24
=== deryck[lunch] is now known as deryck
bachi sinzui16:56
sinzuihi bac16:57
deryckabentley: just got off lunch and now tl call.  I'll look closely shortly.16:57
=== beuno is now known as beuno-lunch
=== al-maisan is now known as almaisan-away
deryckabentley: I think that's a good YUI test.17:29
abentleyderyck: Thanks for checking.17:30
deryckabentley: wallyworld had pinged me out of review about mocking, and I don't think we need a custom object there.  I think he can use Y.Mock to simulate the patch request.  Unless I'm missing something about Y.Mock.17:30
deryckabentley: but I'll reply to his mail to me about that.  Unless he sees this chat first ;)17:31
lifelesshmm17:31
lifelessslow librarian performance17:31
lifelessflacoste: I'm going to drop to 11 seconds today if the oops report looks good17:34
lifelesshttps://lpstats.canonical.com/graphs/OopsLpnetHourly/20110315/20110316/ suggests it will17:34
lifelessflacoste: if this concerns you , speak up now :) - we will have a full days data without index problems etc to work on17:35
bigjoolslifeless: I am concerned about distrseries:+queue17:36
lifeless3 /   10  DistroSeries:+queue ?17:36
bigjoolsit will become a bigger problem the closer we get to natty release17:37
bigjoolsit's not used much *now* but it will get more use17:37
lifelessbigjools: if it starts to spike, raise its timeout17:37
jcsackettderyck: you available?17:37
* bigjools gets the same complaints every 6 months17:37
lifelessbigjools: ideally we'd fix it before then17:37
bigjoolslifeless: that's why I am mentioning it now, it'd be great if you could look :)17:37
lifelessI think wgrant has been, I'll see if he's still doing so17:38
deryckjcsackett: oh, hello there again. ;)  sure.  mumble?17:38
jcsackettderyck: sure.17:38
lifelessI have been ignoring my ta stuff this last 5-6 work days and just going out and killing timeouts... I suspect I rather need to buckle up and focus :>17:38
bigjoolslifeless: also, we'd like your input on doing background page updates via JS for some derived distros work,  rvba will grab you tomorrow (his time) which is later today for you if you're about17:39
lifelesssure17:39
lifelessyou're thinking poll for now ?17:39
rvbayes17:39
bigjoolslifeless: yes, same as the ppa page17:39
lifelessseems no worse than we have now17:39
bigjoolsbut I wondered if thumper's work had changed any of that17:39
lifelessnot AFAIK17:40
bigjoolsit would only poll until some state changes17:40
lifelesssure17:40
lifelesswe can tolerate limited amounts of polling17:40
lifelesswhen we get a callback mechanism we'll need to roll it out $everywhere anyhow17:40
bigjoolsthe other question is, exactly how much non-js fallback are we worried about these days17:41
lifeless+ I don't expect derived distros to be huge (like e.g. bugs - 50% of our web pages)17:41
bigjoolsthere's only one page that has JS but it has a lot of JS :)17:42
lifelessbigjools: so, google have ways to index js only content17:42
bigjoolsI can't remember why we wanted to do non-js fallback anyway17:42
lifelessI would talk to the stakeholders for this project17:42
lifelessw3m users :>17:42
* bigjools has a 4 letter word forming17:43
lifelessbigjools: anyhow, all sounds fine to me; jml / the derived distro stakeholders are the ones to check about non-js support: its not a technical choice, but a political one :)17:43
=== matsubara-lunch is now known as matsubara
bigjoolsyes exactly17:44
bigjoolsunless you count things like not being able to file bugs :)17:44
lifelesswe fixed that :)17:44
lifeless\o/17:47
lifelessPOFile:+translate is down by ~3 seconds on its 99th percentile17:47
jmlbigjools: for the bug subscription work, we are deliberately doing js only. (at least, as of last time I spoke about it)17:48
bigjoolsjml: I think that's sensible17:48
jmlbigjools: we don't have a general policy yet (we will soon), but if you want to proceed assuming that you don't need js fallback, I think that would be fine.17:48
bigjoolsalthough it does mean I need to learn JS again17:48
bigjoolscool, thanks for clarifying17:49
jmlbigjools: hey, deryck linked to a thing about that :)17:49
deryckJavaScript for people who know Python?  I recommended that to abentley too, who found it useful.17:50
bigjoolswhat's the link?17:50
bigjoolsor should I JFGI :)17:50
deryckbigjools: http://pycon.blip.tv/file/4882883/17:50
deryckheh, no I didn't mind :-)17:50
bigjoolsah cool, thanks deryck17:51
deryckbigjools: np17:51
deryckbigjools: and then read the YUI docs, please :-)17:51
bigjoolsha :)17:51
bigjoolsoh 30 min video, I was hoping I'd know everything there is to know in 5 :)17:52
deryckif only :-)17:52
bigjoolsright, dinner's ready, good night all17:53
jmlbigjools: perhaps we should arrange another two week training course?17:53
bigjoolsjml: **** *** *** *** *****17:53
jml:D17:53
jmlbigjools: g'night17:53
bigjoolsciao!17:53
flacostelifeless: like i mentioned to you on Monday, i'm fine with that timeout drop (and thought it already happened, fwiw)17:54
lifelessflacoste: we dropped to 1217:55
lifelessflacoste: I wanted a clean, good signal before dropping to 1117:55
jml11 is pretty exciting.17:55
deryckit goes to 11!17:56
jmlit feels like not so long ago we were at 3017:56
lifelessflacoste: I was sure you'd be ok, I wanted to make sure you were not caught unawares *if* something goes wrong17:56
flacoste11! right!17:57
flacostethat was the follow-up reduction you talked about17:57
flacostestill good with it17:57
lifelessyes17:57
lifeless+ a lowering of soft timeout to 917:57
flacosteexactly17:57
lifeless[if we drop hard to 11]17:57
deryckWhy not make 10 louder?  And call that 11.17:58
flacostederyck: i didn't know you were making amps in your spare time ;-)17:59
deryckheh17:59
deryckside business17:59
=== beuno-lunch is now known as beuno
jmllifeless: I'm thinking again about how much I dislike layers and how much I'd like to use a non-Zope test runner.18:22
lifelessjml: \o/18:22
jmllifeless: I am thinking further of making a TestSuite that runs tests with layers properly18:22
jmlas in, doing what z.testrunner does but in a more compatible way.18:23
lifelessthat might be interesting18:23
jmlit seems easier than moving away from layers18:23
lifelessjml: given that we're pretty close on fixtures, it might be better to just move on that18:24
lifelessjml: I don't think compatibility is the issue with layers, its hte contract: the reinvoking stuff, for instance18:24
jmllifeless: it's the compatibility issue that's tying us to test.py18:25
lifelessjml: yes18:26
lifelessjml: erm18:26
lifelessjml: no, its not18:26
jmllifeless: well, you'll have to explain why. also, I don't see a clear path from "improve fixtures" (presumably wrt the graphing stuff) to "run Launchpad tests without z.testing".18:28
lifelessjml: there are several different things hanging around here18:29
lifelesstest.py18:29
lifelessz.testing18:29
lifelessrequiring reinvoking to do ZCA testing18:29
lifelessthe graph of dependencies is: reinvoking requires zope.testing requires a test.py script18:30
lifelessit is trivial to write a TestSuite wrapper than will obey a limited subset of the layers protcol - excluding reinvocation18:31
jmllifeless: I don't see why re-invocation would be that hard.18:31
lifelessso, (ignoring the bits of zope.testing that are harnesses for other bits of zope we use) to stop using zope.testing we need to fix the behaviour of our layers18:32
lifelessjml: let me ask you a different question. What problem are you trying to solve?18:32
jml(although I agree it would be better to not need to do it)18:32
=== Ursinha is now known as Ursinha-lunch
jmllifeless: I am interested in removing friction from my development process.18:34
lifelessjml: The highest priority problem I see on our testing framework list is reinvocation - it costs substantial time and increases peak memory requirements a lot18:35
jmlok18:37
flacostelifeless: you are talking about the support when NotImplementerError is raised in a layer teardDown method?18:37
jmloops. late for something.18:37
* jml goes18:37
lifelessflacoste: yes18:37
lifelessflacoste: we have no good reason for raising that - its just a matter of code to fix the causes18:37
flacostelifeless: agreed, especially since upstream isn't using it much anymore (at least not as part of the default ZCA tests)18:38
sinzuidid someone delete ~launchpad-chr on late Friday or Saturday?18:41
lifelessmatsubara did18:41
* matsubara whistles awaya18:41
matsubarasinzui, hopefully that didn't break anything. AFAICT, it was used as an answer contact for  launchpad18:42
sinzuiI think that is the event that broke team participation. I think merge with ~registry caused confusion in team participation. ~launchpad was a direct member of both teams18:43
matsubarasinzui, ah, ok. so it's a known bug but you wanted to know the root cause for it to be triggered?18:44
sinzuiI still think we can fix immediate issue with a stealthy add/remove member combination. I just need to think which teams are involved18:44
sinzuiI did not know that merge would corrupt TP. That is a new bug. I am trust trying to see my participation page (bug 733881)18:45
_mup_Bug #733881: +participation oops because membership and teamparticipation disagree <oops> <teams> <Launchpad itself:In Progress by sinzui> < https://launchpad.net/bugs/733881 >18:45
matsubarasinzui, not sure if it helps, but I have a list of ~launchpad-chr members before I deleted18:45
sinzuimatsubara: I can see them on staging18:47
matsubara:-)18:48
sinzuiI think I will co-opt my call with jcsackett to discussing our mutual dislike of TeamParticipation and Person.merge18:48
sinzuijcsackett: I think you should read https://bugs.launchpad.net/launchpad/+bug/733881 so that we can discuss it in 10 minutes18:49
_mup_Bug #733881: +participation oops because membership and teamparticipation disagree <oops> <teams> <Launchpad itself:In Progress by sinzui> < https://launchpad.net/bugs/733881 >18:49
sinzuimatsubara: you used the delete team link right? Is this the message you saw: https://staging.launchpad.net/~launchpad-chr/+delete18:55
sinzuiI wonder is delete handled pending members...well merge does not18:56
matsubarasinzui, yes, that's the message I saw.18:57
matsubarait took a couple of tries because the action timed out but eventually it did delete18:57
sinzuithanks. I will use staging then to diagnose what merge did wrong18:58
jcsackettsinzui: i already saw that bug on the tl report.18:58
sinzuijcsackett: I updated it a few minutes ago with what I see. I want to discuss the hack to make Lp put the data back, and the root cause in delete/merge18:58
jcsacketti hate TP.19:04
jcsacketti sort of dislike the whole team infrastructure, at this point. :-P19:04
sinzuiTeamParticipation is easy to hate, but combined with merge rules, I think I have disconcerting feeling of both despair and delight.19:06
maxbChex: Hi - regarding that question you just replied to - the problem is that Launchpad's code import service is broken in respect of SourceForge Mercurial repositories.19:33
maxbA third party proxying solution to assist the Launchpad code import service seems a bit of a weird solution, so I'm wondering if you misread the question at all?19:34
Chexmaxb: ok, so its not just a matter of post issues, then?19:34
maxbpost? port?19:34
Chexs/post/port/ sorry19:34
maxbSourceForge have chosen to use a non-standard port.19:34
maxbIt is of course up to Launchpad to potentially refuse to support it, but it seems like an unlikely decision to make, given how popular SourceForge is19:35
maxbActually, is there any concrete reason why the importds do not have unrestricted outbound TCP access to the internet?19:36
lifelessmaxb: they did what?19:37
lifelessmaxb: we don't trust vcs libraries to be bug tree and have no security vulnerabilities19:37
maxbwho did what? SourceForge? They have chosen to run their Mercurial hosting service on a non-standard TCP port19:37
Chexmaxb: its just a general policy we have for only allowing what would be typically used, for security19:42
Chexlifeless: for reference to what we are talking about: https://answers.launchpad.net/launchpad/+question/14728819:42
maxbinbound, totally. outbound, I guess my standards are more heavily pragmatic :-)19:42
lifelessChex: need an rt for it? I think its fine to open it to sf19:43
Chexlifeless: I already have one, and the response was for a HTTP Proxy to be setup for this situation.19:44
lifelessChex: thats crazy19:44
lifelessChex: a) it would require significant special casing in the code import infrastructure19:44
lifelessChex: b) it would permit trivial bypassing of our security policy (so we may as well just disable the outbound firewall if we were to do that)19:45
Chexlifeless: well, I can see your point on that19:46
lifelessChex: whats the rt ?19:50
Chexlifeless: so we already have a HTTP proxy setup, we would just configure this address to point to the remote port, outgoing connection for you19:52
Chexlifeless: RT# 4462619:52
lifelessChex: I don't see any benefit in using an http proxy for hg19:53
lifelessChex: its all streaming data19:53
lifelessChex: I've commented (just now) on the question19:55
lifelessChex: I will do so on the rt too19:55
Chexlifeless: ok, great, thanks19:55
=== Ursinha-lunch is now known as Ursinha
leonardrthumper, wallyworld: it would be great to get a review of https://code.launchpad.net/~leonardr/lazr.restful/entry-introduced-in-version/+merge/53704 sometime today21:03
leonardri'm eod but i'll stick around if one of you wants to take it and ask quESTIONS21:03
leonardror, abentley, if you want to take it21:03
wallyworldleonardr: i'll look but thumper will need to +121:03
abentleyleonardr: I'm EOD.21:03
=== abentley changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews/
thumperwallyworld: http://blogs.jetbrains.com/pycharm/2011/03/python-ides-panel-video-from-pycon-2011/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Pycharm+%28JetBrains+PyCharm+Blog%2921:10
thumperleonardr: mumble?21:11
leonardrthumper, 1 sec21:12
=== Ursinha is now known as Ursinha-afk
=== matsubara is now known as matsubara-afk
sinzuiwgrant: mumble>22:03
sinzuimumble?22:03
jcsackettexit22:03
wgrantsinzui: Oh, right, half an hour earlier.22:04
wgrantGive me a sec.22:04
=== MTeck is now known as MTecknology
sinzuijcsackett: I think Person.deactivateAllMembers() is the issue, which is not really merge or the remove super team rule. It implements a separate TP cleanup22:23
sinzuiAnd it does not handle recursion well22:23
jcsackettsinzui: it was at fault once before, but i thought we had cleaned it up.22:25
jcsackettthis is more of the "we have too many ways to do the same thing."22:25
sinzuiI recalled we wanted to unify the code, We have not. I think now is the time22:25
jcsackettsinzui: yeah, we need one blessed way to handle TeamParticipation.22:26
sinzuiI can see that it will not know what to do in the case of multiple paths to a team22:26
jcsackettsinzui: we don't handle the multiple paths issue well anywhere. at best, we constrain things to where we ignore all but one path.22:26
sinzuiThis gives me hope because the fix looks like deleting code!22:26
jcsackettsinzui: did Edwin finish the _cleanParticipation work he was doing before he left?22:27
jcsacketthe was working on making that the Right Way (TM), and if he did, we want to use that.22:27
jcsackettsince he knew better than anyone on registry what needed doing there.22:27
sinzuiTM's _cleanTeamParticipation does a recursive check to build a list of excludes. So I have some faith that wne the method tries to do the right thing, it will work deactivateAllMembers() is simple delete of everything22:28
wgrant(the blessed way is probably triggers)22:28
jcsackettwgrant: triggers were once a problem for us as well.22:29
jcsackettor rather, they complicated diagnosing the problem.22:29
jcsackettbasically, management of TeamParticipation is a mess. :-P22:31
mwhudsonneo4j!22:32
* mwhudson hides22:32
wgrantjcsackett: That's why we should do it in one place that catches everything.22:32
jcsackettwgrant: i concur. we're on the same page here. i'm -1 on triggers, personally; having things fire off post changes with teams have failed us. i think adopting widespread use of Edwin's work is the way to go.22:33
jcsackettbut i'm +1 on whatever, as long as we're consistent with it and cover all our bases.22:34
wgrantWe already have a set of triggers to do exactly this sort of graph work, for packagesets.22:34
jcsackettsinzui ^22:35
jcsackettthat i did not know.22:35
lifelessI'm neutral on triggers22:44
lifelesswe use them22:45
lifelessbut htey have significant downsides22:45
lifelessnot the least of which is causing *more* db roundtrips22:45
pooliewgrant, was the bug you fixed recently one that can cause23:16
poolie'SimpleViewClass from /srv/launchpad.net/production' object has no attribute 'status'23:16
poolie?23:16
wgrantpoolie: No, that's a lazr.restful bug.23:16
wgrantWhich I believe is fixed now.23:16
wgrantpoolie: When did you last see that/23:16
poolieOOPS-1901C85323:16
poolieovernight, from a cron job23:16
wgrantpoolie: I think that was probably fixed by the first deployment this morning.23:17
wgrantI've been seeing a few each night too.23:17
wgrantIt's lazr.restful failing to render a timeout error.23:17
poolieso i should just see if it goes away?23:18
wgrantYes.23:18
poolieno need to file?23:18
poolieok23:18
wgrantBug 73329323:19
_mup_Bug #733293: API fails to render timeout errors <api> <qa-ok> <regression> <Launchpad itself:Fix Released by leonardr> <lazr.restful:Fix Released> < https://launchpad.net/bugs/733293 >23:19
pooliei thought it was familiar23:19
pooliethanks23:19
pooliebiab23:21
wgrantlifeless: https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1901C205923:30
wgrantSQL time: 766 ms23:30
wgrantNon-sql time: 5938 ms23:30
lifelesswgrant: yeah, get a profile from qas23:31
lifelessI suspect its parsing or something similar23:31
wgrantAh, forgot we could do that easily now.23:31
lifelessjml: https://dev.launchpad.net/LEP/ReliableDBDeploys when you have time23:56
lifelessflacoste: ^23:56
lifelesswhee, http://webnumbr.com/.join(launchpad-oops-bugs.all,launchpad-timeout-bugs.all,launchpad-critical-bugs.all) really has quite a jump doesn't it23:57

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