/srv/irclogs.ubuntu.com/2010/08/31/#launchpad-dev.txt

mwhudsonlifeless: did you find out what was going on with your query counts yesterday?00:02
rexbronhey jelmer00:05
lifelessmwhudson: very sure its the storm bug with calling _init early00:13
lifelessmwhudson: its a cache-reuse triggered bug00:13
lifelessmwhudson: so I just added fuzz and landed00:14
mwhudsonlifeless: ok00:14
lifelessr 11742 if you want to see the comments00:14
lifelessis is safe to use with security proxied things00:18
lifelessmwhudson: ^00:35
lifelessthumper: ^ do you know ?00:47
thumperlifeless: ENOTENOUGHCONTEXT00:48
lifelessfor person_or_team in iterator:00:49
lifeless  if person_or_team is self.user00:49
lifelesswould that be safe? or does is work too deep and be false if person_or_team had a new proxy instance wrapped around it ?00:49
thumperI think safer to use ==00:51
thumperas that goes through the proxy whereas is doesn't00:52
* mwhudson too00:53
lifelessI wrote it as .id == ....id00:53
lifelessbecause of concerns about is00:53
* lifeless chalks up another downside of sec proxies00:53
mwhudsonis there some command line tool you can run to pop up a notification?01:01
mwhudson(not a launchpad question!)01:01
ajmitchmwhudson: libnotify-bin package looks like it has something01:03
mwhudsonajmitch: yeah01:03
mwhudsonjust found that myself01:03
mwhudsonthanks :)01:03
ajmitchnot that I've used it :)01:03
lifelessspm: losa ping :P01:16
spmyo01:16
lifelessspm: I wants to know if staging's restore is working01:16
lifelessor gone off the rails01:17
spmbit of column A, bit of column B01:17
lifeless(its been 5 hours I think, now)01:17
spmhrm. it's doing a full restore; so ETA is probably around 5-15 hours. I'm not sure why it's down atm tho. should be using the main DB. I suspect something else broke spectacularly and hence...01:19
lifelessspm: so it can be brought up ?01:27
spmI don't know, I'll try. just need to unpack a few layers of interrupts first.01:28
lifelesskk01:29
lifelessspm: is it safe fo rme to use the staging ro connection from devpad ?01:29
spmyup; the update is into a separate DB01:30
lifelessmwhudson: UPDATE CodeImportMachine SET heartbeat=CURRENT_TIMESTAMP AT TIME ZONE $STRING WHERE CodeImportMachine.id = %s: - well on its way to being the top oopser on lpnet02:33
lifelessc02:33
spmlifeless: just brought up staging app (only), it *seems* happy, but subect to failure without warning. be warned.02:37
lifelesshah, thanks02:37
mwhudsonlifeless: should be an easy fix to only update if the heartbeat is more than 30 secs old or something02:42
lifelesswow03:07
lifeless40 queries for a fresh product +assignments page with 10 specs.03:07
mwhudsonwow high or wow low? :-)03:09
mwhudsoni would have believed much worse03:09
lifelesshigh03:10
lifelessI'm an optimist03:10
wgrantThat sounds really good to me. Considering it's ancient and... well.. Blueprint.03:11
lifelesswgrant: one word03:11
lifelessValidPersonCache03:11
wgrantHah.03:11
lifelessbug 61836703:11
_mup_Bug #618367: Distribution:+assignments is taking a long time maybe 20% of the time <timeout> <Launchpad Blueprints:Triaged> <https://launchpad.net/bugs/618367>03:11
mwhudsonlifeless: the good news is that the code is probably so stupid/naive that fixing it will be simple03:11
lifelessmwhudson: good god you're an optimist too03:12
mwhudsonlifeless: well, compared to fixing a +translate timeout or something03:12
lifelesscheck out lib/lp/blueprints/model/specification.py03:12
lifelessline 74803:12
lifelessyes. Its string-concatenation-to-build-sql time.03:13
mwhudsonwith a side of "oh god can we just delete projects not deactivate them please"03:14
mwhudsonthough at least you can do left outer joins with storm03:14
lifelessbut not full outer :P03:15
mwhudsonanyway, it's horrible, but at least that method only generates one query03:16
lifelessah03:16
mwhudsonlifeless: does the bug require a prepopulation type fix?03:16
lifelessbut it sets things up to generate 200 others03:16
lifelessyes03:16
mwhudsoni see03:16
lifelessis_valid_person03:16
ajmitchmm, blueprints - why do I never hear good things about it in here?03:17
lifelessgive you one guess?03:17
ajmitchit's shit?03:17
lifelessits unmaintained03:17
lifelessand03:17
lifelessits extremely close to bugs03:17
persiaHas been for >4 years too, which only adds to the pain03:17
ajmitchwhich is why wgrant always wishes that it be destroyed03:18
lifelessthere are variously held opinion about whether specs are even different enough to bugs to warrant the amount of unique code03:18
wgrantThey're not.03:22
wgrantKill them.03:22
lifelesswell, if it was that easier :P03:23
lifelessself.context is the model object, right ?03:23
wgrantIn general, yes.03:23
lifelessoh god03:24
persiawgrant, The one difference I find useful between blueprints and bugs is the ability to link a blueprint to an arbitrary external URL.  This used to be available for bugs, but doesn't seem to be around anymore.03:24
lifelessthat place I referenced?03:24
lifelessnot used by this code path.03:24
* mwhudson gets ready to ship strong drugs to lifeless03:24
wgrantpersia: And dependencies.03:24
ajmitchpersia: the other useful thing that I can think of is the dependency graph03:24
lifelessIts not that theres duplication, its that there isn't sharing03:24
wgrantpersia: Bugs don't have dependencies. This is probably a bug.03:24
ajmitchsprints, not so useful03:25
lifelessurk03:25
* persia doesn't believe blueprint dependencies are any more meaningful than bug dependencies semantically, and kinda wishes they hadn't been implemented03:25
mwhudsonwgrant: bug dependencies got added to the "to do, for real this time" pile recently i think03:25
persiaajmitch, sprint linking of bugs would be massively useful, assuming we had a sane way to manage sprints.03:25
lifelessbugs are getting relationships03:25
wgrantmwhudson: As they were at UDS Jaunty.03:25
lifelessone relationship will be dependency03:25
ajmitchone less reason to keep blueprints03:25
* lifeless sobs03:26
persialifeless, Why?  There were good and strong arguments about that being semantically bad.03:26
lifelessmwhudson: compare person.py specifications() and distribution.py, the same03:26
lifelesspersia: because vastly more people want it than don't03:26
mwhudsonlifeless: that's pretty special03:27
lifelesspersia: FWIW no data was presented in the arguments AFAICR - they were - both sides - purely rhetorical03:27
persiaIt's not that I don't want them, so much as I know they cannot be managed in a sane way, and will lead to a maze of twisty little relationships, all different.03:27
persiaOh sure, it's all rhetoric and semantics.  There's no technical reason to do it one way or the other.03:27
lifelesspersia: a specific case that relationships in general are needed for is this:03:27
lifelesssome customers with private bugs have complex relationships03:28
lifelesswhere bug tasks expose too much data03:28
lifelesse.g. two or three of *their* customers need to collaborate in little partitions on their own slice of the thing, and not know about each other03:28
persiaAh, so private -> public dependencies are required for management of certain commerical relationships?03:28
lifelessI'm sure there are a variety of uses all in the partial-disclosure space.03:29
persiaOh, slices.  hrm.  That raises the spectre of implementing a project management solution.03:29
persia(which would be a good thing, and for which there are nice mock-ups available)03:29
lifelessman, this code really needs a complete overhaul.03:30
* lifeless fixes the proximate cause and walks away softly03:30
ajmitchit's not the easiest code for someone to walk up to & fix03:30
mwhudsonwhen estimating a blueprints change recently i estimated 1 day to get over the nausea and 1 day to implement the feature03:32
mwhudsonwas about right03:32
lifelesssanity check03:48
lifelesslimit=xxx in sqlobject ->03:48
lifelessresultset[:xxx] in storm03:48
wgrantYes.03:48
lifelessand that returns a resultset to return - it doesn't actually evaluate03:48
lifeless?03:48
wgrantIt should return a ResultSet, yes.03:49
wgrantIn fact it probably just calls .config(limit=blah)03:49
lifelessthis is probably going to be one of these disastrous rabbit holes03:50
wgrantMore than likely.03:51
lifelessand what are you doing this fine performance tuesday?03:51
wgrantUh, trying to wrangle a none-too-useful project team.03:54
lifelessI will live in hope for next week then03:58
lifelesswhats the standard idiom to add another column to return to an existing resultset ?03:59
lifelessalso04:00
lifelessdo you have to us 'using' when doing outer joins ?04:00
lifelessor can you just put it in the expr list ?04:00
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
mwhudsoni don't think you have to use using in that situation04:05
mwhudsonalthough i forget when you can04:05
lifelessits sad that I want to write static methods to avoid fucking with interfaces.04:07
lifelesss/sad/predictable/04:07
wgrantlifeless: What's so bad about changing the interface?04:14
lifelesswgrant: we have neither the toolchain support of java, nor the ease of use of python.04:22
lifelesswgrant: and, AFAICT, not much benefit from it. I may be being slightly harsh.04:23
lifelesswgrant: there are, to my knowledge, two uses from most of the interfaces we use:04:32
lifeless - security proxies : a performance *nightmare*.04:32
lifeless - API generation : so far it seems to have a high cost for generating a high performance API itself04:33
mwhudsonlifeless: how would you do authorization if you could throw away security proxies?04:33
mwhudsoni'm genuinely curious, the django approach ("explicitly check in all your view methods") seems lame04:34
lifelessmwhudson: I'd like to define it in the mapping layer04:34
lifelessso that we only get back from the db stuff one can see (covers View)04:35
lifelessmm let me rephrase04:35
lifelessI think there are several different *sorts* of thing one wants from security04:35
lifelesstheres disclosure04:35
lifelesstheres permission (yes, you may add yourself to the team)04:36
lifelessmaybe others04:36
persiaaccounting: who did what.04:36
lifelessanyhow, we do a bit of a mix of disclosure and permission via security proxies04:36
mwhudsonyeah04:36
mwhudsonwell04:36
lifelesspersia: not catered for by the tech we're talking about04:36
mwhudsonit's all squashed into disclosure04:36
lifelesspersia: for all that it is true that one wants it04:36
lifelessso, when I look at our code04:37
persiaAh, if you7re concentrating on the middle 'A' of 'AAA', then never mind.04:37
lifelessI see adhoc stuff for permission04:37
mwhudsonlifeless: well, to some extent we do use interfaces for accounting via Snapshot04:37
lifelessI have, I think, a reasonable answer for disclosure04:37
lifelessmwhudson: I'm not across snapshot yet, I need to do that04:37
mwhudsonbut certainly not proxies04:38
lifelessthe answer for disclosure is 'dont retrieve what thou dost not want'04:38
lifelesswhich we want in a very definite way for many reasons04:38
lifelessperformance being a prime one04:38
mwhudsonand very slowly and ad-hocily we're heading in that direction04:38
lifelessI think that making the permission checks be all done via e.g. decorators on methods could be nice04:39
persialifeless, Take a care there: some of the current state of that comes from not checking for authorisation for direct requests to stuff normally not wanted.04:39
persia(otherwise known as URL crafting attacks)04:40
lifelessI certainly would like to have /one way/ to do 'yes you can do that' checks, rather than some security proxied, and some written in-line, and some via some other way I've temporarily forgotton04:40
lifelesspersia: huh?04:40
lifelesspersia: I fail to follow your reasoning; hitting up a url you don't have access too will result in the DB mapping layer returning no record and the attacker seeing a 404, in what I'm proposing.04:41
persiaAh, OK.  I just misunderstood then.  I'll stop inserting stuff.04:41
lifelessthe big question is, what should happen if someone makes a programming mistake04:42
lifelessand includes inappropriate results in a mapping output04:42
mwhudsonlifeless: indeed04:42
mwhudson'fail-closed' is one nice property security proxies have04:42
lifelesswith our current approach, we bypass the security proxy and lie to it.04:42
lifelessmwhudson: we gave it up quite a while back.04:43
mwhudson.. when we don't do that04:43
lifelessWe have three - three! different mechanisms for doing this, that I know of.04:43
lifelessmwhudson: I guess I don't have solid answers yet.04:43
lifelessright now code cleanliness is at the bottom of my hit-list.04:44
lifelessby which I mean this whole discussion :)04:44
lifelesspersia: your interjections are welcome, but you may need to focus very closely and look at the LP code to see the context and issues being discussed.04:45
persialifeless, Thanks.  More I'm stopping on this discussion, because I'm insufficiently familiar with that bit of code.  I didn't mean that I'd not interject more in the future, but unless I *know* the code, it makes sense to stop at a point, or it wastes everyone else's time.04:46
thumpermwhudson: in what way does etags help bash?04:51
mwhudsonthumper: you can go M-. on a function call and jump to the defintion04:52
mwhudsonlike anything else04:52
mwhudsonthumper: large parts of lexbuilder are in bash04:52
thumperah04:52
thumperok04:52
thumperanyone know how to find a branch that is linked to a translation series?04:57
thumperany one would do04:57
thumperI'm testing deletion on staging04:58
lifelessthumper: can I give you a quick ring; needs a teddy bear05:00
thumperok05:00
lifelessselect * from specification inner join person on (specification.assignee=person.id or specification.drafter=person.id)05:12
lifelesshmm05:27
lifelessdiff updating is the slow ?05:27
lifelessspm: when does edge update?07:13
spmlifeless: https://wiki.canonical.com/InformationInfrastructure/OSA/LaunchpadProductionStatus#Edge%20Updates 0800 BST, until lucidified, then 0800UTC07:13
lifelessso bah, an hour07:14
* lifeless wants his fix from yesterday online07:14
lifelessand a pony07:14
spmshiny pony?07:14
lifelessmmm shiny shiny horses07:14
spmits a tradeoff. we've had cases where - and almost guaranteed when we're on a sprint - that edge has failed; so the above time is a fair balance to ensuring minimal pain and suffering all round.07:15
lifelessoh, I know07:15
lifelessand we're making it manual as soon as rt 4whatever is done07:15
lifelessbut the tradeoff is that we'll then be asking many times a day07:15
lifeless:)07:16
spm....07:16
lifelessspm: ....07:16
poolielifeless: should i think about why curtis ran in to trouble with flags, or delete it from my mind?07:16
poolieit's not obvious to me how i broke him07:16
lifelesspoolie: he's ported your devel work to production07:16
lifelessits been CP'd and is live I believe (spm can confirm)07:16
pooliedevel meaning db-devel?07:17
lifelesspoolie: devel and db-devel07:17
lifelessall are in sync now I believe.07:17
lifelessdevel, db-devel, production-devel07:17
spmit's not yet been CP'd, about to bee, not yet.07:17
lifelessthe skew was between (devel, db-devel) and (production-devel)07:17
spmtoo many other things keep breaking and demanding attention.07:17
lifelessif you want to mentate on it for your own edification, sure, but the issue is resolved.07:18
poolieat this point i only want to know if i need to do something differently next time07:19
lifelessuhm07:19
lifelessbasically if changing something that someone may want to CP a fix which depends on the API, make it clear its changed and they'll need your patch too07:20
lifelesswe're going to eliminate doing CP's as much as possible though by rolling out stable07:20
lifelessso I don't think ou need to alter what you do07:20
* StevenK looks at buildbot, frowning07:23
lifelessStevenK: and b) what don't you know07:33
lifelessI mean, what threads have you got to pull on07:34
StevenKlifeless: It seems that tests that require other services randomly fail07:35
StevenKOr, mostly07:36
lifelessother services being librarian et al?07:36
lifelesswe should have -nothing- needing internet access07:36
StevenKlifeless: Things like windmill tests, and tests talking to the xmlrpc service, for example07:37
lifelesswindmill tests seem to be incredibly fragile07:37
lifelessthey seem to timeout a lot07:37
lifelessmaris comes to mind as the go-to guy to understand whats going on and how other folk have debugged it07:38
StevenKMaris is difficult to talk to :-)07:38
StevenK(Only due to timezones)07:38
lifelessI can haz email!07:38
StevenKlifeless: Meh07:39
StevenK:-)07:39
lifelesssome things I'd do - run the test in isolation07:39
lifeless(via hudson)07:39
lifelessdoes it work ? yes, perhaps resources were an issue07:39
lifelessare you testing devel? devel breaks. they might be real breaks.07:39
lifelesstry testing stable until you've got it robust07:39
StevenKlifeless: Right, but the same tests keep coming up time and time07:39
StevenKtime and again07:39
lifelessso, is there enough memory, is the box swapping07:40
lifelessetc07:40
lifelessbrb07:40
StevenKIt's certainly not OOM'ing, but it will probably swap a little07:41
StevenKlifeless: Or we just throw builds at EC2/UEC and see if they stick07:47
lifelessyou could do that too08:19
lifelessspm: is it me, or is the edge update running late?08:35
spmor broken...08:36
spmblew up. kickin manually08:36
spmOh. no. it can't work. sodium's dead.08:36
lifelesshmm, we're getting08:36
lifelessException exceptions.AttributeError: "'NoneType' object has no attribute 'close'" in <bound method SmartSSHClientMedium.__del__ of SmartSSHClientMedium(bzr+ssh://launchpad-pqm@bazaar.launchpad.net/)> ignored08:36
lifelessException exceptions.AttributeError: "'NoneType' object has no attribute 'close'" in <function terminate at 0x13b3938> ignored08:36
lifelessin cron spam now08:36
lifelesspoolie: ^08:36
lifelesspqm@devpad> $HOME/bin/update-launchpad-built-code.sh08:37
lifelesspoolie: you should be able to see that, when sodium comes to life08:37
lifelessspm: what went wrong ?08:37
spm[17:36:42] <spm> Oh. no. it can't work. sodium's dead.08:37
lifelessspm: oh, you mean the edge update depends on sodium, the machine with a hernia?08:38
spmyup08:38
lifelessfor some reason I though praé ran it08:38
lifelesswhats the status of sodium, hyperbole aside08:39
spmfor hysterical raisins, sodium is still a critical path in the build.08:39
spmneeds physical visitation to stab08:39
lifelesswheres nafallo :P08:39
lifelessand I don't mean 'why isn't he in this IRC channel'08:39
lifelesswe need an rfid chip in his goatee08:40
lifelessspm: I thought we had fancy remote-power stuff08:40
adeuringgood morning08:40
spmlifeless: we do, that's not the problem08:40
lifelessoh08:41
poolielifeless: that looks like the bug someone reported the ohter week?08:41
lifelessspm: what happened08:41
lifelesspoolie: yes, they were reporting it in 'ec2 land', this is a different script but I suspcet the same root cause; its not harmful, other than a) scary and b) causing cron to mail losas08:41
pooliei wonder if there is a bug08:49
lifelessspm: did it falter?09:15
spmnope; still going09:15
lifelessah09:15
* lifeless urges it on09:15
jkakarlifeless: Here now.09:15
lifelessjkakar: Ah, you're back home, of course.09:16
lifelessjkakar: I was fighting the good fight with storm09:16
jkakarlifeless: :)09:16
spmlifeless: give it a whirl now?09:25
lifelessok cool. lets see if the api is better09:25
lifelesswoo09:26
lifelesshttps://api.edge.launchpad.net/1.0/bugs/414746/attachments09:26
_mup_Bug #414746: speakers cannot be muted when using headphones regression (karmic) <apport-bug> <apport-collected> <i386> <regression-release> <pulseaudio (Ubuntu):Confirmed> <https://launchpad.net/bugs/414746>09:26
lifelessworked09:26
lifelessspm: might get a profile of the bugtask index page again once that patch has percolated to stable. I don't think it has yet.09:41
adeuringstub: could you look again at my MP with the schema patch for the "subscribe to search" feature?09:57
lifelessstub: hey10:09
lifelessstub: so ValidPersonCache bites again in specifications10:09
lifelessstub: I'm wondering if we can figure out whats up with it - why it peforms so terribly10:09
wgrantDELETE10:09
lifelessI mean, we can eliminate all uses of it eventually10:09
lifelesswgrant: read much Gordon R Dickson ?10:12
wgrantlifeless: None.10:12
lifelessjkakar: My perf tuesday mail today, + storm backlog, should cover all the salient points if you're interested in the things I'm rubbing up against.10:13
jkakarlifeless: Am very interested, will check it out.10:14
jkakarlifeless: I'm not sure what to do about the LeftJoin+aliases issue.  It sounds tricky (I'm still digesting the problem).10:15
stubadeuring: done10:15
adeuringstub: thanks!10:15
lifelessjkakar: if Foo.reference compiled the same as Foo.reference_id, I think it would be fixinationed.10:15
stublifeless: Think of a view like a macro. It gets expanded inline into the query that uses it before things get sent to the query planner.10:16
lifelessstub: does pg do materialized views ?10:16
jkakarlifeless: Perhaps it's as simple as that, yes.10:16
stublifeless: No. You have to do them yourself using triggers.10:16
lifelessstub: the explain for the previous VPC thing we looked at had a 'materialising' line in it, which was -hugely- expensive10:16
stublifeless: Yes, so PG decided it needed to dump that subplan into a temporary table for some reason.10:17
stubVPC?10:17
stuboh10:17
lifelessvalid person cache10:17
lifelesssorry, long day :)10:18
stubheadache :-)10:18
stubIf using a view is slow a) Maybe unnecessary joins or clauses b) The expanded query blows chunks c) the expanded query is just slow.10:19
stubIt wouldn't be too hard turning VPC into a materialized view if we want to keep it and it looks like being a common problem10:20
stubBut the whole concept of 'valid' and 'invalid' people is wonky now we have accounts. And politically incorrect.10:20
stubValidPersonCache actually used to be a materialized view, but had to be switched to a real view when we split the database into two replication sets when we where being an OpenId Provider.10:22
stubOr maybe I'm making that up. Fuzzy.10:22
adeuringstub: patch-2207-08-0.sql is already in use ;)10:24
stubadeuring: So we start the filter from 'all tags' or 'no tags' and then adjust that using the BugSubscriptionFilterTag values. Does that mean that the 'include' column there is unnecessary?10:24
stubadeuring: Whoops. patch-2207-09-0.sql then10:25
adeuringstub: no, we need that one too, for things like "foo -bar".10:25
adeuringstub: that patch number is used too ;)10:25
stubReally?10:26
adeuring2207-81 seem to be unused10:26
* stub wonders wtf happened to his tomboy notes10:26
stubArgh...10:26
adeuringerm, 2207-8210:26
stub2208, not 2207. You need to merge db-devel10:26
adeuringstub: arg, thanks!10:26
stubadeuring: So patch-2208-08-0.sql10:27
adeuringstub: ok10:27
lifelesspoolie: btw the O(N^2) analysis you did back at the epic on the bug attachments api - spot on10:35
lifelesspoolie: I have landed a bandaid that avoids the N^2 on attachments but is N on messages, so not ideal, but tolerable10:36
poolieoh thanks10:37
pooliewe just need more transparency, and faster landing of fixes, istm10:41
poolie"just"10:41
jtvlifeless: you emailed about count(*) not being cheap…  anything specific you had in mind, or just adding general advice?10:46
lifelessjtv: general advice10:46
lifelessjtv: it was a thing that came up in a few places in the epic & discussions since10:47
lifelessuhm, like about apis, and portlets, and so forth.10:47
lifelessjtv: only had your name in the header cause thats what reply-all did, wasn't targeted at you per se10:48
jtvIt may be worth a check that we no longer have count queries in cases where we just want to know "zero or one," or "count up to x."10:48
jtvIn fact, maybe "count up to a maximum of" could be a useful feature for an ORM.10:48
jtvgah head need lie down10:49
lifelessgo get well10:49
jtvthanks—it's not that bad, really, just pacing myself10:53
deryckMorning, all.12:00
lifelessderyck: heya12:02
lifelessderyck: I'm heading to be, but I hope you have a great performance tuesday.12:02
lifelessderyck: I also have some good news for you (at the bottom of my perf tuesday mail i sent to the list)12:02
deryckah, good news! :-)  Let me look then....  and good night, too, lifeless  :-)12:03
deryckawesome news!  and bryceh will be glad too.12:05
lifelessI've mailed leann to let her know to use edge for a couple weeks12:06
lifelessderyck: something weird for me though12:06
lifelesson launchpad.dev12:06
lifelesshttps://bugs.launchpad.dev/redfish/+bug/15/+index12:06
_mup_Bug #15: PO file import errors should be more verbose <feature> <Launchpad Translations:Fix Released by carlos> <https://launchpad.net/bugs/15>12:06
lifelessthe subscribption widget doesn't show subscribers12:07
lifelessis that js based?12:07
lifelesslocal-js seems borkinated for me, or something12:07
lifelessyes, definitely that - I see a +, not a pen, running firefox in the vm i s alittle better but still not right12:09
deryckhmmmm12:09
deryckSo the subscriber's list is loaded via an XHR call12:10
deryckif this fails, you won't see subscribers.12:10
lifelessthat would match12:10
lifelessthis is for bug-60793512:10
lifelesswhere I have a massive improvement in query counts but something broke (which tests caught), I'm trying to see if it looks sane locally.12:11
lifelessI'll dig in the morning12:11
lifelesswe'll cross paths I'm sure12:11
deryckthe page could be oopsing.  You can load it directly.  Just look via inspector or firebug to see what url the page wants to load.12:11
derycklifeless, ok, sure.  Talk to you then.  Rest well.12:11
lifeless(or perhaps you could pull lp:~lifeless/launchpad/bug-60793512:11
lifeless:!bin/test -vvt lib/lp/bugs/tests/../stories/bug-privacy12:11
lifelessdemonstrates the failure12:12
lifelessonly if you have the time, of course.12:12
derycksure, I don't mind looking.12:13
lifeless*really* gone; past 11 :P12:15
lifelessgnight12:15
=== henninge_ is now known as henninge
=== matsubara-afk is now known as matsubara
=== benji___ is now known as benji
=== Ursinha is now known as Ursinha-afk
=== salgado is now known as salgado-lunch
rexbronjust a thought on how to improve the recipe service: https://bugs.edge.launchpad.net/launchpad-code/+bug/62746616:10
_mup_Bug #627466: Use a recipe branch instead of copy paste for source package recipes <Launchpad Bazaar Integration:Opinion> <https://launchpad.net/bugs/627466>16:10
=== deryck is now known as deryck[lunch]
=== beuno is now known as beuno-lunch
jelmerrexbron, I'm not sure I follow - do you mean putting a single recipe file in a branch?16:38
rexbronjelmer: basically16:38
rexbronI like to keep the recipe files in bzr16:38
rexbronbut when I commit and push16:39
jelmerrexbron: My guess would be that we'd eventually be able to move towards using a single branch with nested trees that get updated, instead of a recipe.16:39
jelmerrexbron: Are you updating your recipes particularly often?16:40
rexbronjelmer: at least for the first little while16:41
jelmerI find that I don't change them after I've put them up.16:41
rexbronjelmer: just a thought :)16:42
noodles775Originally we'd hoped to make it an option to re-use, or easily-update a recipe for the project when creating a branch: https://dev.launchpad.net/BuildBranchToArchiveUI/UseCaseDailyBuild16:58
=== deryck[lunch] is now known as deryck
noodles775but we didn't have the resources to implement it.16:58
noodles775rexbron, jelmer ^^16:59
noodles775Night all.16:59
jelmerg'night noodles!16:59
=== benji is now known as benji-lunch
=== matsubara is now known as matsubara-lunch
=== salgado-lunch is now known as salgado
=== beuno-lunch is now known as beuno
=== benji-lunch is now known as benji
=== matsubara-lunch is now known as matsubara
mfraz74What is happening with the Google Earth API change?18:11
=== mpt_ is now known as mpt
lifelessmorning19:07
derycklifeless, was just about to email you19:07
deryckfound your test failure19:07
lifeless\o/19:07
deryckhttp://pastebin.ubuntu.com/486417/19:08
deryckform validation was failing, causing the subscription to not truly be removed19:08
lifelesshaha19:08
lifelessawesome19:08
lifelessI wonder19:08
lifelessis that logic even Needed on GETS ?19:08
lifelessif its only used to process subs ?19:08
derycklifeless, I'm fairly confident it's only used for the +subscribe view, not bugtask index.  So GET for the +subscribe view, yes.  Not for bugtask index.19:10
derycksame view for two pages19:10
lifelessah19:10
deryckMaking it conditional on which view or splitting this into two views would definitely save some work on bugtask index.19:11
lifelessI'll file a bug for that19:11
lifelessit should be efficient enough now to be out of the way for folk analysing timeouts on +index19:12
lifelessthank you -very- much19:12
=== Ursinha-afk is now known as Ursinha
derycknp.  Was a fun curiosity to dig into.19:13
lifelessI hope it didn't take up too much time19:13
derycklifeless, nah.  And thank you soooo much for the work you're doing on performance!19:13
lifelessmy pleasure19:15
=== Ursinha is now known as Ursinha-afk
lifelessbah, my blueprint branch also had a -single- test failure in ec219:20
lifelesshola mpt19:21
mpthi lifeless19:21
jelmer'evening deryck, lifeless19:21
deryckhi jelmer19:22
benjiwgrant: I hear that you have a launchpadlib script that I should take a look at.19:31
lifelessbenji: its 0432 for him. Good Luck.19:33
benjiheh19:34
lifelessleonardr: how long till your EOD ?19:40
lifelessSpamapS has some APIs stuff he wants to ask, about jsonp, and i figure you'll be important for answering :)19:40
leonardrlifeless, 2 hours and change19:40
SpamapSleonardr: am hoping the public data in launchpad's API can be exposed via JSONP to allow AJAX calls directly to api.launchpad.net19:41
leonardrSpamapS, yeah, we can do that19:46
SpamapSleonardr: I'd even be interested in doing the dev work on it myself. :)19:47
leonardrSpamapS, ok, this would go into lazr.restful. the callback would be passed in with a query string argument called ws.invoke or something19:49
SpamapSleonardr: any thoughts on the data security implications? JSONP does sort of discard the XSS controls that would normally keep launchpad's data safe from other nastiness on a page.19:52
leonardrwell, api.launchpad.net doesn't know who you are, so no private data will show up19:53
leonardrlaunchpad.net knows who you are, but we could decide to only allow jsonp on api.launchpad.net19:55
cr3what's the difference between a project group and just a project? and what's the class for just a project?19:56
lifelessthe class for project is product19:58
lifelessthe class for project group is project19:58
lifelessa project group aggregates projects19:58
lifelessits useful for instance for launchpad which has 15 or so separate projects in its umbrella19:58
cr3lifeless: gotcha, I didn't make the leap to product19:59
lifelessRoughly project -> project group as source-package->distro19:59
lifelessthis is a piece of _massive_ techdebt19:59
SpamapSlifeless: did you have other thoughts on how to get those bug lists btw?20:08
lifelessSpamapS: do you have an exmaple url?20:08
SpamapSlifeless: if I could iframe something that has the same table content as this: https://bugs.launchpad.net/~clint-fewbar/+assignedbugs  that would be fantastic.20:08
lifelessSpamapS: rendered and all ?20:09
lifelessthere is probably/possibly a template just for it20:10
SpamapSlifeless: at the moment, I'm working around the fact that I have zero server side scripting capabilities in the WI tracker.20:10
lifelessoh20:10
lifelessyou could just move it to a better box:)20:10
SpamapSYes, I'm at least trying to get 1 or 2 people to tell me to do that before asking IS for something. :)20:11
cr3when adding to long list of base classes in a class definition which is not completely alphabetically ordered, do I just add to the tail of the list? I'm thinking ordering might be important when base classes like IPillar or IServiceUsage are in the list of base clases, maybe those should be near the end as opposed to mine20:20
lifelesscr3: I really wish you were doing this adjacent to lp, not in the mix. I think it would go faster and end better.20:25
cr3lifeless: it's called hardware certification :)20:26
lifelesscr3: that one isn't really integrated in though, is it ?20:28
lifelessanyhow, to answer your question; I wouldn't touch the inheritance order. Its semantic, affects the MRO.20:29
lifelesssorting is only valid for nonsemantic lists.20:29
cr3lifeless: perhaps we have a different perception on how to go about having a results tracker adjacent to lp20:30
* cr3 wouldn't mind taking a stroll in lifeless's brain for a while20:33
lifelessso what does 'integrated' mean20:34
lifelessTo me it means that the lp UI would show links to result tracker data as appropriate20:34
lifelessbut that its code wouldn't be responsible for that data20:34
lifelessprobably use LP APIs as a backend20:35
lifeless(which would shake out a bunch of lurking performance issues for leonardr20:35
cr3lifeless: so have another web service running elsewhere which would expose a restful API, not so disimilar to LP, to be queried by views in LP and exposed to users that way?20:37
lifelessyes20:37
lifelessI *thought* that was precisely what we spoke about20:37
cr3lifeless: that was indeed precisely what we spoke about, but then I was given the impression by flacoste and jml that it should be in launchpad core because of all the concepts shared between LP and the Results Tracker: users, projects, source packages and maybe even branches20:38
lifelessI'm confused about the timeline though20:38
lifelessjml was not in montreal after the epic20:38
lifelessbut you say that this guidance happened in montreal20:39
cr3lifeless: yes, I'm confused myself that I proposed to have this separate service in prague. I first pitched this idea to flacoste in berlin, then to him and jml in montreal.20:40
cr3lifeless: in prague, I'm very surprised I said this was still the approach agreed upon20:40
cr3lifeless: perhaps I said that this was the original design, but I apologize for having introduced this confusion20:40
cr3lifeless: on the other hand, I'm pleased to hear you liked my original idea :)20:41
=== jcsackett_ is now known as jcsackett
lifelessI know that you need to be building a UI20:41
lifelessthat is something I completely agree on20:41
lifelessand was clear in the QA room20:41
lifelessbut that doesn't, to me, imply same database.20:41
cr3lifeless: regarding the UI, do you mean the dashboard rick spencer really wants?20:42
lifelessno20:42
lifelesswhatever UI you build20:42
cr3API?20:42
lifelessyou need to engineer towards the experience20:42
cr3lifeless: the experience at this point is mostly geared towards enabling platform folks to persist test results and expose an API so that they can expose their own UI20:43
cr3lifeless: until we observe a convergence in UI requirements, only then would it be worthwhile to actually expose one20:43
cr3lifeless: at this point, everyone seems to want a different UI so it's not worth investing time building one. just exposing an API would be extremely useful at this point20:44
lifelessI got a clear imagine in the QA meeting at the end of the platform sprint, that everyone wanted *a* UI to be built.20:44
cr3lifeless: that's probably the dashboard, but that's a placebo to workaround the fragmentation of results scattered all over the place20:46
cr3lifeless: in other words, the objective of that UI is to summarize information in a single location which the results tracker aims to do at the source20:47
lifelessPerhaps I'm out of the loop.20:48
lifeless*I* had the clear understanding that Marjo/Rick/Mdz wanted a use case - including UI - to be built up.20:49
cr3lifeless: my understand is that these are separate projects which currently address different concerns, which should eventually converge in due time. however, I'll double check with people which might have a better understanding than me :)20:52
lifelesswhat I want is the following:20:52
lifelessorganisational:20:52
lifeless - hnour jml's no-new-features-moratorium20:53
lifeless - have all components in Launchpad maintained [unless you have ongoing can-be-interrupted time to fix issues, this would be an unmaintained component]20:53
lifelesstechnical:20:53
lifeless - not add writes to an unscalable system20:53
lifeless - not add stuff to a codebase we're already trying to split up into pieces20:54
lifeless - have the tracker be really flexible and reusable20:54
abentleyjames_w`, with revno 104 of lp:bzr-builder, I get this: http://pastebin.ubuntu.com/486458/20:54
lifeless  - get it delivered quickly20:54
cr3lifeless: regarding the split, timing sucks unfortunately. if we were 12-18 months from now, that problem would probably be solved so I'd have precedent to work against. however, if I try to solve that problem and introduce the results tracker at the same time, I'm setting myself up for fail.20:55
lifelesscr3: not true; we have other things that collaborate with LP in different ways20:56
lifelessthe Software centre agent20:56
lifelesslogin.ubuntu.com20:56
lifelessthe UDD package importer20:56
cr3lifeless: ah, good to know. so are those examples of ways you envisionned the results tracker integrating with launchpad as a separate web service?20:56
lifelessthey are all different, and none do quite what you want to do - but what you want to do is unclear to me because you're saying you don't need UI. Or something.20:57
james_w`abentley: that's wonky20:58
james_w`abentley: I can't diagnose the cause at this distance though20:58
cr3lifeless: I haven't committed to delivering a UI, but I'm still double checking20:58
james_w`abentley: getting the header line that it is parsing may help20:58
cr3lifeless: just got confirmation, the dashboard which will exose a summary of test results will eventually make use of the results tracker api in order to summarize some of its information20:59
cr3lifeless: so, the results tracker is still just about exposing an API at this point20:59
lifelessok20:59
james_w`abentley: actually, that code looks very odd21:00
cr3lifeless: as mentionned earlier though, if we find a convergence in UIs created by people using the API, it might then be worthwhile to learn from that experience and expose a UI at that point21:00
lifelessgiven that, wouldn't it be simplest to just have it be a standalone API server, use API to ask LP things, and it can be queried directly.21:00
abentleyjames_w`, yes, it appears to be raising unconditionally.21:00
james_w`abentley: in the merge of your branch some code got deleted21:01
cr3lifeless: that was my original proposal, I guess I need to get back to jml about this. I'll hop online tonight to make sure in person.21:01
abentleyjames_w`, the try/except ValueError, right?21:01
james_w`yeah21:01
lifelesscr3: hes on leave21:01
lifelesscr3: for 2 weeks21:02
cr3lifeless: awesome!21:02
lifelessbut21:02
james_w`abentley: it appears that I just deleted three lines from the file while merging21:02
lifelessif we have to interrupt him that is doable21:02
abentleyjames_w`, Ah.  Well, nobody's prefect.21:03
cr3lifeless: if I could have a quick twisted instance running with a restful interface on which I could start hacking, that might work for now.21:05
james_w`abentley: I apparently did: http://paste.ubuntu.com/486464/21:05
james_w`only the last hunk did I do intentionally21:05
cr3lifeless: my objective is to make people happy and to do so, having a prototype is good enough for now21:05
=== Ursinha-afk is now known as Ursinha
cr3lifeless: how would you suggest I proceed knowing I don't need to have anything actually integrated in launchpad before jml returns from his leave?21:06
cr3lifeless: also knowing this project might have to be folded into the core when he returns :)21:07
* cr3 starts hunting for the software centre agent and login.ubuntu.com21:10
lifelessgary_poster: do you need me to dig up some help on the storm batching issue ?21:12
lifelesscr3: I'd talk to noodles about the csa21:12
lifelessand the software stack he used there21:12
gary_posterlifeless, oh, are you a storm guy too?  Yeah, that would be fantastic, thank you!21:12
lifelessno, but I play one on tv21:13
gary_poster:-)21:13
lifelessi was actually thinking of just grabbing jkakar in my evening21:13
lifelessshowing him the bug and going 'pleeeease'21:13
gary_posterheh :-)21:13
lifelessniemeyer is around now though21:14
gary_posterI tired contacting him on privmsg but didn't get a reply21:14
gary_poster(jkakar)21:14
lifelesswhat the bug #21:14
lifeless(i've forgotten already :P)21:14
gary_posterbug 62050821:14
_mup_Bug #620508: Slicing a ResultSet breaks subsequent len() calls. <Storm:Triaged> <https://launchpad.net/bugs/620508>21:14
gary_posteroh, Jamu triaged it already, yay21:14
cr3I thought len always incurred a count(*)21:15
lifelesscr3: internal state in the resultset gets corrupted21:15
james_w`abentley: 0.5 released with your change and on it's way in to the bzr-builder ppa21:15
lifelesscr3: sliced = resultset[0:5]21:16
abentleyjames_w`, thanks!21:16
lifelesscr3: resultset.count() -> 521:16
james_w`abentley: thanks for catching that21:16
lifelessor something along those lines21:16
abentleyjames_w`, np.21:16
cr3lifeless: hm, I can see how that could make sense but probably not what some people would expect :(21:16
lifelesscr3: its a bug21:17
cr3lifeless: feature? :)21:17
lifelessbug21:17
=== Ursinha is now known as Ursinha-afk
lifelessgary_poster: on assertions and the webservice21:32
lifelessgary_poster: it is you/benji/leonardr's call21:32
gary_posterlifeless: yes!  it is interesting topic21:32
gary_posterok cool21:32
gary_posterthanks21:32
lifelessbut if you want to tease out what I'm thinking/concerned about, I'm delighted to chat about it21:32
gary_posterI actually would love to, but I suspect the world would be better served by me trying to finish a review of one of stub's branches for now. :-)  If it arises again, though, I'll take you up on it21:33
lifelesskk21:33
=== Ursinha-afk is now known as Ursinha
mwhudsonmorning21:49
gary_posterhey21:51
mwhudsongary_poster: hello21:55
gary_poster:-)21:55
mwhudsongary_poster: have you been complained at about the 'bootstrap talks to the internet' issue?21:56
gary_postermwhudson, no, but I took it upon myself to reply--oh!21:56
gary_posterand my reply was insufficient.21:56
mwhudsoni haven't read my email yet today21:57
mwhudsonthough if it's a bug i might not be subscribed anyway i guess21:57
gary_posterIt is bug 62715921:57
_mup_Bug #627159: codebrowse is taking around 10 minutes to startup <canonical-losa-lp> <Launchpad Bazaar Integration:New> <Launchpad Foundations:Triaged> <https://launchpad.net/bugs/627159>21:57
gary_postermwhudson: codehosting is still edge-only, right?21:59
gary_postereh, not that you'd necessarily know :-)21:59
mwhudsongary_poster: code*browse* is22:00
gary_postermwhudson: er, yes, sorry, that's what I meant22:00
gary_posterthanks22:00
mwhudsongary_poster: what was confusing me was why something was looking for zc.buildout 1.5.122:01
gary_postermwhudson, if you don't tell the bootstrap what version to get of zc.buildout, it will go out looking for one.  zc.buildout is the only version specification that you have to specify twice, because bootstrap, unsurprisingly, runs before zc.buildout itself starts up to start honoring versions made in versions.cfg.22:03
mwhudsongary_poster: ok, but it was looking for 1.5.1 on edge, which doesn't access the internet -- how did it know about it?22:03
mwhudsonmaybe i'm misremembering things22:04
mwhudsongary_poster: also is there some way you can tell bootstrap to not do that?22:04
gary_postermwhudson, I think you are remembering what happened on developer machines22:04
gary_postertell bootstrap not to do that: yes, give it a version number, as we used to do, and shall do again22:05
mwhudsongary_poster: this was on staging: https://pastebin.canonical.com/36438/22:07
mwhudson(asuka)22:07
=== Ursinha is now known as Ursinha-afk
=== jcsackett_ is now known as jcsackett
gary_postermwhudson: ... asuka allows some requests through, or defining a download-base made it find 1.5.1 locally, or there's a code path I don't understand yet.  I'm pretty confident that specifying a --version will fix it though.  ...for the heck of it, I'll disconnect my dev box from the internet and run the branch that I believe fixes it and see if it works...22:14
mwhudsongary_poster: cool, it's a shame that such drastic steps are required to test this sort of thign :/22:15
gary_postermwhudson, agreed.  (do you have any other ideas?)22:16
mwhudsongary_poster: not really; specifiying --version to bootstrap seems like a good idea22:17
mwhudsonfor testing, i can only think of vms22:17
lifelesswhat would that OS... oh22:19
gary_posterworked (though it revealed a Makefile bug)22:19
cr3lifeless: an idea I just had is that I could integrate with the launchpad interface without even modifying launchpad by using greasemonkey scripts pointing to the separate instance. for example, if I eventually expose a UI, the greasemonkey script could expose a button: show test results for this project :)22:20
lifelesscr3: put down the pipe, exhale, go get some freash air ;)22:20
gary_posterlol22:20
cr3lifeless: that's the problem, I just went for fresh air. no more of that for me!22:21
gary_poster:-)22:21
* cr3 is sticking to smoking and hard liquor22:21
cr3lifeless: for your reassurance, I'm currently exploring a separate standalone service. I'll keep you posted/annoyed on my progress :)22:22
lifelessthanks!22:22
gary_postermwhudson, do you have a few minutes for a review of the change pertinent to what we were discussing? https://code.edge.launchpad.net/~gary/launchpad/buildout/+merge/3425122:31
gary_posterit's small22:31
* mwhudson looks22:31
gary_posterthanks22:31
mwhudsongary_poster: reviewed22:32
gary_posterthanks mwhudson22:33
mwhudsongary_poster: i wonder if we could block pypi.python.org using iptables or something in our ec2 test images?22:33
lifelessmwhudson: you can with security groups, I'm sure.22:33
gary_postermwhudson, lifeless, should be even easier once we have tarmac/PQM back in the picture22:33
mwhudsoni guess you could just whack '10.1.1.1 pypi.python.org' or something in /etc/hosts22:33
gary_posterthen the machines will be in the DC22:33
* gary_poster needs to reply to rockstar's email22:34
mwhudsonlifeless: security groups only affect incoming connections afaik22:34
lifelessoh, hmm22:34
rockstargary_poster, which email?22:34
rockstarOh, tarmac one.22:34
lifelessrockstar: tarmac features22:34
gary_posteryeah22:34
gary_posterrockstar, can do it here if that works for you22:34
rockstargary_poster, it doesn't, unfortunately.  I have to leave for class in 10 minutes.22:35
gary_posterrockstar: ok np :-)22:35
lifelessgary_poster: hi22:36
gary_posterHey lifeless22:36
lifelessgary_poster: I realised another thing i want a few cycles to chat about with you22:36
lifelessI want to lower the global timeout more22:36
gary_posterok22:37
lifelessbut we have same pages which are all of:22:37
lifeless - infrequently used22:37
lifeless - extremely hard to optimise today22:37
lifeless - slow22:37
lifelessso I've proposed and I think you were ok, with making the timeout overridable per page22:37
lifelessbut22:38
lifelessthis needs a unique-enough key to identify the page in the appserver22:38
lifelessI had been thinking to use the page id, but I'm not entirely sure now whether its uniqueenough22:39
lifelessor even appropriate22:39
gary_posterYeah, not designed for that, from the get go22:39
* gary_poster gets into handwaving mode22:40
gary_poster...we could put it on view classes?22:40
lifeless:)22:40
gary_posterI expect you want it in a config file, but putting it in Python would probably be more expedent22:40
gary_posteri22:40
lifelessI was actually thinking to lookup (key) as a feature flag scope22:41
gary_posterI see...22:41
lifelessas long as (key) shows up in oopses, that would be a very low friction means to change this22:41
lifelessas in, a sysadmin could just do it, when a page starts blowing up in future, file a critical bug, we fix, rule gets removed returning it to the default22:42
gary_posterYeah, I see how that's a compelling story.22:42
gary_posterThoughts:22:44
gary_poster- full class name of view class?  Maybe this would be the start of a new take on page id, but for now we don't have to solve both stories at the same time.22:45
lifelesssure, we don't have to conflate the two things22:46
gary_poster- Zope does crazy crap with some of the zcml tags we use, making view classes on the fly.  They've been discouraged at ZC for years, for instance.  We use 'em because we have old code.  They would make a simple plane like the first bullet point harder22:46
gary_postersimple plan22:46
lifelessthe key constraints in the short term are: - deterministic key; lookup in features; control per-request timeout if a feature rule is found22:46
lifeless+ key shown in oops somehow22:47
* mwhudson can attest to the crazy crap22:47
gary_poster:-)22:47
lifelessthe uniqueness needed is that we should be identifying a code path reasonably precisely22:47
lifelessadding stuff to the oops is easy via the request vars dict, we can wedge it in any old how22:48
gary_poster- looking them up in features is a short-term requirement?  Seems like a short term very nice to have, but can see either way22:48
mwhudsonspecifying the behaviour in the browser:page directive?22:48
lifelessgary_poster: it is because:22:48
lifeless - we don't know -completely reliably- whats going to go *boom* when we change the global timeout22:49
lifeless - when we change it, we'll be flooded with issues, and the config system takes about 1.5 hours to make a change.22:49
gary_posterack, conceded22:49
lifelesshowever, its not a big task - flags are darn easy to use.22:49
gary_posterthe flags are not my concern; the keys are.  Just deciding on something and trying it wouldn't be the worst approach in the world, I suppose.22:50
gary_posterTo pull out one thing you've said:22:51
gary_postereh, no it was obvious22:51
gary_posterI was thinking about the fact that the OOPS reports are the tool you will use to analyze what needs to be don, not the performance reports, but of course, that's the way it has to be22:52
lifelessI would like to use a single key across the system, but thats long term not short term22:52
gary_posteragreed22:53
gary_posteron both22:53
gary_posterOK, lifeless, I have a few minutes before dinner.  Want me to put a bug in on this?22:53
lifelessplease!22:53
gary_posterk, will do22:53
lifelessthank you22:53
gary_posternp22:54
thumpermorning people22:56
lifelessmatsubara: hey, around?23:01
matsubaralifeless, yes, about to leave23:01
lifelessmatsubara: have you followed the thread about oops mails; do you have any thoughts? how hard are the changes discussed to do?23:01
lifelessmatsubara: you could answer this tomorrow if you like23:01
lifelessI have one other question23:02
lifelessis it possible to lookup an oops by page id ?23:02
matsubaralifeless, I glanced over the thread. there are some changes easy to do (like disabling the weekly summary) others not so much. I can't really make any changes to that in the near future because I'm supposed to be helping the team with the new merge workflow. once the new merge workflow is mostly done, I can resume working on oops-tools again23:02
lifelessI have a low volume but consistent oops I want to analyse, its blocking lowering the timeouts23:02
lifelessmatsubara: thanks for the feedback, yes, we're fully committed workloadwise ;)23:03
matsubaralifeless, currently, not it's not possible. but it's doable.23:04
matsubaras/not/no/23:04
lifelessok, I'll grep... pity the server :)23:05
wgranthttp://github.com/blog/712-pull-requests-2-0 is interesting.23:06
wgrantIt looks... just like LP MPs.23:06
=== matsubara is now known as matsubara-afk
lifelesswgrant: indeed, interesting23:07
gary_posterlifeless, bug 62770123:07
_mup_Bug #627701: Make it possible to use feature flags to override the global timeout for specific pages <Launchpad Foundations:Triaged> <https://launchpad.net/bugs/627701>23:07
lifelessgary_poster: thank you!23:07
gary_postersure.  have a good day23:08
thumperwgrant: and not a single comment referring to prior art :)23:30
thumperor is that :(23:30
wgrantthumper: But it's innovative!23:35
=== salgado is now known as salgado-afk
lifelesswell23:40
lifelessMP's don't refer to things that came before either23:41
thumperI was referring to the reader's comments, not the blog post writer23:49
lifelesssure, my bad23:54
lifelessECAFFEINE, though at least the headaches are mostly gone now23:54
lifelessanyone run into 'ValueError: Supplied vocabulary values resulted in duplicate term tokens' before ?23:56

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