/srv/irclogs.ubuntu.com/2012/06/25/#launchpad-dev.txt

StevenKwallyworld_: Can you QA r15475 soonish?01:50
* StevenK stabs Python process handling.02:14
wgrantStevenK: What are you doing and why?02:15
StevenKwgrant: Trying to debug AuditorFixture._stop()02:16
wgrantAh, that.02:16
lifelessStevenK: SIGPIPE again ? :>02:17
StevenKlifeless: Already SIG_IGN'ing PIPE02:17
StevenKIt drops out of _stop() without actually killing the process.02:18
cjwatsonI've QAed r15480; it has problems which mean the new API isn't usable, which I'll work on tomorrow, but as far as I've been able to determine there are no regressions in existing functionality, so I marked it qa-ok.  Feel free to check my reasoning in bug 334858.02:36
_mup_Bug #334858: Require a way to copy [P]PPA packages into Ubuntu <lp-soyuz> <qa-ok> <Launchpad itself:In Progress by cjwatson> < https://launchpad.net/bugs/334858 >02:36
wgrantcjwatson: Right, sounds good. That usually means a missing commit, indeed.02:37
wgrantSince you can't read back an LFA's content unless it's been committed.02:38
cjwatsonToo much to hope that I'd get it all right in one go.  I wonder how delayed-copy processing manages to get it right, since I can't see a commit there.  Maybe it's implicit somewhere.02:38
wgrantDelayed copies have regressed in that respect once or twice02:39
wgrantI forget how it works02:39
cjwatsonMaybe it works because delayed copies get hold of the changelog manually rather than going through the SPR.02:40
cjwatsonAs in, from the .changes, which PCJs can't do.02:41
wgrantAh, yes, that would be it.02:41
wgrantBut some aspect of delayed copies sometimes tried to read it back02:42
wgrantAnd died02:42
wgrantPossibly rejection02:42
wgrantCan't quite remember02:42
wgrantAnyway, thanks for QAing02:42
cjwatsonClearly means I need to add a test for the PCJ as well as the PackageCopier path, anyway.02:42
cjwatsonGrumble.02:42
cjwatsonI suspect also I need to do pocket queue admin permissions before we can kill unembargoing and the ubuntu-security celebrity, since doing it with PCJs means their uploads will all wind up in unapproved.02:45
wgrantIndeed. That's going to be a little awkard on +queue, I suspect, but shouldn't be too much effort.02:45
wgrantHm, actually.02:46
wgrantHow's that going to work at all02:46
wgrantBecause they'll still be private..02:46
cjwatsonIn the queue it'll just be a suspended PCJ02:47
wgrantYeah02:47
wgrantHopefully it won't break when it tries to access its attributes.02:48
cjwatsonOh, I hope it doesn't need to ... yeah, that02:48
cjwatsonI think it's OK.  The attributes all come from the PCJ's metadata dict or similar.02:50
wgrantGreat.02:51
wallyworld_StevenK: sorry, was at locksmith, qa done now03:05
StevenKwallyworld_: More mailbox trouble? :-)03:05
wallyworld_StevenK: yes, bloody keys i got didn;t fit, i had to break in and rip off the front flap and tale it all in03:06
wallyworld_the lock turned out to be a cheap chinese version and there are no key blanks here03:06
StevenKwallyworld_: Ah, so you were so desperate for the phone cover that you broke into the mailbox. :-)03:10
wallyworld_StevenK: that arrived last week and i had to use a coathander to hook the package and lift it out03:10
StevenKNow that is desperation.03:11
wallyworld_yep03:12
StevenKlifeless: This is incredibly frustrating. :-(04:08
StevenKSigh. self.process.wait() returns immediately, but the process isn't dead.04:31
lifelessStevenK: sorry, context switching04:32
lifelessso whats up ?04:32
StevenKlifeless: fixture._stop() is supposed to kill bin/auditor-manage.04:33
lifelessdoes auditor-manage fork or something ?04:36
StevenKI doubt it04:36
StevenKIt's the usual 'python manage.py runserver' which is used for development, so I'd be very surprised if it does.04:37
lifelessok04:37
lifelessso the code looks reasonable04:37
lifelessserver.poll() is None implies has not exited.04:37
lifelesserm04:37
lifelessprocess.poll()04:37
lifelessStevenK: what do you see happen ?04:38
lifelessStevenK: have you tried using pdb and stepping through it ?04:38
StevenKlifeless: I've tried printf debugging, which hasn't been much help.04:39
lifelessdo you want video + debug help?04:39
lifelessright now I don't know what you've learnt.04:39
lifelessso I'm starting cold.04:39
StevenKlifeless: Today I've learnt that 1) I either don't understand process workflow under Unix or this thing is misbehaving, 2) I feel like I've wasted today on it. :-)04:40
lifelessthe day isn't over.04:41
lifelesslets free our hands for actual examination: skype or g+ ?04:41
StevenKlifeless: Would you mind looking sans Skype/G+ for 10-15? I've just taken Advil for a headache.04:41
lifelessnot at all04:41
lifelessso, tell me a) how to reproduce and b) all that you have learnt.04:42
lifelessis your code up online etc.04:42
StevenKlifeless: Just pushed auditor04:43
lifeless?win 8504:43
StevenKlifeless: auditorfixture updated04:46
StevenKlifeless: Easiest way to reproduce is run the testsuite. One test will fail, but if you look at ps aux afterwards you'll see two auditor-manage's hanging around.04:51
StevenKlifeless: What I have learnt is that the _stop() method does get called, and it does call self.process.terminate(), and the next time around the loop self.is_process_up returns False and it exists, but the process is still running.04:52
StevenKs/exists/exits/04:52
lifelessok04:53
lifelessso lets get some more details04:53
lifelessStevenK: so, I'm putting a breakpoint in _stop. And running the test suite04:57
lifelessStevenK: so it gets terminated via SIGTERM04:58
StevenKlifeless: Are the processes still running, though?04:59
lifelessStevenK: but nothing is reaping it04:59
lifelessso it sits defunct04:59
StevenKBut Python should catch the SIGCHLD and reap it?05:00
lifelessno05:00
lifelessnot AFAIK05:00
lifelessalso05:00
lifelessyou may well be running into a signal handling race condition05:00
lifelesslets see05:00
StevenKI thought the entire point of subprocess was abstract out this mess. :-P05:01
lifelessbut let me check the code a bit more05:01
lifelessStevenK: so, its kill the process, reliably.05:05
lifelessStevenK: compare:05:05
lifeless :!bin/test05:05
lifelessRunning zope.testrunner.layer.UnitTests tests:05:05
lifeless  Set up zope.testrunner.layer.UnitTests in 0.000 seconds.05:05
lifeless2389005:05
lifelessthats the pid05:05
lifelessthen05:05
lifeless2389005:05
lifeless2389405:06
lifeless2389405:06
lifeless(twice through apparently)05:06
lifelessbut05:06
lifelesscompare the leaked processes:05:06
lifelessrobertc  23895  5.7  0.2 206692 19168 pts/10   Sl+  17:05   0:00 /usr/bin/python /home/robertc/source/launchpad/auditorfixture/working/auditorfixture/tests/../../bin/auditor-manage runserver 999905:06
lifelessrobertc  23891  5.7  0.2 206692 19164 pts/10   Sl+  17:05   0:00 /usr/bin/python /home/robertc/source/launchpad/auditorfixture/working/auditorfixture/tests/../../bin/auditor-manage runserver 5128405:06
lifelessnote the pids are one out05:06
StevenKWhich means it probably did fork05:06
lifelessrobertc  23918 17.6  0.1  61964 15036 pts/10   S+   17:06   0:01                      \_ /usr/bin/python -S bin/test05:07
lifelessrobertc  23919  1.6  0.1  52288 15740 pts/10   S+   17:06   0:00                          \_ /usr/bin/python -S /home/robertc/source/launchpad/auditorfixture/working/auditorfixture/tests/../../bin/auditor-manage runserver 4799705:07
lifelessrobertc  23920  2.8  0.2 206688 19156 pts/10   Sl+  17:06   0:00                              \_ /usr/bin/python /home/robertc/source/launchpad/auditorfixture/working/auditorfixture/tests/../../bin/auditor-manage runserver 4799705:07
lifeless^ you need to be way more paranoid.05:07
StevenKIt double fork()'s? :-(05:07
lifelessparanoid about assuming I think I mean05:09
lifelessanyhow, yes, it looks like it does.05:09
lifelesswell, something does.05:10
StevenKSingle fork() should be dealt with fine because it will be the same process group, but a double fork is not, from memory.05:11
lifelessif we signal the process gorup05:13
lifelessby (IIRC) doing -pid05:13
lifelessnah05:19
lifelessthe pgroup they are in is the teset servers group05:19
lifelessbecause we're not making one when we spawn05:19
lifelessshould be easy to fix, one sec05:20
StevenKlifeless: I really don't want to call os.setsid() in the fixture ...05:20
StevenKlifeless: It wasn't so easy?05:27
lifelessStevenK: lp:~lifeless/auditorfixture/pgrphandling05:29
lifelessStevenK: it was, Lynne got home05:29
StevenKAh, heh.05:30
* StevenK looks.05:30
StevenKlifeless: Bah, and you do end up using os.setsid() :-)05:31
lifelessof course05:32
lifelessbut, it works05:32
lifelessand doesn't leak defunct processes like a sieve05:32
StevenKWhich was the entire point of the exercise05:33
lifelessit was leaking defunct *and* live ones before05:33
lifelessthis is twice as much betterness ;)05:33
lifelessStevenK: HTH, -> dinnery stuff, will ping later to see how you went05:34
StevenKlifeless: Aye05:34
BrooklynHello, I have deployed launchpad. But I can't register new user now. Could anyone give me some hints?06:47
StevenKlifeless: HAH. Now I have to put django into download-cache06:49
wgrantBrooklyn: The testopenid provider that Launchpad dev instances use doesn't support registration. You'll need to point it at a proper OpenID provider.06:56
wgrantlifeless: Bah06:56
Brooklynwgrant: Thanks for your reply.07:02
wgrantlifeless: So it turns out that bugsummary queries for source packages are a hundred or so times slower than they need to be.07:06
wgrantlifeless: There's no usable index starting with (distribution, spn).07:06
wgrantlifeless: So eg. the stats portlet falls back to (distribution, status) then filter on that07:06
wgrantetc07:06
lifelesscool07:07
wgrantlifeless: Was this a deliberate decision, do you recall?07:08
lifelessno, oversight07:08
wgrantGreat, thanks.07:08
lifelessit was intended to index all the use cases to be fast07:08
wgrantJust wanted to check you didn't find some horrid postgres terribleness07:08
lifelessnot that I recall07:09
wgrantNow the rebuild is a little faster :)07:10
=== matsubara-afk is now known as matsubara
czajkowskimorning08:01
=== almaisan-away is now known as al-maisan
czajkowskiwgrant: is it possible to properly remove a ppa instead of seeing a message ppa is deleted?09:23
wgrantNot at present09:24
czajkowskiis it possible to re enable it once it's deleted?09:25
wgrantUm09:25
wgrantSort of09:25
wgrantIf they go to +edit and click the Enabled and Publish checkboxes it will mostly work09:25
czajkowskiah ok09:25
wgrantBut it's best to tell the users to build a time machine and not delete things that they don't want deleted.09:26
czajkowskiwell this is true :)09:26
czajkowskibut at least I can now asnwer people who have yet to build a tardis :)09:26
czajkowskiwgrant: cheers09:26
lifelesscould someone lp-land https://code.launchpad.net/~lifeless/launchpad/sourcecode-meta/+merge/111527 for me? _still_ haven't sorted my landing story. I know, I suck.09:38
jelmerhi lifeless09:39
jelmerlifeless: lp-land rather than ec2 land?09:39
lifelesshave a look at the branch, and make your own mind up :)09:39
jelmerheh, okay.. still waiting for the diff to come up :)09:39
wgrantIt won't09:39
wgrantIt timed out days ago09:39
* jelmer grumbles09:40
jelmerlifeless: anyway, I'll land once I manage to extract a diff09:40
lifelessjelmer: :>09:42
lifelessjelmer: thanks, appreciated!09:42
Brooklynwgrant: I am not familiar with zope. Is there any document about how to point testopenid to an openid provider?09:47
wgrantBrooklyn: This is all LP-specific stuff, not Zope. It's easiest to set vhost.openid.hostname in the launchpad-lazr.conf of the config that you're using, then change launchpad.openid_provider_vhost from 'testopenid' to 'openid'09:49
Brooklynwgrant: Thank you so much :) I will try that09:50
cjwatsonbac,wgrant: Could you have a quick look over https://code.launchpad.net/~cjwatson/launchpad/pcj-reupload-fix/+merge/111804 for me?  Should fix last night's QA failure.10:01
wgrantcjwatson: Looking10:01
wgrantI think the bac is a lie.10:02
cjwatsonI thought so too, but you never know10:02
wgrantcjwatson: Hmm10:03
czajkowskihttps://dev.launchpad.net/ReviewerSchedule10:03
wgrantcjwatson: I wonder if we can detect if we're in a webapp request and die violently there.10:03
wgrantsince committing the in middle of a webapp transaction is a less than good idea.10:03
cjwatsonMm, I did wonder what the rules for that were10:04
wgrant"don't"10:04
cjwatsonI suppose it might also be possible to extract the changes from the restricted file and pass those into notify10:04
wgrantThe librarian sometimes makes it challenging, unfortunately.10:04
wgrantRight10:04
wgrantOr you could commit after the copy and before the notify10:04
cjwatsonThere's an argument that that might be safer10:05
wgrantBut in the caller.10:05
wgrantI forget where that is.10:05
wgrantTryue.10:05
cjwatsonIt's only one level up, in do_copy.10:05
Brooklynwgrant: I use login.ubuntu.com and finally it works!! Thank you so much!10:05
wgrantBrooklyn: Excellent!10:05
cjwatsonI didn't think moving it up there would be desperately useful, and it would make it harder to tell whether it's necessary due to unembargoing.10:05
wgrantIt's awful either way.10:06
cjwatsonExtracting the changes content isn't exactly a one-liner right now.10:07
wgrantAwful but possibly necessary :)10:08
cjwatsonThough we don't need changesfile_content in this case, which helps.10:09
cjwatsonwgrant: Wait, isn't notification mail queued until the transaction is committed?  I could notify first and *then* update privacy.10:16
wgrantcjwatson: Sneaky and mildly evil, but probably quite effective.10:16
cjwatsonThat would still involve a bit of rearrangement but should be way easier.10:16
=== al-maisan is now known as almaisan-away
cjwatsonwgrant: Have another look?  I think that should be better now ...10:54
wgrantcjwatson: Looks good, thanks.11:17
=== matsubara is now known as matsubara-lunch
bacmatsubara-lunch: ping me when you get back, please.11:47
czajkowskibac: good morning :)11:52
bachi czajkowski11:53
lifelessnight11:57
=== matsubara-lunch is now known as matsubara
matsubarabac, hi12:02
bachi matsubara.  did you want to talk at 1230UTC or 1430?12:03
matsubarabac, hey, just replied to your email. let's do 1430 as I have the team stand up in 40min12:04
bacmatsubara: works for me.  thanks!12:04
matsubarabac, de rien12:04
StevenKjelmer, lifeless: I think the change you did/landed broke buildbot.12:07
StevenKjelmer: I think http://pastebin.ubuntu.com/1058978/ will fix it, can you investigate?12:09
cjwatsonIt broke EC2 too.12:12
cjwatsonWell, ec2 land.12:12
StevenKYeah, utilities/update-sourcecode does not like blank lines in sourcedeps.conf12:13
StevenKWhich lifeless added12:13
cjwatsonMaybe http://paste.ubuntu.com/1058982/ to preserve LoC; just as clear I think12:14
StevenKcjwatson: But that doesn't work either12:15
cjwatsonEr, that's precisely equivalent to your patch12:15
StevenKif line == '\n' or ...: does12:15
StevenKcjwatson: Yes, the patch was untested at that point. :-)12:15
StevenKmake worked fine, it took a little longer to realise this step was before it.12:16
cjwatsonAh yes.  I usually use "line = line.rstrip('\n')" at the start of loops for that kind of thing.12:16
StevenKIt's an ugly hack, but let me land it.12:17
StevenKIt's clear that sourcedeps is deprecated and lifeless has an eye to remove the whole kit and caboddle at a later date.12:17
wgrantif not line.strip(): continue12:18
StevenKwgrant: Does not deal with comments.12:18
cjwatsonBit surprised that failure to strip \n doesn't cause other problems.12:18
StevenKcjwatson: The function calls yield line.strip() after that12:18
cjwatsonNo, it calls yield line.split()12:19
cjwatson>>> "foo\tbar\n".split("\t")12:19
cjwatson['foo', 'bar\n']12:19
StevenKAh, hmmm12:19
cjwatsonOh, but split() with no args is magical12:19
cjwatson>>> "foo\tbar\n".split()12:19
cjwatson['foo', 'bar']12:19
cjwatsonFair enough12:19
StevenKI guess it counts \n as whitespace12:20
StevenKlifeless: Your failure to test that comment change in sourcedeps.conf means you owe me a beer. :-P12:23
StevenKcjwatson: Fix landed, ec2 should now be happy again.12:24
cjwatsonYay12:25
jelmerStevenK, wgrant: Sorry, we had just headed out to lunch here :(12:48
jelmerThanks for picking up the pieces12:48
=== jtv1 is now known as jtv
rick_h_wallyworld_: thanks for the reply13:00
wallyworld_rick_h_: np. did it make sense?13:01
wallyworld_thanks for taking a look also13:01
rick_h_yea, I remember that issue and didn't think about it while reading over13:01
wallyworld_rick_h_: once we have all the js out of the tal and everything in the combo loader done, it won't be an issue i don't think13:02
rick_h_I need to blank out some time to go over the picker stuff at some point. You'd think between your stuff and jcsackett's stuff I'd 'get' it by now13:02
wallyworld_rick_h_: that stuff is "interesting" to say the least. i'd love to know the thought process behind how it was originally done13:02
rick_h_wallyworld_: yea, was going through the YUI3 cookbook and the idea of YUI blocks loading additional modules lazy-loaded seems interesting for stuff like this13:02
rick_h_I wonder if some sort of master "UI builder" would help us combine TAL blocks and keep things in one use() block without loading all our JS at once13:03
wallyworld_not sure. now that we have the core stuff all done, we can tackle these edge cases13:04
rick_h_yea13:04
wallyworld_we still gotta make dev use raw instead of min though13:04
rick_h_wallyworld_: ah, yea you know what, I'll try to get something in for that today if I can. I might have some slack time for that13:05
wallyworld_rick_h_: it's also been on my todo list but too litte spare time :-(13:06
wallyworld_rick_h_: something i just discovered - if i have an widget attribute eg my_form: {value: Y.Node.create('<form/>')}, the attr is only inited once and all new Y.mywidget() instances have the same attr value13:09
wallyworld_i have to construct the attribute vale in the initialiser13:10
rick_h_wallyworld_: right, you need to use a valueFn13:11
rick_h_it's like using a mutable default for a method in python13:11
wallyworld_ah of course. i forgot that. i've used a valuefn previously. thanks13:11
rick_h_np13:11
rick_h_yea, been bit myself with that sometimes. You want to do it, but makes sense as it's only created once on JS parse stage13:11
wallyworld_yeah. i just plain forgot. my brain is too full with everything13:12
=== benji changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: benji | Firefighting: - | Critical bugs: 3.47*10^2
cjwatsonbac: Are you still looking at https://code.launchpad.net/~cjwatson/launchpad/copy-custom-uploads/+merge/111653 ?  It looks like you claimed a review there a few days ago13:35
baccjwatson: i did claim it but then signaled my intent to give it up by adding the review team back13:36
baccjwatson:  i guess i should have voted abstain13:36
cjwatsonAh, I missed that subtlety13:37
baccjwatson: abstained now.  sorry i was able to get to it.13:37
cjwatsonNo problem.13:39
cjwatsonbenji: ^- Do you think you might be able to pick up that one?  I'm trying to make gradual progress on a sort of semi-overlapping chain of stuff, and that one would be nice to get out of the way both to unblock other things and on its own merits.13:40
cjwatsonI know it's a pretty soyuz-heavy branch13:41
benjicjwatson: sure13:41
benjicjwatson: your branch looks good13:50
cjwatsonbenji: Thanks!  If I may have Status: Approved then I can land that13:58
cjwatsonAnd hopefully delete a swathe of ugly documentation13:59
benjicjwatson: you can (and IMO) should do that yourself as it is the signal that everything about the MP that needs to be approved has been and only you know that.  I approved the code, but there may be UI elements or other things that need review (like back in the day when we had seperate JavaScript reviews).14:00
cjwatsonbenji: I can't, because I'm not in launchpad-reviewers.14:01
benjicjwatson: then I suck ;)14:01
cjwatsonI understand the model, but I break it by being !~launchpad-reviewers but having PQM access. :-)14:01
benjicjwatson: done14:02
cjwatsonI believe lifeless thinks it ought to be possible to add non-Launchpadders to that team ...14:02
cjwatsonSo yeah, right now I just have to ask, sorry.  Thanks14:02
cjwatson(Maybe I mean ~canonical-launchpad-committers)14:03
* cjwatson finds the mail about that and goes to reply, to see if he can sort this out more permanently14:08
bachi matsubara.  is now good?  if so i'll create a hangout14:30
matsubarabac, yep. let me grab my headset and something to drink14:31
matsubarabac, ready whenever you are. just send me the link please.14:32
bacmatsubara: sent you an invite14:32
replaceafillsinzui, i have a couple of questions about what's left in LP: #21082114:58
_mup_Bug #210821: bug tracker list shows inactive projects <404> <bugwatch> <lp-bugs> <oops> <qa-ok> <trivial> <Launchpad itself:In Progress by replaceafill> < https://launchpad.net/bugs/210821 >14:58
replaceafillsinzui, actually, the duplicated one (which i didn't notice before) LP: #85788814:59
_mup_Bug #857888: Deactivated projects shown on BugTracker:+index <404> <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/857888 >14:59
replaceafillsinzui, here's a diff with the fix: http://pastebin.ubuntu.com/1059175/14:59
sinzuiI recall it15:00
replaceafillsinzui, my question is that the current code uses projects + products15:00
replaceafillwhile the IBugTrackerSet.getPillarsForBugtrackers returns products + projects15:00
sinzuihmm15:01
replaceafillwhat would be best? to change the current portlet code15:01
sinzuiWe prefer to return small to large, so product, project-group, distro15:01
replaceafillah15:02
replaceafillso i could change the porlet to return that order15:02
replaceafilland getPillarsForBugtrackers already does it15:02
replaceafillsinzui, my second question is, how do you test that in a functional test?15:03
sinzui+1 for the code fix15:03
replaceafilli mean, how do you test the order in the test15:04
replaceafillis there any way to get the contents of the testbrowser and say "get me all links in this div"?15:05
sinzuireplaceafill, We want a new testcase  in lp/bugs/browser/tests/test_bugtracker.py that tests the view's attr.15:05
replaceafillah ok15:06
replaceafilli thought i needed to test the returned html :)15:06
sinzuiWe can either reproduce a similar setup of your previous test...15:06
replaceafillsinzui, ah ok15:06
replaceafillsinzui, i'll work on that and show it to you later15:07
sinzuior we mock out getPillarsForBugtrackers() in the test and verify it was called15:07
replaceafillsinzui, i'll go with copying my previous setup15:07
sinzuireplaceafill, make me the reviewer when you are ready since I already understand why the first branch did not fix the UI situation15:10
replaceafillsinzui, ah ok, will do15:10
=== Ursinha` is now known as Ursinha
=== Ursinha is now known as Guest89684
sinzuireplaceafill, this is a sketch of the test I would have written to verify the view differs to the the tracker set: http://pastebin.ubuntu.com/1059206/15:20
replaceafillah, mocking :)15:21
replaceafillcool, i'll use that then15:21
sinzuiI prefer this kind of test because changes to the set's method means I need to update the set's test and the views test15:21
replaceafillah, got it15:22
=== Guest89684 is now known as Ursula
=== Ursula is now known as Ursinha
=== deryck is now known as deryck[dentist]
=== beuno is now known as beuno-lunch
=== beuno-lunch is now known as beuno
cjwatsonbenji: Oops, I have a test failure in copy-custom-uploads.  Does http://paste.ubuntu.com/1059344/ look OK to you on top of that (that's in [initializedistroseries])?  That fixes the test here.16:50
* benji looks.16:51
=== salgado is now known as salgado-lunch
benjicjwatson: yeah, looks fine; DB security has tripped me up on a couple of occasions too16:51
cjwatsonRight, thanks.  I think I'll kill the current test and send this through.16:55
=== salgado-lunch is now known as salgado
=== deryck[dentist] is now known as deryck
rick_h_gary_poster: do you know off the top of your head what gtk-items are needed for the python-html5-browser for JS tests?18:55
sinzuirick_h_, the standard gtk setup18:55
rick_h_gary_poster: sorry, I nmean in LXC that is18:55
rick_h_sinzui: ok, was curious of the yellow guys had a shortlist of deps for that since the tests are running in lxc as well18:56
gary_posterrick_h_, oh.  I think this would be a sinzui question. the lxc aspect should basically mean its like trying to make it work in Ubuntu server18:56
gary_posterrick_h_, well...we add the launchpad-deps18:57
rick_h_ok, yea I've got those, but getting an error "RuntimeError: Gtk couldn't be initializ"18:57
rick_h_for the js tests from the container so assumed the normal setup is expecting some basic gtk packages to be there that steting up an lxc container leaves out18:58
gary_posterwhich ends up adding what we need there.  Like I said, there's nothing specific to the LXC story I can think of there.  Ah rick_h_ I might have a cure for what ais you.18:58
gary_posterails, even18:58
gary_posterrick_h_, first, you are using xvfb-run, right?18:58
rick_h_well starting out just by doing:  ./bin/test -x -cvv --layer=YUITestLayer18:59
rick_h_that's what I've done in the past to run just JS tests.18:59
gary_posterrick_h_, no, that's not good enough I'm afraid.  That's not an lxc thing, it is a server with no X running thing18:59
rick_h_ah ok18:59
gary_posterso, if you look in the tree...18:59
gary_posterwell, all you *have* to use you can find in the current .testr.conf: xvfb-run ./bin/test [other options]19:01
gary_posterthere's a more "careful" spelling we use for the tests19:01
gary_posterxvfb-run --error-file=/var/tmp/xvfb-errors.log --server-args='-screen 0 1024x768x24'  -a bin/test blah blah blah19:02
gary_posterthe --error-file is the least important19:02
rick_h_ok cool, yea I see that in the test_merge file19:02
rick_h_test_on_merge that is19:03
gary_posterrick_h_, that's server specific.  there is one lxc bug unfortunately19:03
gary_posterthat affects this19:03
gary_posterlemme get that detail19:03
lifelessStevenK: I asked jelmer to make an informed decision ;)19:03
rick_h_ok thanks. I assumed it was a lxc issue19:03
lifelessStevenK: so I will cheerfully a) disclaim all responsibility and b) buy you a beer anyhow.19:03
gary_poster(we have a script that sets up all of this for you, but it is not ready for devs yet)19:04
rick_h_understood, I really just want to make sure I didn't break the JS test runner atm, so if only a single test can run I'll be happy19:04
gary_posterrick_h_, so, here's the pertinent code.  http://pastebin.ubuntu.com/1059579/19:06
gary_posterbasically it is saying that in the fstab file for the lxc instance,19:06
gary_posteryou need to add what is in line 719:07
gary_posterfor bug 97458419:07
_mup_Bug #974584: Semaphores cannot be created in lxc container <paralleltest> <patch> <rls-q-incoming> <Launchpad itself:Invalid> <lxc (Ubuntu):Fix Released by serge-hallyn> <sysvinit (Ubuntu):Triaged> <lxc (Ubuntu Precise):Fix Released> <sysvinit (Ubuntu Precise):Triaged> <lxc (Ubuntu Quantal):Fix Released by serge-hallyn> <sysvinit (Ubuntu Quantal):Triaged> <sysvinit (Debian):New> < https://launchpad.net/bugs/974584 >19:07
gary_posterrick_h_, restart the lxc after you make that change19:07
rick_h_orly, ok thanks19:08
gary_posterIf it doesn't work with xvfb-run and that workaround, I dunno, but you can feel free to ask me again :-)19:08
rick_h_I think it's working, at least I've got my first test failures so I think just hte xvfb-run got me started19:09
rick_h_ty much19:10
gary_posterwelcome19:10
lifelesscjwatson: whats your lp username?19:15
czajkowskisinzui: you're on a role!19:54
sinzuiczajkowski, no, my script is. I need to clean up bug data to tell stakeholders why a squad has work on disclosure for a year and still not delivered sharing or private projects19:55
czajkowskisinzui: but you are close and have done a good job it's not an easy task a  lot of areas to make happy19:56
sinzuiczajkowski, I am not close.19:57
sinzuiThere is a caustic streak of optimism at Canonical that misleads everyone into thinking we are always a few months away.19:58
sinzuiI currently believe we are 5 months away from delivering disclosure, which is 3 months longer than stakeholders have been told, and more than a year longer than they hoped we would take after a year of saying we would do it19:59
czajkowskisinzui: ok but 5 is better than 8 and no point in saying 3 as if you say that and it's not tested or still has issues then people tend to get more upset, this way if you deliver before the 5 then people are happy, as i said it's a large project with many areas to keep happy20:02
lifelessheh20:02
sinzuiczajkowski, I cannot prove what I say. When someone asks me what percentage is done. I cannot answer, I cannot even guess20:02
sinzuiI cannot even summarise all the phases of work someone can see why there is an order and doggedly slow pace to delivering private projects20:06
lifelesssinzui: do you have a gut feel - underestimated? lots of waste? lots of friction? poor cycle times?20:08
czajkowskisinzui: frustrating I know really, but I do feel you're doing a great job, and you blog posts are very good and they explain the things that are changing and what is coming next20:09
sinzuiunder estimating is the primary cause. Edge cases, secondary use cases, hardening, removal of obsoleted code was often forgotten20:09
lifelesswould it have helped to resource and implement much smaller slices20:10
lifeless?20:11
sinzui^ lifeless. churn is less of a communication problem.20:11
sinzuilifeless, yes, and doing them in the proper order or in parallel20:11
sinzuibug linking should have started after picker 10 months ago20:11
sinzuilifeless, Even cases like discovering we had to hard objects and reconsider social private teams were always something that could have been done by other teams.20:13
sinzuiWell I guess those cases were not discovery. We did know about them, we just did not know scope so we ignored them until it hurt20:14
=== matsubara is now known as matsubara-afk
cjwatsonlifeless: cjwatson20:26
lifelesscjwatson: with great power comes great...20:28
lifelesswell you know20:28
cjwatsoncheese?20:28
lifelessentertainment?20:29
cjwatsonvoltage20:29
cjwatsonthanks anyway :)20:30
lifelessrock n roll20:30
lifeless(ac/dc)20:30
* cjwatson attempts to land copy-custom-uploads for about the sixth time today; this is cursed20:32
czajkowskicjwatson: you do work long days20:33
lifelessczajkowski: welcome to Canonical20:33
lifelessczajkowski: we're a fun company of individuals.20:33
cjwatsondon't confuse elapsed time with actual time spent working though20:33
czajkowskilifeless: ah ye are really, why else do you think I stuck around for so long to find a way in ;)20:34
czajkowskicjwatson: true20:34
cjwatsonczajkowski: Also I find that LP's long EC2/buildbot cycles plus deployment schedules plus QA means that if I want to get work landed at the optimal speed then the best way to do it is to work skimming-stones-on-a-lake kind of hours20:37
czajkowskicjwatson: ah so you do have a method t the madness :)20:37
lifelesscjwatson: yes, OTOH that is getting fixed. Its tough shit though :)20:38
cjwatsonsuits the new-parent lifestyle well enough though20:39
lifelessindeedy20:39
cjwatson(well, new-baby not new-parent, but it comes out the same way)20:40
lifelessman, cynthia is teething right now20:40
cjwatsonyeah, that's no fun20:40
lifeless4 hours sleep last night for me :<20:40
lifeless</whinge>20:40
cjwatsonandre is vaguely considering the notion of solid food20:40
czajkowski:/20:40
lifelesscjwatson: in a positive or not fashion?20:40
cjwatsonit's all right, bit earlier than we expected him to have a go but not a problem.  he's not really got into it properly, just vaguely flailing at stuff and occasionally a bit reaches his mouth20:41
cjwatsonbut clearly on the road to figuring it out20:41
lifelessexcellent20:41
lifelessthats better than nononononono I don'twanna. (mimed, of course)20:42
cjwatsonyeah, we do baby-led weaning so not much of that with food.  although plenty with other stuff ;-)20:42
lifelessus too, but we've heard horror stories ;)20:42
cjwatsonjudith nearly got killed on the road today though, kirsten came back shaking :-(20:43
cjwatsongot away from her and started running20:43
cjwatsonshe reached her one step before the road20:43
czajkowski:o20:44
czajkowskicjwatson: scarey I'm sure20:44
lifelesscjwatson: yeepers20:49
=== benji changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: - | Firefighting: - | Critical bugs: 3.47*10^2
cjwatson2012-06-25 21:21:22 DEBUG   process-upload ran in 5.889692s (excl. load & lock)21:40
cjwatsonevery time I read that kind of output I want it to say "lock & load"21:40
=== salgado is now known as salgado-afk
rick_h_wallyworld_: looks like the non-min js landed a min ago. Give it a shot if you get a sec please.23:02
wallyworld_rick_h_: awesome, thanks!23:03
rick_h_wallyworld_: also note the second item here: https://docs.google.com/a/canonical.com/document/d/1jvZw_F8P0wXIxeNSpcEOpZbWqO0MSRZpn5Q3N2Mdcb8/edit23:03
wgrantsinzui, wallyworld_: https://github.com/mattdiamond/fuckitjs/23:03
rick_h_wgrant: :)23:03
rick_h_wallyworld_: it's in a lot of the picker stuff in case you're still tinkering in there23:04
wallyworld_rick_h_: yeah, i saw the naughty way of doing it a lot in the code and probably cargo culted it believing it was ok23:06
rick_h_wallyworld_: yea, all good. Easy fix, but want to get the word out.23:07
wallyworld_thanks, appreciate the heads up23:07
wallyworld_rick_h_: works great \o/23:22
wallyworld_rick_h_: you should send a post to the dev list so there can be much rejoicing23:23

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