/srv/irclogs.ubuntu.com/2010/04/20/#launchpad-dev.txt

wgrantmwhudson, thumper: Isn't that recipe deletion work going to explode horribly if a build has succeeded and produced a SourcePackageRelease?00:18
mwhudsonwgrant: i think you should ask abentley that question00:19
thumperwgrant: explode horribly is a bit drastic, oops perhaps00:19
abentleywgrant, I don't have enough data.00:19
thumperbut I don't think any thing will explode00:19
wgrantWell, it's the sort of object that is impossible to delete, and nulling the FK is dangerous, so there is probably no good solution.00:21
abentleywgrant, do you have any suggestions about which things should be deleted and which things should be nulled?00:21
wgrantabentley: Deleting the SPRB for an SPR removes all indication of who uploaded the package. Having an SPRB hanging around without a recipe sounds like a recipe for trouble. And having a recipe hanging around without its branches also doesn't sound very good.00:23
=== matsubara is now known as matsubara-afk
lifelessmonring poolie :P01:36
pooliehi there01:38
mwhudsongrr03:03
mwhudsonAssertionError: result must be a Zope result object, not <testtools.testresult.real.MultiTestResult run=0 errors=0 failures=0>.03:03
mwhudsonthis is probably using a new ec2 test with an old branch :(03:03
mwhudsonin particular: new ec2-test-remote03:04
mwhudsonhaaaaaaaate03:04
cody-somervillemwhudson, My ec2 instance is no longer active but I didn't get any e-mail nor did my merge proposal get marked as merged.03:21
mwhudsoncody-somerville: :(03:21
mwhudsonthat happens sometimes03:21
cody-somervilleerrr... is anyone working on fixing it?03:23
mwhudsoni don't think it's well understood03:25
mwhudsoncody-somerville: you could run it attached with -p and see what happens at the end03:25
cody-somervilleso no one is working on it? Not very LEAN :P03:25
mwhudsoncody-somerville: well more that i don't have the status of every infrastructure issue launchpad development faces embedded in my brain03:32
cody-somervilleI figured the fact that this bug has a very measurable cost to every time it occurs, I figured folks would be motivated to fix it.03:33
mwhudsonactually, i think one potential cause has been fixed03:35
mwhudsonso if it's happening again, more investigation has been required03:35
wgrantOOPS-1571H34505:23
wgrantCan someone please give me a traceback for that one?05:23
lifelessoops 1571H34505:23
lifelessoops OOPS-1571H34505:23
lifelessbah05:23
wgrantmup is sad.05:23
wgrantOr maybe only ubottu does them.05:24
lifelesstimeout05:24
lifeless20000.0  1  launchpad-main-master  SELECT PackageUpload.archive, PackageUpload.changesfile, PackageUpload.date_created, PackageUpload.distroseries, PackageUpload.id, PackageUpload.pocket, PackageUpload.signing_key, PackageUpload.status FROM PackageUpload WHERE packageupload.distroseries = 103 AND packageupload.archive IN (1, 534) AND packageupload.status IN (0) ORDER BY PackageUpload.id DESC LIMIT 7 OFFSET 005:25
wgrantlifeless: Was that rendering the index, or performing the accept?05:26
lifeless+queue05:26
lifeless /srv/launchpad.net/production/launchpad-rev-9191/lib/lp/soyuz/browser/../templates/distroseries-queue.pt05:26
lifelessLine 19, Column 405:26
lifeless   - Expression: <PathExpr standard:u'view/decoratedQueueBatch|nothing'>05:26
wgrantRight, but which action was called? (alternatively just pastebin the traceback)05:26
wgrantHmmm. That's odd.05:27
lifelesswgrant: patience kemosabe ;P05:27
lifelessI'd say db locking issue05:27
wgrantAh.05:28
lifelessthat queury which I pasted took 20000 seconds and was interrupted05:28
lifelessbut it looks like a normally very fast query05:28
wgrantI thought that was during an accept, though, which should not actually be rendering that at all.05:28
wgrantUnless it was after the redirect.05:28
lifelessits on +queue05:28
lifelessso after the redirect, I think05:28
wgrant+queue performs actions too, though.05:28
lifelessoh05:28
lifelessno args05:29
wgrantIf you POST to +queue, it will do stuff then redirect you back to +queue.05:29
lifelessit was a post05:29
wgrantSo WTF is it trying to render anything... gah.05:29
wgrantlifeless: Thanks.05:29
=== almaisan-away is now known as al-maisan
lifelessanyone know how to get 'me' with launchpadlib ?08:08
lifelessbah, I see it.08:09
adeuringgood morning08:19
mrevellMorning09:06
jpdsWhat's the difference between @cachedproperty and @property ?09:13
bigjoolsjpds: @cachedproperty is only called once, its return value is cached09:18
jpdsbigjools: I should so be using that for the mirror listings.09:18
bigjoolsjpds: it comes with many caveats, you should have a pre-imp with someone about it09:19
jtvhenninge: for now, I want to set up a pottery-capable branch in a project on staging.09:22
jtvhenninge: if we can have the config change cowboyed in there, we can verify that pushing changes will generate the jobs we want.09:22
jtvhenninge: it should produce triples of Job, BranchJob, and BuildQueue.09:23
henningejtv: how do we see jobs? sql?09:23
jtvhenninge: yes09:23
jtvThen on dogfood, we manually recreate those triplets.09:24
henningejtv: have we figured out the branch pulling part?09:24
henningeI mean, getting the branch unto dogfood?09:25
jtvhenninge: "unto"?  Very biblical.09:25
henninge;-)09:26
henningeyes, I read my scriptures in English atm ... ;)09:26
jtvThe good news there is that we can create jobs referring to branch URLs on staging.  The bad news is, we probably still need to give the slaves permission for that bit of traffic.09:26
jtv(But the URLs themselves are already usable)09:26
jtvThat Gideon guy again?  Goes around the world from hotel to hotel, and _always_ forgets his bible.09:27
henningeIn Dallas he also forgot a Book of Mormon - which I only noticed on the last night ...09:28
jtvPersonally I wouldn't pay any attention to the reading recommendations of someone who's this consistently sloppy.09:29
jtvAlso, you'd think he'd know the thing by heart now.  Why bring a bible on every single trip?09:29
jtvGet a new book, for God's sake!09:30
wgrantjtv: How do you propose to reference branches on staging?09:32
jtvwgrant: IIRC I just tried it once and found that it worked.  Production would work as well here though.09:33
henninge_jtv: daily  reconnect. I'll have to move that to some other time of the day ...09:34
wgrantjtv: dogfood's config references production codehosting (ie. the branch prefix is lp:, not lp://staging/ or similar).09:34
wgrantSo any recipes will have lp:-prefixed branches.09:35
jtvhenninge_: "at" + "curl" to your modem should do the trick once.  Or cron + curl to make it repeatable.09:35
jtvwgrant: this feature deliberately generates http branches09:35
jtvURLs, I mean.09:35
=== henninge_ is now known as henninge
wgrantjtv: Oh, right, I was thinking of recipes, which use lp: URLs.09:36
jtvwgrant: that's something I always forget to ask about.  We implemented a way to ask for a specific schema (http by default) for this, and maybe recipe builds should just do the same.09:37
wgrantjtv: Why? lp: works just fine?09:37
wgrants/?$/./09:37
jtvwgrant: you just pointed out where it didn't09:37
wgrantjtv: Well, dogfood is broken, so I don't think it can be used as a counterexample.09:37
jtvNot production, I know, but still valuable.09:37
jtvwgrant: predictable http URLs eliminate the "use whatever the lp: schema maps to in this case" concern as well.09:39
jtvhenninge: do you happen to know any specific (and preferably small) branches on LP that pottery will work for?  I'm using gedit at the moment.09:43
jtvHaven't yet verified that the pottery compatibility check and template generation actually work on it though.09:44
henningejtv: I never looked for branches on Launchpad09:44
henningeI used gimp, though (apt-get source) because it has multiple templates.09:45
jtvhenninge: to copy that branch to staging, you can bzr push -d lp:gedit lp://staging/~jtv/my/branch --use-existing-dir09:45
jtvhenninge: shall I start a wiki page for the staging/dogfood testing?09:45
henningejtv: that would be great09:45
jtvhenninge: and once we have it, maybe you can add a simple recipe for checking that a branch is suitable?09:46
henningejtv: it's supposed to be any intltool branch.09:46
jtvhenninge: oh, that's nice—I thought it was only the more recent intltool setups for now.  In any case, it would be nice to know for sure.  If the code decides not to generate for a particular branch, it doesn't say why.09:48
henningejtv: you no more about different versions of intltool setup than I do, then.09:49
jtvhenninge: unlikely.  :)  But there was mention of multiple possible setups in Belgrade, and how we were aiming for only the most modern setup initially.09:50
henningejtv: the best way to find out is to try it out ... ;-)09:51
jtvhenninge: that doesn't tell me what the different setups are, and trying them all out would probably not be the best way there.09:52
wgrantI didn't manage to find a branch that Just Worked.09:53
wgrantI had to hack GETTEXT_PACKAGE into configure.ac or something like that.09:53
henningejtv: so, there is only one supported setup, then.09:54
jtvwgrant: speaking as a complete n00b on this subject, doesn't that default to autoconf's regular notions of what package it's setting up?09:57
wgrantjtv: Not when pottery is grepping through it, AFAICT.09:58
wgrantBut I didn't look hard.09:58
wgrantI just looked at the code and poked things until it worked.09:58
jtvwgrant: so that may well be a bug in pottery?09:58
wgrantjtv: I try to remain blissfully ignorant of autofoo.09:58
jtvWell, sorely missing feature anyway  :)09:58
jtvwgrant: funny how people think of drugs as things that make you stupid, when they actually are a way to obtain bliss without ignorance09:59
wgrantHeh.09:59
jtvwgrant: a bit like saying "if you think the glass is half empty, you're a pessimist" when in reality it's just being forward-thinking.09:59
jtvhenninge: first piece of page is up on the wiki.  https://dev.launchpad.net/Translations/GenerateTemplatesOnTestServers10:07
jtvI've renamed the one for local machines from Build[...] to Generate[...] to avoid confusion.10:07
jtv(I love how changes "to avoid confusion" always create immediate confusion no matter how appropriate they may be)10:08
jtvwgrant: by the way... you mentioned how dogfood refers to production codehosting.  I guess that also means we must be careful not to push test branches to dogfood!10:14
wgrantjtv: Well, if you tried it would fail, since there isn't even a bazaar.dogfood.launchpad.net.10:15
wgrantnoodles775: Hi. I want to present package diffs on +queue. Do you have any UI ideas?10:20
noodles775wgrant: I'd suggest creating something (with balsamiq?, but up to you), and then getting feedback from the people like StevenK/ScottK (but cc'ing the dev list)?10:23
noodles775wgrant: It may not be relevant, but we started collecting use-cases etc., for the queue page during 3.0, but never got the time to do anything with it. https://dev.launchpad.net/SoyuzDistroSeriesQueuePage10:26
noodles775But if you think it's worthwhile, you could add a use-case there too.10:27
noodles775wgrant: but if it's a very straight-forward change, and you already have a good knowledge of the use-cases for the queue page, just a simple mockup will be perfect (balsamiq or screenshot).10:30
wgrantnoodles775: Yeah, it's a really simple change. The data is all there already, just not exposed anywhere. I plan to just add another row to the upload file table linking to the diff -- mainly wondering about the text.10:34
noodles775View the [link]difference from the previous package[/link]? Or simpler, without the "View the"? What had you thought of so far?10:41
wgrantnoodles775: The other files just give a filename and its size.10:41
deryckMorning, all.11:04
jmlbigjools: hi11:06
jmlderyck: good morning11:06
bigjoolsjml: helleau11:07
jmlbigjools: let's talk about timeouts.11:07
bigjoolsjml: there's already a timeout test in test_manager.py and it doesn't use clock11:08
bigjoolsbut happy to talk more and learn!11:08
jmlbigjools: it's probably wrong :)11:08
* jml brandishes the confidence of the ignorant11:08
bigjoolshehe11:09
jmlyeah11:09
bigjoolsI have found a load of bugs in the manager tests though :/11:09
jmlit's not wrong per se, but why wait five seconds when you can wait almost none11:09
bigjoolsjml: I agree11:09
jmlwe can use a clock for this, but I need to page in the code again11:10
bigjoolsjml: notice how test_resumeHost_timeout uses addErrBack11:11
bigjoolsso if the code doesn't fail as expected, the test still passes :)11:11
jml:(11:12
bigjoolsand the config doesn't get popped .... but, all easy to fix11:12
jml:(11:12
jmlI wrote assertFailure for precisely this reason.11:12
jmlor maybe I didn't, maybe someone else did11:12
bigjoolsjml: so we can use assertFailure instead of assertIsInstance( ...11:15
jml yeah, d = self.slave.resumeSlave()11:15
jmld = self.assertFailure(d, ProcessTerminated)11:15
jmld.addBoth(lambda ignored: config.pop)11:15
jmlreturn d11:15
jmlactually, hmm11:16
bigjoolsnope, addCleanup FTW :)11:16
jmlawesome11:16
jmlgood. because the addBoth I described was buggy :)11:16
bigjoolslol11:16
bigjoolsyes, it is :)11:16
bigjoolsanyway it's not returning Failure any more11:17
bigjoolsthere's that three-tuple with the stdout/err/exit code11:17
jmloh right.11:18
jmlthat kind of makes sense though, doesn't it?11:18
bigjoolsyes it's what we want11:19
bigjoolsI'm nearly done with the tests now11:19
bigjoolsand if we can improve the timeout one to use clock, that'd be awesomw11:19
jmlso I figured it out11:20
jmlreactor implements a clock interface11:20
jmlso does twisted.internet.task.Clock11:20
jmlmake clock an optional parameter to whatever is doing the .callLater() calls11:21
jmlpass in a t.i.task.Clock from your tests11:21
jmland then call clock.advance(seconds) to magically go forward in time11:21
bigjoolsschweet11:21
jmland then, when clock isn't passed in, default to using the reactor.11:22
jmllp.services.twistedsupport.tests.test_task has some examples.11:23
lifelesswouldn't it be simpler to pass in a reactor11:23
bigjoolscool, I'll slap that in when I get the rest of the tests passing :)11:23
lifelessthen you can modify that, and do controlled interactions of other sorts too11:23
lifelessjml: ^ bigjools: ^11:24
lifelessa small decorator would let you pass in the installed reactor with a custom clock11:24
bigjoolslifeless: sounds OTT for this test, but I can lookl11:25
bigjoolsthanks11:25
lifelesshttp://jcalderone.livejournal.com/51888.html suggests passing in a reactor to things, FWIW11:25
jmllifeless: that's what I'm describing.11:26
lifelessjml: it didn't sound like it.11:26
bigjoolsdidn't to me either11:26
lifelessjml: it sounds like you were suggesting passing in a IHasClock, which wouldn't implement callLayer etc11:26
jmllifeless: uaoesnthuiaoesndaoe-ucaonseiudht11:27
lifelessjml: EPARSE11:27
jmllifeless: t.i.task.Clock implements callLater11:27
jmllifeless: reactor implements callLater11:27
lifelessoh wow11:27
lifelessjml: perhaps you are describing it in a round-about way, or perhaps we mean something different.11:28
lifelessif we agree that jcalderone's blog post sounds good, we can assume violent agreement and move on11:29
* jml does so11:30
* bigjools bitches about spawnProcess's stupid arguments11:37
bigjoolsjml: clock.advance FTW!12:24
jmlbigjools: sweet12:25
bigjoolsjml: interested in reviewing this if you have time.  I don't mind if you want to punt.12:26
bigjoolserr there should be a "?" in there somewhere ...12:26
jmlbigjools: if I do, it'll be later in the day12:27
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
leonardrbac, i am recreating your error and i noticed that i am using the system httplib2 (0.4.0), not the 0.6.0 packaged with launchpad12:53
leonardri don't see how that could be causing the problem, but it's a problem i don't understand right at the point of the error12:54
leonardrare you also using 0.4.0?12:56
=== mrevell is now known as mrevellunch
=== salgado-afk is now known as salgado
leonardrbac, because of the 0.4.0 problem i can't see what's happening in httplib2. i'm going to put off work on this until i hear from you13:54
bacleonardr: i'm not sure which version i was using.  it should be in the traceback.  let me find that paste...13:58
leonardri didn't see it13:58
leonardrbecause your error didn't happen in httplib213:59
leonardri'll paste mine13:59
leonardri don't get as far as you13:59
bacoh, you're right, httplib2 was not involved in the traceback13:59
leonardrbac, http://pastebin.ubuntu.com/419239/14:00
bacleonardr: well, i see you're not using the LP version of lazr.restfulclient either14:01
leonardrbac: i get the same error when i do. use-0.6.0 was an attempt at putting a httplib2>=0.6.0 requirement in lazr.restfulclient itself, in addition to the launchpad one14:02
bacleonardr: oh14:02
bacFile "lib/lp/registry/tests/../doc/launchpadlib/lp-proj.txt", line 35, in lp-proj.txt14:03
bacFailed example:14:03
bac    print httplib2.__file__14:03
bacDifferences (ndiff with -expected +actual):14:03
bac    + /home/bac/launchpad/lp-sourcedeps/eggs/httplib2-0.6.0-py2.5.egg/httplib2/__init__.pyc14:03
bacso i am picking up the correct one14:03
leonardraargh14:03
leonardrbac: why would i be picking up the site-packages 0.4 version?14:05
bacleonardr: i don't know.  i recently fought some problems and it was caused b/c i had an old storm package in site-packages and it was getting it14:06
bacsounds like a foundations issue to me.  :)14:06
=== mrevellunch is now known as mrevell
leonardryeah, if only anyone who knew about this stuff was around14:15
leonardrbac: ah, i've just got an egg file lying around in my site-packages14:18
leonardrit's not even unzipped14:18
leonardr$#%!$#514:18
bacleonardr: you conjured up gary_poster quite nicely14:18
* gary_poster will not look for trouble, but will be happy to help if needed14:19
leonardrwell, let's see what happens now14:20
leonardrbac: i got a little further. now getting AttributeError: 'Parameter' object has no attribute 'options'14:25
leonardrwhich could indicate a problem with the wadl14:25
leonardrbac, do me a favor14:51
leonardrput a breakpoint in lazr.restfulclient resource.py, right before send_as_is_params is defined14:52
leonardror rather, have it print out this value:14:52
leonardr[x.name, x.options for x in params]14:52
leonardrbac: dammit, nm14:52
leonardri'm using an old wadllib14:52
leonardri must have accidentally installed the launchpadlib ubuntu package or something14:53
leonardrbac: ok, i can now duplicate your error14:58
bacprogress.14:59
leonardrbac: if i had to guess i'd say that request is going into the xml-rpc request handler, not the web service request handler15:01
=== jtv1 is now known as jtv
leonardrbac: ok, here's the problem15:08
leonardr(Pdb) method15:08
leonardr'get'15:08
leonardr(Pdb) self.getAcceptableMethods(environment)15:08
leonardr['GET', 'HEAD', 'POST', 'PATCH', 'PUT', 'DELETE', 'OPTIONS']15:08
leonardr(Pdb) method in self.getAcceptableMethods(environment)15:08
leonardrFalse15:08
bacso it's just case?15:14
henningedanilos: We are dealing with the current behaviour for pofile export to replace the plural information with that information from the language record, right?15:39
leonardrbac: yes. i believe if the request goes all the way through httplib2, it gets uppercased15:45
henningedanilos: only, I cannot see where that is happening.15:47
leonardrbut since wsgi_intercept handles the request, that code doesn't run15:49
leonardrbac, if i do a new release of lazr.restfulclient, will you integrate it into launchpad?15:51
leonardri think l.r is the place to fix this15:51
bacleonardr: sure15:51
daniloshenninge, right15:52
daniloshenninge, let me take a look15:52
daniloshenninge, gettext_po_parser.py look for getRawHeader() 'plural-forms' key handling15:58
henningedanilos: I have been there ...15:58
henningegetRawContent15:59
=== bac` is now known as BradCrittenden
=== BradCrittenden is now known as bac
henningedanilos: but that is what POHeader parsed originally16:00
henningedanilos: I think its here:16:02
henningelib/lp/translations/model/pofile.py:1723:            number_plural_forms = None16:02
henningelib/lp/translations/model/pofile.py:1731:                number_plural_forms = self._pofile.language.pluralforms16:02
henningelib/lp/translations/model/pofile.py:1735:            translation_header.number_plural_forms = number_plural_forms16:02
daniloshenninge, sounds right :)16:02
ricotzbigjools, hello16:28
leonardrbac: i think this would be a better solution, since normally lazr.restfulclient + wsgi_intercept doesn't have the problem16:32
leonardrhttp://pastebin.ubuntu.com/419325/16:32
leonardrput that in your launchpad branch16:32
=== al-maisan is now known as almaisan-away
=== salgado is now known as salgado-lunch
=== beuno is now known as beuno-lunch
=== matsubara is now known as matsubara-lunch
mrevellNight all17:57
=== salgado-lunch is now known as salgado
=== gary_poster is now known as gary-lunch
salgadowgrant, is there anything that would prevent https://code.edge.launchpad.net/~wgrant/launchpad/emailauthentication.txt-2.6-fix/+merge/23449 from landing?  I'd be happy to take it from there and do the changes suggested by Michael if you don't have time for it18:28
=== beuno-lunch is now known as beuno
=== gary-lunch is now known as gary_poster
jmlg'night all19:36
=== fjlacoste is now known as flacoste
=== matsubara-lunch is now known as matsubara
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
=== Ursinha_ is now known as Ursinha
thumpermorning22:19
=== salgado is now known as salgado-afk
wgrantsalgado-afk: noodles wanted a bug reference for the Python bug.22:45
wgrantsalgado-afk: I don't think one exists, so I was digging deeper, but then uni caught up with me.22:46
=== matsubara is now known as matsubara-afk

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