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

lifelessis there a wiki page listing the performance problem-and-resolutions folk have run into before ?00:20
jelmerlifeless, there should be, but I don't think there is.00:33
lifelessjelmer: https://dev.launchpad.net/Performance has one now00:53
jelmerlifeless: Yeah, I saw it. Thanks, also for that summary of improvements you had made and how/why earlier.00:54
lifelesswhich summary?00:55
jelmerthe one you sent at the end of your day yesterday00:55
jelmerwell, it wasn't really a summary I guess00:55
jelmerEnglish fail.00:56
lifeless:)00:57
lifelessthe the 'some thoughts on performance' ?00:57
jelmerlifeless: I meant "Performance tuesday - a few notes"00:59
jelmerwhich I pretty much read as the summary of your day00:59
jelmerand now I'm getting sleep before I do more gibbering :-)00:59
lifeless:)01:00
lifelessI'm glad its useful01:01
lifelessthat was two days ago :>01:01
jelmerlifeless: Heh, timezone fail. Tuesday was yesterday. >-)01:02
mwhudsonlies01:02
lifelessjelmer: 36 hours then :P01:02
lifelesswgrant: so01:15
lifelesswgrant: I'm thinking of writing an extension to cachedproperty01:16
lifelessto register the caches in __cachedproperties__01:16
lifelessand a SQLBase base class storm invalidation hook to clear that out.01:16
lifelesswgrant: ignoring performance, does that raise any red flags for you?01:16
lifelessmwhudson: ^ also01:16
thumperlifeless: a bit of advice if you can...01:17
thumperI want my tests to all flush the store to make sure database constraints are triggered01:18
thumpershould I just add a cleanup from the test setup?01:18
thumperis that a reasonable thing to do?01:18
thumpermwhudson_: comments on the above?01:19
wgrantlifeless: On what would it be invalidated?01:20
thumperis an error in cleanup execution still considered a failure?01:21
wgrantIsn't the entire object already invalidated on the transaction boundary?01:21
thumperwgrant: removed from the storm cache, but not invalidated01:22
thumperAFAIK01:22
wgrantthumper: So if I hold a reference to an object, it will stay around?01:23
wgrantThat seems bad.01:23
thumperused in many places though01:23
thumperlike scripts01:23
wgrantHmm, true.01:23
lifelessthumper: an error in cleanups is an error in the test, yes.01:26
lifelesswgrant: it will be invalidated when storm invalidates the object01:26
lifelesswgrant: I need to check exactly what triggers that01:26
lifelessthe storm cache is flushed on transactions but only in the webapps01:27
lifelessscripts and tests don't do that01:27
lifelessstorm invalidates objects before reusing them01:27
wgrantlifeless: I'd really like the cache to not be populated by an attribute access.01:27
wgrantBecause that makes it happen *everywhere*.01:27
lifelessthe reason it has an object cache is so that scripts and the like with long running references don't end up with aliasing problems01:27
lifelesswgrant: I'd like attribute accesses to always be cheap. Because they happen everywhere.01:27
lifelesswgrant: we're /dying/ from this today.01:28
lifelesswgrant: Pages are doing thousands of queries01:28
lifelessand prejoining is effectively useless01:28
lifelessbecause:01:28
lifeless - its too greedy (pay the cost everywhere)01:28
wgrantlifeless: In most cases it won't help.01:28
lifeless - its too specific (fails on many non-collection lookups)01:28
lifelesswgrant: its a tool when used with tuple queries that works very well01:28
wgrantlifeless: @cachedproperty normally only significantly saves queries when you do a prejoin beforehand.01:29
lifelessthumper: yes, a store flush seems reasonable where you are doing updates/inserts01:29
wgrantIf you're doing a prejoin and you want this behaviour, *then* populate the cache.01:30
lifelesswgrant: that requires the cache to exist01:30
wgrantDoing it implicitly without checking every callsite is a recipe for disaster.01:30
lifelesswgrant: Can you quantify that at all?01:30
lifelessI don't like the idea of a 'sometimes its cached' decorator - it will be confusing as hell when looking at code01:31
lifeless'is this cached? I don't know? maybe?' bwah01:31
lifelesswgrant: let me add some data here:01:31
lifeless - we *already* have cachedproperty on model objects01:32
wgrantWe do.01:32
lifeless - we *already* have adhoc hooks of that into storm01:32
lifelessI'm proposing to systematise it so that we don't have accidental failures to flush those caches when the backing data is recalculated01:33
lifelessyou seem to be objecting to an improvement, which confuses me01:33
* thumper afk for lunch01:33
wgrantWell, you also a couple of days ago proposed to immediately start caching tonnes of attributes.01:34
wgrantI don't object to your invalidation improvement.01:34
lifelessyes, which is btw no worse that prejoins AFAICT01:34
lifelesswe've been around that discussion01:35
wgrantAssuming that DB triggers/views don't play tricks, prejoining is perfectly safe, since it only works for references.01:36
lifelessif you're talking risk, thats a fairly big one :)01:36
wgrantHm?01:37
lifelesswe had a storm bug with triggers just this cycle01:37
lifelesswhich took a day to debug01:37
lifelessmore-or-less01:37
wgrantRight. But triggers are well-known and few.01:38
wgrantThey are part of the model.01:38
lifelesswgrant: here's another way to think about it01:38
lifelesson one hand we have death by sql01:38
lifelesson the other we have a) cachedproperty and b) some huge handwaving I've done with nothing concrete and c) nil, zip, nada, nothing01:39
lifelessI'm -very- interested in alternative approaches without the potential downside of cachedproperty.01:39
wgrantOr d) cachedproperty populated by prejoins only when we explicitly want it01:39
lifelessprejoins don't help.01:39
wgrantHow are you going to reduce the query count without a prejoin?01:40
lifelessSo please stop talking about them - I'm starting to think you don't understand the problem or something, which I *know* is wrong, because you do.01:40
wgrantAn uncached cachedproperty will still cause a query.01:40
lifelesswgrant: lets define prejoin. I mean 'lp.services.database.prejoin' when I say prejoin.01:40
lifelessI don't mean the general tactic of prepopulating things.01:40
wgrantAh.01:40
wgrantThat's the problem, then. I mean what you did with /participations or whatever it was.01:41
lifelessok01:41
wgrantLike prejoining (in that we only return the first element), but also populating caches behind the scenes.01:41
lifelesslets call that prepopulating01:41
wgrantOK.01:41
wgrantThat technique is good. I need it for some publisher optimisations.01:41
wgrantBut having to turn everything into a cachedproperty for that sucks.01:42
wgrantThere are some parts of the publisher where I cannot safely do that.01:42
wgrantI need them to only be populated when I ask. Not when I just request the attribute.01:42
lifelesswhy01:42
lifelessI'm asking for details here01:43
lifelessnot to be silly01:43
wgranteg. SPR.files. The uploader needs to add things to that, then iterate over them later.01:43
wgrantBut the publisher needs to get them all in one query.01:43
wgrantIf I make it a cachedproperty, I can prepopulate it in the publisher.01:43
lifelessand you can update the cache when you add things to it01:43
wgrantBut why?01:43
wgrantIn the uploader case, I don't want it cached!01:44
wgrantI shouldn't have to invalidate a cache that serves no purpose. The cache shouldn't exist.01:44
lifelessno? You *want* to go back to the DB when you iterate?01:44
wgrantPossibly not. But imposing a cache invalidation problem on every object modification in the entire application is... not good.01:44
lifelessso there are a few broad approaches here01:45
wgrantif we were writing this from scratch, perhaps.01:45
lifeless*) different attributes - some cached, some not. Make them visually distinctive01:45
wgrantBut so much code has been written that assumes that attributes behave sanely.01:45
lifeless*) single attributes which are sometimes cached and sometimes not, with a switch to toggle.01:45
wgrantWe should not be immediately breaking assumptions made by a few hundred thousand lines of code.01:46
lifelesswgrant: I understand you feel strongly about this, but you're inflating your argument with hyperbole; its not helping us design a solution that addresses what you want and what I want.01:46
lifelessany one attribute can be looked at and assesed.01:46
lifelessthe surface area for any one change is not 'the entire code base'01:47
wgrantBut we want a solution that can be widely applied.01:47
lifelessand the entire code base is < 200K *anyway*01:47
lifelesswgrant: sure, so lets get back to talking about it.01:47
lifelessI'm just saying, going off the deep end shuts down conversation and brainstorming01:47
wgrantlifeless: There's like 400KLOC of Python.01:47
lifeless270K including tests.01:48
lifelessand for assessing the risk tests are not relevant: they are a problem for whomever puts a specific branch together, its the headache when we silently break production that really worries me.01:49
wgrantMy "find -name '*.py' | xargs wc -l" says 511K, but anyway.01:50
wgrantRight.01:50
lifelessI used sloccount01:51
lifelesson lib/lp01:51
lifelessand then lib/canonical01:51
lifelessbecause including all of subvertpy etc didn't make sense to me01:51
lifelessanyhow01:52
wgrantWell, this is a clean branch without sourcecode linked.01:52
lifelesstheres code01:52
wgrantBut yes, anwyay.01:52
lifelessit does stuff01:52
lifelessand many many things it does are terribly slow because we do incremental DB access01:52
lifelessSo back to approaches01:52
wgrantCertainly.01:52
lifelessexcluding radical ones - I want to do them, just *after* we are in a decent place vis-a-vis performance.01:53
lifeless*) different attributes - some cached, some not. Make them visually distinctive01:53
lifeless*) single attributes which are sometimes cached and sometimes not, with a switch to toggle.01:53
lifeless*) attributes are never cached, add cached methods01:53
lifeless*) attributes are always cached, add noncached methods01:53
lifeless*) Alternatives go here <...>01:54
lifelesswhat you appear to be arguing 8for* is the second one.01:54
wgrantNone are pretty.01:54
lifelessright01:54
lifelessI *totally* agree.01:54
wgrantI'd prefer it if we could add a caching wrapper around objects.01:54
wgrantBut that is impossible.01:55
lifelesswell, its possible, but I think it would give us two problems :)01:55
lifeless(its python, with sufficient will most anything is possible)01:55
wgrantHeh.01:55
wgrantBut anyway, that leaves us with mutating the global Storm objects.01:55
lifelessyes01:55
lifelessor a lookaside weak dict01:56
lifelesswhich is equivalent and slower.01:56
lifelessso lets exclude that01:56
wgrantWell, regardless we have to modify the global objects' behaviour.01:56
lifelesssure01:56
lifelessso here are some constraints I have01:57
lifelessI want the *default* to be fast.01:57
lifelessor if I can't get that, that when someone makes something fast, it behaves decently in a very broad scope.01:57
lifelessI want this because most of our pages are slow, and most of them do not mutate things so most of the time any of the implementations we've thought of should be ok.01:58
lifelessat *worst* I want it to be very easy to take something from slow to fast01:59
lifelesssecondly, I do not want heisenbugs.01:59
mwhudson_thumper: yeah, sounds basically ok01:59
mwhudson_thumper: errors in tearDown or cleanups fail the test01:59
lifelessFolk debugging the code should not need to see object state to tell if something is or isn't caching.02:00
lifelessIts ok that they need to read the code (but not ideal)02:00
lifelessits not ok if they need a memory dump from the live server02:00
wgrantThaat's true.02:01
lifelessA criticism I have of the solution you appear to favour is that its likely to need that memory dump, if - e.g. a kept storm object has the 'cache this attr now' turned on and not reset (due to a bug)02:01
lifelessits vulnerable to cascade failures02:01
lifelessalways on02:01
mwhudson_lifeless: are you sure storm doesn't flush it's per-thread cache on transacton boundaries btw?02:02
lifelessor always off02:02
wgrantIt is.02:02
lifelessmwhudson_: check publication/webapp.py or whatever.02:02
lifelessmwhudson_: we do it02:02
wgrantBut it means we need to audit *lots* of code.02:02
lifelessline 69902:02
mwhudson_lifeless: you're probably right, but just because we do something by hand doesn't mean it doesn't happen automatically too :-)02:02
lifelessmwhudson_: oh, so yes, I am sure.02:03
lifelessmwhudson_: or all our doctests would fail.02:03
mwhudson_ok02:03
mwhudson_um02:03
=== mwhudson_ is now known as mwhudson
lifelessbecause the object outside userbrowser lookups would be different02:03
lifelessand hilarity would ensue with aliasing issues and the like02:03
lifelessif thread_name != 'MainThread' or name.endswith('-slave'):02:04
lifeless    store.reset()02:04
lifelessis what we do, for exactly that reason.02:04
mwhudsonaaah02:04
lifelessyes, yes you should run screaming.02:04
mwhudsonhang on a sec02:05
mwhudsonpresumably we somehow don't call transaction.begin() (or moral equiv) at the start of testbrowser requests either02:05
mwhudsonor we would have similar hilarity02:06
lifelessI haven't looked at exactly what testbrowser does02:06
lifelessit scares me that we avoid the publication machinery, given what is hooked into publication02:06
* mwhudson confuzzles02:07
wgrantlifeless: So, OK, your approach is OK if we are going to move to it throughout the application.02:09
wgrantBut it's a fair bit of work.02:09
lifelesswhat do you think of having foo_uncached attributes where you need them ?02:10
lifelessor perhaps02:10
lifelessa dynamically generated getter02:10
lifeless@cachedproperty('bwah')02:10
lifelessdef foo02:10
lifeless-> _bwah_cached cache attribute02:10
lifeless-> bwah_uncached lookup bypassing the cache02:11
lifelessit won't layer well02:11
lifelessif you have Foo referencing Bar and Bar has a thing you need uncached from Foo, you're ok.02:11
lifelessbut if you have Quux->Foo->Bar, you're screwed if you try .foo.bar.thing02:12
lifelessOTOH you shouldn't do that anyhow :P02:12
wgrantWell. Let's think about the cases where we are going to need something uncached.02:12
wgrant1) We start a new transaction.02:13
wgrant2) We make a change. The method making the change should invalidate or update the cache.02:13
wgrant3) DB triggers or views play tricks on us.02:14
wgrantAny others?02:14
lifeless1) isn't strictly true, but its a damn sensible default02:15
lifeless2) yes, agreed.02:15
lifeless3) yes, agreed (and thats where storm broke this release too)02:15
wgrant2) is difficult, particularly if we're doing mass-updates as it seems we might.02:16
lifelessif we're doing mass updates we shouldn't realise the objects in the first place02:16
lifelessthe existing storm objects will get broken by that anyway, so its not a unique problem to cachedproperty decorators02:17
wgrantI guess that case is pretty much the same as 3)02:17
wgrantSo 3) should be revised to changes in the DB, not going through the objects.02:17
lifelessfunctionally equivalent02:17
lifelessyes02:17
lifelessis DistroSeries:EntryResource:getBuildRecords fixed?02:24
lifelesswgrant: so, thats when we need uncached things02:24
lifelesswgrant: do we then say 'if you have a cache, and you invalidate it,the owning object invalidates the cache'02:25
lifelesse.g. Foo.newBar() -> Foo's Barcache is Foo's job to invalidate02:25
wgrantlifeless: It should be fixed, yes.02:25
wgrantlifeless: And I think that example is correct.02:26
lifelessI wonder if we can hook in to make a simple del attrname invalidate without wiping the cache logic02:28
lifelesswe have about 40 uses of cachedproperty, in model code, in a simple check today02:32
lifelessincluding sourcepackagerelease02:32
lifelesswgrant: did you fix DistroSeries:EntryResource:getBuildRecords or is it my imagination ?02:34
wgrantlifeless: I'm pretty sure it's fixed.02:38
wgrantI mean, the query it executes now sucks 30x less.02:38
jameshif you're doing mass updates via Storm's ResultSet.set() API, Storm should keep its own caches coherent02:39
jameshif that helps.02:39
lifelessjamesh: does it trigger invalidate() ?02:44
jameshlifeless: no, but it marks the columns you're updating as AutoReload (or the new values if the query is simple enough)02:45
lifelessah02:45
lifelesssimple would have to be darn simple ;)02:45
jameshsee the compile_python code in storm.expr for an idea of what counts as simple02:46
lifelessI just mean it has to either be explicit primary key values02:47
lifelessor all rows02:47
lifelessno?02:48
jameshit can do more than that.02:48
lifelessI didn't think UPDATE returned the row ids02:48
jameshif you do store.find(Foo, name="blah").set(x=42), it will update any cached Foo object with name=="blah"02:49
lifelessok, thats nice02:49
jameshit tries to create a python function based on the where conditions.  If it can't, then it will invalidate the column on all cached Foo objects02:50
lifelessso02:51
lifelesswe want to cache derived data02:51
lifelesslike store.find(Foo, And(Foo.id==self.foo, Foo.status=="finished"))02:51
lifelesson Bar02:52
lifelessto avoid death-by-sql02:52
jameshthis sounds like you want a constrained version of Reference()02:52
lifeless+ eager loading02:52
lifelessbut only when we want it02:53
jameshor are you after something more general?02:53
lifelessand very fine control02:53
lifelessjamesh: does storm have constrained references ?02:55
jameshno02:55
lifelessheh02:55
lifelesshttps://dev.launchpad.net/Database/Performance02:55
lifelessis a first sketch starting to write up some of this02:55
lifelessalso02:55
lifelesshttps://dev.launchpad.net/Performance may be interesting-though-I-bet-you-know-it02:56
jameshIIRC, when I was optimising some soyuz views way back, I did one query to get all the pairs of objects and used lazr decorates(...) code to override the slow attribute in the view.02:59
lifelessyeah02:59
lifelessthe problem with that is that the default is 'behave badly' :)03:00
jameshwell, the definition of good behaviour often depended on what the view was trying to do.03:01
lifelessthats true03:01
lifelessyou don't want unnecessary columns included03:01
lifelesss/columns/tables/03:01
lifelesswhat I meant is that when you have any model methods03:01
lifelessa delegated approach to fix things doesn't help the core object03:02
jameshright.03:02
lifelessso you end up going through contortions to achieve that03:02
jameshif you are working on this, don't treat storm as a black box though: improving Storm may be a better way of fixing your problem03:03
jamesh(we can always use more help)03:04
lifelessjamesh: oh, I'm not03:05
lifelessI spent some time talking with jkakar about this03:05
jameshawesome03:05
lifelessmy rough ideas there are:03:06
lifeless - stop subclassing to get objects - use a separate compile step, so we have clear separation of responsibilities03:06
lifeless - define a formal user accessible caching layer which can handle more complex algebras03:06
jamesh"subclassing to get objects"?03:07
lifelesswe have classes that represent what storm gets from the DB *and* what we write code on03:07
lifelessthats confusing responsibilities03:07
lifelessits confusing because it becomes unclear whether foo.bar implies database access03:09
lifelessor local data only access03:09
lifelessso I want to structure things such that when you're in python land, there is no ambiguity03:09
lifelessput data access and updates alongside rather than mixed-in03:09
lifelesswhat we have is awesome for interactive use, ok for batch processing, and poor for web serving - IMNSHO03:10
lifelessI don't see value, from a performance perspective, in the attribute lookup facilities of Reference, ReferenceSet03:11
lifelessI may being overly cautious here.03:11
lifelessIts early days now03:12
lifelessbut I'm thinking about how to move LP to a staged model where no DB access /can/ happen during template rendering03:12
lifelessand we have really really clear 'this is doing db access' now behaviour03:13
lifelessbecause as developers, its really hard to reason about performance when things are sometimes fast and sometimes slow.03:13
jameshI know therve's twisted-integration branch tried to get things to a point where database access only happened at defined points.03:13
lifelessI think if you make all the objects readonly and don't use Reference or ReferenceSet, that it will be fine.03:14
lifelesspush updates over to ResultSet03:14
jameshthat work has never really gotten to a point where it can be used for real work though.03:14
lifelessanyhow - this is long term stuff03:14
lifelesswe can get a long way with cachedproperty and DecoratedResultSet03:14
lifelessbut when we're down solidly under 5 seconds hard timeout, then I want to start looking at this.03:15
lifelessjamesh: https://lists.launchpad.net/launchpad-dev/msg04228.html shows where we're at - and most of these pages are driven by that sort of problem IME03:18
lifelesswhich is admitedly limited :)03:18
lifelesselmo: when you get up03:32
lifelesshttps://lpstats.canonical.com/graphs/OopsLpnetHourly/20100712/20100811/03:32
lifelessyou can see a oops spike on a weekly basis03:32
lifelesselmo: can we determine whats going on there ? Perhaps its that backup issue we identified ?03:33
lifelessrockstar: hey03:38
rockstarlifeless, hi.03:38
lifelessrockstar: you might like to file a bug that our email stack *lets* us send emails without rationales03:38
lifelessrockstar: separately from the rosetta instance03:38
spiv+103:39
rockstarlifeless, hadn't thought about that.03:39
lifelessrockstar: we should at least have to say explicitly that we don't want a rationale03:39
rockstarlifeless, I can't imagine why we would ever not want a rationale.03:40
lifelessright03:40
lifelessbut at the moment we don't have one in N places03:40
lifelessso that would provide a migration strategy03:40
lifelessthe folk searching lp bugs for porn amuse me.03:41
lifelessanyhow, its just a thought03:43
lifelesswe have a class of bugs that can be easily made explicit rather than accidental03:43
rockstarlifeless, people actually type "porn" in the bug search box?03:44
* rockstar goes to do just that03:45
rockstarOh man, these bugs are hilarious.03:45
lifelessrockstar: check the oops report from lpnet today03:46
lifelesslook at the exceptions03:46
rockstarlifeless, oh man, that's awesome!03:48
lifelessits possibly an attack by a spammer trying to inject that03:51
lifelessI haven't looked closely03:51
lifeless(pun intended)03:51
ajmitchsomeone doing a bit of security testing on LP? :)03:54
lifelessnot with those queries ;)03:54
ajmitchnow you've made me curious03:55
lifelessfairly scummy porn terms, in permutations, with some verging on illegality most places03:59
ajmitchheh04:00
poolielifeless/whoever, my last run of flags-webapp had one failure in the twistedjobrunner, which i'm confident is spurious04:25
poolieand one in    lp.registry.windmill.tests.test_team_index.TestTeamIndex.test_addmember04:26
pooliewhich is probably spurious - do you want to reassure me it is?04:26
lifelesspoolie: hi04:35
lifelessits in windmill04:35
lifelessits probably spurious.04:35
lifelessis it repeatable ?04:35
pooliejust finished, and it didn't fail the second time04:48
poolie\o/04:48
pooliewhat a saga04:48
poolieso i guess i can't land this atm anyhow? not anywhere?04:48
lifelessthats right04:53
lifelessnot the PQM is release-critical message above is cleared04:54
poolieok04:55
lifelesspoolie: I'm really glad you've gotten it solid05:02
lifelesspoolie: If you want to keep momentum up, I'd start a new branch building on it05:02
thumperpoolie: or you could fix the commit to a stacked branch bug ;-)05:07
poolielifeless: yes i think i'll do that; thumper john is working on commit-to-stacked when he flushes his queue05:14
thumperok05:15
lifelessmorning stub05:37
lifelessstub: I has a pressie for you  - more code to review :)05:37
stubyo05:37
lifelessUrsinha-bbl: hi05:40
lifelessUrsinha-bbl: your script has gone nuts ;)05:40
lifelesshttps://bugs.edge.launchpad.net/launchpad-registry/+bug/61523705:42
_mup_Bug #615237: /participants API timing out <timeout> <Launchpad Registry:In Progress by lifeless> <https://launchpad.net/bugs/615237>05:42
StevenKlifeless: You can't QA that one before it lands?05:46
lifelessStevenK: its not landed05:46
lifelessStevenK: the qa bot went nuts05:46
lifelessalso bug 8483805:47
_mup_Bug #84838: code browser should use oops system <qa-needstesting> <Launchpad Bazaar Integration:Fix Committed by spiv> <https://launchpad.net/bugs/84838>05:47
lifelessalthough that one is merged, so ignore me on this point05:47
=== Ursinha-bbl is now known as Ursinha
Ursinhawgrant, hi05:50
Ursinhahmm05:52
Ursinhathumper, hi05:52
lifelesshi Ursinha05:53
Ursinhahi lifeless05:55
spivlifeless: co-incidentally I'm just about to hit "submit" on the merge proposal for the production configs change for codebrowse OOPSes.05:56
lifelessspiv: \o/05:57
lifelessspiv: after you do that05:57
poolienice05:57
lifelessspiv: you need to file a bug on oopstools to have matsubara update the config so the back end finds them05:57
poolienext meliaes?05:57
spivlifeless: yes, and do an RT to make sure those OOPSes will be synced or whatever is supposed to happen to them, I think.05:59
lifelessspiv: yes please05:59
spivdoing now :P06:00
lifelessUrsinha: I'm curious why tagger script takked 615237 as fix committed etc06:01
wgrantUrsinha: Hi.06:01
lifelessUrsinha: I think there was some confusion06:01
Ursinhabug 61523706:01
_mup_Bug #615237: /participants API timing out <timeout> <Launchpad Registry:In Progress by lifeless> <https://launchpad.net/bugs/615237>06:01
lifelessUrsinha: you'll need to look at it to see the activity06:02
Ursinhalifeless, I'm looking, wanted the link :)06:02
lifeless:>06:02
lifelessUrsinha: pad.lv/615237 - nearly as easy06:02
Ursinhalifeless, actually I'm kinda smoke testing the refactored tagger06:03
lifelessUrsinha: cool!06:03
Ursinhaso there's the confusion06:03
poolielifeless: can you think of any good examples i should crib from for the flag editor ui?06:03
poolieeither for code or tests or both06:03
lifelessof course, I hope I didn't add a bug to it ;)06:03
Ursinhalifeless, no, the refactoring was really cool :)06:03
lifelesspoolie: hmm, you know, I'm not sure.06:03
Ursinhalifeless, it's working ok, only think that's a PITA is that devpad is hardy and runs old version of lplib06:03
lifelessthumper: hey ^ poolies question.06:04
Ursinhalifeless, is there anything you could do about it?06:04
Ursinhalifeless, so stuff works locally but not there06:04
Ursinhathat sucks06:04
lifelessUrsinha: about hardy on devpad ?06:04
Ursinhalifeless, yes, or maybe upgrading lplib06:05
lifelessthe losas don't want to break things while they are sprinting06:05
Ursinhawgrant, do you know if all of your soyuz changes have been tested?06:05
Ursinhalifeless, argh06:05
lifelessbut we can request that devpad be near/at the front of the list06:05
Ursinhareally?06:05
Ursinhayay06:05
lifelessfor next week06:05
Ursinhacool!06:05
lifelessI don't see why not06:05
lifelessstaging is lucid already06:05
wgrantUrsinha: I don't know how non-bug QA works.06:05
wgrantSo I can't really tell.06:06
lifelessUrsinha: I will mail the losas and flacoste now06:06
Ursinhalifeless, thanks muchly06:06
Ursinhawgrant, for those that have bugs06:06
wgrantMost of them are untestable, anyway.06:06
Ursinhawgrant, I'll give you the list and you tell me06:06
* wgrant checks.06:06
Ursinhaplease06:06
wgrantSure.06:06
lifelessUrsinha: is that soon enough ?06:06
Ursinhalifeless, for what?06:07
lifelessdevpad to lucid06:07
Ursinhalifeless, I guess06:07
lifelessif you need something urgently there may be a backported lplib in CAT which we can use06:07
lifelessUrsinha: you tell me :)06:07
Ursinhalifeless, well, I need to port the script to run newer lplib06:08
Ursinhathat doesn't have transitionToMilestone and the like06:08
lifelessI thought that was just the LP API version06:08
lifelessif you specify that you want 1.0, it will use .milestone + lp_save()06:08
Ursinhalifeless, iirc I tried and didn't work06:08
Ursinhadon't remember why now, too late for my brain06:09
poolieshould the ui code be in say registry, or is it ok in services?06:09
lifelessUrsinha: ok06:09
lifelesspoolie: services - keep it with the component06:09
lifelesspoolie: features/browser/*06:09
lifelesspoolie: and features/templates/*06:09
Ursinhawgrant, Bug 590708, Bug 241129, Bug 491418, Bug 605002, Bug 61215706:11
_mup_Bug #590708: DistroSeries.getBuildRecords often timing out <api> <qa-ok> <soyuz-build> <timeout> <Launchpad Foundations:Triaged by benji> <Soyuz:Fix Committed by wgrant> <https://launchpad.net/bugs/590708>06:11
_mup_Bug #241129: 'queue override' command scales at O(n^2) with the number of packages on the commandline <qa-needstesting> <soyuz-ftpmaster-tools> <Soyuz:Fix Committed by wgrant> <https://launchpad.net/bugs/241129>06:11
_mup_Bug #491418: build architecture should not be hard-coded at ppa install time <ppa> <qa-needstesting> <soyuz-build> <Launchpad Auto Build System:Fix Committed by wgrant> <Soyuz:Fix Committed by wgrant> <https://launchpad.net/bugs/491418>06:11
_mup_Bug #605002: Soyuz doesn't accept upload with "Architecture: linux-any" <qa-needstesting> <soyuz-build> <soyuz-upload> <Soyuz:Fix Committed by wgrant> <https://launchpad.net/bugs/605002>06:11
_mup_Bug #612157: PPA size calculation should no longer exclude DDEBs <qa-untestable> <Soyuz:Fix Committed by wgrant> <https://launchpad.net/bugs/612157>06:11
Ursinhasorry the flood06:11
pooliemaybe featuredproject is a good comparable simple example?06:11
wgrantUrsinha: The first and last are already OK and untestable respectively. 241129 needs DF console access, 491418 requires a buildd rollout (so isn't really relevant to the release anyway), and 605002 requires DF access too.06:12
wgrantSo, 2 and 4 should really be QAd, but I can't do it.06:12
Ursinhawgrant, right. I'll talk to bigjools tomorrow06:13
wgrantThanks.06:13
Ursinhawgrant, are those changes likely to explode everything else if qa-bad?06:13
wgrantUrsinha: 4 could be pretty terrible, but that code has been exercised reasonably well on DF lately.06:14
wgrantJust not the new case.06:14
Ursinhawgrant, ah, right, so almost QAed :)06:14
lifelesspoolie: actually, I know an example that might be good06:14
lifelesspoolie: 'jabber ids' on people06:14
lifelessthats something that is list-list06:15
lifelesslist-like06:15
Ursinhawgrant, thanks for the info06:15
lifelesshttps://bugs.edge.launchpad.net/launchpad-project/+bugs?field.tag=qa-needstesting06:20
lifelesshmm06:20
lifelesskindof want to see assignee there06:20
Ursinhalifeless, in the list?06:21
lifelessyeah06:21
lifelessnot always06:21
lifelessjust now :P06:21
Ursinhahehe06:21
lifelessUrsinha: so, how do we say 'xxx is not relevant to the release, even though its not qa tested yet'06:22
lifelesshttps://bugs.edge.launchpad.net/launchpad-code/+bug/8483806:22
_mup_Bug #84838: code browser should use oops system <qa-needstesting> <Launchpad Bazaar Integration:Fix Committed by spiv> <https://launchpad.net/bugs/84838>06:22
lifelessis fix committed06:22
lifelessand is not tested06:22
lifelessbut its got a pending related branch for the prod configs06:22
lifelessand then rsync + backend oops change06:22
lifelessso it sshouldn't affect the release06:22
lifelessUrsinha: would changing the milestone be enough ?06:23
Ursinhalifeless, if that's going to be released next cycle, assign to the milestone in which that should be released06:23
Ursinhalifeless, yes06:23
lifelessdone06:23
Ursinhathanks06:23
lifelessand to say 'does not need qa' ?06:23
lifelessqa-untestable, or is there something more precise ?06:24
lifelessbug https://bugs.edge.launchpad.net/launchpad-registry/+bug/61185306:24
_mup_Bug #611853: remove remove_security_proxy_and_shout_at_engineer calls <qa-needstesting> <tech-debt> <Launchpad Registry:Fix Committed by sinzui> <https://launchpad.net/bugs/611853>06:24
* lifeless goes with untestable for now06:25
lifelesswgrant: can you aid with the qa of the other three soyuz things?06:25
Ursinhalifeless, qa-untestable06:26
lifelessrockstar: don't support you're around ? https://bugs.edge.launchpad.net/launchpad-code/+bug/59293706:26
Ursinhalifeless, I had this question on epic, but I couldn't convince myself that another kind of untestable tag was justified06:26
_mup_Bug #592937: "View source package recipes" oddly located on Person index <confusing-ui> <qa-needstesting> <recipe> <Launchpad Bazaar Integration:Fix Committed by rockstar> <https://launchpad.net/bugs/592937>06:26
lifelessUrsinha: its fine by me as it is; just wanting to do the right thing06:27
wgrantlifeless: The three Ursinha gave me above?06:27
Ursinhalifeless, ok :)06:27
Ursinhalifeless, I guess wgrant already gave his take on those three06:27
Ursinhahe needs access he doesn't have to test that06:27
lifelessah06:28
wgrantTwo of them are untested, one of them won't be rolled out tonight anyway. Of the two that are untested, one has been mostly tested, and the other is in a rarely-used archive admin script.06:28
wgrantSo, not terribly critical.06:28
lifelesswgrant: there are 4 ;>06:28
lifeless3 soyuz one buildd06:28
wgrantWhat are the three Soyuz?06:28
wgrantThere's one Soyuz/buildd.06:28
* lifeless refreshes the page06:29
lifelesshttps://bugs.edge.launchpad.net/soyuz/+bug/24112906:29
_mup_Bug #241129: 'queue override' command scales at O(n^2) with the number of packages on the commandline <qa-needstesting> <soyuz-ftpmaster-tools> <Soyuz:Fix Committed by wgrant> <https://launchpad.net/bugs/241129>06:29
lifelesshttps://bugs.edge.launchpad.net/soyuz/+bug/49141806:29
Ursinhalifeless, I need to poke bigjools tomorrow about those06:29
_mup_Bug #491418: build architecture should not be hard-coded at ppa install time <ppa> <qa-needstesting> <soyuz-build> <Launchpad Auto Build System:Fix Committed by wgrant> <Soyuz:Fix Committed by wgrant> <https://launchpad.net/bugs/491418>06:29
lifelesshttps://bugs.edge.launchpad.net/soyuz/+bug/60500206:29
_mup_Bug #605002: Soyuz doesn't accept upload with "Architecture: linux-any" <qa-needstesting> <soyuz-build> <soyuz-upload> <Soyuz:Fix Committed by wgrant> <https://launchpad.net/bugs/605002>06:29
lifelessand the buildd one06:29
lifelesshttps://bugs.edge.launchpad.net/launchpad-buildd/+bug/49141806:29
_mup_Bug #491418: build architecture should not be hard-coded at ppa install time <ppa> <qa-needstesting> <soyuz-build> <Launchpad Auto Build System:Fix Committed by wgrant> <Soyuz:Fix Committed by wgrant> <https://launchpad.net/bugs/491418>06:29
wgrantlifeless: 491418 is the buildd/Soyuz one.06:29
lifelessright06:29
lifelessso 491418 we can ignore - lamonts baby06:30
wgrantRIght.06:30
lifelessthe queue override one is the console one06:30
lifelessI'm not sure why the other two are untestable06:30
lifelesscan't you toss something at stagings upload queue and see what happens ?06:30
wgrantstaging doesn't have an upload queue.06:30
lifeless!06:30
wgrantDF does, but it needs someone to run everything.06:31
lifelessI'll RT that now.06:31
wgrantIt doesn't have an archive setup. That's why we have DF.06:31
lifelesswgrant: staging /exists/ for QA06:31
lifelessif it can't QA everything, its a bug.06:31
wgrantAnd DF exists for Soyuz QA!06:32
lifelessDF is intended to be rather broader than that.06:32
lifelesswgrant: do you think we should /not/ be able to QA this on staging?06:32
wgrantlifeless: No, but I think it's a fair bit of work to get it set up there.06:33
lifelesswgrant: longest journey, smallest step06:33
lifelessdone06:37
lifelesswgrant: the goal of the QA environment is to QA changes; dogfood is great for experimenting and playing with stuff, but its not generally accessible nor maintained in the same strict way staging is.06:38
lifelesswgrant: *if* staging ran an upload queue and had a virtualised builder, we could qa recipes, and both of your fixes.06:38
lifelessrt 40837 for reference06:39
thumperpoolie: I'd suggest playing with balsamiq a bit to design the interface06:46
pooliethumper: how do i get an account or access?06:48
Ursinhathumper, do you know about QA of bug 614858 and bug 592937?06:49
_mup_Bug #614858: Recipe builds break the world when requester does not have a preferred email address <qa-needstesting> <Launchpad Bazaar Integration:Fix Committed by thumper> <https://launchpad.net/bugs/614858>06:49
_mup_Bug #592937: "View source package recipes" oddly located on Person index <confusing-ui> <qa-needstesting> <recipe> <Launchpad Bazaar Integration:Fix Committed by rockstar> <https://launchpad.net/bugs/592937>06:49
thumperpoolie: canonical has a license to use it06:49
thumperpoolie: and you can download and trial easily06:49
thumperUrsinha: 614858 requires a daily build to run on staging which requires a losa to run the script06:50
thumper592937 not so much06:50
Ursinhathumper, anyone of those could destroy the world if qa-bad?06:51
thumperUrsinha: given my unittests, I'm pretty certain it is fine06:51
thumperUrsinha: but I can't qa it right now06:51
thumper592937 isn't that important06:51
thumperit just moves a link around06:51
wgrantAnd it's on edge -- it's fine.06:52
Ursinhathumper, right06:53
Ursinhathumper, when could you QA it?06:53
lifelessstub: I tried to capture some common things - https://dev.launchpad.net/Database/Performance - would love it if you were to garden that page :>06:58
lifelessstub: I didn't get into db design issues at all, I think that with you reviewing every db patch we don't need to try to and pre-communicate about that at this stage06:59
stubI'll look after fooding07:04
lifelessyeah no rush07:05
pooliewhat's the tasteful way to define the page title? make it a property of the view object?07:15
lifelesstheres a slot that is automatically filled07:16
wgrantThere are page_title and label properties, IIRC.07:17
wgrantI forget which one is which.07:17
wgrantI think page_title is used in the <title> and breadcrumbs, while label is used in the h1.07:17
=== spm changed the topic of #launchpad-dev to: Launchpad down/read-only from 0800-0930 UTC for a code update | Launchpad Development Channel | Week 4 of 10.08, Release Manager: bigjools | PQM is release-critical | firefighting: - | buildbot/pqm has been switched to watching the *lucid* builders | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in irc://irc.freenode.net/#launchpad-reviews
=== Ursinha is now known as Ursinha-zzz
lifelessspm: we're releasing ?08:21
spmlifeless: yes; tho that you're questioning implies a level of surprise?08:22
lifelessexcitement08:22
lifelessI plan to watch the hourly oops report like a hawk08:22
maxbbuildbot/pqm has been switched to watching the *lucid* builders  <--- exciting too08:22
lifelessstub: https://devpad.canonical.com/~stub/ppr/lpnet/latest-daily-timeout-candidates.html is now updated08:22
lifelessstub: and yeah, LFA is terribad :)08:22
maxbThat's a nice new word :-)08:23
kb9vqfAny idea what might suddenly cause this?08:23
kb9vqfhttp://pastebin.ubuntu.com/476804/08:23
lifelesskb9vqf: looks like an API has changed08:24
kb9vqfThis is on all buildd systems now08:24
kb9vqfUh oh08:24
lifelessis this on the launchpad.net deployment ?08:24
kb9vqfA local copy of Launchpad08:24
lifelessok08:24
kb9vqfI did just upgrade some packages on the master server08:25
lifelessso make sure you're running the latest launchpad-buildd and launchpad code bases08:25
kb9vqflifeless: I don't think it's an API change--I just looked at the latest slave.py file in bazaar and the API for the failing function is identical08:36
kb9vqf(to my version, that is)08:36
kb9vqfThis all started after I tried to add a new distribution series to the database08:36
lifelesswgrant: ^ ring any bells?08:37
=== henninge_ is now known as henninge
wgrantkb9vqf: I haven't seen that in ages. You've restarted buildd-manager?08:39
wgrantIt just seems to... happen... sometimes.08:40
wgrantI think I knew the reaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaspoint.08:40
wgrantWoah.08:40
kb9vqf???08:40
wgrant"reason at some point", that was.08:40
kb9vqfYeah, me too08:40
kb9vqfBut I can't pull it up in my notes08:40
kb9vqfSeems really familiar08:40
* kb9vqf goes to restart buildd manager08:40
adeuringgood morning08:43
kb9vqfwgrant: That was it...a buildd-manager restart cured the problem08:44
kb9vqfI'm writing that down somewhere for reference ;-)08:45
wgrantHmm.08:46
kb9vqfwgrant: I don't know if this will help, but I inserted a debug statement printing the RPC function call arguments08:49
kb9vqfThe results are here: http://pastebin.ubuntu.com/476811/08:49
kb9vqfIt looks like something sends an invalid set of arguments beginning with "urlbase" when the failure occurs08:50
=== almaisan-away is now known as al-maisan
=== henninge changed the topic of #launchpad-dev to: Launchpad is currently down/read-only until 0930 UTC for a code update | Launchpad Development Channel | Week 4 of 10.08, Release Manager: bigjools | PQM is release-critical | firefighting: - | buildbot/pqm has been switched to watching the *lucid* builders | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in irc://irc.freenode.net/#launchpad
mrevellHey up09:39
poolielifeless, if any, i have a form showing current rules09:39
pooliejust trying to work out how to make it cope nicely with items with no single integer primary key09:40
lifelesspoolie: nice10:06
lifelessmthaddon: hey, when you have a second: what time does tuolumne do the hourly oops graph updates?10:44
=== spm changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 4 of 10.08, Release Manager: bigjools | PQM is release-critical | firefighting: - | buildbot/pqm has been switched to watching the *lucid* builders | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in irc://irc.freenode.net/#launchpad
wgrantbuildd-manager seems to be doing reasonably well.11:01
mwhudson_oh, we haz rollout?11:02
lifelessyep11:06
bigjoolswgrant: it's not doing too bad is it, although there's a couple of problems11:08
bigjoolsnot seen them again since it start though11:08
wgrantbigjools: It's still slow.11:15
wgrantbigjools: But it's at least staggered.11:15
wgrantSo it should be less prone to getting itself into spirals of slow, slow death.11:15
bigjoolsit will be slightly better than before11:15
bigjoolsin terms of throughput11:15
wgrantRight.11:15
bigjoolsbecause we're interleaving more stuff now11:15
wgrantThe main problem before was resumes, right?11:16
wgrantThey'd block everything for a couple of minutes.11:16
bigjoolsalthough I am getting "error: (4, 'Interrupted system call')" a lot :/11:16
jmlis Launchpad writable yet?11:16
bigjoolsand it ends up disabling the builder11:16
bigjoolsjml: yes, since 30 mins ago11:16
jmlyay11:16
wgrantbigjools: Hm, is that a slave exception?11:17
bigjoolswgrant: no11:17
wgrantAlso, what's with the db_lp failure?11:17
jmlit normally means that a signal happened during a system call11:17
jmland *that* normally means that you should try again11:17
bigjoolsyes - I suspect it's getting sigchld since I am interleaving Popen with data comms to builders11:17
jmlthat would make sense11:18
bigjoolsjml: since it's used Twisted XMLRPC I would have hope that it would have taken care of that for me :/11:18
jmlbigjools, what? no.11:18
jmlbigjools, Twisted XMLRPC doesn't do magic process handling11:18
jmlbigjools, reactor.spawnProcess, otoh.11:18
bigjoolssurely it should catch EINTR and retry11:18
bigjoolshttp://pastebin.ubuntu.com/476868/11:20
jmlthe reactor does that.11:20
pooliebigjools: strangely enough i just fixed a bug like that in non-twisted lp code11:20
jmlbigjools, you are not using Twisted XMLRPC there.11:20
pooliei wonder if something we import hooks a signal so we see it11:20
bigjoolsah you know what, that bit's not twisted11:20
jml:)11:20
pooliesee eintr when we normally won't11:20
bigjoolspoolie: ah hmmm11:21
jmlpoolie, aiui, what we're seeing is the normal behaviour of Python's libraries11:22
lifelessthere's a regular sigchld bug11:22
lifelesshmm, actually. ESLEEP.11:22
lifelessI shall read backchat tomorrow :)11:23
poolieyou shouldn't get eintry from sigchld unless you've registered for sigchld11:23
jmlheh11:23
pooliei think11:23
poolieit's complicated11:23
poolieanyhow i should go too11:23
pooliegood night11:23
jmltestr branches will be reviewed maƱana11:23
bigjoolswe have registered it I think11:23
* jml stops talking about programming and instead reads resumes11:24
bigjoolsthat so needs an accented e11:25
mwhudson_risumi11:25
bigjoolsrezumey11:25
bigjoolsI thought he was resuming reading11:26
mwhudson_i is what you get if you send e-with-acute-in-latin-1 via an email system that strips the high bit11:27
bigjoolsit would be so much easier if everyone spoke the Queen's English11:27
lifelessmthaddon: https://lpstats.canonical.com/graphs/OopsLpnetHourly/20100811/20100812/ seems to be missing about 10 hours of samples ?11:30
lifelessmthaddon: ah thanks, dunno what you did but it just updated11:33
bigjoolslosa: is everything looking ok from your PoV?11:38
jmlbigjools, the compose key needs to be easier to use11:41
* jml wishes again that Linux just used Mac-style keybindings11:42
bigjoolsprob more of a desktop environment issue11:42
jmlI'm a muppet user. It's all Linux to me.11:44
bigjoolswhich muppet character would you be?11:45
wgrantjml: How could the compose key be easier? RAlt+' e11:45
jmlwgrant, for a start, I can never remember if it's RAlt or the menu key (it's the menu key on my laptop)11:46
jmlwgrant, secondly, discovering key combinations is hard11:47
wgrantjml: Well, it's configurable.11:47
jmlwgrant, thirdly, some of the key combinations in system compose files just don't work11:47
wgrantHah.11:47
jmlwgrant, I know that. I don't want to configure it.11:47
jmlfourthly, some of the compose combinations are silly, especially when compared to the Mac equivalent11:48
jmle.g. en dash is Compose+- - . on Linux, and Opt+- on Mac11:48
jmlem dash is Compose + - - - vs Opt + _11:49
wgrantHmm.11:50
stubThe first problem is having to enable that crap, which usually involves configuring it, which means everyone uses a different setup, so documentation becomes non-existent and people think it just doesn't work.11:52
jelmerAltGr seems to work pretty consistently across Linux desktops, I don't remember having to configure it11:53
jelmerjml: What keyboard layout are you using?11:53
jmljelmer, dvorak11:54
wgrantjelmer: Most of us don't have an AltGr.11:54
jelmerjml: What country ?11:54
jmlUS11:55
jelmerhmm, same here12:00
deryckMorning, all.12:06
lifelessderyck: we'll find out if the new search gets widespread +1 or -1 today ;)12:09
derycklifeless, indeed!  Fingers crossed. :-)12:09
bigjoolswgrant: the buildd-manager suddenly decided to start dispatching a build for a disabled rebuild archive :/12:18
wgrantbigjools: Not again... :/12:27
wgrantbigjools: How fatal is that now?12:31
wgrantThere's no cycle to abort every time.12:31
wgrantAlthough I guess that just means every builder tries to dispatch it.12:31
bigjoolswgrant: so it's pretty fatal as yes, every build tries in turn to dispatch it :)12:36
bigjoolsbuilder*12:36
bigjoolswgrant: what I am more confused about is why is the disabled flag getting ignored now12:36
wgrantbigjools: archive.disabled hasn't been honoured for a while.12:40
wgrantjob.status == SUSPENDED is how it's done.12:40
bigjoolswgrant: I beg to differ12:40
bigjoolsoh ok, well same shit12:40
wgrantWell, the latter could possibly be inconsistent with archive.disabled, so the distinction is important....12:41
bigjoolsthis means the jobs got re-enabled somehow12:41
bigjoolsyes12:41
wgrantPossibly a queue-builder run?12:41
bigjoolsI'm butchered them now anyway12:41
bigjoolsq-b hasn't run in months12:41
bigjoolsnow I need to fix this eintr issue, we're getting regular disabled builders :(12:42
=== bigjools changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 4 of 10.08 | 10.08 is released, PQM is OPEN | firefighting: - | buildbot/pqm has been switched to watching the *lucid* builders | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in irc://irc.freenode.net/#launchpad
* bigjools wonders how to test something that handles eintr12:50
=== salgado-afk is now known as salgado
jelmerWould make sense for ./utilities/ec2 land to CC the MP in question with the test results? I currently find myself going through failure emails that all have the same subject, it would be nicer if the results could just be found in the MP.13:51
jmljelmer, hmm.14:06
jmljelmer, first up, it would make sense to have the MP name in the subject.14:07
jmljelmer, secondly, you are reminding me about how poor the email is and how I ought to fix it.14:07
=== matsubara-afk is now known as matsubara
jmljelmer, I don't think the MP should have test results in the case of failure (although I wouldn't be opposed to attaching the subunit log)14:08
jmljelmer, what actual data would you like to see on the MP?14:08
jelmerjml: Personally what I'm interested in is the list of test ids that is failing, so I can run just those tests on my local machine.14:09
jelmerHaving the full log attached would also be useful in case of e.g. spurious test failures, but is less important imo14:09
jelmerIt might be different for other people though14:10
jelmerjml: Why should the MP not have the test results in case of failure?14:10
=== Ursinha-zzz is now known as Ursinha
jmljelmer, well, it depends on what you mean by test results. the current email is awful.14:17
jmljelmer, a list of failing tests would be fine by me.14:17
jmljelmer, and I don't think MPs have attachments, sadly.14:17
jelmerjml: Ah, right. I was confusing them with bugs. :-/14:17
jelmerWhat would be totally awesome is if Launchpad could support attachments for MPs in the same places as comments, and then display summaries when it encounters subunit files.14:18
* jelmer dreams on14:18
jmljelmer, yeah, that would be good. :)14:19
=== al-maisan is now known as almaisan-away
sinzuibigjools, ping14:31
sinzuibigjools, I can make all bugs fix released. all lp, or just my team14:35
sinzuiflacoste, I can make all bugs fix released. all lp, or just my team14:35
flacostesinzui: i think diogo has a script hat did the same, no?14:38
sinzuiI have never seen it close all the fixcommitted bugs14:39
sinzuiI have done all lp for the last two months and I have always done it for the projects I manag14:39
matsubarasinzui, flacoste: https://code.edge.launchpad.net/~launchpad/lp-qa-tools/bug-editor14:40
=== almaisan-away is now known as al-maisan
bigjoolssinzui, matsubara: ya, please release them15:01
bigjoolsthe script I committed to do that ages ago got moved to launchpadlib contrib and now I can't find that either15:02
jmljcsackett, as a new developer, I'd like your opinion on the README that just landed. (no rush though)15:03
bigjoolsmatsubara: your script doesn't work any more15:09
bigjoolssinzui: where's yours?15:09
matsubarabigjools, it's been a long time since I used it. should I fix it or are there any other newer tools that does the same thing?15:10
* bigjools has no idea15:10
sinzuiI just closed the registry bugs. I can start on the whole team15:10
bigjoolswhat replaced transitionToStatus?15:10
sinzuibigjools, ``bug_task.status = u'Fix Released'`` it is exported as a mutator in the api15:12
bigjoolsah15:12
candreasinzui: on the registry bugs I'm subscribed to I've seen the comment "Fix released in...", but no status changes (e.g. bug 70613)15:22
_mup_Bug #70613: Encourage projects to configure all services (eg. bug tracker) <bridging-the-gap> <qa-ok> <Launchpad Registry:Fix Committed by bac> <https://launchpad.net/bugs/70613>15:22
sinzuicandrea, :( Yes. I see that to. I am missing an lp_save15:25
jcsackettjml: sure; i've got a suite running now so i can take a look. anything in particular you would like comments on?15:35
jmljcsackett, nothing in particular. does it help you understand Launchpad, do you wish you had it a week ago, is it confusing, etc15:36
jcsackettjml: dig.15:37
jcsackettjml: definitely helpful, it covers a fair bit i was dumped into in the first days.15:38
jcsackettjml: assuming you don't mind a bit of crossover with dev.launchpad, a teeny bit about the rocketfuel utils might be nice.15:39
jmljcsackett, good idea15:40
jmljcsackett, though I personally _never_ use the rocketfuel utils15:40
jcsackettjml: i'm still wavering between using them and straight bzr. i find rocketfuel a tad confusing, but the auto run of makebuild &c when you branch isn't half bad.15:41
jcsackettjml: i also agree with flacoste. you hit the mark on tone.15:42
jmljcsackett, thanks :)15:53
jcsackettjml: you're welcome.15:54
deryckgmb, hi.  Is bug 424849 done and out in 10.08?  The branches are listed as merged, but I thought this work was still in progress.15:55
_mup_Bug #424849: Launchpad should batch attachment notification emails <story-better-bug-notification> <story-better-notification-sending> <Launchpad Bugs:In Progress by gmb> <apport (Ubuntu):Invalid> <https://launchpad.net/bugs/424849>15:55
gmbderyck, Argh, it's listed as done because I did part of the work, not all of it. It isn't finished, so I'll mark it as Triaged for now since we won't be coming back to it for a bit.15:58
deryckgmb, great, thanks.  Remove the milestone, too, please.15:58
gmbDone15:59
jmljames_w, are your html matchers available in Launchpad?16:09
jmlas in, for Launchpad development16:09
james_wjml: rockstar might have landed them, I'm not sure.16:10
jmljames_w, thanks.16:10
james_wjml: what would you like to use them for? (use case gathering)16:10
jmljames_w, testing link formatters16:10
rockstarjml, I have a branch that lands them, but that was before james_w added his matcher stuff too.  :)16:10
rockstar(I did it on the plane back from Prague)16:10
jmljames_w, testing this code: http://paste.ubuntu.com/476985/16:11
jmlrockstar, cool.16:12
james_wjml: cool, probably well suited16:12
=== deryck is now known as deryck[lunch]
rockstarjml, yeah, abentley and I have been trying hard to use unit tests instead of doctests for pagetesting.16:13
=== Ursinha is now known as Ursinha-lunch
sinzuigmb, deryck: I would like a mid implementation review for https://bugs.edge.launchpad.net/launchpad-registry/+bug/613610 I have a paste of what I thought would fix the issue. Can either of you look at the bug and the paste in the comment and explain my incompetence.16:18
_mup_Bug #613610: +needspackaging bug counts are wrong <bridging-the-gap> <Launchpad Registry:In Progress by sinzui> <https://launchpad.net/bugs/613610>16:18
gmbsinzui, I'll take a look. No promise that I'll actually be any help, though :)16:19
sinzuithanks16:19
gmbHrm16:24
matsubarabigjools, I fixed the bugeditor script and release 18 foundations bugs16:30
bigjoolsmatsubara: can you do launchpad-project !16:31
bigjoolsor I can do it16:31
* bigjools does it16:31
matsubarabigjools, ok, rev 16 is the one you want with the fix16:33
bigjoolsmatsubara: yeah I have it running16:33
matsubaracool16:34
gmbsinzui, Sodomy non sapiens, I'm afraid.16:38
gmbIt *should* work; I don't understand why it doesn't.16:39
sinzuiI suspect that the trigger fires while the bug is open16:39
gmbsinzui, Yes, that might be the case. Gah. Death to triggers. Might be worth roping stub in to see whether he can shed any light on proceedings.16:40
sinzuithanks gmb16:41
gmbnp; sorry I couldn't be more helpful.16:42
=== deryck[lunch] is now known as deryck
=== matsubara is now known as matsubara-lunch
=== benji is now known as benji-lunch
=== benji-lunch is now known as benji
=== benji is now known as benji-lunch
=== salgado is now known as salgado-lunch
=== Ursinha-lunch is now known as Ursinha
=== matsubara-lunch is now known as matsubara
=== benji-lunch is now known as benji
=== beuno is now known as beuno-lunch
=== salgado-lunch is now known as salgado
* jml gone18:26
=== beuno-lunch is now known as beuno
EdwinGrubbsleonardr: ping19:16
nigelbOh, I like the new format for "reported by $foo" :)19:18
nigelbfor bugs that is.19:18
leonardredwingrubbs, hi19:20
EdwinGrubbsleonardr: I just found operation_for_version(). I assume that will let me specify two different @operation_parameters lists, so I can add a parameter without getting the error:  getTimeline" doesn't have the following exported parameters in version "(earliest version)": max_releases.19:23
leonardrEdwin: kind of. you will need to have _something_ happen with max_releases in the earliest version, or lazr.restful won't know what value to pass into it19:25
leonardrbut you can give it a default value or None or something19:25
EdwinGrubbsleonardr: do I reference the earliest version as '1.0'?19:26
leonardredwin: you shouldn't need to reference it explicitly, but it is 'beta'19:26
leonardrthe code at the bottom of the pile of annotations applies to the earliest version19:27
=== al-maisan is now known as almaisan-away
lifelessMOIN20:47
lifelessthat ism good morning20:48
lifelessflacoste: morning21:00
lifelessflacoste: whats the upload address for staging ?21:00
flacostelifeless: you mean for sftp / poppy?21:01
lifelessyeah21:01
flacosteli have no idea21:01
lifelessahh :)21:01
flacostenot sure if such a service runs there21:01
lifelessthat may be the missing services then21:01
lifelesslosa ping21:01
lifeless^21:01
flacostelifeless: they are EOD21:01
lifelessflacoste: I know21:01
lifelessflacoste: thanks :21:01
lifeless)21:02
flacostei see that you have a lot of faith in scrollback :-)21:02
lifelessfor some things :)21:02
lifelessif they don't notice, its not a big deal :)21:02
lifelessso hows its looking, 10 hours after release?21:03
lifelessflacoste: do you know where the 10.08 release notes are?21:07
flacostelifeless: looks good i think21:07
flacostelifeless: do you mean the roll-out report?21:07
lifelessno21:07
lifelessI saw that21:07
flacostethat's all, we don't produce release notes anymore21:08
lifelessI mean mrevell's user facing explanation of whats new21:08
flacostewe don't do these anymore21:08
flacostewe only publish blog posts21:08
lifelessthe losa template needs a change then :)21:08
lifelessThere are separate messages with release notes, so not duplicated here.21:08
flacostelol21:08
flacosteyeah21:08
flacosteindeed21:08
flacosteblog posts will be published tomorrow21:08
lifelessok cool21:08
lifelesshmm21:09
lifelessit would be nice to do that a little closer to the change21:09
lifelessrfwtad will help21:09
lifelessdanilos: still around ?21:10
flacostelifeless: it usually is, mrevell decided to play it cautiaus this time around21:14
flacostelifeless: i think it was because he was in London and travelling back21:14
flacostewanted to make sure we didn't have to pull stuff off21:14
lifelesscan other people help with it ?21:15
lifelesse.g. put it as a draft in wordpress, allow any editor to tweak-and-publish ?21:15
flacostepushing the buttons to publish them? i guess21:15
flacostei know kfogel used to have access, jml probably also has21:15
lifelessmrevell has given me access to blog on the blog21:16
lifelessand I would blog about search (yay!) but I'm sure his release blog includes because we were chatting about that21:16
lifelessanyhow, minor issue21:17
lifelessnow, I'm landing webapp-flags21:17
lifelessmartin fixed all the test fallout and we were waiting for pqm to be open ;)21:17
lifelessLaunchpad Development Channel | Week 1 of 10.09 | PQM is OPEN | firefighting: - | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in irc://irc.freenode.net/#launchpad-reviews21:18
=== lifeless changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 1 of 10.09 | PQM is OPEN | firefighting: - | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in irc://irc.freenode.net/#launchpad-reviews
thumperlifeless: it isn't week 1 yet21:24
lifelessthumper: it isn't ?21:24
thumperlifeless: not until next week21:24
lifeless><21:24
thumper:)21:25
lifelessif the release is the end of the process? :)21:25
thumperwe do calendar weeks21:25
thumperdon't confuse our poor wee brains21:25
=== lifeless changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 4 of 10.08; I hate mondays -> week 1 of 10.09 | PQM is OPEN | firefighting: - | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in irc://irc.freenode.net/#launchpad-reviews
ajmitchso the 'I hate mondays' is just a general statement then?21:31
lifeless:P21:32
marsIs there some way to tell LP to re-scan a merge proposal diff?  Mine has conflicts that have since been resolved.22:48
wgrantIt should automatically update within a couple of minutes of the source branch push.22:48
=== cody-somerville_ is now known as cody-somerville
jelmermars: the diff generator was down earlier22:49
jelmerrockstar: is that the fire you're fighting perhaps?22:49
marsok.  Thanks guys22:49
rockstarjelmer, no, I'm fighting with maverick recipe builds failing.22:50
=== matsubara_ is now known as matsubara-afk
thumperjelmer: no the diff generator is a twisted bug that should be impossible23:00
thumperjelmer: we know it exists, but haven't yet been able to work out where23:00
jelmerah, ok23:01
=== jpds_ is now known as jpds
wgrantDo imports stack yet?23:53
mwhudsonwgrant: no23:55
mwhudsonjelmer: hi, did you get a mail i sent you about importing non-master branches yet?23:56
mwhudson-yet23:56

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