/srv/irclogs.ubuntu.com/2011/08/23/#launchpad-dev.txt

LPCIBotProject devel build #983: STILL FAILING in 5 hr 47 min: https://lpci.wedontsleep.org/job/devel/983/00:15
StevenK!!!00:17
StevenKJenkins is back!00:17
=== nhandler_ is now known as nhandler
LPCIBotProject db-devel build #816: STILL FAILING in 5 hr 44 min: https://lpci.wedontsleep.org/job/db-devel/816/00:37
gary_posterHello everybody.  I believe trunk is still broken.  This fixes the last test (monkey-see monkey-do from what wgrant submitted for fixing the other tests) but I don't know if it is correct.  http://pastebin.ubuntu.com/672811/ Can anyone verify?  If so, I'll do another testfix.00:53
gary_posterlifeless, wallyworld, are either of you around and able to verify correctness?00:54
gary_posterFWIW, this runs the failing test:00:54
gary_poster./bin/test -cvvt lp.bugs.model.tests.test_bugtask.TestValidateTransitionToTarget.test_sourcepackage_to_sourcepackage_in_same_series_works00:54
wallyworldgary_poster: i'll have a look00:55
gary_posterthank you wallyworld00:55
wallyworldnp00:55
wallyworldgary_poster:  i think wgrant submitted a test fix - are you saying it's still broken?00:55
wallyworldor is this a different issue?00:55
gary_posteryes wallyworld.  He missed one test.  I copied his fix pattern to the remaining one.00:56
wallyworldah, right00:56
wallyworldperhaps we should nuke bb00:56
StevenKNo LOSAs00:56
wallyworldstill?00:56
StevenKNot in this timezone00:56
gary_posters'alright.  If I land a testfix it will immediately run the next test, with only an email compaint.00:57
gary_posterI mean, immediately after the current one fails00:57
gary_posterso there shouldn't actually be any outage for you guys00:57
wallyworldok, thanks!00:57
wallyworldthe pastebin looks ok to my untrained eye. running the test to verify00:58
gary_posterwallyworld, I'll treat this effectively as an r= and then self-approve :-)00:59
gary_poster(once you run the test00:59
gary_poster)00:59
wallyworldok, doing it now00:59
gary_posterwallyworld, I still intend to take you up on more of the PyCharm hints (like the bzr plugin).  Things have felt a bit up-in-the-air lately so I haven't attempted the full PyCharm switch yet01:00
gary_posterStevenK, btw, know that I would have begged for your assistance by name too had I remembered that you were around. ;-)01:01
wallyworldgary_poster: whenever on pycharm. bigjools likes it :-)01:01
wallyworldgary_poster: the test passes :-)01:01
gary_postercool wallyworld :-)01:01
wallyworldthanks for fixing01:02
gary_postertest passing: great thanks wallyworld, and I'm taking that also as affirmation that, to your best guess, you think it is not making the test pass...by asserting broken functionality or something.  :-) OK, off to submit...01:03
StevenKgary_poster: Haha01:03
gary_poster:-)01:03
StevenKAnd here I was thinking that I was loud and annoying enough to not be forgotten.01:04
wallyworldgary_poster: well, don't take me as someone who knows about this bit of the product :-) so my best guess is not necessarily all that good01:04
wallyworldbut the fix seems like it's in line with the observed failure01:04
nigelbFUUUUUUUUUU More test failures.01:05
gary_posterwallyworld, yeah.  Fair enough.  Here's hoping, then.  Right, and it looks like what wgrant did.01:05
nigelbI can't figure out what I broke01:05
wallyworldnigelb: what's up?01:05
nigelbwallyworld: two attempts at landing that branch and I have test failures01:05
gary_posternigelb, trunk is broken fwiw, and was broken worse before.  If the errors look like "IllegalTarget: Package unique-from-factory-py-line3362-24070 not published in Distribution-24050" then wait a sec and then pull from trunk once I have the last fix in.01:06
wallyworldnigelb: some test failures occurred due recently due to some broken code elsewhere. perhpas you are seeing that issue01:06
wallyworlddo you want to pastebin the failures?01:06
nigelbgary_poster: Indeeed it does!01:06
StevenKnigelb: It happens like that sometimes, sadly.01:07
gary_posternigelb, well, good news, for some definition of good news. ;-)  I'll ping you when it's in.  Should be <5 min.01:07
nigelb\o/01:07
nigelbgary_poster: Thanks :)01:07
StevenKnigelb: Did you want your branch tossed at ec2 for the 3rd time?01:07
nigelbStevenK: sec, there's one failure that's fallout from me.01:08
nigelblet me fix that01:08
nigelbdoctests *stab* *stab* *stab*01:08
wallyworldStevenK: if it's just the distro packaging failures we could lp-land it?01:08
gary_posterwgrant, any objections to http://pastebin.ubuntu.com/672811/ ?  About to land it?01:10
StevenKgary_poster: Only if you format sp2 correctly01:10
StevenKsp2 = self.factory.makeSourcePackage(01:11
gary_posterStevenK, bah, that's PEP8 compliant last time I checked :-P01:11
StevenK    distroseries=sp1.distroseries, publish=True)01:11
gary_posterIf lint complains I'll do it...waiting...01:11
wgrantgary_poster: Huh, that mustn't have come up in the summary...01:11
wgrantLet me check.01:11
gary_posterStevenK, linter likes my code more than you do ;-)01:12
gary_posterThanks wgrant01:12
StevenKgary_poster: Bah! :-)01:12
wgrantgary_poster: Argh, no, I just misread. thought it was part of TestValidateTarget.01:12
gary_posterwgrant, ok cool, so I'm assuming you approve of what I did.  I'm about to lp-land01:13
wgrantgary_poster: That diff looks fine.01:13
wgrantThanks.01:13
gary_posterthank you01:13
gary_posternigelp, merge trunk and all those other ones should go away.  good luck.01:21
gary_posternigelb, even :-P01:21
nigelbhehe, okay01:23
wgrantwallyworld: 274+        var filter_msg = Y.substitute(01:35
wgrant275+            'Showing <strong>{filter}</strong> matches for "{search_terms}".',01:35
wgrant276+            {filter: current_filter_value,01:35
wgrant277+            search_terms: this._search_input.get('value')});01:35
wallyworldyeees?01:35
wgrantwallyworld: It's not exploitable, as it's only displaying immediate user input, but it is wrong.01:36
wallyworldsecurity issue?01:36
wgrantIt would be, if search_terms didn't happen to come from a textbox.01:37
wallyworldso the problem is?01:37
wgrantSearch terms involving HTML will break the world.01:37
wgrantAnd it's using a forbidden pattern which people will follow.01:38
wallyworldwell if anyone types in html they deserve it to break01:38
wallyworldi just cargo culted the pattern myself01:38
wgrantRight.01:38
wgrantLet's not perpetuate this.01:38
wallyworldi dont' see this instance as a huge issue in this case01:38
wallyworldbut yes, as a drive-by....01:39
wgrantIn the current form it is barely exploitable, true.01:40
wgrantBut it is a terrible pattern, and could very easily accidentally become exploitable.01:40
wallyworldsure, so next time someone is in the neighbourhood.....01:40
wgrantlifeless: https://code.launchpad.net/~wgrant/launchpad/fix-codebrowse-oopses/+merge/7251501:41
StevenKwgrant: r=me01:42
nigelbStevenK: could you land https://code.launchpad.net/~nigelbabu/launchpad/4595-upgrade-bug-linking/+merge/71575 again? :)01:43
wgrantStevenK: I want to wait for lifeless, as this was obvious enough from the logs that I think I might be missing some other issue.01:43
nigelbThird time's the charm I hope.01:43
cjwatsonif anyone types in html> such as web browser developers looking for bugs involving certain kinds of HTML, for example ...01:55
wgrantcjwatson: Surely not!01:55
wgrantNobody would ever do that.01:55
wgrantWeb applications can break in bad ways in some cases.01:56
wgrantAll good.01:56
=== gary_poster changed the topic of #launchpad-dev to: https:dev.launchpad.net/ | On call reviewer: - | Critical bugs: 238 - 0:[#######=]:256
lifelesswgrant: hi02:16
wgrantlifeless: I tried loggerhead locally and got a pretty obvious traceback. Did that not appear on prod?02:17
wgrants/prod/qas/02:17
lifelessqas just ISE'd on us02:17
lifelessI prepped a monkey to get into pdb and see what is causing it -02:18
lifelessok pages are ok02:18
lifelessbut failing pages didn't seem to oops02:18
lifelessits in the -ops history02:18
wgranthttp://paste.ubuntu.com/672845/02:18
lifelesshahhhhhhahhahahaha bloody ha ha02:19
wgrantYes.02:19
wgrantThat stuff didn't make it into qastaging's debug.log?02:19
lifelessno02:19
wgrantYay02:19
wgrantShall I land the fix, then?02:19
lifelesshell yes02:20
lifelessif thats s/oopsid/id/02:20
wgrantIt is.02:20
wgrantIt even works.02:20
wgrantSad that this isn't tested.02:20
lifelessthank you & sinzui very much02:20
wgrantBut let's unbreak it first.02:20
wgrantlifeless: Do I want a --rollback?02:21
wgrantSince it's already been fixed once, right?02:21
wgrantLet's see the report...02:21
wgrantAh, there was no --rollback last time.02:23
wgrantI shall put it on this one.02:23
StevenKlifeless: O hai02:33
StevenKlifeless: Can you peer at http://pastebin.ubuntu.com/672806/ when you have a tick?02:33
lifelesswgrant: the cascade thing had me suspicious02:34
lifelesswgrant: I figured I could lp-land a no-op --rollback easier than unlanding one that didn't fix it02:34
StevenKlifeless: I'd like the query to return every BPR that has unexpired BPFs and doesn't already exist in BPRC.02:34
lifelessStevenK: what context is it running in?02:36
StevenKlifeless: Garbo job02:36
lifeless18 seconds is tolerable to seed the job02:36
StevenKlifeless: wgrant's concern was that the performance is like that and BPRC only has 1 million rows on DF -- it's only going to get worse02:37
lifelesswell02:37
lifelessthe binarypackagereleasecontents_pkey index will allow fairly efficient determination of bpr's02:38
lifelessthe merge join took most of the time02:40
lifelesswhats thesecond query ?02:40
lifelessthis is inefficient:  AND NOT EXISTS02:41
StevenKIt's the same query, cold and hot02:41
lifeless    (SELECT BinaryPackageReleaseContents.binarypackagepath02:41
lifeless     FROM BinaryPackageReleaseContents02:41
lifeless     WHERE BinaryPackageReleaseContents.binarypackagerelease = BinaryPackageRelease.id)02:41
StevenKlifeless: Are you fiddling for something more efficient?02:46
lifelessyes02:46
nigelbah, its wgrant's review day.02:52
wgrantSo it is.02:52
nigelbStevenK: did you get a chance to land that? Should I poke wgrant into landing?02:52
StevenK4595-upgrade-bug-linking => devel  [OK]     (up for 1:09:13.836563)02:53
lifelessStevenK: Time: 5.961 ms02:54
lifelesshttp://paste.ubuntu.com/672861/02:55
lifelessStevenK: this takes advantage of the fact that we expect:02:55
lifeless - most rows to need analysis02:55
lifeless - and we're walking a batch upward02:55
lifelesswith analyze http://paste.ubuntu.com/672862/02:56
nigelbStevenK: aha, thanks :)02:56
StevenKlifeless: Why the first limit 1000?02:56
* nigelb heads for caffeine and breakfast02:56
lifelessStevenK: thats large enough that we won't get lots of empty batches02:56
lifelessStevenK: its a guess. It just needs to be large enough that we'll get 1 (one is enough) rows most of the time02:57
wgrantlifeless: Won't an empty batch cause it to think it's done?02:57
lifelessyes, the driver logic needs tweaking02:57
lifelessit should say something like 'max id - last seen id < 1000'02:57
lifelessand/or02:59
lifelessalways increments the last seen id by 20 if no results were found03:00
lifelesswhen it exceeds the max id, we're done-done.03:00
lifelessand can switch to a simpler plan using the highest ids and working back or whatever03:00
jameshlifeless: in case you're interested, I added a first-go patch to https://code.djangoproject.com/ticket/16674 that makes django work with python-oops-wsgi03:15
jtvwgrant: have you had a chance to look at that buildbot failure?  With you, me, and the big J on the blamelist I guess it's not as easy as "oh it's packaging-related, I know who it is."  :)03:22
wgrantjtv: It was my fault. It is fixed.03:22
jtvOh good, thanks.03:22
lifelessjamesh: I am04:06
lifelessjamesh: do we want a python-oops-django containing the django glue ?04:07
jameshlifeless: ideally I'd like it if no glue was necessary04:07
jameshhence the django bug report04:07
lifelessyeah04:07
lifelessme too04:07
lifelessjamesh: thanks for digging into this!04:08
lifelessI'm going to be hacking on more gpg extraction / gpgverifyd today04:08
lifelessbut should be back on oopses tomorrow04:08
lifelessand probably on leave monday04:08
wgrantlifeless: On Monday, or from Monday?04:12
jameshlifeless: you said that some other web frameworks had the same problem of hiding the exception context when producing an error page.  Perhaps the best solution would be to patch a few other popular ones and hope that python-oops-wsgi is compelling enough to convince others to patch the remaining ones04:14
nigelbjamesh: that's interesting.04:14
nigelbjamesh: I was just thinking the other day what it would take to use python-oops with django04:14
nigelb(after all the excitement lifeless was making with python-oops :P)04:15
jameshnigelb: well, hopefully the patch in that bug (or a better version of the same) will make it into a future version of Django04:18
jameshthen the answer is just "wrap Django's WSGIHandler() with python-oops-wsgi and embed in your favourite WSGI container"04:19
nigelb:)04:19
StevenKnigelb: In reference to your G+ post: <ESC>:shell04:20
nigelbStevenK: I used byobu instead04:21
nigelbwith a vertical split04:21
StevenKCheater04:21
nigelbheh04:21
nigelbIts pretty nifty actually.04:22
nigelbI like commiting often and a terminal right below the editor helps04:22
wgrantHmm.04:23
wgranthttps://bugs.launchpad.net/launchpad/+bug/41140904:23
_mup_Bug #411409: AJAX "Link to a bug report" could be improved <confusing-ui> <disclosure> <javascript> <lp-code> <Launchpad itself:Triaged> < https://launchpad.net/bugs/411409 >04:23
wgrantThe attachment link there no longer works.04:23
wgrant(I always used to insert odd characters into attachment names to break things... but I think this one used to work)04:24
wgrantInterestingly it works locally.04:27
StevenKThe number is the LFA?04:27
StevenK(In the URL, I mean)04:27
wgrantBugAttachment.id04:27
nigelbHow much work is that bug?04:28
nigelbIts tempting to pick up04:28
wgranthttp://launchpadlibrarian.net/30110664/what%3F.png works04:28
wgrantnigelb: Pickers are not something you want to get into.04:29
wgrantAt least not yet.04:29
nigelbHmm, ok.04:29
StevenKYes, that picker sucks04:30
wgrantThat's not even a picker.04:30
wgrantit should be.04:30
StevenKDo we even have a picker that can search by bug number?04:30
wgrantNo.04:30
wgrantWe want one that can search by ID/summary/description.04:30
StevenKTrue04:31
StevenKCan haz FDT now04:31
StevenKlifeless: So I need another number for {B,S}PPH indices -- is it another -1 and goes to db-devel?04:33
wgrantStevenK: That can be done live.04:34
wgrantOnce the column is there.04:34
wgrantWait until then, I suspect.04:34
StevenKBleh04:34
StevenKWe probably need more than just CREATE INDEX binarypackagepublishinghistory__binarypackagename__idx ON BinaryPackagePublishingHistory(binarypackagename) anyway04:35
wgrantHah, yes.04:35
StevenK(And the correspending SPPH, of course)04:35
StevenKwgrant: Suggestions for what we want to index?04:35
wgrantDepends what you want to make fast.04:35
StevenKThe DSP vocab04:36
wgrantThe current indexes are pretty arbitrary and useless.04:36
wgrantStevenK: Do you have an example query?04:36
wgrantGiven the04:37
StevenKNot handy04:37
wgrantpossible new DSP cache table approach, this may all be irrelevant.04:37
StevenKwgrant: Yes, I wanted to talk about that too04:37
wgrantSince we'll have a cache table which has (archive, sourcepackagename, [binaries]) or so.04:37
StevenKWe will?04:37
wgrantI hope so.04:37
wgrantSomething like DistributionSourcePackageCache, except not stupid and less useless.04:38
wgrant binpkgnames        | text         |04:38
wgrantAlso without that.04:38
wgrantplural -> text04:38
StevenKAnd not like DistributionSourcePackageInDatabase? :-)04:38
wgrantUh, yeah.04:38
wgrantStevenK: Have you, sinzui and bigjools discussed this at all?04:39
wgrantI saw bigjools decrying the idea that something could be in a distribution without a publication, but that's about it.04:39
StevenKThe thing that sinzui and I have discussed is populating the DSP table for series older than maverick04:39
wgrantAnd for other series.04:40
wgrantIt doesn't need populating for old series.04:40
wgrantIt needs reconceiving, reworking, and reimplementing.04:40
wgrantThen you can think about populating it.04:40
jtvwgrant, are you reviewing today?  You might enjoy this one. https://code.launchpad.net/~jtv/launchpad/fix-some-utilities/+merge/7252304:45
StevenKwgrant: So we have DSP, DSPC, and DSPID. /wrists04:46
wgrantStevenK: Right. We need to talk about how this should work.04:46
wgrantjtv: Sure.04:46
wgrantjtv: The number of selfs in interfaces is disturbing.04:46
jtvYes, maybe we should just add a grep to "make lint."  :-)04:47
wgrantStevenK: (DSPC is presently updated by a script that takes like 20 hours)04:47
StevenKAnd DSPID is perpuated by IPublishingSet.newSourcePublication()04:48
wgrantIt's not quite clear what should happen to DSPID.04:48
wgrantIt possibly still has a place in the world.04:48
wgrantjtv: Approved.04:49
jtvThanks.04:49
wgrantStevenK: I think we need to take DSP, DSPC, DSPC and DSPID, all their users, and some other stuff and work out WTF we have and what we want.04:50
wgrant(no the two DSPCs are not a mistake: DistributionSourcePackageCache and DistroSeriesPackageCache)04:51
wgrantI can hear your wrists from here.04:51
StevenKThat's funny, I didn't think blood pooling on the carpet was that noisy.04:52
nigelbIs StevenK slashing his wrists again? :P04:54
* StevenK logs into the ec2 instance that is testing nigelb's branch and injects a few failures.04:55
nigelbgah!04:56
wgrantlifeless: https://bugs.launchpad.net/python-oops-wsgi/+subscriptions <- please unsubscribe launchpad-security04:56
wgrantAnyone can add the subscription, but only a team admin can remove it :)04:56
nigelbhm, isn't there something wrong with that?04:57
StevenKwgrant: So I think DSP is used by a *lot* of stuff -- and DSPID is tied directly into most of it. The two DSPCs, I don't really know04:57
wgrantMerging DSP and DSPID is going to be really fiddly and time-consuming, if it ever happens.04:59
wgrantIt may be best to add a flag on DSPID indicating officialness.05:00
wgrantOr just assume that is presence is official.05:00
wgrantBut then you'd also need to join against DSPC to do the binary lookup.05:00
wgrantDSPC has the complication that it has an archive.05:00
StevenKSo I think you're right. It's a horrid horrid mess, and it needs to die.05:01
wgrantYou know what would be cool?05:01
wgrantIf Launchpad wasn't a monolithic monster with no separation or interfaces.05:01
StevenKHah05:02
StevenKRight, DSP fills me with despair05:03
wgrantBut if we can work this out, then Soyuz will be much closer to its own little world.05:03
wgrants/world/insane asylum/05:03
wgrantSince Bugs will have no fingers left in the Soyuz pie.05:03
wgrantOh, curses.05:04
wgrantComponents.05:04
wgrantAnd bug nomination permissions.05:04
* wgrant dies.05:05
StevenKYes05:05
StevenKI'm making a list, and getting more depressed by the microsecond05:05
wgrantAnyway, let's see what still uses DSPC²05:05
wgrantI think most of its users are long-dead.05:05
StevenKWhich DSPC?05:06
wgrant²05:06
wgrantie. both.05:06
wgrantThey are similar.05:06
wgrantAnd have the same name.05:06
StevenKOH, WHAT THE05:07
wgrant?05:07
wgrantThe name is slightly different05:07
wgrantDistroSeries vs DistributionSource05:07
StevenKDistributionSourcePackage.getPersonsByEmail(email_addresses)05:07
StevenKSERIOUSLY?05:07
wgrantPardon?05:07
wgrantlib/lp/registry/model/distributionsourcepackage.py:    def getPersonsByEmail(email_addresses):05:07
StevenKIt's in there, and the DSP view calls it05:07
wgrantO_O05:07
wgrantYou are correct.05:07
wgrantIt will die before EOD.05:08
StevenKCan I kill it?05:08
wgrantbrb, qannotate05:08
StevenK        the_changelog = '\n'.join(05:08
StevenK            [spr.changelog_entry for spr in sprs05:08
StevenK             if not_empty(spr.changelog_entry)])05:08
* StevenK now feels depressed and ill05:09
wgrantThat evil is somewhat necessary, unfortunately.05:09
StevenKIcky05:12
wgrantDebian changelogs are, yes.05:13
StevenKIf we're logged in, pull every single e-mail address out of a constructed changelog, call that abomdination of a method, and then drop persons that have hidden mail addresses05:13
StevenK*Disgusting*05:13
wgrantIt does seem to be the sort of thing that built up slowly over 5 years into an unfathomable monster, which could have been avoided if it had been redesigned half way through.05:16
wgrantHmm, like something else...05:16
wgrantLaunchpad!05:16
lifelesshang on05:17
lifelesswhy do we drop those people?05:17
wgrantProbably so we can show the email addresses, just unlinked because why.05:17
=== lifeless changed the topic of #launchpad-dev to: Performance Tuesday | https:dev.launchpad.net/ | On call reviewer: - | Critical bugs: 238 - 0:[#######=]:256
lifelesswell05:18
lifelesscouldn't we show the person and not show the email addresses ?05:18
wgrantThe changelog is indexed by numerous other places.05:18
wgrantAnybody putting their email address in a changelog but wanting it to remain private is even more misguided than someone who wants their email address to remain private.05:19
wgrantAnd that is saying something.05:19
lifelesssure05:19
lifelessbut thats a separate argument, AIUI we're currently not linking to the persons05:20
lifelesswhich seems bizarro05:20
wgrantNot necessarily.05:20
wgrantTo link them would allow you to determine the owner of an address.05:20
lifelessyou can probe for (many) by sending a comment to a bug with a custom from05:20
wgrants/an address/a private address/05:20
wgrantJa.05:20
lifelessover half our users in fact05:20
wgrantHm?05:21
lifelessdoes 'private address' mean 'do not show', or 'do not link against from other data sources'05:21
lifelessI think its intended to be the former05:21
wgrantlalalala05:21
lifelessIIRC the UI says 'hide address' not 'pretend it does not exist'05:22
wgrant Hide my email addresses from other Launchpad users05:22
lifelessright05:22
StevenKwgrant: And if we're going to attack DSP/DSPID, what about its bastard half-sibling, DSPR?05:25
wgrantStevenK: It's unrelated.05:25
wgrantIt exists solely for the URL space.05:25
StevenKwgrant: Have you finished looking for DSPC usage?05:26
wgrantYou distracted me.05:26
StevenKHeh05:26
StevenKI suppose screaming blue murder is a bit distracting.05:27
lifelesswgrant: how did l-s get subscribed ?05:28
wgrantlifeless: It's the bug supervisor.05:28
wgrantlifeless: Bug supervisors get a subscription by default, because someone likes to confuse people.05:28
lifelessaieee05:29
lifelessso there will be a few more to clean up05:29
lifelessis there a page showing all l-s's subscriptions05:29
wgrantYes.05:29
lifelessand the docs need tweaking05:29
wgrantPossibly... I think it might ahave been cut.05:29
wgrantLet me try to find it.05:29
lifelesshttps://launchpad.net/~launchpad-security/+subscriptions05:30
wgrantYeah./05:30
lifelesswhich mingles structural and explicit.05:30
lifelessor perhaps only shows concrete objects05:30
lifelessStevenK: indices on non-empty-or-close-enough tables are separate patches, yes.05:31
lifelesswgrant: cleaned up the ones i can remember making05:34
wgrantlifeless: Thanks.05:34
wgranthttps://launchpad.net/~launchpad-security/+structural-subscriptions05:35
lifelessand the docs are updated05:35
wgrantThree left.05:35
lifelessI wonder05:35
wgrantBug mail for Launchpad Security about Timeline is filtered; it will be sent only if it matches the following filter:05:35
wgrantThis filter allows all mail through.05:35
wgrantYay.05:35
lifelesscan you subscribe an arbitrary team by setting bug-supervisor05:35
lifelessapparently I am in a team cxalled 'morfose'05:36
wgrantYou used to be able to.05:36
wgrantI think only team members can now, though.05:36
lifelessfixed those as well05:36
wgrantThankyou sir.05:36
StevenKwgrant: DSPC, or did lifeless distract you? :-)05:37
wgrantblargh dying05:37
lifelesswgrant: on and from05:37
wgrantlifeless: Monday?05:38
lifelessyes05:38
wgrant:(05:38
lifelessjamesh: re patching other frameworks. Perhaps ;) certainly though they must have some way of glueing in already and making users upgrade their platform isn't really a goal of python-oops-wsgi : so both hacking around, and doing the Right THing, is probably needed05:39
StevenKSurely we already have a method to return Persons given an iterable of e-mail addresses05:49
wgrantStevenK: I doubt it.05:50
StevenKwgrant: So, I hack the view to call IPersonSet.getByEmail(), but that strikes me as slow05:50
wgrantImpractically slow, yes.05:51
wgrantYou need to introduce a sensible method to do it in one query.05:51
StevenKOn IPersonSet, do you think?05:52
wgrantNext to getByEmail, yes.05:52
* StevenK attempts to not swear in a branch name05:52
wgrantgetByEmail becomes a convenience wrapper.05:52
StevenKSounds like a plan05:53
jameshlifeless: I wouldn't be surprised if other frameworks are as easy to fix as Django.05:53
jameshlifeless: and for some there might be an option to disable error recovery, letting everything fall through to the wsgi container05:54
lifelessjamesh: sure05:56
jameshlifeless: having some way to report the exception from deep in the stack might be enough to hack around frameworks that don't do the right thing: that is essentially how we're currently using wsgi-oops's logging support.05:57
lifelesswheee05:58
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
lifeless831035 is a dupe isn't it ?06:00
LPCIBotProject devel build #984: STILL FAILING in 5 hr 54 min: https://lpci.wedontsleep.org/job/devel/984/06:09
wgrantlifeless: Fixed.06:10
lifelesspop quiz06:13
lifelessrewrite zeca as simple server, as a paste app, web.py, or keep it as twisted ?06:14
wgrantShould be pretty trivial to make it Paste/webpy, right?06:14
lifelessyes06:14
wgrantIt's like 300 lines.06:14
StevenKGiven a result set which returns two columns, can I call something on it to just return the first column and first row?06:14
wgrantStevenK: Do you have a more specific example?06:15
lifelessStevenK: slice it to get the first row; then call .values()06:15
lifelessStevenK: but better to decide what you want to query in the first place06:15
StevenKI have a query which returns (Person, EmailAddress), I want the first Person only06:15
lifelessfor clarity, I like twisted, but its seems a heavy dep for this06:16
lifelessand I *hate hate hate* .tac files06:16
wgrantIt is only a test dep, though, right?06:17
nigelb \o/ TEST SUCCESS06:17
lifelesswgrant: yes06:18
nigelbStevenK: Thanks! :)06:18
lifelessbut I need to extract ready service and a tonne of stuff06:18
wgrantTrue.06:19
lifelessahh, wsgiref06:19
wgrantlifeless: It seems like porting it would be pretty easy.06:19
lifelesswgrant: onh for sure06:19
lifelessit raises the question that perhaps readyservice is needed for other tests06:20
wgrantAnd just about anything but Zope is lighter than Twisted.06:20
wgrantTrue.06:20
lifelessOTOH I think importing zcml is the problem.06:20
lifeless'microservice' + 'zcml' are incompatible06:20
wgrantHeh.06:20
wgrantNot necesarily :)06:20
StevenKProgrammingError: operator does not exist: text = bytea06:23
StevenKSadface06:23
wgrantYou fail at Unicode.06:24
wgrantAnd Python 2 doesn't help.06:24
StevenKYes06:24
StevenKI think I have purged the evil06:25
wgrantExcellent.06:26
StevenK% bzr di | diffstat | tail -n 106:26
StevenK 5 files changed, 23 insertions(+), 28 deletions(-)06:26
wgrantI'm still working out how best to fix DSP(C²|ID)?06:26
wgrantStevenK: diffstat -s06:27
StevenKI shall have to try and remember that.06:28
StevenKOPENID! STAB!06:31
jtvwgrant: what say you we make make lint grep for "self" in interface methods?06:36
lifelesssome actually classes are in interface modules06:38
lifeless(and need to be)06:38
lifelessAs long as they are catered for, it makes sense to me.06:39
StevenKwgrant: https://code.launchpad.net/~stevenk/launchpad/dsp-getpersonsbyemail-stab-stab-stab/+merge/7252806:39
jtvlifeless: that's a nuisance.  Got any examples for me?06:40
lifelessnot offhand06:40
jtvI can think of enums, but they don't have methods.06:40
lifelessjtv: stuff in bugs probably, and things raised in notify() are commonly in the interface (and thats a zope inherited idiom)06:41
jtvThanks, that gives me something to look for.06:41
=== danilo_ is now known as danilos
jtvStevenK, wgrant: do I remember correctly that you were scheming to add source package names to SPPH?07:20
wgrantjtv: The patch has landed.07:27
jtvwgrant: so… in db-devel now, to be rolled out RSN?  It may well be useful to what I'm doing right now.07:28
wgrantjtv: Yeah. Then we need to populate it and add indices and stuff.07:28
wgrantjtv: What are you up to? gina deletions?07:29
jtvYup.07:29
wgrantIndeed, it would make that rather quick.07:29
wgrantHowever, after the first run it should only have like 20000 publications to consider.07:29
wgrantSo it won't be that slow even without it.07:29
jtvI'm not too worried about the number of publications to consider—AIUI I only need to worry about ones where superseded is null, and that helps massively.07:30
jtvI'm worried about client-side memory.07:30
wgrantsupersededby is not relevant here.07:31
jtvWhy not?  I only need to delete SPPHs in "published" or "pending" statuses, right?  Can an SPPH be superseded yet be in one of those states?07:34
wgrantNo.07:35
wgrantBut supersededby does not determine supersededness.07:36
wgrantyes, anything with supersededby set is not Published or Pending, but it's not the correct discriminator.07:36
lifelessjamesh: around ?07:36
jtvwgrant: it doesn't have to be the correct discriminator and it doesn't need to determine supersededness.  It only needs to eliminate lots of SPPHs that I'm not interested in very effectively.07:37
wgrantjtv: Filter on status.07:37
wgrantstatus IN (1, 2)07:38
wgrantDone.07:38
wgrantThat eliminates all the SPPHs you're not interested in, and is probably the most indexed column on the table.07:38
jtvWell of course I'm filtering by status.07:38
jameshlifeless: yeah07:38
wgrantThen why are you interested in supersededby?07:38
lifelessjamesh: some of lp's gpghandler looks like things gpgme could sensibly have07:39
lifelessjamesh: what do you think ?07:39
jtvwgrant: like I said, I'm looking for ways to eliminate uninteresting SPPHs.  But if status does that well enough, then fine.07:39
jtvAs I said, it's not important.07:39
wgrantjtv: You need to consider everything that is still active.07:40
jameshlifeless: is this significantly different to the gpg utility thingee I'd remember from 2008, or something different?07:40
lifelessjamesh: doubt it07:40
lifelessjamesh: things like 'santizei a fingerprint'07:41
jtvwgrant: And you just said that this wouldn't affect that.  As I'm said, it's not that important.07:41
lifeless'import a secret key' -> checks the key was imported, and only the one key07:41
wgrantjtv: Right, but your initial comment about "superseded is null" had me somewhat concerned.07:41
lifeless(and can disable the agent temporarily for tests)07:41
jameshlifeless: okay.  Where abouts is this code?  If you're talking about some code I haven't seen then I can't sensibly answer the question.07:42
lifelessjamesh: I doubt it is different to what you've seen07:43
lifelessjamesh: I'll get you a url though, one sec07:43
lifelessjamesh: (I think the sense of my reply got inverted somehow)07:43
jameshoh.  you meant you doubt it is different rather than doubt it is the same.07:44
lifelessyes :)07:44
lifeless'is it different?' 'doubt it' :P07:44
lifelessjamesh: http://bazaar.launchpad.net/~launchpad-pqm/launchpad/devel/view/head:/lib/canonical/launchpad/utilities/gpghandler.py07:44
lifelessjamesh: I'm pulling out the for-test-only stuff into lp:gpgfixtures07:44
lifelessjamesh: e.g. making a GNUPGHOME dir07:44
lifelessjamesh: stashing test keys07:44
lifelessjamesh: running a test keyserver.07:44
lifelessjamesh: most of the rest looke like gpgme code to me. In the spirit of better-than-what-it-wraps.07:45
lifelessPymeUserId can just get deleted though07:50
lifelessand be replaced with a zope decl.07:50
lifelessor at least, its not a candidate for moving into pygpgme07:50
adeuringgood morning07:57
jtvhi adeuring07:58
adeuringhi jtv!07:58
jtvAll well?07:58
lifelessjamesh: so, your thoughts ?08:01
jameshlifeless: I guess some of them might make sense.  The sanitisefingerprint one looks a bit mysql-ish the way it truncates long input08:02
lifelessjamesh: so, it clearly doesn't belong in LP :)08:03
lifelessjamesh: I could make a third library to wrap gpgme, but that seems an arbitrary split08:03
jameshI'd be happy to include some helper utilities along side the extension module.08:04
lifelesswhats your preference? Like I say, I want to gut (most of) this stuff from LP, and AFAICT its in three camps: test code, input handling, sane-default-wrappers-of-gpgme-things08:04
jameshit'd be worth checking on a case by case basis whether the helpers make sense though.08:05
lifelessthe test code -> gpgfixtures, because I think its inappropriate to impose that on every user of gpgme08:05
lifeless[though gpgme's test suite could well use gpgfixtures if you don't mind a test-only dependency]08:05
jameshsome of the checks it is doing are no longer necessary (e.g. explicitly checking for multiple signatures as a possible concatenated clear signed message attack, which gpg has errored out on for a while now)08:06
adeuringlifeless: could you also review my MP you already commented on?08:06
lifelessadeuring: sorry, no08:06
wgrantjamesh: Hm, does it really?08:07
lifelessadeuring: if you can't find another reviewer I will, but I have approx 24 hours work time to get microservices live, before I'm away for a while08:07
wgrantjamesh: Given a few recent vulnerabilities I've found, I'm not so sure about that.08:07
adeuringlifeless: ok, no problem08:07
lifelessjamesh: that wouldn't be harmful to handle though, would it? (In case of folk running old gpg)08:07
jameshwgrant: I used to have tests for concatenated clearsigned blocks in the pygpgme test suite, and they stopped passing08:08
wgrantHmm.08:08
wgrantMust be slightly different.08:08
jameshlifeless: it'd be really old gpg though.08:08
mrevellHey good morning#08:09
lifelessjamesh: so, its your call. I am going to extract what I need to test gpgverifyd from LP; thats definite. If you'd like it in gpgme as a place for others to reuse and iterate, I'd be delighted to add it there (with tests etc)08:10
lifelessjamesh: if you don't want it, no skin off my nose ;)08:10
lifelessjamesh: And if you do want it, I'll happily to modest tweaks to meet whatever style or other criteria you have.08:10
jameshlifeless: the best option is probably to file bugs against pygpgme, and we can work from there.08:10
lifelessjamesh: that really doesn't work for me; I have a very short time to do a lot of stuff, so the round trips involved there would destroy any hope of getting what I need to get done done.08:11
lifelessjamesh: sorry08:11
lifelessjamesh: in case that came across as a bit dicky, I guess I mean I need to action it now, and can round trip in review etc, but doing a pre-flight-check on it all just seems to front load round trip discusssions that review will need anyhow.08:16
=== almaisan-away is now known as al-maisan
jameshlifeless: I don't necessarily mean do it all individually.  If you've got an idea of what you would like to see moved, I'd be happy to review that all in one go.08:17
jameshlifeless: that said, if all the helpers do is wrap StringIO()'s around the arguments, I'm not sure if that adds a lot of value08:17
lifelesswell, they check for bytestrings, check how many signatures are found, sanitise input08:18
jameshthe gpghandler interface was originally wrapped around a different gpg interface, so there is a fair bit that would be different if pygpgme was the starting point08:18
lifelesspygpgme still exposes what gpgme does though right? its very up-to-the-user-to-interpret? [which most of this lp non-test-code is - interpretation]08:19
jameshand I don't remember why the code configures "keyserver-options auto-key-retrieve" and also has code to directly download keys from the keyserver's http interface08:19
lifelessthats test code08:19
lifelessas I said, its not what I'm talking about08:20
lifelessthat will be in gpgfixtures.GPGHomeFixture08:20
lifelessfor pygpgme I am talking about: sanitizeFingerprint, getVerifiedSignature importPublicKey importSecretKey encryptContent(possibly) signContent(possibly)08:22
lifeless_submitKey might be intereseting08:22
jameshokay.  It is just that most of the helpers include the http key download, which I would have thought was handled if your gpg config is for auto-key-retrieve08:23
lifelessthe encrypt and sign stuff aren't really interesting to me at this point, and they probably need a lot more consideration08:23
lifelessjamesh: I can test that08:24
lifelessyou're talking about the comment for handling of subkeys, yes ?08:24
lifelesswhich is in getVerifiedSignature08:25
jamesheverything that calls retrieveKey() is potentially doing an HTTP request08:25
StevenKOh, bah.08:26
lifelessyes, which is only getV..S.. of the ones I listed08:26
StevenKNow it's +31/-2808:26
StevenKI am disappoint.08:26
lifelessStevenK: delete 3 random lines.08:26
lifelessjamesh: for the win : we don't test that subkey code path anyhow08:28
lifelessaieee http://bazaar.launchpad.net/~launchpad-pqm/launchpad/devel/annotate/head:/lib/canonical/launchpad/utilities/gpghandler.py08:29
lifelesswell, perhaps in gpg-signatures.txt. If that still exists08:30
jameshI'd be hesitant to accept things like getVerifiedSignatureResilient(), fwiw :)08:32
lifelessjamesh: not on my list08:32
lifelessjamesh: noddy things are noddy08:32
jameshright.  it is just things like that that make me nervous about you initially talking about merging gpghandler into pygpgme.  The smaller set of methods seems a lot more sane.08:33
jameshwgrant: fyi, here's the CVE about the message concatenation issue: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-126308:36
jameshyou'd have to be using particularly old code to be vulnerable08:37
wgrantjamesh: Ah. Not the same thing, right. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1829 and a few related things are what I discovered. Only one signature, but some unsigned bits.08:39
jameshah.  I guess that is what happens when you roll your own gpg interface ...08:41
wgrantInline signatures must die.08:41
wgrantYes!08:41
wgrantLP/dak were similarly vulnerable.08:42
wgrant(mostly because the LP code was copied straight from dak)08:42
wgrantWe need good libraries.08:42
jameshprior to the CVE I linked, you couldn't distinguish between a single clearsigned document signed by two keys and two concatenated clearsigned documents signed with one key each using gpgme08:43
jameshnow you can because the second form errors out08:43
lifelessheh, so a quick test suggests that retrieveKey going to the keyserver is indeed needed08:46
lifelessdigging further08:46
lifeless(I replaced the http lookup with a key search, but that doesn't find the key)08:47
lifelessso - verifying the signature just-in-time obtains the signing subkey, not the master key.08:47
lifelessah, wants GPGME_KEYLIST_MODE_EXTERN08:49
jtvgmb: morning!  Can I trouble you for a review?  https://code.launchpad.net/~jtv/launchpad/pre-830890/+merge/7253508:51
stubAnyone fixing the merge conflict?08:58
lifelessjamesh: ok, so heres what a quick poke got me09:05
lifelessjamesh: the auto key retrieval only gets the specified key09:05
lifelessjamesh: some keyservers return the master, some don't (this I remember from way back :P)09:06
lifelessjamesh: setting context.keylist_mode = context.keylist_mode | gpgme.KEYLIST_MODE_LOCAL | gpgme.KEYLIST_MODE_EXTERN09:06
lifelessjamesh: does do an hkp lookup, but seems to not work - and there are mailing list messages asking about this same behaviour upsream09:07
lifelessjamesh: so it looks like some nontrivial debugging is needed to identify whats going on (possibly not very hard, but very much a yak I didn't plan on shaving)09:07
jameshhmm.  The gpg man page also mentions an "include-subkeys" keyserver option, but it says "Note  that  this  option is not used with HKP key servers, as they do not support retrieving keys by subkey id"09:08
lifelessyes09:08
stubI've got the merge conflict - just looks like imports09:08
jameshah.  it is saying that hkp supports retrieving subkeys by subkey id, but not the whole keys by the subkey id09:09
lifelessanyhow, I think I need to keep the http lookup because the test case (which does still exist) does fail.09:09
lifelessjamesh: exactly, and we're running with hkp.09:09
jameshfair enough.09:09
lifelessyou have to do two requests, one for the subkey, and one for the master, and the 'obvious' way to make get_key do the retrival for us doesn't work.09:09
jameshso the utilities would need to know about an http keyserver?09:10
lifelesse.g. just doing get_key(sig.fpr) barfs, with or without keylist_mode set09:10
lifelessjamesh: I think its fugly to have the python code doing the lookups09:11
lifelessjamesh: I don't know how deep the rabbit hole to avoid that is ;)09:11
lifelessits pretty clear that the Right Thing depends on whether the gpg.conf has a keyserver setup and whether it has auto-key-retrieval setup09:12
lifelessso certainly *some* degree of configuration is needed09:13
lifelesswhether that should be supplied (Wrapper(keyserver=xxx)) or inferred by grepping gpg.conf, etc I dunno09:13
lifelessI think at this point I'm inclined to rename gpgfixtues to gpgsupport or gpgwrappers or something, bundle the http code and all into it09:14
lifelessand file a bug saying that this aspect is fugly and point in the right long term direction09:14
gmbjtv: Sure, I'll take a looks shortly09:17
jtvthx09:18
=== gmb changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | On call reviewer: gmb | Critical bugs: 238 - 0:[#######=]:256
lifelessjamesh: what do you think?09:18
jameshlifeless: that might be a good short term option.  I'm still open to moving parts that make sense to gpgme.09:19
jameshpygpgme, even09:19
gmbjtv: Approved. Good stuff; I likes me a cleanup.09:35
jtvyay09:35
jtvthanks again09:35
gmbnp09:35
lifelessjamesh: thanks09:48
adeuringgmb: could you review this MP: https://code.launchpad.net/~adeuring/lazr.batchnavigator/lazr.batchnavigator-fix-issues-for-unprecise-result-length/+merge/72473/+index ?09:56
gmbadeuring: Certainly09:58
adeuringthanks!09:59
lifelessnight y'all10:02
bigjoolsnn10:04
wgrantYay, loggerhead OOPSes work again.10:05
wgrantjelmer: I guess you were trying to QA stuff?10:06
jelmerwgrant, yep10:06
wgrantjelmer: Although the bzr-svn rev is much less interesting right now that the SafeBranchOpener one.10:06
jelmerwgrant, I'm looking at both - the SafeBranchOpener one was why I was asking about loggerhead10:07
wgrantAh, of course.10:07
wgrantThanks.10:07
StevenKwgrant: DistributionSourcePackage.createBug() makes me sad.10:32
wgrantStevenK: ... does anything use it?10:32
StevenKYes, sadly.10:32
wgrantEw what/10:32
wgrantSurely not +filebug.10:33
wgrantBut it looks like it may.10:33
StevenKwgrant: Two soyuz tests, at least.10:34
StevenKwgrant: But there are a large amount of methods called createBug()10:34
StevenKDistribution and Distroseries have one, as does Product ...10:34
wgrantLooks like it's a standard IBugTarget method.10:34
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
gmbadeuring: Approved.10:38
adeuringgmb: thanks!10:38
gmbnp10:38
* gmb lunches10:50
henningegmb: when you are back from lunch: I have a branch here that I hope you'll have as much reviewing, if you can, as I had writing the code. ;-) Seriously.10:59
henningehttps://code.launchpad.net/~henninge/launchpad/bug-824435-failure-reporting-2/+merge/7254610:59
henningeit's slightly oversized, though.10:59
henninges/slightly//10:59
=== matsubara-afk is now known as matsubara
benjinigelb: there were some test failures for https://code.launchpad.net/~nigelbabu/launchpad/4595-upgrade-bug-linking/+merge/7157511:57
benjiI pasted them as a comment.11:57
LPCIBotProject devel build #985: STILL FAILING in 5 hr 52 min: https://lpci.wedontsleep.org/job/devel/985/12:02
gmbhenninge: Sure, I'll take a look shortly12:10
henningegmb: great, thank! ;-)12:11
henninges12:11
=== al-maisan is now known as almaisan-away
nigelbbenji: I fixed them and got it rebuild and merged.12:26
nigelb(retested)12:27
benjicool12:27
nigelbYou would have caught it, except I gave you a useless diff yesterday :)12:28
deryckMorning, everyone.13:05
gmbhenninge: Nice work! Approved.13:07
henningegmb: Thank you! ;)13:07
gmbdanilos, henninge, jtv: Can one of you help radifar over in #launchpad? He seems to be getting a weird error when trying to review a translation.13:10
jtvgmb: sorry, too far past EOD here.13:10
gmbjtv: No worries13:10
jtvTa13:10
=== almaisan-away is now known as al-maisan
bigjoolsstub: still there?13:19
stubyo13:19
bigjoolsstub: patch-2208-78-1.sql won't apply on DF because there's loads of null owner columns - do you know if the production data was massaged outside of a patch?13:20
stubbigjools: There was a garbo job that cleaned the data13:20
bigjoolscrap13:21
stubbigjools: Which will be the standard way of doing data migration now, so need to get that running regularly on DF.13:21
bigjools*cry*13:21
bigjoolsok13:21
bigjoolsthanks13:22
stubShould be able to fix the data with a single update if you don't want to chase the old garbo... hangon.13:22
bigjoolsyeah DF is not there to test bugs stuff so I don't care if I poke it with Joe Blogs13:22
stubupdate bugmessage13:23
stubset owner=message.owner13:23
stubfrom message13:23
stubwhere message.id = bugmessage.message;13:23
bigjoolsta13:23
=== fjlacoste is now known as flacoste
bigjoolsstub: should I run -daily or -hourly?13:26
stubbigjools: I don't think we have standardized which is needed for data migration - might need both (and soon -frequently too once the db-devel merge is unblocked), but you don't need to run them all that often.13:28
bigjoolsstub: well I was going to cron one in on DF to run late at night when nobody is using it so that I don't have to sit and wait again like I am now :)13:29
deryckhenninge, ping for standup.13:32
henningederyck, abentley: sorr y guys, my phone is acting up ...13:33
henningeneed to reboot13:33
deryckhenninge, np.  we'll start and join when you can.13:33
bacgmb when you have time could you look at https://code.launchpad.net/~bac/launchpad/bug-823490/+merge/7257714:03
gmbbac: sure14:03
gmbbac: Approved.14:19
bacthanks gmb14:19
=== jtv is now known as jtv-afk
=== al-maisan is now known as almaisan-away
nigelbqastaging is continously timing out.14:46
gmbnigelb: WFM. Can you give a specific URL?15:27
nigelbgmb: worked after continously abusing F5 ;)15:28
gmbHeh.15:28
nigelbbugs.qastaging.launchpad.net/bugs was what timed out for me :)15:28
abentleygmb: could you please review https://code.launchpad.net/~abentley/launchpad/bad-state-transition-2/+merge/72592 ?15:39
gmbabentley: Sure.15:39
abentleygmb: thanks.15:39
gmbabentley: approved15:55
=== gmb changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | On call reviewer: - | Critical bugs: 238 - 0:[#######=]:256
abentleygmb: Thanks!15:55
gmbnp15:55
LPCIBotProject db-devel build #817: STILL FAILING in 6 hr 22 min: https://lpci.wedontsleep.org/job/db-devel/817/16:04
=== beuno is now known as beuno-lunch
=== matsubara is now known as matsubara-lunch
=== deryck is now known as deryck[lunch]
LPCIBotProject devel build #986: STILL FAILING in 4 hr 54 min: https://lpci.wedontsleep.org/job/devel/986/16:56
mrevellG'night all!17:04
=== deryck[lunch] is now known as deryck
=== beuno-lunch is now known as beuno
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
jmlAre all the Virginians alright?18:12
jmlAnd NCers too18:12
benjijml: yep, but we've used up this month's supply of adrenaline18:13
nigelbheh18:15
jmlbenji: heh. glad to hear all is well :)18:16
bacjml: people 7 miles north and 25 miles east of here felt it ... but there was nothing where i am.18:20
bacbut that's ok, as we have a hurricane four days out18:21
nigelbheh18:24
nigelbwe're happend to lend you adrenaline :P18:24
nigelb*happy18:24
deryckcr3, ping18:26
cr3deryck: pong, what's up?18:31
=== matsubara-lunch is now known as matsubara
bacmatsubara: what's the procedure for clearing out the staging/qastaging imap mbox?  it's pretty big and i'd be happy to zap it.18:52
matsubarabac, I thought there was a script running deleting those messages. Ursinha used to run it18:53
matsubarabac, I think old emails can be safely deleted from the mbox18:54
bacmatsubara: ok18:54
matsubaraor any bug email18:54
matsubarasince those are the ones that takes the most space18:54
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugs: 238 - 0:[#######=]:256
lifelessgary_poster: ping19:41
gary_posterlifeless, hi19:42
lifelessgary_poster: with buildout develop = ...19:42
lifelessgary_poster: is there a way to set that without editing a version controlled file in the LP tree ?19:42
bacabentley: an ec2 job just failed due to the new test_memory_hog_job.  have you seen any spurious failures with it before?  i can't reproduce locally19:44
gary_posterlifeless, should be, if I understand you.  ./bin/buildout section:key=value works IIRC, so ./bin/buildout buildout:develop=foo ought to work.  I'll go confirm with docs...19:44
lifelessgary_poster: that sounds great.19:45
lifelessI will edit our docs :)19:45
abentleybac: No, I haven't seen spurious failures before.19:45
lifelessgary_poster: this is the bit I was referring to - https://dev.launchpad.net/HackingLazrLibraries 'In this software's buildout.cfg, in the [buildout] section, look for a19:46
lifelessdevelop key. I'....19:46
gary_posterah gotcha lifeless.  Yes, I remembered correctly, at least generally, and that ought to work for this specific case. (http://pypi.python.org/pypi/zc.buildout/1.5.2#command-line-usage fwiw)19:47
lifelessgary_poster: care to check my recording of it ? https://dev.launchpad.net/HackingLazrLibraries19:54
* gary_poster looks19:54
gary_posterlifeless, do these contradict? "A reasonable option is to add it in the top-level directory of this software." vs "The best thing to do is to locate it in a sibling tree so that its separation is clear."  If so, let's settle on one; if not, it needs some clarity.19:58
gary_poster"but that will get committed and as such is rarely what you want": *really* rarely as long as bzr doesn't support externals ;-) Once we have externals, it can be nice in some cases.19:58
gary_poster"When you want to switch back to using an egg for that other component run bin/buildout build:develop=.": Actually, you should just need to run "bin/buildout".  You won't be overriding the set value anymore on the commandline, so...it should just work.19:59
lifelessgary_poster: ok, so one needs to keep supplying the key until done ?20:05
gary_posteryes lifeless20:05
lifelessgary_poster: I would like to delete the nesting options20:06
* gary_poster on call20:06
lifelessgary_poster: given that we're using buildout for getting at stuff, one system is preferrable to three, all other things being equal20:07
gary_posterack20:10
lifelessgary_poster: tweaked further, if you can let me know after your call that would be great20:10
gary_postercool20:10
sinzuijcsackett, do you have time to mumble?20:32
jcsackettsinzui: sure.20:32
jcsackettsinzui: i hear you. i presume you cannot hear me.20:33
* sinzui looks at sound preferences20:34
gary_posterlifeless, I just read the lazr page: looks good, thank you21:12
lifelessgary_poster: thanks21:16
lifelessjelmer: had you heard of 'python-gitdb' before its ITP ?21:24
jelmerlifeless: yeah, it's from the author of python-git21:24
lifelessjelmer: he didn't like your stuff ?21:24
jelmerlifeless: although I was a bit surprised to see the ITP - python-gitdb is EOL, and merged into python-git21:24
jelmerlifeless: python-git existed before dulwich, but was always more of a wrapper around git itself21:25
jelmerlifeless, he's only recently started looking at a pure-python implementation21:25
lifelessits a bit sad he's not using dulwich21:25
jelmeryeah21:25
jelmerlifeless: apparently python-git has support for multiple backends - gitdb being one of them, and dulwich and pygit2 (Python wrapper around libgit2) being other backends21:27
lifelessjelmer: interesting, though you have to wonder why gitdb is needed then ;)21:29
LPCIBotProject db-devel build #818: STILL FAILING in 5 hr 55 min: https://lpci.wedontsleep.org/job/db-devel/818/22:00
=== matsubara is now known as matsubara-afk
LPCIBotProject devel build #987: STILL FAILING in 5 hr 51 min: https://lpci.wedontsleep.org/job/devel/987/22:48

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