/srv/irclogs.ubuntu.com/2012/09/28/#launchpad-dev.txt

lifelessfun - OpenSSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol00:38
lifelessUnable to establish SSL connection.00:38
rick_h_wallyworld__: so just an fyi along the lines of what I was thinking. https://pastebin.canonical.com/75528/ is where I'd head to try to make sure the privacy.js is decoupled from the information_type.js aside from listening to the event.00:39
lifelesserm wtf00:40
lifelesstelnet> open 10.0.3.24 44300:40
lifelessTrying 10.0.3.24...00:40
lifelessConnected to 10.0.3.24.00:40
lifelessEscape character is '^]'.00:40
lifelessHELO00:40
lifeless<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">00:40
lifeless<html><head>00:40
lifeless<title>501 Method Not Implemented</title>00:40
lifeless:)00:40
wallyworld__rick_h_: looks ok at first glance. the get_banner_text function can probably be taken off the namespace now with these changes00:41
lifelessright, thats better.00:41
rick_h_wallyworld__: right, not complete00:41
rick_h_wallyworld__: but I wanted to kind of clear up the idea/where I'm trying to head to make sense of it more00:42
lifelesswhoever had that apache not working to lp.dev before, if you're using lxc etc, make sure your apache config is listening on *:443, not 192.160.0.88:44300:42
wgrantlifeless: I added a feature to Makefile to do that, which I added to the LP LXC docs00:43
wallyworld__rick_h_: looks ok so far but i probably need to get into the code a little more. i'd run your changes by jc since he did some banner work a few months ago00:43
lifelesswgrant: I was giving the lp-setup inline docs a spin00:43
lifelesswgrant: they are incomplete00:44
rick_h_wallyworld__: yea, honestly I'm afk for a week so I'd not worry about it too much. Just hoping to make me seem les insane00:44
lifeless(because it goes for test-suite capability)00:44
wallyworld__rick_h_: np. it's all good00:44
* rick_h_ swears he's not lost it yet 00:44
wgrantlifeless: Right00:51
lifelesshow do I set up the combo loader stuff ?01:14
wgrantlifeless: Should just need to set 'js.combo_loader.enabled default 0 true'01:15
wgrantMay need to make combobuild, but the usual targets should do that01:15
rick_h_lifeless: which part? the actual hosting bit? or just enabling?01:15
lifelessI have a fresh lxc01:15
lifelessI've run lp-setup update01:15
lifelessand sudo make install01:15
rick_h_then it should be setup to combo build ootb. I thought the combo loading FF was on by default.01:15
lifelessI'm getting reference errors01:15
lifeless[13:14:08.562] ReferenceError: YUI is not defined @ https://launchpad.dev/product-name-100011/+milestone/unique-from-factory-py-line878-100017/+index:5301:16
lifeless[13:14:08.562] ReferenceError: LPJS is not defined @ https://launchpad.dev/product-name-100011/+milestone/unique-from-factory-py-line878-100017/+index:11001:16
wgrantCheck your browser's HTTP request log01:16
rick_h_lifeless: make combobuild ?01:16
lifeless[13:14:08.330] GET https://launchpad.dev/+combo/?yui/yui/yui-min.js&lp/meta.js&yui/loader/loader-min.js [HTTP/1.1 200 OK 226ms]01:16
wgrantAha01:16
wgrantGo to that URL01:16
wgrantIt probably says "missing" everywhere01:16
lifeless /* yui/yui/yui-min.js */01:16
rick_h_and if it's missing then check build/js/...01:16
lifeless /* [missing] */01:16
rick_h_which is what combobuild does01:16
lifeless /* lp/meta.js */01:16
wgrantYeah, make combobuild would be my suggestion01:17
lifelessmake run doesn't do it ?01:17
wgrantPerhaps lp-setup uses a custom target that doesn't include it01:17
wgrantIt should...01:17
lifeless make combobuild01:17
lifelessutilities/js-deps -n LP_MODULES -s build/js/lp -x '-min.js' -o \01:17
lifeless        build/js/lp/meta.js >/dev/null01:17
lifelessutilities/check-js-deps01:17
rick_h_and jsbuild_watch which will should get lined up with combobuild01:17
lifelessctrl-refresh, same stuff in that url01:17
wgrantHm01:17
wgrantmake inplace01:17
lifelessthere are a lot of LP modules present01:17
rick_h_lifeless: anything in build/js?01:17
lifelessits not an empty combo response01:17
wgrantOh01:17
lifelessvar LP_MODULES = (function(){01:18
wgrantDo you have a YUI version flag set?01:18
lifelessf'r instance01:18
lifelessno01:18
lifelessneither does qastaging01:18
wgrantRight, it's not necessary01:18
rick_h_LP_MODULES is from the build/js/lp/meta.js so that's a good sign01:19
wgrantlifeless: Does the /srv/launchpad.net/convoy symlink point to a reasonable location?01:19
rick_h_lifeless: so is there anything in build/js/yui ?01:19
rick_h_maybe some failure to get that dep right?01:19
lifelesslrwxrwxrwx 1 robertc robertc 59 2012-09-28 01:18 convoy -> /home/robertc/source/launchpad/lp-branches/working/build/js01:20
lifelessls build/js/yui01:20
lifelessyui-3.3.0  yui-3.5.101:20
wgrantSo that's all fine. Must be a buildout issue01:20
wgrantHuh01:20
wgrantyui should be a symlink to yui-3.5.1, shouldn't it?01:20
lifelessthere are two instances of 'missing' in the https://launchpad.dev/+combo/?yui/yui/yui-min.js&lp/meta.js&yui/loader/loader-min.js response AFAICT01:20
rick_h_no, should have build/js/yui symlink to 3.5.101:20
rick_h_lifeless: right, yui-min.js and load-min.js are coming from the yui libary01:21
rick_h_https://launchpad.dev/+combo/?yui-3.5.1/yui/yui-min.js&lp/meta.js&yui-3.5.1/loader/loader-min.js will work since you have that dir01:21
wgrantIs build/js/yui a symlink?01:21
rick_h_but you should have the yui symlink to yui-3.5.1 as the 'default' yui version and that's missing somehow01:21
rick_h_wgrant: right01:22
lifelessbuild/js$ ls -ld yui01:22
lifelessdrwxr-xr-x 2 robertc robertc 4096 2012-09-28 01:18 yui01:22
lifelessits a directory not a symlink01:22
rick_h_lifeless: so yea, that's the issue01:22
lifelessrm it ?01:22
rick_h_no, you need it, it needs to be the symlink, loading up my lxc to look at what makes that symlink sec01:22
wgrantOn my lpsetup-created instance it's a symlink as expected01:22
lifelesswell, this is bind mounted01:23
lifelessas you'd expect01:23
lifelessI've had this working tree for yonks01:23
wgrantAh, so it's an existing checkout?01:23
wgrantRight, so I'd make clean_buildout build01:23
lifelessof course01:23
rick_h_right, clean it up and rerun then01:23
rick_h_right, combo-rootdir will do the symlink  if it doesn't exist. Since you have a directory it's failing to generate it01:24
rick_h_not sure how you got the directory there, but that's causing it to fail. a clean_buildout and make should work01:25
lifelessok, thats a lot bigger01:25
lifelessstill funky01:25
lifeless1000 unassigned bugs is 11 seconds to render01:26
lifelessthats very interesting01:26
wgrantBugs and people have a few enums01:27
lifelessI get Y.lp is undefined still01:30
wgrantAny [missing]s?01:30
lifelessyes01:30
lifelessbetween meta.js and yui/loader/loader-min.js */01:30
wgrantSo meta.js is missing?01:31
lifeless /* lp/meta.js */01:31
lifeless /* [missing] */01:31
lifelessneeded a make combobuild in that recipe you gave me01:32
=== matsubara is now known as matsubara-afk
lifeless5.56 seconds now01:33
lifelessso the 10K was noise of some sort01:33
lifelesse.g. sitting on battery ;)01:33
lifeless40% time reduction neuterin the tal in lib/lp/registry/templates/milestone-macros.pt02:10
lifelessah, late eval queries02:11
lifelessstorm cache strikes again I bet.02:11
* lifeless looks for the hammer02:11
wgrantstorm_cache_size02:12
wgrantconfigs/development/launchpad-lazr.conf02:12
lifelessyeah02:12
lifelessdo you remember the prod size?02:12
lifeless[and why can't we just toss the damn thing..]02:12
wgrant10000 I think02:12
wgrantWe need *a* size02:13
lifelesswell02:13
lifelesswhy?02:13
wgrantAt least for scripts02:13
lifelesswe discard the cache after every request02:13
wgrantSure, for the webapp the limit can be quite ridiculous02:14
lifelessset a ulimit for scripts, so ones that try to do too much in one pass can fail hard02:14
wgrantFor scripts it might want to be more sensible.02:14
lifelessor just have a non-discarding cache with a low fixed limit for scripts02:14
wgrantHm02:14
wgrantWhy do we still have two storm_cache_size keys...02:14
wgrantI thought I removed all the duplicates02:15
lifeless2.5 seconds with minimal td entries02:15
wgrantWhat'd you change?02:15
lifelessneutered all the bug data access02:16
wgrantAh02:16
lifelessgetting a baseline for doing that many td rows02:16
lifeless2.7 seconds with the first cell filled in02:16
lifelesssame amount of HTML output02:16
lifelessrunning several times and taking min of course02:17
lifeless          <td class="icon left">02:19
lifeless            <span class="sortkey" tal:content="bugtask/bug/id" />02:19
lifeless            <span tal:content="structure bugtask/image:icon" />02:19
lifeless          </td>02:19
lifeless^ 0.2 seconds over 1000 rows02:19
lifelessvs02:22
lifeless          <td class="icon left">02:22
lifeless            <span class="sortkey" tal:content="bugtask/bug/id" />02:22
lifeless          </td>02:22
wgrantSo, while I clean up this storm_cache_size stuff I think I might remove the development override02:23
wgrantIt doesn't make much sense02:23
lifeless+102:24
wgrantWe keep having to work around it in tests02:24
wgrantHeh02:25
wgrantIn fact, the main tests that override the limit are for ProjectMilestone:+index...02:26
lifelesswgrant: where is structure defined02:29
wgrantlifeless: In templates?02:29
wgrantOr in our Python?02:29
wgrantIt's a TAL keyword; it's not defined as such anywhere02:30
lifelessthe implementation02:30
lifelessemitSubstitution in talgenerator.py - closing in on it02:32
wgrantRight, it's in zope.tal02:32
wgrantOr chameleon if the page uses that02:33
wgrantBut I believe that one's still zope.tal02:33
lifelessdef do_insertStructure_tal(self, (expr, repldict, block)):02:34
lifelesswhoa02:52
lifeless18K permission checks02:52
lifelessI /really/ want to rip that out entirely02:52
wgrantWe would need a pretty significant rewrite for that to work02:53
wgrantPlus the checks should be mostly cached, so very very fast02:53
lifeless5.5K calls are to block implicit flushes, block implicit flushes makes 18K calls to checkPermission02:54
wgrant"makes"02:55
wgrantIt's a decorator02:55
lifelessI know02:55
wgrantAh :)02:55
lifelessthere are getattr's02:56
lifelessthat are blocking flushes02:56
lifelessand checking permissions02:56
lifeless5.5% of runtime in that stack02:56
lifelessso - 'very very fast' - not so much02:56
lifelessahha02:57
lifelesswgrant: low hanging fruit:02:57
lifeless_get_sqlobject_store02:57
lifelesswgrant: spot what it does02:57
wgrantThe import could be a problem if we were multithreading, but we're not really...02:58
lifelessalso block_implicit_flushes is bad too02:58
lifelesswgrant: its a lock02:58
lifelesswgrant: synchronisation primitives are not that cheap02:58
wgrantSure02:58
lifelesswgrant: also, prod runs two threads - xmlrpc + http02:59
lifelessso we are02:59
wgrantBut does the profile show that's an issue?02:59
mwhudsonimporting even existing modules in a tight loop is surprisingly slo02:59
mwhudsonw02:59
wgrantRight, and the xmlrpc cohabitation is the root of most of our annoying undiagnosable issues02:59
StevenKmwhudson: Namespacing causes problems, news at 11?02:59
wgrantNot namespacing...02:59
lifelesswgrant: http://paste.ubuntu.com/1231593/03:02
wgrantIndeed03:02
wgrantAlthough I'd prefer to look at untangling the imports, that should work03:03
lifelesswgrant: its about 300ms over the request.03:04
lifelesswgrant: from a quick timeit + back of napkin03:04
wgrantHm03:05
wgrantI've seen _get_sqlobject_store show up before in profiles, but hadn't actually looked at it as there were other dominating factors to fix first03:06
wgrantBut I haven't profiled in several months03:06
wgrantAnyway, storm_cache_size is now 10000 everywhere in devel03:07
wgrantI meant to do that as followup to my DB config rework branches last year03:08
wgrantOr whenever it ws03:08
wgrantBut never got around to it, apparently03:08
bigjoolshow often is process-upload running these days?03:15
lifelessok so its hard to tell03:20
lifelessbut it looks like it saved 100ms03:20
lifelesswgrant: ^ if you want to do it at some point03:20
lifelessI've got to context switch here03:20
lifelesshard to tell because of the massive variance03:21
wgrantbigjools: */5 for sources03:29
wgrantlifeless: Yeah, and it really really depends on the page whether it's a big issue03:29
wgrantI might try untangling that stuff03:29
lifelessit would be great to make imports barf03:30
lifelessinstall an import hook03:30
bigjoolsta03:30
lifelesshmmm, dunno if cached imports would trigger03:30
wgrantlifeless: We have a lot of inline imports, so we can't do it generally03:31
lifelesswgrant: we could set a cap03:31
lifelesswgrant: 500 imports in a request, then boom.03:31
wgrantYeah03:31
lifelessthat would be about 5ms03:32
lifelessmore or less03:32
wgrantI was initially thinking we could do a per-import cap03:32
wgrantBut as you say, I'm not sure it'll actually trigger on repetition03:32
wgrantMaybe03:32
lifelessI'm not sure it will trigger at all03:32
lifelesswe could hack the bytecode03:32
lifelessbut folk might consider that objectionable03:32
wgrantHeh03:32
wgrantOr we could just ban inline imports in lp.services.webapp...03:32
mwhudson__import__ is called for cached imports03:33
mwhudsonsays science03:33
lifelessmwhudson: tried monkey patching it ?03:33
lifelessmwhudson: and we were actually speculating about pep whatsisthing hooks03:33
mwhudsonoh03:34
mwhudsonyeah, i just overwrote __builtin__.__import__03:34
mwhudsondunno about the hooks03:34
lifelessanyhow replacing __import__ with a thread-local-counting abomination would be effective.03:37
lifelessmwhudson: want to write one03:37
lifeless?03:37
mwhudsoni suppose i could try03:39
mwhudsonwhere would the output go?  same place as the query count?03:39
lifelessmwhudson: Oh, I was thinking super simple: Raise a Mother* exception  :)03:40
mwhudsonoh, when it crosses 500 or something?03:40
lifelessmwhudson: needs a call to install it, probably one to uninstall it, a per-thread 'request starting, kill me after X imports', and 'request finished, don't kill me anymore'03:41
lifelessmwhudson: ^ is how I would do it.03:41
lifelesshttp://pypi.python.org/pypi/pyjack/ is kindof related03:43
lifelessmwhudson: might want a fifth call to change the threshold mid-request03:43
wallyworld__wgrant: if you want to look https://code.launchpad.net/~wallyworld/launchpad/duplicate-bug-warning-xss-1057630/+merge/12684903:43
lifelessmwhudson: would let us featureflag it03:43
lifelessmwhudson: hmm, could minimise down to 4 calls: - install/uninstall/reset_count/set_threshold(None-or-an-int)03:44
lifelessmwhudson: make the set an attribute access, and you've got the ability to read-back too, for oops integration if we care.03:48
mwhudsonlifeless: i guess there isn't a bug for this?03:49
lifelessnup03:49
lifelessman, I can't get used to this fast ->dbstable bb :)03:52
mwhudsonhow do you guys set things up so you can access launchpad running in an lxc from outside it?03:53
mwhudsonis it just a matter of putting the right bits in /etc/hosts outside the container?03:53
wgrantwallyworld__: Might it be worth mustaching this instead? This still injects dup_id directly, which is only safe today because of constraints we place on this particular piece of data03:53
wgrantmwhudson: Right, Makefile takes a variable to make Apache listen on *, and then I drop stuff in /etc/hosts03:54
mwhudsonmake install LISTEN_ADDRESS=* ?03:54
wgrantShould be on https://dev.launchpad.net/Running/RemoteAccess03:55
wgrantBut that looks like it03:55
mwhudsonseems to be03:55
mwhudsonProgrammingError: function pg_last_xact_replay_timestamp() does not exist ?03:58
mwhudsonoh03:58
wgrantYou fail at 9.103:58
mwhudsoni probably haven't updated launchpad-dependencies in the container for eons03:58
wgrantYeah03:58
mwhudsonThe following packages have been kept back:03:58
mwhudson ... launchpad-database-dependencies03:58
mwhudsonhm03:58
wgrantdist-upgrade?03:59
mwhudsonoh right03:59
mwhudsonyes, seems happier03:59
wgrantThen you'll probably want to purge 8.4, then drop and recreate the 9.1 cluster to get it on port 543203:59
wgrantThen rerun utilities/launchpad-database-setup and all will be good03:59
mwhudsonah yes04:01
StevenKlifeless: I think db-stable should die. It's not clear what should happen to db-devel, but it's awfully heavyweight for what we want it for.04:02
mwhudsoni guess what's actually going to happen here is that i'll get to the point where i could do some launchpad development04:03
lifelessStevenK: how would you assess 'db and code work well together' ?04:03
mwhudsonand then it'll be time to go home04:03
StevenKmwhudson: Are you coming back to us?04:04
mwhudsonStevenK: not formally :)04:04
StevenKmwhudson: Oh, so you're going to tease us with a few bug fixes? :-)04:05
mwhudsoni would still like to kill the branch puller04:05
StevenKCan you kill the branch scanner too?04:07
mwhudsonGet:68 http://archive.ubuntu.com/ubuntu/ lucid-updates/main libmysqlclient16 5.1.63-0ubuntu0.10.04.1 [1,898kB]04:07
mwhudsonwhut04:07
mwhudsonthe path to that is less clear i think04:08
StevenKmwhudson: stub had a pretty brilliant idea, I thought04:08
StevenKmwhudson: A DB backend for bzr so when you push a branch, it directly hits the DB, no muss, no fuss04:08
mwhudsonah yeah04:09
stubI thought I was trolling?04:09
mwhudsoni think i first heard that idea from mark, actually :-)04:09
mwhudsoni don't know if he was trolling either04:09
mwhudsonit would be awesome, but also a great deal of work04:09
lifelessbzr is a db04:09
stubIn theory, it is a great idea.04:09
stubyeah, what he said04:09
lifelessso, ITYM *another* DB backend04:09
StevenKFine, a *postgresql* backend04:10
mwhudsoncreate table versionedfile (...)04:10
mwhudsonwhat could go wrong04:10
wgrantSo then the question becomes "oh god why"04:10
mwhudsonConfiguring postgresql.conf to use port 5433...04:13
mwhudsonoy you04:13
wgrantDid you purge 8.4 and drop the existing 9.1 cluster?04:13
mwhudsonyes04:14
wgrant:(04:14
mwhudsonoh04:14
mwhudsonmaybe i didn't purge all of 8.404:14
stubyeah, oh04:14
mwhudsonok, that's better04:15
mwhudsonwoo04:20
jtvstub: looks like my format-relative-imports branch didn't come through.  :(  I got the EC2 success message, but no landing.04:20
mwhudsonum04:22
mwhudsonthe importfascist still exists?04:22
wgrantYes.04:22
wgrantIt doesn't do very much04:22
wgrantBut it still exists04:23
wgrantAnd someone angered it earlier this week04:23
stubjtv: I'll try the landing step again. I too got the success message.04:23
wgrantstub, jtv: We were in testfix for several hours04:23
wgrantProbably got caught in that04:23
mwhudsondatabase_root = 'canonical.launchpad.database'04:23
stubjtv: Do you have the mp url handy?04:24
* mwhudson spots some dead code04:24
mwhudsonoh yay, bootstrapping04:29
jtvstub: https://code.launchpad.net/~jtv/launchpad/format-relative-imports/+merge/12487804:30
mwhudsonheh04:32
mwhudsonhttps://code.launchpad.dev/applets -> 522 imports04:32
mwhudsonor 1713 for the first request after app server startup :)04:33
wallyworld__wgrant: i could look at mustache i guess. we know the id is an int, so i saw no need to do anything special with it04:37
mwhudsonlol what04:41
mwhudsonone of the main offenders is get_current_browser_request doing "from zope.security.management import queryInteraction" inline04:41
mwhudsonwhich is probably only to keep lazr.restful from unconditionally depending on zope ?04:41
lifelesswallyworld__: trusting the integrity of over the wire data is risky04:42
wgrantmwhudson: Heh04:42
lifelessmwhudson: lazr.restful shoul always depend on zope04:43
wallyworld__i guess i need to be more paranoid04:43
wgrantlifeless, wallyworld__: It's not so much the integrity of the wire. It's the fact that changing something on the server will subtly make unnecessarily fragile client code vulnerable04:43
lifelessmwhudson: the folk making it work for django were being optimists04:43
mwhudsonyes04:43
lifelesswgrant: I didn't talk about integrity of the wire :)04:43
lifelesswgrant: and yes, I agree.04:43
mwhudsoni think reality has won there now?04:43
lifelessmwhudson: yes04:43
lifelessmwhudson: if it were to be made separate, it would need to be several more separate projects with callbacks etc04:44
wgrantwallyworld__: eg. in a tonne of places today we inject URLs containing product names unescaped, because people thought it should be safe04:44
wgrantwallyworld__: It's a reasonable assumption, except that it means we have to be really really ultra-paranoid about project names04:44
wallyworld__sure, but a name is not an integer04:44
wgrantBecause if a quote gets in one somehow, we're fucked04:44
wgrantwallyworld__: Bugs have nicknames that are used in some situation04:44
wgrantEg. bug gbcw04:45
wgrantOr did we remove them, I can't remember.04:45
wgranthttp://launchpad.net/bugs/gbcw :)04:45
wgrantAnyway04:45
wgrantClient code shouldn't be unnecessarily fragile04:45
wgrantPartly because it's possible it'll change04:45
wgrantBut mostly because people will copy it04:45
wgrantAnd an argument that people *won't* copy it isn't really valid here, since someone clearly did copy this from elsewhere :)04:46
wgrantLaunchpad is really good at convincing people to copy code :(04:47
wallyworld__wgrant: changes pushed04:54
wgrantwallyworld__: That looks much safer and even shorter, thanks.04:55
wgrant_show_comment_on_duplicate_warning still needs the same treatment, though04:55
wallyworld__np, thanks for the suggestion04:55
wallyworld__ah, ok, bug id04:56
wallyworld__will do04:56
wgrantThe mustache implementation isn't precisely fast, but it should be more than fine for a dialogue like this04:56
wgrantwallyworld__: Well, you also extracted the title setting04:56
wgrantSo you can merge that back in and save a line04:56
wgrantAs well as handling bug_id paranoidly04:56
wallyworld__yeah, i extracted it because it failed too04:56
wgrantIndeed, thanks for finding that one.04:57
stubwgrant, lifeless: Can you think of why Deryck needs this index, when we didn't need similar ones for bug_sharing_policy and branch_sharing_policy?04:58
stubhttps://code.launchpad.net/~deryck/launchpad/product-specification-sharing-policy-idx-1057617/+merge/12672804:58
wgrantstub: No. It's possible it's for a garbo job, but I thought that was already done.04:59
wgrantSo I'm not quite sure what's going on there05:00
wgrantIt may be for adding a NOT NULL constraint or something like that05:00
wgrant(and also we established that for a product garbo job it's not worth it)05:00
stubRight. In which case a partial index might be preferable, but whatever05:00
mwhudsonok05:04
mwhudsonboringly, i can report that most of the inline imports are in zope.tal :(05:04
lifelessmwhudson: really? FAARK05:04
wallyworld__wgrant: right, done05:04
wgrantmwhudson: In, or inside?05:04
lifelessmwhudson: cause, thats not peformance sensitive or anything05:04
mwhudsonerr05:05
mwhudsonactually05:05
mwhudsonpause that thought :)05:05
wgrantwallyworld__: Safer and two lines shorter. r=me. Thanks!05:06
wallyworld__thank you05:06
mwhudsonwgrant, lifeless: for your confusion: http://pastebin.ubuntu.com/1231712/05:13
wgrantRather odd.05:13
mwhudsonif it 'helps'05:13
mwhudson_entnd_re = re.compile('&(#[0-9][0-9]*)(?![0-9;])')05:13
mwhudsoni think the only conclusion possible here is that python is terrible?05:14
lifelessmwhudson: wtf is that doing importing ?05:14
wgrantHm05:15
wgrantSee _sre.c's call func05:15
wgrantOh, that's just the module05:15
wgrantnevermind05:15
lifelessthats compiled already05:16
lifelesstal doing string joining won't be helping05:17
lifelessa list accumulator form of it would help I suspect05:17
mwhudson            /* not a literal; hand it over to the template compiler */05:17
mwhudson            filter = call(05:17
mwhudson                SRE_PY_MODULE, "_subx",05:17
mwhudson                PyTuple_Pack(2, self, ptemplate)05:17
mwhudson                );05:17
mwhudsonfrom _sre.c05:17
wgrantOh05:18
wgrantIndeed05:18
mwhudsonaaasd05:18
mwhudsonis firefox super crashy for anyone else in precise currently?05:18
wgrantIt's fine for me05:18
mwhudsonhm05:18
wgrantThough I've run with Firebug disabled since the globalmenu issues05:18
mwhudsoni guess my profile has eaten itself somehow05:18
mwhudsonah yea05:18
mwhudsonfirebug got me for a while too05:19
mwhudsonanyway, on that depressing note, home time05:21
wgrant:)05:21
wallyworld__wgrant: another one https://code.launchpad.net/~wallyworld/launchpad/confirmation-dialog-xss-1057901/+merge/12685505:43
wgrantAh right05:44
wgrantwallyworld__: r=me05:45
wallyworld__thanks05:45
=== almaisan-away is now known as al-maisan
wgrantIStoreSelector and co really have quite a few callsites06:26
lifeless...06:39
StevenKDestroying SQLBase and SQLObject sounds rather more fun06:40
wgrantNot destroying06:40
wgrantJust moving06:40
wgrantTo disentangle the import that lifeless was working around06:40
StevenKwgrant: Maybe you could destroy Storm and switch to SQLAlchemy06:40
wgrantHeh06:40
wgrantThere we go06:42
wgrantCircular imports gone06:42
wgrantWithout global hacks :)06:42
StevenKBlink06:56
StevenKHow horrible is the diff?06:56
wgrantOnly about 4000 lines06:58
wgrantNet -10 :)06:58
wgrantlib/lp/services/job/celeryjob.py:        from lp.services.job.celeryjob import CeleryRunJob07:30
lifelesswgrant: !07:37
adeuringgood morning07:44
lifelessspeaking of long requests09:04
lifelesshttps://oops.canonical.com/oops/?oopsid=OOPS-ddb3a4e6e473461ac93b92604efcb91809:04
lifelesswheee09:04
=== adeuring changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: adeuring | Firefighting: - | Critical bugs: ~300
=== al-maisan is now known as almaisan-away
czajkowskimgz: is this possible ? https://answers.launchpad.net/launchpad/+question/20965210:31
mgzczajkowski: dependency resolution doesn't care about where packages come from10:38
mgzI'm not sure of bzr-builder needs extra config to look at ppas, will have a quick look10:40
mgzso, I don't think you can do remote recipe builds that need things from ppas, but it should just work locally10:43
mgzthere might be specific launchpad configuration for that, generally just the main archive and sibling packages in the current ppa get used when building10:45
czajkowskimgz: ah ok10:45
mgzit's not clear from the question exactly what hes trying to do10:46
mgzbut there's probably a way to do it :)10:46
czajkowskimgz: thank you10:53
=== bac changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: adeuring,bac | Firefighting: - | Critical bugs: ~300
bachi adeuring.  nothing in the review queue today.  \o/12:11
=== matsubara-afk is now known as matsubara
=== almaisan-away is now known as al-maisan
tumbleweedso, what happens after my merge proposal is approved? I assume someone needs to run the test suite and land the branch?13:17
cjwatsontumbleweed: Yes - I can land it for you now if you think it's ready13:20
cjwatsontumbleweed: Unless you want to add more tests per stub's comment13:20
tumbleweedthe questions that lead to that comment were more about LP style than anything else13:21
tumbleweedbut yes, I suppose I did intend to add tests after finding out how I was supposed to handle it13:21
cjwatsontumbleweed: Could you set a commit message too?13:21
tumbleweedcjwatson: does it need to be in a particular format?13:22
cjwatsonNo, just a description.13:23
tumbleweedwill do13:23
cjwatsonThe tools will add necessary metadata to it.13:23
cjwatsonSo let me know once you're happy with the test coverage ...13:24
czajkowskijcsackett:  can you look at https://answers.launchpad.net/launchpad/+question/209247  please13:24
jcsackettczajkowski: sorry, that one's outside the realm of what i can parse--i haven't done anything with packaging. :-/13:33
jcsackettczajkowski: looks like wgrant is helping them out so far though.13:33
czajkowskiin theory he should be sleeping13:33
czajkowski*theory*13:33
jcsackettwell, i have mentioned his name. i have noticed many people in those timezones seem to appear like magic when mentioned. :-P13:34
czajkowskilol13:34
wgrantThey probably want to be sent to #ubuntu-packaging or so.13:34
wgrantAs it's now nothing to do with Launchpad.13:35
jcsackettczajkowski: see? magic.13:35
jcsackettwgrant: thanks, i'll post that as a reply to the question.13:36
czajkowskijcsackett: I actualy poked you with the wrong link :/ https://answers.launchpad.net/launchpad/+question/20780213:36
* jcsackett laughs13:36
jcsackettok, let me take a look at that one.13:36
czajkowskijcsackett: you mock it's been a long week13:36
jcsackettczajkowski: not mocking, just laughing. we all have moments like that, right? :-013:36
jcsacketts/:-0/:-)/13:37
czajkowskilol13:37
* czajkowski laughs13:37
tumbleweedcjwatson: Added 1 test, everything else was already covered. And set a commit message13:39
cjwatsontumbleweed: OK, it's off to EC2 now; you'll get e-mail in four hours or so13:45
tumbleweedthanks13:45
jcsackettczajkowski: so we have a couple of bugs related to branch scanning failing, which looks to be what's happened here. on my own branches, i usually just delete the branch on LP and push a new copy to lp.13:45
czajkowskinods13:45
jcsackettczajkowski: however, they may be leery of doing that.13:45
czajkowskisome font like them delted13:45
jcsackettczajkowski: it may be worth it for them to push new copies of those branches under new names temporarily to see if those scan right. in the mean time, you can point them at bug 904683 which tracks the issue.13:47
_mup_Bug #904683: Updating branch seems to last forever <Launchpad itself:Triaged> < https://launchpad.net/bugs/904683 >13:47
jcsackettczajkowski: there is also bug 1018460, but i gather this may have scanned properly initially, and so this isn't applicable.13:47
_mup_Bug #1018460: Failure during initial branch scan increases scan time enormously <branch-scanner> <Launchpad itself:Triaged> < https://launchpad.net/bugs/1018460 >13:47
jcsackettczajkowski: and yeah, with big main branches i totally can see them not wanting to delete it--just sharing my experience. not really recommending it in this instance. :-P13:48
=== al-maisan is now known as almaisan-away
abentleyderyck: Another formatting-related test failure that I get even on stable: http://pastebin.ubuntu.com/1247615/14:38
wgrantabentley: You're running with 2.715:01
wgrantWe only run the test suite on Python 2.615:01
=== adeuring changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: bac | Firefighting: - | Critical bugs: ~300
abentleywgrant: True, but yesterday deryck reported he could not reproduce my test failure even with 2.7.3 on Precise.15:02
=== Ursinha is now known as Ursinha-afk
wgrantHmm15:03
wgrantThat's certainly odd15:03
abentleywgrant: That was a different failure:  http://pastebin.ubuntu.com/1230926/15:03
wgrantThat should always fail15:04
wgrantAs there are no %s in the format string...15:04
abentleywgrant: Yet it hasn't.  Both the test and implementation code are years old.15:05
wgrantAh, that branch is never meant to be hit15:05
abentleywgrant: But the test is exercising that branch.15:06
wgrantIndeed15:06
wgrantSo I am very confused15:06
abentleyMe too.15:07
abentleywgrant: And today's failure is equally bonkers, because "summary" behaves like a mapping in line 5, but not in line 6.15:08
wgrantHmm15:11
wgrant  File "/home/wgrant/src/launchpad/branches/sandbox/lib/lp/code/model/branchmergeproposal.py", line 418, in setStatus15:11
wgrantThat's from 2.615:11
wgrant    raise AssertionError('Unexpected queue status: ' % status)15:11
wgrantAssertionError: Unexpected queue status:15:11
wgrantSo I guess it must be treating status (which is an enum value) as a zero-length sequence15:11
wgrantAnd as for the other failure, I guess 2.7 is just more strict about what it wants from a mapping for formatting15:13
wgrantIt is pretty odd, though15:13
abentleywgrant: How do you run with 2.6?15:15
wgrantIn a Lucid LXC15:15
abentleywgrant: Ah.15:15
wgrant>>> 'foo' % BranchMergeProposalStatus.SUPERSEDED15:16
wgrant'foo'15:16
wgrant>>> 'foo' % object()15:16
wgrantTraceback (most recent call last):15:16
wgrant>>> iter(BranchMergeProposalStatus.SUPERSEDED)15:16
wgrantTraceback (most recent call last):15:16
wgrantHow odd15:16
wgrantIt's not iterable, but it's 0-length?15:16
abentleywgrant: in what sense 0-length?  It doesn't support len().15:20
wgrantabentley: If it didn't think it was an iterable, then it would interpret it as a single thing to inject into the format string15:21
wgrantIf it thought it was an iterable but wasn't 0-length, it'd complain that there were too many arguments15:21
wgrantSo it must think it's a 0-length iterable15:21
wgrantDespite not being iterable15:21
=== matsubara is now known as matsubara-lunch
=== Ursinha-afk is now known as Ursinha
=== matsubara-lunch is now known as matsubara
sinzuibac do you have time to review https://code.launchpad.net/~sinzui/launchpad/merge-non-active-person/+merge/12704118:09
bacsinzui: now that i've enjoyed a fine lunch i do.18:14
sinzuithank you18:15
bacsinzui: done.  thank you.18:21
sinzuithank you bac18:21
abentleyderyck: I got a test failure on EC2 that I can't reproduce locally.  Any suggestions?19:16
deryckabentley, can you email me or paste me the failure?  I'll take a look when back, going for the kids from school now.19:18
deryckabentley, back now…. looking at the mail19:55
abentleyderyck: I did a second run (using -t) and it passed.  Just saw that now.19:55
deryckabentley, ah ok, cool19:56
abentleyi.e. ec2 test -o '-t externalbugtracker-comment-imports.txt'19:56
abentleyderyck: I hope the initial failure was due to an issue in devel that has since been resolved.19:57
deryckabentley, that's what I was wondering, if it was just timing with another failure not related to you.20:00
abentleyderyck: I have no data either way.20:00
sinzuisigh. buildbot  fellover again on a different test20:12
sinzuijcsackett, I will force this build.20:12
czajkowskievening20:30
abentleyderyck: In your add-product-information-type-1046467 branch, the sampledata appears to contain NULLs: http://pastebin.ubuntu.com/1248311/20:46
deryckabentley, looking.20:51
abentleyderyck: (I'm getting that oops because I added a proper information_type to the model definition, but I can just mark it nullable for now.)20:53
deryckabentley, ah20:53
deryckabentley, I did this the same way I did specification_sharing_policy and relied on the garbo job, or else fixed data locally myself to play around.20:54
abentleyderyck: That makes sense, I just figured you might want to fix the sampledata before landing, since you're changing it anyhow.20:56
=== gary_poster is now known as gary_poster|away
deryckabentley, ah, fair point.  I got the success email an hour or two ago now, though.  let me see if it merged.20:58
deryckheh, I got my success mail from buildbot before I could finish registering for UDS and check pqm submit mails. :)21:10
=== matsubara is now known as matsubara-afk
deryckHave a nice weekend everyone.22:01
cjohnstonflacoste: ping23:43

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