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

LPCIBotProject windmill-devel build #268: STILL FAILING in 1 hr 5 min: https://lpci.wedontsleep.org/job/windmill-devel/268/00:19
wgrantlifeless: Your LXC guide is vastly superior to the U1 one.00:28
wgrantLXC looks really nice.00:28
=== spm` is now known as spm
LPCIBotProject parallel-test build #62: STILL FAILING in 1 hr 11 min: https://lpci.wedontsleep.org/job/parallel-test/62/00:40
=== cinerama_ is now known as cinerama
LPCIBotYippie, build fixed!01:05
LPCIBotProject db-devel build #657: FIXED in 5 hr 53 min: https://lpci.wedontsleep.org/job/db-devel/657/01:05
wgrantjelmer: You seem to have removed the custom KDE layout from bzr-svn on the basis that they've moved to git, but I see new svn revs yesterday...01:10
sinzuiwallyworld_, do you have time to mumble01:13
wallyworld_sinzui: yes, starting mumble now01:14
wgrantlifeless: Hm, did you run into trouble with needing to run buildout under linux32 when using an i386 container on an amd64 kernel?01:19
LPCIBotProject windmill-db-devel build #418: STILL FAILING in 1 hr 6 min: https://lpci.wedontsleep.org/job/windmill-db-devel/418/01:26
lifelesswgrant: I'm just fiddling with that now01:28
lifelesswgrant: yeah the u1 seemed to ignore issues ;)01:29
* StevenK sighs at the topic. Wasn't the critical bug count only 205 yesterday?01:29
lifelesswgrant: feel free to tweak the page!01:32
lifelesswgrant: hallyn has a magic lxc build coming to his ppa that will automate the bind mount01:32
wgrantlifeless: I'm not sharing my ~, but it all seems to work OK as long as make always runs under linux32.01:32
wgrantOtherwise buildout uses x86_64 meliae :(01:33
lifelessinteresting01:33
wgrantSurely it doesn't try to parse uname...01:33
wgrantStill, it is buildout.01:33
lifelessthat could be because arch reports 64bit (which is uname based I wager)01:33
lifelesswgrant: file a bug ?01:33
wgrantMaybe/01:33
lifelessarch claims equivalent to uname -m01:34
wgrantNow, automated COW-on-tmpfs LXC parallel testing...01:34
lifelessLVM01:35
wgrantSlow!01:35
wgrantBut maybe.01:36
lifeless'meh'01:36
wgrantWell, I need a faster disk.01:36
wgrantAnd/or SSD.01:36
lifelessonly deltas get written01:36
wgrantSure.01:36
lifelessyou may need more bandwidth available01:36
lifelesshow many cores?01:36
wgrantBut I don't care about persistence.01:36
wgrant601:36
lifelessdoit01:37
lifelesstestr --paralell01:37
lifelessI've been thinking about adding a profile option01:37
lifelesstestr --parallel --profile=lxc01:37
LPCIBotProject devel build #828: FAILURE in 5 hr 23 min: https://lpci.wedontsleep.org/job/devel/828/01:39
wgrantlifeless: How does --parallel divide the tests?01:44
lifelessby time01:44
wgrantHuh?01:44
lifelesstestr records the runtime of tests01:44
wgrantHow does it know about new tests?01:44
lifelessthey get round robined01:45
wgrantRight, but how does it know to dispatch them?01:45
lifelessit runs --list-tests01:45
wgrantAhh01:45
wgrantI see.01:45
lifelessif you supply a list it could skp that01:46
lifelesswgrant: linux32 on lxc-start01:46
wgrantAhh, that could work.01:46
lifelesss/could/does01:46
lifelessits in the wiki page now01:47
lifelesssudo lxc-start -n lucid-test-lp -d usr/bin/linux32 sbin/init01:48
lifelessrobertc@lifeless-64:~$ ssh 192.168.122.4401:48
lifeless$ arch01:48
lifelessi68601:48
lifelesswgrant: so you're not bind mounting; nfs?01:48
wgrantlifeless: Nothing at the moment.01:49
wgrantSince I don't want to break my external environment.01:49
wgrantWhich rebuilding it for i386 will.01:49
lifelessanother reason to use packages for deps01:49
lifelesswgrant: the eggs are arch specific01:55
lifelesswgrant: so nothing should break01:55
wgrantlifeless: It's not just eggs.01:57
wgrantlifeless: Some of sourcecode/ has some binaries.01:57
wgrantOops02:00
lifeless?02:01
wgrantlxc-destroy does not just shut down the container.02:02
lifeless-stop is what you wanted02:02
wgrantYeah, I'm too used to Xen.02:02
lifelessbut its glitching with lucid + arch diff for some reason02:02
wgrantAlso, I ended up running two aufs clones of a container while still running the original container. That doesn't work very well.02:03
lifelessheh02:10
lifelesswgrant: the binariies in subverypy etc are also arch guarded paths.02:11
wgranthttps://lpstats.canonical.com/graphs/LPProjectCriticalBurndown/20100624/20110624/ is upsetting.02:12
wgrantlifeless: IIRC it's pygettextpo or pygpgme02:12
lifelessah, yes02:12
lifelessbad gettextpo02:12
lifelessurgle, we symlink gettextpo.so ?!? into lib02:12
wgrantOf course!02:13
lifelesswe should import gettextpo.gettextpo, then we could indirect sensibly02:13
wgrantYes, but that wouldn't be ancient and crufty enough.02:14
lifelessand I think I'm finally setup02:15
lifelesswith a tonne more memory available.02:15
lifelessand a 32 bit build for leaner tests02:15
lifelessugh, something is generating awful spew and breaking testr -- -t codehosting :(02:24
wgrant:(02:36
lifeless  File "/home/robertc/source/launchpad/lp-branches/working/lib/canonical/launchpad/scripts/__init__.py", line 62, in execute_zcml_for_scripts02:43
lifeless    'Setting up Zopeless CA when Zopefull CA is already running'02:43
lifelessAssertionError: Setting up Zopeless CA when Zopefull CA is already running02:43
wgrantYay02:44
lifeless_that was unexpected03:13
=== lifeless_ is now known as lifeless
wgrantOh?03:14
lifelessI'm guessing OOM kill got gdm03:14
wgrantNice!03:14
StevenKHaha03:14
StevenKCertainly fixed the memory pressure, though03:15
lifelessgiven I was watching a railsconf video I can't really be sure03:15
jtvStevenK, wgrant: does either of you have time to show me how to create a sync upload on dogfood?03:52
lifelesswgrant: 15:11 < hallyn> lifeless: do'h, that was easier than i thought, lxc already does the right thing, you just need 'lxc.arch = i686' in the config file.04:15
wgrantlifeless: Ah!04:40
wgrantlifeless: Which channel is that?04:40
wgrant#ubuntu-virt?04:40
wgrantWhy is my pipe to the DC so terrible :(04:42
lifelesswgrant: #ubuntu-server04:42
lifelessalso, https://bugs.staging.launchpad.net/ubuntu/+bugtarget-portlet-bugfilters-stats04:50
lifelesswhat part of our code would be doing fork in twisted ?05:03
lifelessUpon execvpe sleep ['sleep', '2'] in environment id 28057385205:03
lifeless:Traceback (most recent call last):05:03
lifeless  File "/home/robertc/source/launchpad/lp-sourcedeps/eggs/Twisted-11.0.0-py2.6-linux-i686.egg/twisted/internet/process.py", line 412, in _fork05:03
lifeless    self._setupChild(**kwargs)05:03
lifeless...05:03
lifeless  File "/home/robertc/source/launchpad/lp-sourcedeps/eggs/Twisted-11.0.0-py2.6-linux-i686.egg/twisted/internet/posixbase.py", line 171, in wakeUp05:03
lifeless    util.untilConcludes(os.write, self.o, 'x')05:03
lifeless  File "/home/robertc/source/launchpad/lp-sourcedeps/eggs/Twisted-11.0.0-py2.6-linux-i686.egg/twisted/python/util.py", line 783, in untilConcludes05:03
lifeless    return f(*a, **kw)05:03
lifelessOSError: [Errno 9] Bad file descriptor05:03
LPCIBotProject parallel-test build #63: STILL FAILING in 1 hr 10 min: https://lpci.wedontsleep.org/job/parallel-test/63/05:21
lifelessanyone around that knows our mm integration ?05:23
wgrantI know a liiiittle.05:24
wgrantEnough to debug it mostly.05:24
lifelessso05:24
lifelesslib/lp/services/mailman/tests/test_mm_cfg.py05:24
lifelessruns in FunctionalLayer05:24
lifelessdoes FunctionalLayer *start* mailman ? I thought it didn't.05:24
=== _mup__ is now known as _mup_
lifelessthus, I am confused.05:24
lifelessit wants a /var/tmp/mailman directory05:25
lifelessthis is unsafe for parallel testing05:25
lifelessI want to make it dynamic05:25
wgrantDoesn't buildmailman create /var/tmp/mailman?05:25
wgrant(vomit)05:25
StevenKBarry wants to kill buildmailman05:26
wgrantYeah, I think it does.05:26
StevenKI fully support this05:26
wgrantbuildmailman configures mailman into /var/tmp/mailman05:26
wgrantlifeless: So, I think you probably want to run them in a layer that is non-parallelisable.05:28
wgrantOr just delete mailman.05:28
lifelesswhy?05:29
wgrantWhy what?05:29
lifelesswhy non-parallelisable (btw that does not exist) or delete (don't we use it?)05:30
wgrantWe use it, but it's crap.05:30
LPCIBotProject windmill-db-devel build #419: STILL FAILING in 1 hr 5 min: https://lpci.wedontsleep.org/job/windmill-db-devel/419/05:30
wgrantAnd it's hard to efficiently parallelise because you'd probably need to rebuild mailman to change the path.05:30
lifelessbreaking lists.launchpad.net would probably be considered a regression05:30
wgrantQuite possibly.05:30
lifelessI can't quite tell if you're trolling or not05:32
lifelessWe should be able to setup a transient mailman per test runner fairly directly05:33
wgrantDirectly but slowly.05:33
lifelessI have a fixture around that creates a python module05:33
lifelesslib/mailman isn't even importable05:34
lifelessit shouldn't be under lib05:34
lifeless23 seconds05:39
lifelessanyone got attachments to /var/tmp/mailman ?05:45
lifelessI'd like to shove it under the source tree05:45
lifelesse.g. ./var/mailman05:45
StevenKI'd like to kill it from the tree entirely and move to MM305:46
lifelesswe'll want a network fake that we can use to make sure we interact with it correctly05:52
lifelessI'd love to see that done and it move out of tree05:53
* wgrant throws rocks at aufs.05:53
lifelessI think I need to tweak fixtures a little first05:56
jtvhey there wgrant!05:57
wgrantHi jtv. Did you work out what you needed?05:57
jtvNope05:57
wgrantStevenK possibly knows, or I can work it out.05:57
jtvBig J said it was easy though05:57
jtvHaven't heard from him either.05:58
wgrantBut it was a feature introduced by your squad, so you should know :P05:58
lifelessdid he say 'a small matter of programming' ?05:58
StevenKUnlikely05:58
StevenKSince he and I wrote the support05:58
jtvI suppose I can just run "make harness" on dogfood, but it'd be nice if I had a UI way to do it.05:59
wgrantjtv: the DSD sync thing will create jobs over an FF-configurable threshold, won't it?05:59
wgrantWhen the job runs, it will check if it's allowed. If not, it will put itself in the queue.05:59
jtvNo, that's not the case anymore.  It has to do that in all cases now.05:59
jtvDo we cron DSDJobs now?06:00
jtvOn dogfood, I mean?06:00
wgrantI'd check the crontab.06:01
jtvah — distroseriesdifference_job.py, every 2 minutes06:04
jtvStevenK, wgrant: mind if I sync some packages on df for a while?06:05
wgrantjtv: Go ahead.06:05
StevenKIt won't love you, but go ahead06:05
jtvStevenK: I can't live without love, but I probably can without yours.  :)06:06
wgrantWell, this seems to be working OK.06:06
jtv(Hmm the error reporting on +localpackagediffs actually works pretty well for me now… needs a bit more tweaking but it's clear there's an error and it takes up no new space)06:06
wgrantI have three tmpfs aufs COW LXCs running the test suite.06:07
jtvwant want want!06:08
wgrantNow I just need to automatically provision them (mkdir, mount, mount, sed, lxc-start does it), and tie it into testr.06:09
jtvwell that's the interesting part, isn't it?06:09
wgrantWell, aufs is infamous for its flakiness.06:10
jtvI don't think I know it.06:10
wgrantWe used it at uni for a while and had to give up.06:10
wgrantIt's like unionfs, except less flaky.06:10
wgrantBut still flaky.06:10
wgrantI believe it's still used for livecds.06:10
lifelesswgrant: nice06:10
lifelesswgrant: you'll want to bring one up for --list-tests06:11
jtvSo you're giving each container its own union mount overlayed on the branch setup?06:11
wgrantjtv: Right, I have the base container with postgres and LP installed.06:11
wgrantThen I create a tmpfs for each instance.06:11
wgrantMount that as an RW overlay over the RO base container for each instance.06:12
lifelesswgrant: hows the memory pressure ?06:12
wgrantlifeless: It's i386, so it's nothing.06:12
* jtv underlines "per-directory journaling QoS" on his filesystems wishlist06:12
wgrantI only have 8GiB of RAM and killed Chromium recently. But I have 3GB free and a couple of GB cached.06:12
lifelesswgrant: well, when you get to 6 instances, it may be less -nothing- :>06:12
wgrantTrue.06:12
wgrantLet's see what happens if I spin up a few more...06:12
jtvWouldn't it be great if you could tell a regular filesystem, "feel free to forget the entire contents of this directory on next mount, if it's more convenient than recovery"?06:13
StevenKtmpfs?06:14
wgrantjtv: Indeed.06:14
jtvStevenK: no, that ties the policy to the mechanism.  And you have to manage it, e.g. unmount it when you no longer need it.  And it causes worries about how it interacts with swap.06:14
StevenKMeh, they're just pages06:15
jtvWhat I want is a /tmp that's still a regular directory on my regular disk, but doesn't waste my time journalling.06:15
StevenKThen create it as ext206:15
jtv*cough*06:16
lifelessseriously06:16
StevenKOr use tune2fs to remove the journal06:16
jtv*cough* *cough*06:16
lifelesswhich will btw make it ext206:16
wgrantlifeless: 6 running now, hovering at 64% RAM used, all 6 cores >95%06:16
jtvI do still want journaling _and_ per-file system on my FS by default, thank you.06:16
lifelesswgrant: schweet06:17
StevenKlifeless: Sort of. It can be ext3 with other ext3 features and no journal06:17
wgrantAnd it's all tmpfs, so no iowait.06:17
jtvwgrant: and I don't suppose there's any CPU overhead to lxc?06:17
wgrantDespite my system drive currently being a shitty WD Green.06:17
lifelessjtv: bugger all06:17
wgrantjtv: It's just namespacing, basically.06:17
wallyworld_should i expect that we could add a new (null) column to an existing table "live"? and populate it with a script? and then mark the column as not null06:17
wgrantjtv: All runs on the system kernel.06:17
jtvSweet.06:17
lifelessjtv: uses built in namespace facilities in the kernel, needs a new userspace library instance etc06:17
lifelessand you have a bit of networking thunks going on06:18
wgrantlifeless: The first two runs were on their own. DatabaseLayer took 1:21 to run. The sixth just passed DatabaseLayer, took 1:2206:18
jtvIs it the trick where the kernel basically just keeps separate pointers for its data structures, so there are no cross-references?06:18
wgrantlifeless: So it seems to scale rather well.06:18
* jtv is so looking forward to this06:19
lifelessjtv: https://dev.launchpad.net/Running/LXC06:19
jtvThanks06:19
wgrantIt's just a bit lighter-weight than KVM.06:19
lifelessjtv: thats now debugged to the point that it works; wgrants aufs and sed stuff will sit on top of that basic config06:19
lifelessits a *tonne* lighter than kvm06:19
jtvShould be, yes.  No qemu.06:19
jtv…Right?06:20
wallyworld_i tried to get lxc working on my box but got errors with the network devices trying to start it up :-(06:20
lifelesswallyworld_: what errors?06:20
* wallyworld_ looks06:20
lifelesswallyworld_: were you following my notes or the u1 notes or something else again ?06:20
wallyworld_lifeless: your notes06:20
wallyworld_ian@wallyworld:~/projects/lp-branches/devel-sandbox$ sudo lxc-start -n natty-lp06:20
wallyworld_lxc-start: failed to attach 'vethgHMwnY' to the bridge 'virbr0' : No such device06:20
wallyworld_lxc-start: failed to create netdev06:20
wallyworld_lxc-start: failed to create the network06:20
wallyworld_lxc-start: failed to spawn 'natty-lp'06:20
wallyworld_lxc-start: No such file or directory - failed to remove cgroup '/sys/fs/cgroup/cpu/natty-lp'06:20
lifelesswallyworld_: do you have libvirt installed ?06:21
* wallyworld_ checks06:21
lifelesswallyworld_: if you've used virt-manager you will06:21
lifelessbut if you've not, even if you have used virtualbox, you probably don't.06:21
jtvBy the way, exactly when does test_on_merge.py run?  (I'm assuming this shifted a bit since the script was named)06:22
wallyworld_lifeless: no libvert installed06:22
lifelessjtv: it doesn't06:22
* wallyworld_ fires up apt-get06:22
lifelesswallyworld_: you want libvirt-bin06:23
jtvlifeless: then we can get rid of it?06:23
lifelessjtv: no, we may well want it when we do the parallel testing work06:23
jtvISTRM getting the near-useless "one huge chunk twice an hour" output.06:23
jtvThe reason I ask is, we have CommandSpawner now which is probably better at processing output from sub-processes.06:24
wallyworld_lifeless: \o/ thanks!06:24
jtvI think test_on_merge just waits for a huge fixed-size chunk of output and then dumps the whole thing (even if the chunk ends in the middle of a line, hence the huge chunks)06:25
jtvUsing MF would fix both.06:25
lifelessjtv: IIRC test on merge did more than just that06:26
jtvIt does do more.06:26
lifelessjtv: I would be happy to see test on merge ported06:26
wallyworld_lifeless: so on a 64 bit system (which i have), do i understand correctly that using a 32 bit lxc will use less memory running lp? or did i make that bit up?06:26
lifelessI wouldn't be happy to have it deleted yet06:26
lifelesswallyworld_: significantly less06:26
wallyworld_so i would install postgres etc etc into the vm?06:26
lifelesswallyworld_: we'll want to run the production tests on 64 bit to catch C bugs, but for devs it should be totally fine to run 32 bit06:26
lifelesswallyworld_: yes06:26
jtvThe MF would need some extensions, I'm sure, but it's basically a ready-made simple API to managing parallel sub-processes.06:27
wallyworld_cool. i have 4GB and am constantly up at ~90% usage06:27
lifelesswallyworld_: I suspect this will help06:27
wallyworld_awesome. will try it. thanks06:27
lifelessjtv: MF ?06:27
wallyworld_may have to set up my ide to do "remote" debugging :-)06:28
jtvwgrant: I wonder if the unionfs overlay would also make a faster way to restore the test playground db between tests.  :-)06:28
jtvlifeless: it stands for CommandSpawner.06:28
lifelessjtv: no, because you'd need to bounce postgresql06:28
jtvbugger :)06:28
wgrantHmm.06:28
wgrantaufs seems to sometimes interact badly with the hardlink security checks.06:29
wgrantIn particularly when rm -r'ing directories on the underlay.06:29
jtvlifeless: CommandSpawner was originally conceived as a Mother class that produces and manages child processes, i.e. a Forker.06:29
wgrantStill, with /var/tmp/bazaar.launchpad.dev gone from the underlay it is happy again.06:29
wallyworld_jtv: does that make it a Mother Forker? since it manages child processes?06:30
jtvwallyworld_: shhhh06:31
wgrantHmm.06:31
wgrantI guess the 6 runs don't really compete for cache.06:32
wgrantSince they are using the same underlying files.06:32
lifelessyes06:32
lifelessthe writes are the only IO load you should have06:32
wgrantAt least this isn't shared aufs on top of Solaris NFS.06:33
wgrantThat is *fun*.06:33
wgrantAnd kernel OOPSish.06:33
* jtv runs in terror06:33
wgrantAh, bug #72933806:34
_mup_Bug #729338: yama hardlink restriction misbehaves under aufs <linux (Ubuntu):Triaged by apw> < https://launchpad.net/bugs/729338 >06:34
wallyworld_anyone want to do 2 small reviews?06:34
wallyworld_https://code.launchpad.net/~wallyworld/launchpad/picker-textfield-focus/+merge/6560806:34
wallyworld_https://code.launchpad.net/~wallyworld/launchpad/admins-can-unsubscribe-bugs/+merge/6561506:34
jtvI'll take the first.06:35
wallyworld_thanks06:35
wallyworld_the 2nd one is only 44 lines06:35
jtvDamn, picked the wrong one.06:35
wallyworld_why? javascript?06:36
jtvNo, not 44 lines.06:36
jtvOh, wait, this one's 40 lines.  I win!06:36
wallyworld_:-)06:36
jtv…as soon as the page will load.06:36
wallyworld_i did say small06:36
wgrantHmm.06:41
wgrantSome tests are pretty RAM-hungry.06:41
wgrantAlmost OOMed there, because they were in sync.06:41
lifelessyeah06:41
lifelessyou need the full run to guage the footprint06:41
lifelesswgrant: you have what, 6G ?06:41
wgranttest_process_job_sources_cronjob creates heaps of processes.06:42
wgrant8G06:42
lifelesswgrant: on a hex cpu ?06:42
wgrantFull LP processes :(06:42
wgrantYes.06:42
lifelesswgrant: thats... unusual06:42
wgrantOh?06:42
lifelessAIUI the general thing is to fill 3 banks with identical memory and you get twice the memory bandwidth06:43
lifelesswgrant: http://www.intel.com/support/motherboards/desktop/sb/CS-011965.htm#triple06:44
wgrantlifeless: This is an AMD chip.06:44
lifelessah06:44
lifelessignore me then :)06:45
wgrantDoes Intel have any hex-core chips out yet?06:45
wgrant(I was just going to go with a cheap AMD quad-core, but the hex-core was only slightly more expensive so I thought why not...)06:45
jtvwallyworld_: first one's done.06:47
wallyworld_jtv: thanks!06:47
lifelesswgrant: http://ark.intel.com/Product.aspx?id=53568&processor=E7-2803&spec-codes=SLC3M06:48
wgrantlifeless: OK, but Xeons released a month ago don't count.06:48
lifelesswgrant: is yours 6 cores + ?threadpercor ?06:48
StevenKHaha06:48
StevenKWhy not?06:48
wallyworld_jtv: i had the same question about not using 'unseen'. i should have done it as a driveby perhaps06:48
lifelesswgrant: they've had 6 core xeons for a while, though the 10 core ones look *shiny*06:49
jtvwallyworld_: I was wondering whether it might be deliberate, e.g. so as not to hinder inclusion in lazr-js.06:49
wallyworld_maybe. i was going to ask tomorrow06:49
jtvwgrant: I actually had reason to go with a 2-core not so long ago because it had better single-thread performance…  that wasn't for me though: what you're doing will probably make lots of cores more attractive.  :)06:51
LPCIBotProject db-devel build #658: FAILURE in 5 hr 57 min: https://lpci.wedontsleep.org/job/db-devel/658/07:02
=== jtv is now known as jtv-eat
lifelessjtv-eat: 2-core 4-threads?07:10
jtv-eatlifeless: probably, though AMD has realized that SMT is no longer a very good idea.07:10
* jtv-eat logs in halfway across the world to check07:11
lifelesswgrant: so I was aksing, is yours 6(12) or 6(6)07:11
wgrantlifeless: Oops, missed that. 6(6).07:11
jtv-eatBulldozer?07:12
wgrantIs Bulldozer out yet?07:13
jtv-eatdunno07:13
wgrantQ3, IIRC.07:13
* jtv-eat decides to live up to his name07:15
LPCIBotProject windmill-devel build #269: STILL FAILING in 3 min 26 sec: https://lpci.wedontsleep.org/job/windmill-devel/269/07:32
wgrantStevenK: Could you please perma-kill the Windmill builders?07:34
LPCIBotYippie, build fixed!07:34
LPCIBotProject devel build #829: FIXED in 5 hr 54 min: https://lpci.wedontsleep.org/job/devel/829/07:34
StevenKThe jobs themselves or the slaves?07:34
wgrant06:59:26 < deryck> Can we please kill those windmill notices?  Windmill is dead to us.07:34
wgrant07:08:09 < deryck> abentley, indeed.  we'll move to selenium2/webdriver at the Thunderdome.07:34
wgrant07:08:33 < deryck> flacoste, sinzui -- ok, thanks.  StevenK can we kill the Windmill runner?  Not needed now.07:34
StevenKI missed that07:35
StevenKwgrant: Delete or disable?07:35
wgrantStevenK: Disable pls.07:35
wgrantI don't trust that we'll have anything good by next week.07:36
StevenKBoth done07:36
wgrantThankyou sir.07:36
nigelbOoooh, selinium instead of windmill. Nice.07:36
* StevenK kills a slave while looking at Jenkins07:40
StevenKI need to work out why Jenkins is now taking nearly six hours07:41
lifelesshttp://arstechnica.com/business/news/2011/06/amd-launches-second-fusion-cpu-gives-glimpse-at-future-of-cpugpu.ars07:46
=== jtv-eat is now known as jtv
jtvStevenK: how could it possibly perform well without Oracle?07:50
jtvlifeless: el Reg had a nice article about HP's new APU-based laptops IIRC.07:50
StevenKjtv: Your implant is acting up.07:52
jtverrrhuh?07:52
jtvbe more Enterprise, Steve!07:53
jtv(i.e. massively slower at three times the price)07:53
lifelessallenap: actually I'm redoing your implementation for those bugs - see https://bugs.launchpad.net/testtools/+bug/80103108:33
_mup_Bug #801031: gather_details evaluates details <testtools:Triaged> < https://launchpad.net/bugs/801031 >08:33
bigjoolsgood morning08:46
danilosbigjools, good morning08:48
allenaplifeless: Cool. I eagerly await the outcome :)09:06
lifelessallenap: its pushed09:13
lifelessallenap: along with a new stock fixture and gathering details from child fixtures09:14
allenaplifeless: Ah, I've just seen it. Neat :)09:14
lifelessyah, its nearly the inner loop from gather_details09:18
lifelessand 0.3.6 pushed09:22
=== allenap changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: allenap | Critical bugs: 211 - 0:[######=_]:256
huwshimimpt: Hi. Did you want to talk about that UI lightning talk today?10:01
mpthuwshimi, yep, in an hour or so if that's good for you10:03
huwshimimpt: Yeah that's fine with me10:03
jelmerwgrant: still there?10:04
wgrantjelmer: Indeed.10:05
wgrantyou're well today?10:05
wgrantOr at least moreso?10:05
jelmerwgrant: Yeah, feeling much better. Thanks :)10:05
jelmerwgrant: I was wondering if perhaps the qastaging machine didn't have an existing copy of the imports, causing every import to be a full from-scratch import.10:06
jelmer(and thus not being able to test the upgrade, no matter what the database says about the current format)10:06
wgrantjelmer: I thought I used an import that was there. But I suspect I was wrong. When I QA'd it yesterday I made sure a LOSA copied an un-upgraded copy into place first, and it worked fine.10:09
wgrantjelmer: After copying the staging area across, I called requestMirror() on the branch and confirmed that the externally visible copy was pack-0.92.10:10
wgrantThen forced an import, and it became 2a.10:10
jelmerwgrant: ah, cool10:10
jelmerwgrant: thanks for qa'ing that, btw. I'm looking at QA'ing my other two branches atm10:10
wgrantjelmer: Thanks. Did you see my KDE question?10:10
wgrantlifeless: Slightly under 3.5 hours.10:11
wgrantlifeless: For 6 concurrent runs of the full suite.10:11
lifelesswgrant: thats awesome10:11
wgrantAbout 15 minutes slower than when I ran the test suite locally, but it's probably longer now.10:12
wgrantAnd that's with some accidental swapdeath.10:12
wgrantHi Thunderbird.10:12
jelmerwgrant: isn't their plan to migrate everything to Git eventually, or are some branches going to stay in svn?10:16
wgrantjelmer: I don't know. But this will break SVN now, won't it?10:16
wgrantOr are existing branches OK?10:17
jelmerwgrant: the layouts aren't used for anything on the Launchpad side of things, they're used to discover branches if you import an entire repository10:17
jelmerwgrant: there was also a bug in bzr-svn that prevented it from opening something as a branch if the hard-coded layout (like we had for Apache or KDE) said it wasn't a branch10:18
wgrantOh, I thought it was still somehow used to work out the root for consistent fileids and stuff.10:18
wgrantOK.10:18
wgrantTests with failures: lp.services.job.tests.test_runner.TestTwistedJobRunner.test_memory_hog_job (subunit.RemotedTestCase)10:20
wgrantSo the test suite is *deliberately* memory-hungry.10:20
wgrantAwesome!10:20
jelmerwgrant: it's actually allocating a lot of memory to test that?10:21
wgrantNot too much, actually.10:26
wgrant    def run(self):10:26
wgrant        self.x = '*' * (10 ** 6)10:26
wgrantProbably just be a coincidence that it blew up while I was running out of ram.10:26
rvbawgrant: FYI, bigjools and I decided to refactor the multi parent like this: if the destination archive is empty: use the packagecloner, if not: use the (much safer but slower) packagecopier.10:28
wgrantrvba: You'll need to optimise intra-archive copies with the cloner too.10:29
wgrantOr initialising oneiric+1 will take forever²10:29
bigjoolsyes10:29
bigjoolsdid we discuss that case rvba?10:29
bigjoolsI *think* we did but my memory sucks todday10:30
bigjoolsas does my typing10:30
rvbaI don't think so.10:30
rvbaThis case will use the packagecopier.10:30
rvbawgrant: what kind of optimisation do you have in mind?10:31
wgrantrvba: Copying within an archive (eg. natty->oneiric) should use the packagecloner.10:31
wgrantAnd it should be done first.10:31
wgrantI think.10:31
wgrantOr it's going to be slow.10:32
bigjoolsrvba: this is the special case of initialising a new distroseries10:32
* wgrant eats.10:32
bigjoolswhere there's already a series10:32
rvbabigjools: Yes, the previous_series case.10:32
bigjoolsrvba: the packagecopier only needs to be used if there's >1 parent10:32
rvbabigjools: my understanding was that the packagecopier should be used if the destination archive is not empty.10:33
rvbaTo avoid conflicts.10:33
lifelesswgrant: did rabbitmq start ok in your lxc ?10:33
lifelessits whinging in mine10:33
rvbabigjools: ?10:34
bigjoolsrvba: there won't be any conflicts in a new distroseries10:35
bigjoolss/new/empty/10:35
bigjoolsrvba: so you can refine your case to empty distroseries10:35
bigjoolsnot empty archive10:35
rvbabigjools: Understood.10:35
rvbabigjools: I'll do that in the following branch then (the one that adds support for this init from [previous_series]10:36
rvbabigjools: wgrant first branch ready to be reviewed: https://code.launchpad.net/~rvb/launchpad/init-series-bug-789091-devel/+merge/6367610:36
rvbaThis branch adds *only* multi parent backend support.10:37
bigjools1394 lines /o\10:37
rvbaSorry about that.10:37
bigjools:)10:37
bigjoolsI'll look at the last changes10:37
rvbaYEs10:37
rvbaThanks.10:38
* rvba fixes the conflicts introduced by merging this in the 4 dependent branches.10:39
bigjoolsrvba: I don't think you need that duplicate source check any more10:46
bigjoolsthe packagecopier will take care of that10:46
rvbabigjools: I think I have removed any duplicate source check ...10:47
bigjoolsrvba: ah ok, it was in revno 1319010:47
bigjoolsrvba: perhaps you can attach a partial diff that you want reviewed on the MP?10:47
bigjoolsjust email it with an attachment10:48
bigjoolsor is it all in revno 13191?10:48
rvbabigjools yes: http://bazaar.launchpad.net/~rvb/launchpad/init-series-bug-789091-devel/revision/1319110:48
bigjoolsok I'll look at that10:48
* bigjools gets some caffeine in preparation10:48
rvbaThanks.10:49
wgrantlifeless: No, that was one of the 5 tests with errors.10:49
wgrantlifeless: Because my hostname isn't configured.10:49
wgrantlifeless: I presume.10:49
wgrantlifeless: (the other tests were all mmcfg stuff relating to aufs)10:49
bigjoolsrvba: first comment:10:49
bigjoolsdef getPublishedSources(name=None, names=() ....10:49
bigjoolsrvba: can you make the code accept name as a single item or a list10:49
bigjoolstwo params is ugly10:50
rvbabigjools: ok.10:50
bigjoolsrvba: the external API should be ok still, you'd just do a type check in the method10:50
rvbabigjools: Right, I'll do that.10:50
bigjoolsPython FTW10:51
rvbaI'm afraid wgrant concerns about duplicated files is still not addressed :(10:51
bigjoolswhy's that?10:51
bigjoolsif you use the packagecopier for subsequent syncs it should be10:51
rvbabut how about the first copy ... the one that will use packagecloner?10:52
bigjoolsthat can never conflict10:52
bigjoolsthe series is empty10:52
rvbaoh ... that's right ... sorry, my mind is a mess I must say.10:53
bigjoolsunderstandable :)10:53
bigjoolsrvba: well to be more specific, intra-archive to an empty series can't conflict10:53
rvbaRight.10:53
bigjoolsinter-archive to an empty series *can* conflict but we prevent that elsewhere10:54
bigjoolsbrb10:54
wgrantRight. Intra-archive copies to a new series are always fine. Inter-archive copies to a new archive are always fine.10:56
lifelessallenap: btw the +0 hack suggests prod has something wrong with it10:58
lifelessallenap: a root cause affecting other pages10:58
allenaplifeless: Oh no, another rabbit hole :)10:59
lifeless:)11:00
lifelessI don't think you need to dig into it11:01
bigjoolsjust fall down it11:01
lifelessbut I think you should note in the patch that avoiding the index is a workaround for an undiagnosed issue11:01
allenaplifeless: Okay, I'll add that to the follow-up branch.11:01
lifelessit would be nice to diagnose without impacting prod11:01
lifelessbut servers with 128GB of ram and TB's of capacity are not cheap11:02
lifelessallenap: (and that said, the +0 thing is -much- cleaner than the union)11:02
allenaplifeless: Agreed, emphatically.11:02
lifelessallenap: another example of this was the sourcepackagename issue the other day11:02
lifelessallenap: the query joined with archive is fast (when hot) on qastaging, terrible on prod11:03
allenaplifeless: Is there a bug about this anywhere? That (archive, status) index probably offers fairly low selectivity on SPPH. I wonder if it exists in staging/qastaging.11:04
lifeless    "securesourcepackagepublishinghistory__archive__status__idx" btree (archive, status)11:07
lifelessthats staging11:07
lifeless    "securesourcepackagepublishinghistory__archive__status__idx" btree (archive, status)11:07
lifelessallenap: we possible want (status, archive)11:07
lifelessallenap: -or-11:07
lifeless(archive, status where status in 1,7,534) [or whatever it is]11:08
bigjoolsheh, those look like IDs :)11:08
lifelessif its a stats problem a partial index will help more than a reversed index I think11:08
allenaplifeless: Okay, I'll throw this discussion in a bug report.11:08
lifelessthanks!11:09
bigjoolsrvba: why are you doing:11:13
bigjoolsfor pocket in archive.getPockets():11:13
bigjoolsand running do_copy in a loop?11:13
rvbabigjools: I thought this was the only way to use do_copy because I had to specify the destination pocket in do_copy.11:14
bigjoolshmph11:15
bigjoolsok11:15
rvbabigjools: It's stupid ... so if you have any idea around that I'm glad to hear about it :).11:15
bigjoolsrvba: I was hoping that do_copy would use the same pocket as the source11:16
bigjoolsbut it appears not11:16
rvbaMe too.11:16
bigjoolsrvba: so this is a bit simplistic anyway11:16
bigjoolsthe pocket should always be RELEASE11:16
bigjoolsI think the cloner does that?11:16
* rvba checks11:16
rvbaIndeed.11:17
rvbaWait ...11:17
rvbapubrec.sourcepackagerelease.createBuild uses PackagePublishingPocket.RELEASE11:18
rvbabigjools: no, you're right, initialize_distroseries has the destination pocket hardcoded to RELEASE11:19
bigjoolsrvba: that's the only available pocket in an unreleased series11:19
bigjoolsso just hard-code it and remove the loop11:20
rvbabigjools: ok.11:20
huwshimimpt: Available anytime. I can come find you if you like or you can come find me... I've moved further around the office11:44
lifelesshmm, oops11:45
lifelessI lp-landed rather than ec2.11:45
lifelessah well, its only a dep update, and should be sane.11:45
lifelessbuildbot will hate on me if its not.11:46
bigjoolsrvba: on line 670 of packagecopier.py, why did you need to add the extra "if len(source.getBuiltBinaries()) != 0:" ?11:46
bigjoolsdoes copyBinariesTo blow up without it?11:47
rvbabigjools: Yes11:47
bigjoolsrvba: I think it would be better to make copyBinariesTo not blow up11:48
rvbaThat's a side effect of adding 'strict_binaries'11:48
bigjoolsjust return Non if binaries is None or empty11:48
bigjoolsright11:48
rvbabigjools: ok.11:48
bigjoolsrvba: you need to be wary of multiple calls to getBuiltBinaries() there, it's a crazy query11:49
bigjoolsmaking copyBinariesTo will fix that double call11:50
bigjoolsmaking copyBinariesTo work will fix that double call11:50
rvbaUnderstood.11:50
* rvba looks at getBuiltBinaries11:50
bigjoolsissuing the same query more than once is crack regardless :)11:51
cjwatsonwgrant: any news on that cocoplum downtime for germinate-lubuntu?11:51
cjwatsonwgrant: I'm more or less unblocked on the disk space side now ...11:52
wgrantcjwatson: I've not seen mrevell this week, and he normally organises downtime. Perhaps I should just arrange it myself...11:52
cjwatsonis there much to organise in this case?  nobody except IS normally notices if I put cocoplum onto manual for a bit :-)11:55
huwshimiwgrant: He's on leave this week11:55
wgrantcjwatson: Well, we should restart poppy or it might get a bit angry.12:00
wgrantcjwatson: And we consider that to be downtime worthy of announcement, historically.12:01
bigjoolsyou need to restart poppy for a germinate change?12:02
wgrantWe could just cowboy it, but that upsets people.12:02
wgrantAnd we've already had one this week :(12:03
wgrantPlus keeping cocoplum up to date is nice.12:03
bigjoolswhy does poppy need a restart for a germinate change?  Remember it's a separate tree now.12:05
jmlhuwshimi: can I persuade you to join me for an early lunch?12:05
wgrantbigjools: Not on cocoplum it's not.12:05
wgrantUnless that changed without anybody telling me.12:05
wgrantAnd I'm pretty sure it didn't.12:06
huwshimijml: Probably, I was going to have a chat with mpt sometime this morning but I might be able to delay that. Did you want to lunch now?12:06
jmlhuwshimi: now would be ideal for me12:06
huwshimijml: ok12:06
huwshimijml: One sec12:06
huwshimimpt: Hey, can we delay until this afternoon or tomorrow sometime?12:07
gmballenap: If you've got time, a branch for you to review (diff hasn't generated yet): https://code.launchpad.net/~gmb/launchpad/private-branches-bug-657004/+merge/6563912:07
jmlhuwshimi: if you've already got something scheduled then don't break it just because I'm hungry and I want to talk to you :)12:08
jmlhuwshimi: we aren't barbarians12:08
gmbWe aren't?12:08
gmbDamn.12:08
jmlgmb: I can't speak for anyone north of Islington.12:08
huwshimimpt: I'm heading out to lunch, so let's figure out a time later12:08
allenapgmb: Certainly.12:08
mpthuwshimi, ok, sorry I was held up with this USC stuff12:09
huwshimimpt: No totally fine, we didn't schedule a proper time anyway12:10
huwshimimpt: I just didn't want you to be sitting around waiting for me12:10
bigjoolswgrant: still there?12:27
wgrantbigjools: A bit.12:28
bigjoolswgrant: I am trying to work out wtf is going on in the _create_missing_builds method in the cloner12:28
wgrantbigjools: Bad things.12:29
bigjoolswgrant: can you work out why it needs to call sourcepackagerelease.createBuild after createMissingBuilds doesn't make any builds?12:29
bigjoolsthe only place that passes always_create is lib/lp/soyuz/scripts/initialize_distroseries.py:12:29
bigjoolsand I would have thought that forcing a build is wrong wrong wrong if there is already a build12:30
wgrantbigjools: I would tend to agree with your assessment.12:32
wgrantbigjools: What does annotate say?12:32
bigjoolsit smells like StevenK12:32
StevenKIt was me, yes12:32
StevenKFor the case of copying only sources12:33
wgrantcMB should create builds in that case...12:33
bigjoolsbut createMissingBuilds ...12:33
bigjoolscMB will always DTRT12:33
* bigjools is tempted to rename SPR.createBuild to SPR._createBuild12:34
StevenKSo, the package cloner only calls cMB in specific circumstances ...12:34
bigjoolsit looks like it always calls it12:35
lifelessnight all12:38
wgrantNight lifeless.12:38
bigjoolsnn lifeless12:38
bigjoolsStevenK: so why does it call it?12:38
StevenKI'm struggling to remember12:39
LPCIBotProject db-devel build #659: STILL FAILING in 5 hr 37 min: https://lpci.wedontsleep.org/job/db-devel/659/12:40
bigjoolsrvba: given that none of us know why on earth the cloner is doing that extra call, I would just rely on createMissingBuilds in your code.12:47
rvbabigjools: Got it.12:48
wallyworld_wgrant: you still there?13:01
wgrantwallyworld_: Mostly.13:07
wallyworld_wgrant: just wondering - lxc doesn't support fuse but rocketfuel-setup tries to install it and it fails13:08
wallyworld_so i've told rocketfuel not to install launchpad-developer-dependencies and am seeing what breaks13:08
wallyworld_curious if you saw the same problem13:09
wgrantwallyworld_: I always change rocketfuel-setup to use 'apt-get install -o Apt::Install-Recommends=no'13:09
wgrantwallyworld_: Which doesn't install fuse.13:09
wallyworld_ah. will try that. thanks13:09
wallyworld_if it works, i can update the wiki13:10
LPCIBotProject parallel-test build #64: STILL FAILING in 1 hr 18 min: https://lpci.wedontsleep.org/job/parallel-test/64/13:17
wgrantjelmer: How goes the QA?13:18
jelmerwgrant: confirmed that the classify-exceptions branch is working with a few imports13:19
jmlhey13:22
jmlwhat version of Python do we run on?13:22
wgrantjml: 2.613:22
jmlsweet13:22
jmlif I have a list of bug ids, is there an efficient way to ask Launchpad which of them are closed?13:35
jmlor am I going to do N roundtrips?13:35
bachi bigjools, are you familiar with using WebServiceTestCase?  i'm trying to figure out how to test an @collection_default_content13:43
jmljelmer: wow13:49
jmljelmer: I just saw your patch13:49
jmljelmer: out of curiosity, have you had a chat w/ mwhudson about it?13:50
jelmerjml: not recently, but we chatted about doing this earlier13:52
jelmerjml: I'm hoping I can get him to do one of the reviews of the branch if it is deemed a good idea13:53
jmljelmer: ok. it's kind of a big deal. are you planning on going all the way with this?13:53
jml(otherwise it's a lot of dead code to be adding)13:53
jelmerjml: yes, I would be happy to take this all the way13:54
jelmerwgrant: when is the next deployment happening?13:56
wgrantjelmer: Whenever your QA is done.13:56
jelmerwgrant: oh :)13:57
jelmerI'm still waiting for staging to come back13:57
wgrantWell, someone (probably me) should probably QA timrc's thing first, to get another couple of revs. But once your stuff is done we can at least deploy *something*.13:57
jelmer(waiting to see if https://code.staging.launchpad.net/~maxb/cvs2svn/svntest succeeded)13:57
bigjoolsbac: not massively familiar with that.  It just gives you a "browser" object doesn't it?13:57
wgrantjelmer: You know we have an importd on qastaging now, right?13:58
jelmerwgrant: I do now :)13:58
wgrantrvba, jtv: When you get a chance, could please take care of your outstanding QA items?13:58
wgrantjelmer: We got it working earlier this week.13:58
wgrantBecause waiting for staging sucks.13:59
jtvwgrant: I guess that means my branches have deployed somewhere.  :)13:59
bacbigjools: you get a web service object you can make method calls on.  that's ok if you're not familiar13:59
rvbawgrant: Sure.13:59
bacwgrant: you familiar with WebServiceTestCase?13:59
bigjoolsbac: right, I hope it's the client side of things so that lplib is exercised14:00
wgrantbac: You should be able to just use it like launchpadlib.14:00
bacwgrant: i14:00
rvbawgrant: The crazy multi parent branch is fixed if you want to have a look at it one more time ;) (https://code.launchpad.net/~rvb/launchpad/init-series-bug-789091-devel/+merge/63676)14:01
wgrantbac: eg. the collection_default_content of IBuilderSet can be checked using something like list(lp.builders)14:01
bacwgrant: i'm trying to exercise a method marked with @collection_default_content.  in lplib the top level collection object is callable and invokes that method14:01
bacwgrant: right14:01
jelmerwgrant: \o/14:01
bacwgrant: but the ws_object version of it is not callable14:02
wgrantbac: The collections should not be callable, AFAIK.14:02
bigjoolsthey are generators aren't they?14:02
wgrantSomething like that.14:03
wgrantBut they're still not callable.14:03
bacwgrant: perhaps callable is the wrong term14:03
=== mbarnett` is now known as mbarnett
bacwgrant: but with an ws_object version of builders i cannot do what you showed earlier from lplib14:03
wgrantbac: I suspect that wsObject only works on Entries :(14:05
wgrantBut self.service.builders looks like it should work.14:05
wgrantMaybe.14:05
bachmm14:05
wgrantYes, that should work.14:06
bigjoolsI see that people are adding sourcecode eggs but not deleting old ones :(14:06
bacwgrant: \0/14:06
wgrantjelmer: Still going...14:06
bacwgrant: thanks!14:06
wgrantbac: Does it work?14:06
bacindeed14:07
wgrantI'm pretty sure it will, but you never know.14:07
bacyes, i just demonstrated it14:07
wgrantGreat.14:07
jmlbigjools: well, you have to be careful about deleting old ones.14:12
bigjoolsjml: ECONTEXT14:12
jml<bigjools> I see that people are adding sourcecode eggs but not deleting old ones :(14:12
wgrantIf you delete them before the next release, I will be very sad.14:13
wgrantBecause we will be unable to deploy.14:13
bigjoolsjml: sure, but do people actually check?14:14
jmlbigjools: I honestly don't know how. And if I did, and cared, I'd probably make a post-commit hook or something that did it for me.14:15
bigjoolsthe reason I care is because a) I hate having my disk filled with crap, and b) I spent ages cleaning it up not so long ago14:16
bigjoolsmatsubara: how did the exploratory testing go yesterday?14:20
matsubarabigjools, I'll put the results in the wiki and ping you14:21
bigjoolsgreat thanks14:21
rvbawgrant: QA done.14:21
wgrantrvba: Thanks!14:22
rvbanp14:22
matsubaraflacoste, you mentioned an email about some wiki clean up, but I didn't get any. Did you send it? What's the subject?14:22
bigjoolsrvba: presumably it worked then? :)14:22
rvbabigjools: yes, I'm not an admin on DF anymore :)14:23
flacostematsubara: QA wiki clean-up14:23
flacostejml was cc-ed14:23
=== jcsackett changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: allenap, jcsackett | Critical bugs: 211 - 0:[######=_]:256
flacostejml: did you receive your opy?14:23
jmlflacoste: yes, I did. I haven't had the privilege of talking w/ matsubara yet today14:23
matsubarajml, flacoste: I didn't receive it. could you resend?14:24
flacostematsubara: my bad, my addressbook completed to your old async address14:24
matsubaraflacoste, hmm it should have arrived anyway unless the asyncers disabled my old address14:25
flacostematsubara: resent14:26
matsubarathanks flacoste14:26
flacostematsubara: they did:     host smtp.async.com.br [189.19.234.109]: 550 5.1.1 <matsubara@async.com.br>... User unknown14:27
matsubara:-(14:27
matsubaraflacoste, got the new copy you just resent. I'll take care of that clean up.14:27
jmlthe trick is to get all the QA info grouped together, I reckon14:28
jmlflacoste: Millbank 243914:28
flacostejml: ok, will dial in 2 minutes14:29
jml:)14:29
jelmerwgrant: ah, staging and qastaging share their import slave?14:32
jelmerjust got a database lock on staging because of my import run on qastaging14:33
jmlreviewer sought: https://code.launchpad.net/~jml/launchpad/xxx-cleanup/+merge/6566314:33
wgrantjelmer: They do. I would have hoped they wouldn't share locks, though :(14:33
jcsackettjml: looking now.15:09
jmljcsackett: thanks!15:09
timrcwgrant, did you run into any trouble with my commit?15:20
wgranttimrc: It is just after midnight. I was planning to QA it tomorrow if nobody had done it by then.15:23
timrcwgrant, gotcha15:25
jcsackettjml: r=me.15:25
jmljcsackett: thanks15:26
jmllib/canonical/launchpad/pagetests/webservice/apidoc.txt fails for me in stable15:32
jmlanyone else have that?15:34
jmlis there a make target I need to build first?15:36
bacjml: if you actually change API stuff the make file does not rebuild the wadl15:38
bacjml: you can either15:38
bacrm -rf lib/canonical/launchpad/apidoc/15:38
bacor 'make clean build'15:39
jmlbac: thank you15:39
jmlbac: lib/canonical/launchpad/apidoc doesn't exist :\15:40
jmlahh ok. I think I know what's going on.15:45
jmlbac: thanks for the pointer.15:45
bacjml: working?15:45
jmlbac: *maybe*. tests take a while :)15:45
timrcam I suppose to be able to authenticate with staging.launchpad.net via lynx?  I'm able to login in successfully but then it takes me to a page with nothing but the word 'Continue'.  When I submit again, it eventually takes me to the same page :/16:04
timrcI'm never presented with a page asking me the level of access I want to grant16:04
jmltimrc: I'm not sure. I don't think lynx is one of our supported browsers.16:05
timrcjml, poop.  okay... off hand do you know which console browser is supported?16:05
jmltimrc: maybe none of them?16:06
* timrc 's frown deepens16:06
jmltimrc: I don't know where our supported browsers list lives.16:06
jmltimrc: but surely we have to have *some* way of authorizing console apps.16:06
timrcmaybe google knows, brb16:06
timrcjml, ok according to https://help.launchpad.net/API/launchpadlib lynx is supported for > 1.5.5 and I'm using 1.6.1 hm16:08
jmltimrc: ok. quite possibly it's a bug. can you authorize against production?16:09
timrcjml, I'll attempt to do so16:09
jmlbenji: random thought: would it make sense for exported webservice references to allow 'schema' to be a string containing the fully-qualified Python name for an interface?16:10
timrcjml, same thing using LPNET_SERVICE_ROOT16:11
jml:(16:12
jmltimrc: looks like a regression then :\16:12
nigelber16:13
nigelblynx works16:13
jmltimrc: how can I trick Python into opening lynx to do the auth? (so I can try to reproduce locally)16:13
nigelbI've used it before16:13
jmlnigelb: well, we know it *used* to work :)16:13
nigelbjml: yes, as of 2 weeks back when I set up tarmac16:13
timrcjml, I do not know, honestly... it defaults to lynx for Ubuntu server (probably uses sensible-browser to make that determination)16:14
timrcnigelb, did you have to setup lynx or did you use default params?16:14
jmlhmm. that'll slow down fixing.16:14
timrcer config16:14
nigelbtimrc: default16:14
nigelbjml: sudo update-alternatives --config x-www-browser16:14
timrcnigelb, okay16:14
jmlnigelb: I'm not changing my default browser just to repro a bug16:15
timrcjml, hehe16:15
nigelbhehe16:15
nigelbYou can change it and then change it back :)16:15
timrcjml, I use vm's to prevent having to do that16:15
jml!16:15
jmlwhen I was a lad, we had environment variables16:15
jmland we used them16:15
jmland were grateful for them!16:15
nigelbhaha16:16
* timrc did not exist in the 1970's16:16
* timrc ducks16:16
nigelbneither did I16:16
nigelb:P16:16
nigelbif you have a vps, try it on that.16:16
nigelbit should use lynx by default I think.16:16
benjijml: that might help with the circular reference problems; zope.dottedname would be an obvious implementation (http://pypi.python.org/pypi/zope.dottedname)16:26
* benji wonders how sarcasm could ever not be good.16:29
* benji also wonders if he'll ever figure out how to use multiple irc chans16:29
timrcnigelb, you must have the magic touch...16:32
nigelbtimrc: did it work? :)16:36
jmlbenji: thanks. I, of course, would have reached for the equivalent Twisted code :)16:36
timrcnigelb, not in my vm... I'm going to attempt natively... maybe bridged networking has something to do with it (completely unsubstantiated theory)16:37
jcsacketttimrc: i've had problems with lynx before. used elinks and had no problems, though.16:47
flacostegary_poster: lp2kanban should sort the tags i think, it's flip-flopping16:47
flacosteTags: from lp-translations, timeout to timeout, lp-translations16:47
flacosteTags: from timeout, lp-translations to lp-translations, timeout16:47
gary_posterflacoste, heh, ok, I'll put a card up16:48
jcsacketttimrc: IIRC lynx has an issue with a cookie or something that made it not work for me. but obviously, nigelb and our docs run counter to that.16:48
gary_posterthanks16:48
timrcjcsackett, interesting16:48
timrcjcsackett, I'll give elinks a try16:48
jcsacketttimrc: i ended up really liking elinks and set it up as my default for console browsers.16:49
timrcjml, okay so you can specify BROWSER="/usr/bin/elinks" python foo.py to select the browser launchpadlib will use16:53
jmltimrc: ahh thanks.16:53
timrcjcsackett, elinks did the trick... thank you very much16:59
nigelbjml: okay, so environment variables still work lda ;)16:59
nigelb*lad16:59
* jml has to go16:59
pooliecheerio jml17:00
huwshimipoolie: Who did you send that javascript logging email to yesterday? I never got it.17:06
pooliehrm17:06
pooliecanonical-tech17:07
poolieare you on it?17:07
poolieyou should join17:07
cr3poolie: nice reports on velocity, thanks!17:07
pooliethanks!17:07
cr3where are all the yui files listed from lazr-js to generate launchpad.js?17:10
pooliegary_poster: hello?17:18
gary_posterhey poolie17:18
pooliehi there17:20
pooliei ran one of the performance tools mentioned at velocity on some lp pages17:20
poolieand it points out that we have some etags on files that don't seem to actually need them17:20
pooliesince they hav ethe revision in the name17:20
pooliethis is really separate from the wadl17:21
huwshimipoolie: I'm not, I'll join17:21
poolieis this probably a (Low) bug, or is there a reason for it?17:21
gary_posterpoolie, do you mean "beta" and "1.0" and so on?17:21
gary_posteroh17:21
gary_posteryou said separate from wadl :-P17:21
poolieyeah17:22
gary_posterso which pages do you mean, poolie?17:22
huwshimipoolie: the link you emailed errors on Launchpad17:22
pooliesorry to mix it in with this bug17:22
pooliesilly launchpad17:22
gary_poster:-)17:22
pooliewhich link, huw?17:22
pooliegary_poster: let me see if i can find the tool again17:22
gary_posterk17:22
huwshimipoolie: https://launchpad.net/~canonical-tech17:22
huwshimipoolie: I think it's  404, but Launchpad doesn't really tell me17:23
poolieworks for me17:23
poolieah17:23
poolieit's privtae17:23
pooliehow on earth do you join then?17:23
huwshimipoolie: heh, no idea17:24
allenappoolie, huwshimi: One of the list admins has to add you.17:25
huwshimiallenap: Ah17:25
allenaphuwshimi: I'm trying to find one to ask....17:26
huwshimiallenap: Thank you17:26
* huwshimi wonders why we 404 when we mean permission denied17:26
allenaphuwshimi: Done (by dragnob).17:28
huwshimiallenap: Thanks17:28
allenaphuwshimi: It's probably to do with disclosure. Permission denied indicates that the resource exists. Of course, it could just be a bug ;)17:29
gary_posterhuwshimi, generally, some "private" things are really private.  We don't want people to know they exist.  The name's existence is a security leak.  Not everything needs that much paranoia, but starting with paranoia and relaxing is easier than the other way around.17:29
gary_posteryeah :-)17:29
poolieso dragnob's a good person to ask?17:30
huwshimigary_poster: Ah I see17:30
poolieit might be nice if there was a "contact the admins if this thing exists"17:31
pooliebut perhaps just mail will do17:31
pooliegary_poster: i can't reproduce the warning in the tool17:31
pooliei think it was in gogle page speed17:31
pooliebut, "curl -Ov https://code.launchpad.net/+icing/rev13265/lazr/build/lazr/assets/skins/sam/negative.png17:31
pooliedoes show the response has an etag17:32
poolieand that's apparently a bad idea for resources that ought to be immutable17:32
pooliesince it could be set to just never expire17:32
pooliei don't know if that actually has any performance impact or if it's just a warning17:32
pooliebut since they mentioned it i was curious17:32
cr3rockstar: what's this about lazr-js being deprecated? has the superseding package made it to launchpad in sourcedeps perhaps?17:33
gary_posterpoolie, ah!  yeah, agree.  It would have an effect if Apache were set to pay attention to inode for ETag generation, but would be innocuous otherwise.17:34
pooliebtw i'm pretty sure that lazr.restful does try to use the etags17:35
pooliehrm17:35
gary_posterpoolie, I think it is worth a bug for lazr.js icing17:35
poolieif i had time i would rip out its persistent object cache17:35
poolie(leaving the wadl cache)17:35
gary_posterwe are not sure if there is a problem17:35
poolieit seems to cause bugs without ever helping things17:35
=== allenap changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: jcsackett | Critical bugs: 211 - 0:[######=_]:256
poolieok, i'll file17:35
gary_posterbut it's worth a bit of a dig into it anyway17:35
gary_posterthank you17:35
LPCIBotProject parallel-test build #65: STILL FAILING in 1 hr 10 min: https://lpci.wedontsleep.org/job/parallel-test/65/17:39
pooliebug 80124117:39
_mup_Bug #801241: sends etag on immutable icing resources <Launchpad itself:Triaged> < https://launchpad.net/bugs/801241 >17:39
sinzuiabentley, do you have time to mumble about solution to the yui-segfault issue?17:48
=== matsubara is now known as matsubara-lunch
abentleysinzui: Sure, how about in 15 minutes?17:55
bacjcsackett: can you do a review at your convenience?  https://code.launchpad.net/~bac/launchpad/bug-776437/+merge/6569217:56
jcsackettbac: i was just looking at that actually. :-)17:56
sinzuiabentley, that is good thanks17:56
rockstarcr3, you might want to talk to deryck in the context of launchpad itself, but I don't think the long term plan is for anyone to use lazr-js anymore.17:56
jcsacketti need to finish up one thing, then i'll take a look at it.17:56
bacjcsackett: wow, you're a machine17:56
jcsackettor rather, take a longer look at it.17:56
jcsackettbac: i just keep on eye on the queue on my OCR days. helps me figure out how i'm breaking up my day. :-)17:57
rockstarcr3, why do you think you need to use lazr-js?17:57
cr3rockstar: I'm working on a project that aims to use similar technologies, methodologies, etc. as launchpad: http://ec2-50-18-91-92.us-west-1.compute.amazonaws.com/17:58
cr3rockstar: so, if launchpad jumps off a bridge then I'll jump too17:59
rockstarcr3, lp:phazr is an re-implemtation of most of the useful things in lazr-js18:09
cr3rockstar: this is probably a question for deryck but I'd be curious to know when launchpad intends to migrate from lazr-js to that18:10
abentleysinzui: ready18:10
LPCIBotProject db-devel build #660: STILL FAILING in 5 hr 30 min: https://lpci.wedontsleep.org/job/db-devel/660/18:11
rockstarcr3, deryck said he's in the process now, last time I talked to him.18:12
cr3rockstar: awesome, I'll keep a close eye on that then18:13
cr3rockstar: I had another question for you but it turned out to be a bug in yui upstream already reported by sidnei, thanks for the info!18:13
jcsackettbac: r=me.18:21
bacjcsackett: thanks18:21
abentleysinzui: Oh, that third option was: start the browser in a subprocess, but then use that browser process to visit all the pages, e.g. using IPC.18:21
=== jcsackett is now known as jcsackett|lunch
abentleysinzui: So it's a combination of the other two options.18:22
sinzuiabentley, ah right18:22
bacjcsackett|lunch: i'll look into that idea18:23
=== matsubara-lunch is now known as matsubara
LPCIBotProject devel build #831: FAILURE in 6 hr 0 min: https://lpci.wedontsleep.org/job/devel/831/19:22
=== jcsackett|lunch is now known as jcsackett
lifelessmoin19:43
lifelesswallyworld_: the lxc setup on that page supports fuse20:07
lifelesswallyworld_: what didn't work for you?20:07
sinzuijcsackett, do you have time to mumble?20:36
jcsackettsinzui: give me five, and sure. :-)20:36
jcsackettsinzui: http://people.canonical.com/~jc/images/Details%20Mockups/20:41
bachi cr3 -- do you need a hand landing https://code.edge.launchpad.net/~cr3/launchpad/hwsubmissionset_search/+merge/6376821:03
cr3bac: absolutely, thanks for following up on that branch. is there anything I can do?21:04
baccr3: i haven't looked at it in detail yet.  do you think it is ready for ec2 and landing?21:05
cr3bac: yep, it's been reviewed by lifeless and stub, all changes they suggested have been applied so I'm very comfortable... as if I were wearing a belt and suspenders21:06
baccr3: ok.  could i get you to write a 'commit message' on the MP?21:06
cr3bac: not sure I follow, this is my first contribution to LP21:08
baccr3: np.  click on the above link to go to the merge proposal.  towards the top is a JS control "set commit message".  that is the brief description of the branch that will be used as the PQM commit message21:09
bacso just type a sentence that describes the reason for the branch21:10
cr3bac: done, let me know if you might word anything differently or if I might be missing special notation21:14
baccr3: no special PQM notation any more.  the tools take care of it!21:15
baccr3: looks good21:15
lifelessabentley: hi21:37
abentleylifeless: hi.21:37
lifelessbug 690021 - will we get an OOPS when a job runs into the memory limit and fails ?21:37
_mup_Bug #690021: scan_branches terminated for excessive memory abuse <canonical-losa-lp> <lp-code> <Launchpad itself:Incomplete> < https://launchpad.net/bugs/690021 >21:37
abentleylifeless: yes.  Python will raise MemoryError.21:39
lifelessthanks21:39
abentleylifeless: np21:39
LPCIBotProject parallel-test build #66: STILL FAILING in 1 hr 12 min: https://lpci.wedontsleep.org/job/parallel-test/66/22:11
abentleylifeless: Also, I've done the same for sendbranchmail: https://code.launchpad.net/~abentley/launchpad/memlimit-sendbranchmail22:13
lifelessabentley: cool22:14
lifelessthis is good stuff22:14
abentleylifeless: yeah, it's good to reduce the consequences of memory-munching, and AIUI, the bzr team have reduced the memory-munching significantly.22:16
lifelessI'd kindof like to memlimit the appservers too22:16
lifelesswith python hitting swap is never the right thing (gc languages :()22:16
abentleylifeless: if you do, make sure that only the process the OOMed is affected, and it's probably a good idea to treat that process as dirty.22:18
abentleylifeless: i.e. the environment is suspect, and it shouldn't be reused for another request.22:19
lifelessabentley: pythons MemoryError raising should be fairly reliable, no ?22:20
abentleylifeless: yes, I haven't seen it fail.  Though even with an RLIMIT_AS of 0, I had to allocate 10 ** 6 bytes to trigger it.22:22
lifelessI'd certain make the current request bail22:23
lifelessI don't think we'd need to restart the appserver22:23
lifelessperhaps I'm wrong and it is more fragile?22:24
abentleylifeless: The issue with the branch scanner was that a previous OOM was causing the following scan to OOM.22:25
lifelessabentley: I guess because of slab allocators?22:25
abentleylifeless: I thought it might be actual memory leaks.  I don't know enough about slab allocators.22:26
lifelessabentley: so python doesn't call malloc() per object22:26
lifelessit allocates slabs of various sizes which objects can go into; I'd need to go check the source to be more precise than that22:27
abentleyOh, the 10**6 because of the slab allocators?  Probably.22:27
lifelessno, the OOM on the next job22:27
lifelessso a slab can only be released to the OS when all the objects in it have been freed22:27
lifelessthere may also be an implementation issue with the memlimit - if it just looks at setbrk for instance22:28
lifelessanyhow - thats a good gotcha to know about22:28
abentleylifeless: the bug for this was 78680422:29
=== matsubara is now known as matsubara-afk
wallyworld_lifeless: got lp running in a 32 bit lxc container on my 64 bit os. one pita though - the .so files need recompiling so lp can run but then this stuffs up things outside the container requiring the .so files (like ec2 land). what's the cmd to recompile just the c source?23:09
lifelesswallyworld_: the eggs are fine, but the things doing build_ext i will give grief23:09
lifelesswallyworld_: make clean && make build should do it23:10
wallyworld_lifeless: i've done that but it takes too long. i was hoping for a cmd to just redo the so files23:10
lifelesswallyworld_: I have a separate tree just for ec2 land23:11
lifelesswallyworld_: make clean & make build in the sourcecode subdir might work23:11
wallyworld_thanks. i suspect it will. pita though :-(23:11
michaelh1Hey, what's the best way of getting a faster launchpadlib at the moment?23:12
lifelessmichaelh1: move to London23:13
lifelesswallyworld_: thats why I have a separate tree :>23:14
lifelesswallyworld_: I'd like to move ec2 land etc out of the main tree; they have no business being there23:14
wallyworld_yes agreed :-)23:14
jelmermwhudson: hi23:17
mwhudsonjelmer: hello23:17
mwhudsonjelmer: yes i saw your merge proposals :)23:17
jelmermwhudson: heh, ok.. wasn't sure if you'd see them through the floods of Launchpad-related emails :)23:18
lifelesswallyworld_: so, fuse23:42
lifelesswallyworld_: why do you think lxc doesn't support it ?23:42
wallyworld_because of the errors and a google search where one of the devs said so :-)23:43
lifelesswhat errors?23:43
lifelessthe config I provided supports fuse23:43
LPCIBotProject db-devel build #661: STILL FAILING in 5 hr 32 min: https://lpci.wedontsleep.org/job/db-devel/661/23:43
lifelesswallyworld_: can you msg me your /var/lib/lxc/$containername/config file ?23:44
wallyworld_trying to install launchpad-dependencies (from rocketfuel-setup) - the package post processing said things like "/dev/fuse cannot be accessed" etc. don't have the specifics handy23:44
lifelessthat suggests you didn't have the right devices whitelisted23:45
lifelessthe config I'm asking for will help diagnose this23:45
wallyworld_lifeless: https://pastebin.canonical.com/48968/23:46
lifelessyeah23:46
lifelessyou must have made your container before I added fuse support to the wiki page23:47
wallyworld_ah right23:47
lifeless#fuse (workaround for Bug:800886)23:47
lifelesslxc.cgroup.devices.allow = c 10:229 rwm23:47
lifeless# part of the Bug:798476 workaround -23:47
lifeless# remove if you are running a 64 bit lxc or23:47
lifeless# 32 bit on 32-bit base os23:47
lifelesslxc.arch = i68623:48
lifelessadd that to your config file23:48
wallyworld_lp still runs up ok for simple smoke testing. i guess codehosting stuff may be broken without fuse23:48
* wallyworld_ fires up vi23:48
wgrantwallyworld_: Codehosting works fine without fuse.23:49
wallyworld_so what part of lp needs it?23:50
lifelessAFAIK nothing23:50
wgrantwallyworld_: The test suite passed for me except for a rabbit startup failure (probably because I changed the hostname without fixing /etc/hosts) and a few mailman tests that are an aufs bug.23:50
lifelesshowever the stack of things for e.g. windmill and so on may well23:50
wgrantwallyworld_: Nothing. It's just Recommended by one of the LP dependencies.23:50
lifelesswgrant: you ran w/out fuse?23:50
wgrantlifeless: Yes.23:50
wallyworld_as am i since i couldn't instal lit :-)23:51
wgrantI couldn't either.23:51
lifelessright23:51
lifelesswe may want to disable recommends in rocketfuel-setup regardless23:51
wallyworld_would be a lot quicker to run - fae less downloads23:52
wgrantIndeed.23:52
wgrantI've wanted to do so for months, but the review overhead always made me think twice.23:52
wallyworld_i also had to install aptitude by hand since rocketfuel used that by default23:52
wallyworld_not sure why23:52
wallyworld_whereas apt-get works just fine23:53
wgrantIt shouldn't any more...23:53
wallyworld_since when?23:53
wallyworld_ah, i was likely using an old copy23:53
wgrantPossibly, if you copied across your original version.23:53
wgrantIt certainly uses apt-get now.23:53
wallyworld_yeah, my fault23:54
wgrantlifeless: So, what kind of hardware are pilinut and pigeonpea?23:54
lifelessFIIK23:55

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