/srv/irclogs.ubuntu.com/2010/10/14/#launchpad-dev.txt

=== Ursinha-bbl is now known as Ursinha
* poolie might try to finish my dkim branch00:07
poolieoh, poo, codehosting i guess is entirely off line00:08
mtayloryup00:15
* mtaylor once again annoyingly renews his objection to making launchpad completely unusable for 2 hours in the middle of the afternoon for the US west coast in the middle of the week00:15
pooliei know, it's crazy00:17
pooliealso, i don't see any good reason why you shouldn't be able to at least read branches00:18
poolieand indeed why not write to them, because they're not stored in the db00:18
pooliebut, it's getting better00:18
pooliei have trust in lifeless and co00:18
lifelessso today we had a db config issue on the readonly slave; another case where schema problems have bitten us.00:32
lifeless(the way we do schema changes, I mean)00:32
marslifeless, what server does PQM run on?00:38
lifelessprae00:38
lifelesspqm runs outside a chroot, but code from our branches runs inside the chroot00:39
marsah, darnit00:39
lifeless?00:39
marsdarnit that we are not there yet.00:40
marswith Python 2.600:40
lifelessright00:40
lifelessthere may be other gotchas00:40
marson prae? yes, maybe00:40
lifelessthe simplest thing IME is to stay compatible until we have *every possible case* covered.00:40
lifelessno shortcuts00:40
marswell, that is going to be what happens now :)00:41
bacthumper, rockstar, stub, mwhudson, stevek, lifeless, wgrant -- Review Meeting starting soon00:59
wallyworld__bac: thumper sends his apologies, but i'll lurk if that's ok01:00
bacwallyworld__: that's great.01:00
baclifeless: ping01:02
=== Chex changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 4 of 10.10 | PQM is Release-Critical; devel is closed (Release manager: EdwinGrubbs) | firefighting: - | https:/​/​dev.launchpad.net/​ | Get the code: https:/​/​dev.launchpad.net/​Getting
mwhudsonEdwin-afk: so when does devel open again? :-)01:06
lifelessbac: hi01:07
baclifeless: join us in #launchpad-meeting?01:08
wgrantStevenK: An Ohloh reimport is in process, BTW.02:23
wgranthttps://www.ohloh.net/p/launchpad/enlistments02:23
StevenKHuzzah02:24
StevenKmars: Do you have a few seconds for me to bend your ear?02:30
marsStevenK, sure02:31
StevenKmars: I keep seeing failures such as https://hudson.wedontsleep.org/job/db-devel/lastFailedBuild/testReport/junit/lp.codehosting.puller.tests.test_worker/TestWorkerProgressReporting/test_network/ keep appearing in hudson, do you have any clues?02:32
StevenKI think the same failures happen on ec2 too02:32
marslooking02:33
marswgrant, this project does amazing things for one's Ohloh Kudos rank :)02:33
StevenKmars: If that small snippet isn't helpful, there's a full console output link on the left02:33
marsStevenK, unfortunately that tells me enough.  This is Benji's error from ec2 earlier today: https://pastebin.canonical.com/38615/02:34
mars/with/ a patch I had to try and fix it02:35
marswhat's funny is the thread ID is the same02:35
marsAlways the 18th thread started02:35
wgrantmars: It does!02:36
wgrantIt looks like this import might only take a few days.02:36
marsStevenK, I am almost to the point of desperate measures to solve this.  Two thoughts: in the tearDown, enumerate all running threads, .join(3.0) on them.  Give them time to halt.02:37
StevenKmars: There are two others linked from https://hudson.wedontsleep.org/job/db-devel/lastFailedBuild/testReport/junit/ as well02:37
marsStevenK, or run something yucky like a custom tracer via threading.settrace(), then pick out whatever the heck it is that is hanging around02:37
marsStevenK, I think it might be an intermittent race condition between the zope testrunner and our test infrastructure.  I solved this once before (and forget how once again)02:38
marsStevenK, this work will probably become a priority.  When it does, you will have a fix for it.02:40
StevenKmars: Excellent. My only other concern is why does it impact hudson and ec2, but not buildbot?02:40
marsStevenK, my theory: BB servers are faster, affecting the race02:41
StevenKThat could be why many of us can't reproduce it locally02:42
marsyes02:43
StevenKmars: So it may even end up being a race in zope's testrunner, and we just happen to tickle it?02:43
marsmaybe.  The testrunner does no thread cleanup02:44
StevenKmars: That sounds like a zope fail to me02:46
wgrantWhen's devel likely to reopen?02:46
StevenKwgrant: It was going to be in an hour, but now it's 3.02:46
StevenKMore seriously, RSN02:46
marsStevenK, got to run - fwiw, the testrunner could die horribly when doing a thread.join() - unjoined threads are test garbage and break isolation02:47
marsbest leave their cleanup to the test itself02:47
marssame as leaking memory garbage02:47
marslater02:47
=== thumper changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 4 of 10.10 | PQM is open | firefighting: - | https:/​/​dev.launchpad.net/​ | Get the code: https:/​/​dev.launchpad.net/​Getting
lifelessmars: StevenK: do we know what threads they are?03:19
wgranthttps://code.edge.launchpad.net/~wgrant/launchpad/bug-655648-a-f-maverick/+merge/37820, https://code.edge.launchpad.net/~wgrant/launchpad/bug-629921-packages-empty-filter <-- can someone please land those?03:19
StevenKlifeless: Personally, I have no idea03:21
lifelessenergy invested in making that automatically determined would be of great evalue03:21
lifelessor we could just disable the check, though I know thats not terribly popular an idea.03:22
StevenKlifeless: Hudson is showing, time and again, that there is a number of them that fail the same way03:25
lifelessUrsinha: I may be confused03:25
lifelessUrsinha: but I thought there was a report of oopses-received-today03:25
Ursinhalifeless, it's the lpnet-oops.html03:26
Ursinhasame for edge and staging03:26
lifelessUrsinha: how often does it update?03:26
Ursinhalifeless, hourly, I guess03:26
Ursinhalet me check03:26
lifelesslast updated at 11pm utc, not updated since.03:26
StevenKlifeless: Hints on where to look would be awesome03:30
lifelessStevenK: have the teardown that bitches introspect the thread objects03:30
lifelesstheres a few attributes that may be useful like name03:30
lifelessbut also whether its dameonised and if accessible the start function would be good. oh and the class, though I think we're seeing that already.03:31
mwhudsondoes anyone know if there's a bug report i can associate https://code.edge.launchpad.net/~jameinel/launchpad/lp-service/+merge/37531 with?03:32
lifelessmwhudson: yes03:32
lifelesshmm, there was.03:32
lifelessbut hell, file a new one.03:32
mwhudsonlifeless: ok, let me know the number when you have it?03:37
mwhudsonor link it, either works03:37
StevenKlifeless: Using threading.enumerate(): http://paste.ubuntu.com/512834/03:39
marslifeless, we don't know what threads they are.  That is why I am thinking of using the threading.settrace() method to find out.  My research says threads are a black box otherwise03:40
marsunless you use the thread name well03:40
StevenKmars: ^03:41
marsyes, not the most helpful thread names :)03:42
marsStevenK, didnt' think of using the imp module - would that work?03:42
marserr, inspect, not imp03:43
marsStevenK, for each thread, can you see the .__class__ method?03:43
marsattribute03:43
marsbad typing tonight03:44
lifelessmwhudson: I oculdn't find it; want to file one ?03:45
mwhudsonlifeless: ok03:46
lifelessmars: not a black box03:46
lifeless>>> t = threading.Thread(target=lambda:None)03:47
lifeless>>> t._Thread__target03:47
lifeless<function <lambda> at 0x7f75dfdd92a8>03:47
lifelesst.daemon03:47
lifelessStevenK: print those two things as well please03:47
lifeless(t.name, t.daemon, t._Thread__target)03:47
marslifeless, ah, you are accessing a private object member - clever03:51
lifeless>>> t = threading.Thread(target=lambda:None)03:52
lifeless>>> dir(t)03:52
lifelessand look03:52
lifelesswe may also want _Thread__args03:52
lifelessbut thats more likely to throw up in our face, I think.03:52
mwhudsonum03:54
mwhudsonis person search on launchpad completely horked right now?03:54
lifelessyes03:54
lifelessthe huge vocab bug03:54
lifeless8.4 regression03:54
mwhudsonah ok03:54
lifelessonce Ursinha gets back to me about lpnet-oops being stale I will raise the timeout for it via flags.03:54
lifelessits probably validpersoncache03:56
lifelessbut also we've got this bizarre thing where staging is fine and prod sucks03:56
lifelesswhich reminds me, its bug fiuling time on that03:56
Ursinhalifeless, so.. it seems oops-tools can't find any oopses04:00
lifelessaarrrgghh04:00
UrsinhaI'm checking devapd04:01
lifelessUrsinha: are there any on disk on sodium?04:01
Ursinhadevpad04:01
Ursinhathat's what I'm checking04:01
lifelesskk, great minds :)04:01
StevenKlifeless, mars: Sorry, was afk: http://paste.ubuntu.com/512844/04:03
Ursinhalifeless, hm, I see oopses there04:03
Ursinhalifeless, /srv/launchpad.net-logs/lpnet/gandwana/2010-10-1404:03
UrsinhaI see a bunch04:03
Ursinhafor instance04:04
Ursinha34004:04
lifelessUrsinha: ok, so oopstools is broken ?04:04
lifelessStevenK: so, that tells use that that one has a bzr server04:05
Ursinhalifeless, investigating what's happening..04:05
lifelessStevenK: two threads; making the error print this extra info would be useful :)04:05
StevenKlifeless: Which I'm guessing it started and didn't tear down?04:05
lifelessStevenK: theres a few possibilities04:05
mwhudsonoh god04:06
lifelessStevenK: process_request_thread may mean that there is a half closed socket, for instance.04:06
lifelessmwhudson: been drinking ? :)04:06
mwhudsoni think this is because bzrlib's test http server implementation doesn't join() its thread04:06
mwhudsonlifeless: i wish04:06
Ursinhalifeless, are you the one that's viewing src/oopstools/oops/dboopsloader.py?04:06
lifelessmwhudson: invoking the 'oh god' :)04:06
lifelessUrsinha: no04:07
Ursinhahm04:07
StevenKmwhudson: Does that make it a bzrlib bug, then?04:07
mwhudsoneggs/bzr-2.2.0-py2.6-linux-x86_64.egg/bzrlib/tests/http_server.py:597 and thereabouts04:07
mwhudsonStevenK: 'difference of opinion' vs bug04:08
mwhudsonthat said, i thought we joined that thread in launchpad, so maybe it's something else04:08
StevenKHeh, I see that, reading the comment.04:08
mwhudsonthat's not entirely unrelated04:08
Ursinhalifeless, I see a problem here in the oops loader, have to find out how to break the lock file04:08
lifelessUrsinha: ok04:08
lifelessUrsinha: I wait with bated breath04:08
mwhudsonStevenK: you could try putting a join() in there and seeing what happens04:08
marsmwhudson, this argues for a test teardown .join() call then04:09
wgrant /win 204:09
lifelessmars: not really04:10
marslifeless, why not?04:11
lifelessmars: it argues that our test code looking for thread leaks is wrong04:11
lifelessmars: / unnecessarily strict04:11
lifelessmars: looking over the life of the whole test run should be sufficient, for instance (which is what bzrlib does, more or less)04:11
lifelessthat said, there's no reason not to join there, that comment is *almost certainly* premature optimisation.04:12
marslifeless, sorry, you lost me - no reason not to join where?04:12
lifelessCan I encourage 'you' to put a patch forward to bzr to fix this.04:12
lifelessmars: stop_server(self)04:12
StevenKAdding self._http_thread.join() to bzrlib has no effect on the output04:14
Ursinhalifeless, oops-tools are mostly matsubara-afk 's domain, I'm not sure what to do there without possibly breaking something04:14
StevenKlifeless: ^04:15
Ursinhahmm04:16
UrsinhaI guess I solved :)04:16
Ursinhaupdate_infestation is running, let's see if oops-tools loads all oopses now04:16
lifelessStevenK: we're not sure that function is being called, are we?04:17
lifelesshmm, stop_server is being called04:18
lifelessand a gc.collect() is being called04:18
lifelessat least, according to the test04:18
StevenKIndeed04:19
lifelessUrsinha: awesome, how long should I wait before trying04:19
Ursinhalifeless, no idea, I'll let you know as soon as it finishes, but shouldn't take long04:20
Ursinhalifeless, hm, something is really wrong, script output was "no infestation updated"04:21
Ursinhait's not recognizing the oopses04:21
Ursinhahmm04:22
Ursinhalifeless, the line was commented out the crontab...04:23
UrsinhaI ran that manually and it's loading the oopses04:23
Ursinhabut not sure why that was commented04:23
Ursinhahopefully it won't cause any trouble04:23
Ursinhalifeless, I ran out of ideas. It loaded 7k oopses to the database but it just cannot find it for lpnet, only edge04:32
Ursinhaedge has a partial report now, but lpnet doesn't04:32
Ursinhareport generator claims there are no oopses for lpnet04:32
Ursinhawe'll have to wait for diogo04:32
lifelessUrsinha: thanks for trying04:34
lifelessstub: hey, can we have a brief skype call?04:34
Ursinhano problem lifeless, sorry not being more helpful04:35
Ursinhagoing to eat something and sleep04:35
lifelessUrsinha: ciao04:35
=== Ursinha is now known as Ursinha-afk
stublifeless: sure04:38
stublifeless: stuartbishop04:38
lifeless https://bugs.edge.launchpad.net/soyuz/+bug/65912904:43
_mup_Bug #659129: Distribution:+ppas timeout in PPA search <timeout> <Soyuz:Triaged by julian-edwards> <https://launchpad.net/bugs/659129>04:43
marslifeless, StevenK, I tried the .enumerate() patch, but the results are nonsense.  Here is the patch, in case you see anything obviously wrong with it: http://pastebin.ubuntu.com/512867/04:46
marslifeless, StevenK, the threads are still alive at the end of the test run, after TestCaseWithTransport.tearDown(self), but the zope testrunner doesn't complain04:47
StevenKmars: Throw that at ec2 and see what happens after runs the test suite?04:51
marsStevenK, it fails locally.  It is bunk :(04:51
marsno point in running it through ec204:51
lifelessStevenK: http://wiki.postgresql.org/wiki/Postgres-XC04:59
lifelessbah04:59
lifelessstub: http://wiki.postgresql.org/wiki/Postgres-XC04:59
lifelesshttps://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1747S22705:17
lifeless^05:17
lifeless06:27 < bigjools> lifeless: https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1747S22705:17
lifeless06:27 < bigjools> the fixed query is not the one that's timing out05:17
lifeless06:28 < bigjools> I smell a problem with the ValidPersonOrTeamCache view05:17
lifelesshttps://bugs.edge.launchpad.net/launchpad-registry/+bug/65580205:18
_mup_Bug #655802: Branch:+huge-vocabulary timeout (Person and team AJAX picker fails) <timeout> <Launchpad Registry:Triaged> <https://launchpad.net/bugs/655802>05:18
lifelessstub: https://lp-oops.canonical.com/oops.py/?oopsid=1740EC78805:20
StevenK"The PostgreSQL Project finally switched from CVS to Git in September 2010"05:26
StevenKO.o05:26
lifelessstub: https://bugs.edge.launchpad.net/launchpad-foundations/+bug/66029105:40
_mup_Bug #660291: inconsistent performance between staging and prod <Launchpad Foundations:New> <https://launchpad.net/bugs/660291>05:40
lifelessstub: I've tagged all the bugs pg83; probably a little zealous, but better safe than sorry ;)06:20
stubALL the bugs??06:33
StevenK"Every bug is now tagged pg83, enjoy" ? :-)06:35
lifelessstub: all the timeout ones06:44
=== almaisan-away is now known as al-maisan
stubSo can anyone tell me why the debugging information isn't being printed at https://lpbuildbot.canonical.com/builders/lucid_prod_lp/builds/7/steps/shell_7/logs/stdio ? Relevant code is test_on_merge.py around line 80.07:12
LPCIBotProject devel build (104): STILL FAILING in 4 hr 2 min: https://hudson.wedontsleep.org/job/devel/104/07:27
lifelessstub: what debugging info are you expecting ?07:27
stublifeless: The information about the open connections that test_on_merge.py should emit around line 80.07:28
lifelessstub: if not results:07:29
lifeless            break07:29
lifelesshmm, no, that can't be triggering07:30
stubyer - I don't follow. Either it is a logic error I can't see, or buildbot is stripping the information, or it isn't on that branch.07:30
StevenKI suspect the latter07:30
lifelessthat code is in prod-devel07:31
StevenKGiven how noisy test_on_merge usually is07:31
lifelesshangon07:31
lifelessstub: thats not the code thats executing07:32
lifelessprint 'Cannot rebuild database. There are open connections.'07:32
lifeless!=07:32
lifelessCannot rebuild database. There are 1 open connections.07:32
stubahh07:32
StevenKCan we move to Hudson now? Buildbot is annoying me.07:32
lifelessStevenK: you were working on reliability - hows that going?07:33
StevenKlifeless: I got distracted by real work07:33
lifelessStevenK: fair enough07:33
lifelessstub: I don't know what code *is* running, but its not test on merge07:34
stubI can't find it in the tree07:34
stubMaybe buildbot scripts?07:34
lifelessI guess07:34
lifelessit claims its running test_on_merge07:34
stubyer...07:34
lifelessperhaps a .pyc stale issue07:35
lifelessthats the old output07:36
stubRight. Or that branch just doesn't have my patch.07:36
lifelessand now bb is down ><07:36
lifelessstub: it does07:36
lifelessstub: I've pulled and checked07:36
lifelessrev 984807:36
lifelessredoing just to be sure07:38
lifelessnope, its good.07:38
lifelesshmm, where *has* julians distribution:+ppas patch gone07:42
lifelessah, its in devel07:43
lifelessway past eod; ciao.07:44
lifelessstub: build 7 was old07:44
lifelesshttps://lpbuildbot.canonical.com/builders/lucid_prod_lp/builds/9/steps/shell_7/logs/stdio was current07:44
lifelesstill spm nuked bb07:45
StevenKMy fault07:45
wgrantCould someone be convinced to EC2 my two long-approved branches?07:48
StevenKwgrant: Oh, sorry, I meant to do that. Link me again?07:49
wgrantStevenK: https://code.edge.launchpad.net/~wgrant/launchpad/+activereviews07:50
StevenKwgrant: Rah07:50
wgrantOh?07:50
* StevenK blinks07:51
StevenK    return self._mp.queue_status == 'Approved'07:51
StevenKAttributeError: 'Entry' object has no attribute 'queue_status'07:52
wgrantThe URL is right?07:52
StevenKOh, wait07:53
StevenKwgrant: Yeah, my fault07:54
wgrantYay.07:55
wgrantEC2 doesn't hate me for the seventh time :)07:55
StevenKHm08:02
StevenKec2 still uses pg8.308:02
wgrantEep.08:02
StevenKI think we need a new machine image08:03
StevenKwgrant: You don't really care about the ec2 URLs, right?08:07
* StevenK also notes that ec2 land gets really unhappy if two copies are running08:07
StevenKwgrant: Both branches are in ec208:22
lifelessgrah we're in testfix ? :(08:42
StevenKlifeless: Only because buildbot sucks08:52
adeuringgood morning08:53
maxbheh, oops08:59
maxb"08:59
maxbInvalid stacked on location: /+branch/qbzr08:59
maxb"08:59
maxbSo whilst the ssh server understands those new URLs, Launchpad gets irked if you use them as stacking locations08:59
lifelessplease file a bug09:04
maxbfiled as bug 660358, with a bonus easter egg extra idea :-)09:11
baclifeless: still around?09:47
StevenKmars: O hai -- our ec2 images still use postgres 8.3, could you prod them up to 8.4?09:50
wgrantStevenK: Thanks.10:00
* bigjools is way behind on email10:01
allenapmrevell: Fancy looking at bug 660283?10:01
_mup_Bug #660283: Bug search pages should document valid search expressions <Launchpad Bugs:New> <https://launchpad.net/bugs/660283>10:01
* mrevell looks10:01
mrevellthanks allenap10:01
bigjoolsI'm confused.  Should we have "timeout" and "oops" on timeouts?  Or just oops?    Or just timeout?10:03
jmlbigjools: timeouts should have 'oops' and 'timeout' unless something has changed recently10:08
bigjoolsjml: I need to have a word with Rob then :)10:08
jmlbigjools: is lifeless deleting tags?10:09
bigjoolsjml: a bunch of soyuz bugs had "oops timeout" turned into "timeout" IIRC and when he added the pg83 tag the oops tag got removed.  I don't know if that's deliberate.10:11
jmlbigjools: me either.10:11
stubMight have been removed on purpose - pg83 indicates we don't have a current valid OOPS (although a number of non-db ones have got that tag too...)10:12
jmlahh, yeah, that'll be it.10:13
=== jtv is now known as jtv-afk
bigjoolsfurry muff10:13
lifelessbigjools: I'm told that timeout and oops tags are mutually exclusive10:24
lifelessbigjools: by urshina10:24
bigjoolslifeless: that seems sub-optimal to me10:24
bigjoolsI'll talk to her and see why, thanks10:25
lifelesshttps://dev.launchpad.net/LaunchpadBugTags doesn't explain10:25
lifelessthere was a different page10:25
lifelessanyhow, on my second day or so I was updating bugs with 'timeout oops' as per how I read the policy10:26
lifelessand urshina said that it was meant to be one or the other10:26
jmlbigjools: to me one seems as good as the other, just as long as we're consistent so tools can be written10:26
lifelessjml: bigjools: ah, here it is https://dev.launchpad.net/PolicyAndProcess/ZeroOOPSPolicy10:26
jmllifeless: thanks10:26
lifeless'It should be tagged with either 'oops' or 'timeout' on it.10:26
bigjoolsit doesn't say why10:27
bigjoolsand I find it useful to have both tags10:27
lifelessbigjools: It doesn't matter to me either way as long as I don't need to remember different rules for different parts of the same project10:28
bigjoolsagreed10:28
lifelessbigjools: I'd be delighted to change, if you want to bring it up with urshina/the list10:28
lifelessmy (probably faulty) recollection is that it was for qa tooling10:29
bigjoolsI find it useful to search for just one tag "oops" and get everything related.  If we don't get stuff tagged with just "timeout" it's more time-consuming, at least for me, to remember to look for the other tag too.10:29
jmlalso, someday I'm going to make that oops/timeout graph that lifeless asked me for10:29
bigjoolsheh10:29
jmlconsistent tagging will be important10:30
* bigjools totally loves PG84's psql that tells you what other tables reference your column10:43
bigjoolsstub: regarding that sql you did in the bug comment, I vaguely remember someone saying something about there being a way to check person validity directly on Person?10:44
stubbigjools: Yer - love that. Pain in the arse backtracking that stuff before10:45
stubbigjools: You need person, emailaddress and account for our current 'valid person' rules.10:46
stubbigjools: With just person, you can't tell if their account is active or if they have a preferred email address10:46
bigjoolsok10:46
bigjoolsI still need to order on person, so I need that extra crap :(10:47
stubSo my timings on current staging seem ok. lifeless got one with a 10 second query.10:48
bigjoolsI'll make another patch to try out with that changed query10:48
bigjoolssqlobj doesn't do LEFT OUTER JOIN does it :/10:51
stubI've blotted all that from my mind.10:53
bigjoolsthis is going to be tricky to change10:57
wgrantIt's not easily Stormifiable?10:58
bigjoolsno10:58
bigjoolstake a look at Distribution.searchPPAs10:59
bigjoolsit has fti stuff - last time I tried that in Storm it was a world of pain10:59
wgrantIf necessary you could just SQL() that bit.11:00
bigjoolsI could, which is what I think I did11:00
bigjoolsbut something else is nagging me and I can't remember what it was11:00
wgrantThe horrible horrible string concatenation in that method?11:00
bigjoolsheh11:00
bigjoolsthat's how it was done with sqlobj11:01
wgrantyes, but that's like so three years ago.11:01
bigjoolsI do not want to stormify this query11:01
bigjoolsnot right now anyway11:01
stubSeems the fastest approach to me11:01
wgrantIt looks easy enough to Stormify... as long as the callsites aren't braindead.11:02
bigjools...11:02
bigjoolsyou know what they say about assumptions11:02
wgrantBut this should have only one callsite.11:02
bigjoolshahaha11:02
wgrantWell, there's only one non-test callsite that cares about the result.11:03
* bigjools considers store.execute11:05
* stub ♥ store.execute()11:05
stubWhy are you ordering by Person.name anyway?11:06
stubSeems... odd...11:06
bigjoolsbecause this stuff needs to appear on +ppas11:06
stubYer, but Person.name is a very arbitrary order.11:07
bigjoolstrue but it's less arbitrary than anything else11:07
wgrantdisplayname is better.11:07
wgrantBut isn't relevance better still?11:08
bigjoolsyes11:08
stubIf you pick a field in Archive to order by, you don't have to rewrite it in Storm :)11:08
bigjoolsstub: I know, don't think I hadn't considered that :)11:08
wgrantOh, you order by relevance then name, I see.11:08
* stub changes his Person.name to 'aaaaaaaaaaaaaaaa_stub'11:09
bigjoolsI could order by relevance, then ppa name perhaps11:09
* bigjools thinks11:09
* nigelb points stub to http://uncyclopedia.wikia.com/wiki/AAAAAAAAA!11:09
bigjoolslike :)11:10
bigjoolswgrant: actually something sensible needs to be the default for when no search term is supplied11:13
bigjoolsI like displayname to some extent11:14
wgrantbigjools: Person.name is probably not that11:14
wgrantArchive.displayname might be.11:14
bigjoolsindeed11:14
bigjoolssince it will include the person.name anyway unless they changed it :)11:14
wgrantUm, well, not any more.11:14
wgrantThere is no default11:14
bigjoolsmmm true11:15
bigjoolsI think it's a better default, let's see11:15
wgrantWe really need to fix that lack of default.11:15
wgrantAlthough it's not so bad now that the key doesn't acquire that name permanently.11:15
bigjoolsWARNING:root:Memcache set failed for...11:24
bigjoolswhut?11:24
wgrantDidn't you disable memcache on your system?11:25
bigjoolsI did11:26
bigjoolssigh11:26
bigjoolsactually, not on this machine, so something else is wrong11:31
bigjoolstest isolation crappiness, it seems11:33
jmlactually...11:40
jmlmpt did a spec about consolidating the name/displayname/title thingy to make it consistent across LP11:40
jmlwe should do that11:40
wgrantWe should do a lot of things :(11:44
jmlYes!11:44
jmlDo more things!11:44
wgrantAn intriguing proposal.11:47
bigjoolswgrant: https://staging.launchpad.net/ubuntu/+ppas?name_filter=11:48
bigjoolsjml: +100000000000000000011:49
wgrantbigjools: Looks a bit crap, but not much worse than the old one.11:50
stubThe testsuite doesn't talk to the system memcache11:50
bigjoolswgrant: seems better to me since it's sorting by something you can see :)11:50
wgrantbigjools: True.11:50
stubWhat was the hack in /default to stop rabbitmq starting up? I used to use update-rc.d but that isn't nice apparently11:53
wgrantThis a.bono guy has a lot of PPAs.11:53
lifelessplease file a bug on the rabbit package if there isn't something in /etc/default/rabbitmq11:55
bigjoolsstub: I put DAEMON=true in it11:56
stubAnd that *stops* it starting?11:56
bigjoolsyes11:56
stubhuh11:56
mptjml, https://dev.launchpad.net/RegistrySimplifications11:56
bigjoolsbest not to ask :)11:56
lifelessplease file a bug, thats really nonobvious11:56
jmlmpt: thank you.11:57
mptI didn't touch Archive. though11:57
wgrantmpt: That is a lot of steps.11:57
jmlwgrant: but they are simple steps.11:57
wgrantTrue.11:57
jml(some of them might be tedious, but that's a different axis)11:57
mptArchive.displayname is, I guess, what ends up being shown in the left pane of Ubuntu Software Center12:00
deryckMorning, all.12:01
jmlderyck: good morning12:01
bigjoolsmorning deryck12:07
bigjoolsstub: so why was that join to Person having such a big effect in the query?  And only on 8.4?12:08
stubI suspect it always had that effect - from my testing it reduced a 1.5 second query to 0.5.12:08
stubbug #66046012:09
_mup_Bug #660460: Need option to not launch server on boot <amd64> <apport-bug> <maverick> <rabbitmq-server (Ubuntu):New> <https://launchpad.net/bugs/660460>12:09
stubBooger. /ubuntu/+ppas just gave me a timeout on staging.12:11
stubThere seems to be a db restore going on... might just be busy12:12
bigjoolsyeah it was very quick last time12:18
StevenKwgrant: Both your branches failed. :-(12:18
wgrant@#@!(U$@!$!12:21
wgrant#712:21
wgrantAlthough that's only failure #3 for the other one.12:21
wgrantSo, um...12:23
=== jtv-afk is now known as jtv
jmlStevenK: I need to check it out, but I think that's a very old "bug" in bzr12:30
StevenKjml: Sure, I'd be happy to be pointed at where the issue actually is.12:33
jmlStevenK: looking now.12:33
jmliirc, it might have something to do with python's socket lib being terrible12:33
jmlStevenK: https://bugs.edge.launchpad.net/bzr/+bug/19325312:34
_mup_Bug #193253: sockets being leaked in branch puller tests <Bazaar:Invalid> <Launchpad Bazaar Integration:Fix Released by stub> <https://launchpad.net/bugs/193253>12:34
* jml replies on list12:37
jmldone12:42
=== matsubara-afk is now known as matsubara
LPCIBotProject devel build (105): STILL FAILING in 4 hr 8 min: https://hudson.wedontsleep.org/job/devel/105/13:49
=== Ursinha-afk is now known as Ursinha
=== salgado is now known as salgado-dr
deryckrockstar, ping.  (read: yo, where my new lazr-js, sucka!)15:28
maxbjelmer: You know that chardet-dep branch that you fixed? Well I think you forgot to push :-)15:31
jelmermaxb: bzr says "No new revisions to push.". Looking into it..15:32
sinzuideryck, ping15:33
deryckhi sinzui15:33
sinzuideryck, I would like your +1 to run this sql update in production. I just confirmed the test run on staging did purge 2500 known spam messages from openjdk: http://pastebin.ubuntu.com/513143/15:34
* deryck looks15:35
rockstarderyck, I have it reviewed and everything, but I have 9 test failures, and they are all bugs' fault.15:36
deryck"fault" is such a harsh term. ;)15:36
derycksinzui, r=me.  Do I need to update this on the LPS page?15:37
deryckrockstar, do you need our help fixing these test failures?  Are they Windmill or yuitest?15:37
sinzuideryck, I do not know.15:37
derycksinzui, if you didn't add the query to LPS, I wouldn't think I need to do so.  If a losa wants it added there, I can update when you ping back.15:39
sinzuiI will do that now15:39
rockstarderyck, windmill.  I think I just need to see details on the failures before I can make a statement on help.15:41
deryckrockstar, ok, cool.15:41
sinzuideryck, https://wiki.canonical.com/InformationInfrastructure/OSA/LaunchpadProductionStatus15:44
sinzuideryck, bug 66054115:44
_mup_Bug #660541: Messages from the list in the moderation queue are spam, discard them with a script <mailing-lists> <Launchpad Registry:In Progress by sinzui> <https://launchpad.net/bugs/660541>15:44
* deryck updates LPS page15:44
derycksinzui, done. r=me, of course.15:45
sinzuithanks15:45
derycknp15:46
jelmermaxb: fixed15:47
jcsackettrockstar, ping.16:00
rockstarjcsackett, pong.16:03
jcsackettrockstar, could i get your input on https://bugs.edge.launchpad.net/launchpad-code/+bug/652126?16:04
_mup_Bug #652126: branch collection action portlet is missing links <bridging-the-gap> <Launchpad Bazaar Integration:In Progress by jcsackett> <https://launchpad.net/bugs/652126>16:04
jcsackettit was filed as part of our bridging-the-gap work; i think we can either dismiss it or we need to talk about a different way of presenting the statistics it's talking about.16:04
jcsackettif it's the latter, i don't want to take a stab at it without talking with someone on the code team.16:05
jcsackettrockstar ^16:06
=== james_w` is now known as james_w
dobeygary_poster: you uh, TIMEd? :)16:25
gary_posterdobey, you mean Time Inc?  If so, yeah :-)16:26
dobeygary_poster: i mean, i see a CTCP TIME from you :)16:26
dobeyanyway, lunch is calling. bbiab16:28
gary_posterdobey: ah, yeah.  We were having a discussion of python keyring and I was bringing up concerns you mentioned in passing, and I idly did a whois sort of thing16:28
gary_posternothing to respond to16:28
dobeyah ok16:28
dobeycheers then16:28
gary_posterbye :-)16:29
jmlbigjools: otp now, fwiw.16:34
jmlbigjools: errr, off the phone16:34
bigjools:)16:35
bigjoolsjml: tests are working now16:35
jml\o/16:35
bigjoolsjml: one more thing, we're still trapping xmlrpclib.Failure - is that raised by twisted?16:35
jcsackettrockstar: had a chance to look at that bug?16:35
jmlbigjools: you mean xmlrpclib.Fault?16:35
bigjoolsyes :/16:35
rockstarjcsackett, yeah, but I'm not entirely sure why we need links there.16:35
jmlbigjools: yes, it is. I think t.w.xmlrpc.Fault is just a re-export of that16:35
bigjoolscoolio16:36
rockstarIt's displaying information, but it doesn't need to link anywhere.16:36
rockstarAt least, that's my opinion.16:36
bigjoolsjml: committing and pushing so you can peruse, one sec16:36
jcsackettrockstar: thus my pinging you. it looks to me like that is meant as statistics, not action.16:36
jcsackettrockstar: inasmuch as the only place those could link to is the very page you're looking at.16:36
jmlbigjools: ta16:37
rockstarjcsackett, yes.16:37
jcsackettrockstar: do you think it's better to dismiss the bug or find a different way to display the info?16:37
jcsackettrockstar: i'm not sure, but perhaps the sidebar things are meant to be action links only?16:37
* jcsackett looks for precedent.16:37
rockstarjcsackett, well, there are lots of things wrong with that portlet.16:38
bigjoolsjml: http://bazaar.launchpad.net/~julian-edwards/launchpad/builderslave-resume/revision/1167616:38
bigjoolswell, if it would not OOPS :/16:38
jcsackettrockstar: so would something like showing at the top of the page the "N branches, M commits" and removing it from the portlet make sense?16:38
rockstarjcsackett, maybe.16:38
rockstarjcsackett, although I'd contend that it shouldn't link to active reviews if there are no active reviews...16:39
jmlbigjools: I'll just pull the branch.16:39
jcsackettrockstar: also valid, but maybe that's a different bug.16:39
bigjoolsjml: url works now, but ok16:39
rockstarjcsackett, I hate hate hate when we do things like "0 foos in the bar"16:39
jcsackettrockstar: yeah; i can see that.16:40
rockstarjcsackett, if you're going to fix this portlet, I suggest killing the whole portlet and moving all of the information to be part of the page.16:40
jcsackettrockstar: i was just thinking that.16:40
jcsackettjcsackett: perhaps placed above the drop down selector16:40
* jcsackett looks at what he typed.16:40
jcsacketti clearly need more sleep and/or coffee. rockstar, last comment was meant for you, not me. :-P16:41
jmlbigjools: instead of: "server_proxy.queryFactory = QuietQueryFactory" you could also do "server_proxy.queryFactory.noisy = False" and then delete the QuietQueryFactory class16:43
bigjoolsjml: I know, I kinda like the explicit factory16:44
bigjoolsbut meh16:44
jmlbigjools: yeah, it's a taste thing. I think they are both equally explicit in terms of intent though16:44
jmlbigjools: looks good.16:46
bigjoolsjml: cool, thanks.  So now I have some more tests to write that I thought of that are lacking from the previous manager.16:46
jmlbigjools: it might be worth adding an errback that transforms the CancelledError into a TimeoutError or something, just to make the API clearer.16:46
bigjoolsah very good point16:46
jmlbigjools: and _with_timeout probably ought to be a standalone function in lp.services.twistedsupport16:46
bigjoolsalso we need the top-level to handle it16:47
jmlhandle the timeout? yes.16:48
bigjoolsat the moment it would print a stack trace16:48
bigjoolsit just needs to be added to the list of known failures16:48
bigjoolsjml: oh one more thing, when testing on dogfood I noticed that not all types of failure would get back to the top level scan(), which left the scan "dead" after a traceback.16:49
bigjoolsI'm not sure what was going on - but at the very least I need to make sure that *all* errors are caught in scan()16:49
bigjoolsand I don't know why it's not doing that16:50
jmlbigjools: hmm.16:50
jmlbigjools: I don't either – that's not much to go on. Was it an "Unhandled error"?16:50
bigjoolsonce it gets in there the failure counting will deal nicely with it16:50
* bigjools hunts logs16:50
=== beuno is now known as beuno-lunch
bigjoolsjml: yes, Unhandled Error16:51
jmlbigjools: ahh right16:51
bigjoolsit was a coding mistake16:51
bigjoolsbut it should be caught further up16:52
bigjoolsthe manager should trap those and kill the build16:52
jmlbigjools: that means a Deferred somewhere has had errback called on it, but there's nothing handling that error. Normally either the deferred is not being returned ...16:52
jmlor it is and someone didn't add errback16:52
bigjoolshmmm16:52
jmlbigjools: there's not many options open to you if you don't return the Deferred.16:52
bigjoolsjml: so since _startCycle() does d.addErrback(self._scanFailed) then I presume it's the former16:53
jmlbigjools: or something down deeper.16:54
jmlbigjools: setting 'debug' (or is it 'DEBUG'?) on the Deferred class to True will give you more information16:54
bigjoolsdebug16:54
bigjoolscan you get on mawson?16:55
jmlno16:55
bigjoolshttp://pastebin.ubuntu.com/513226/16:56
bigjoolsthat's the general type of thing16:56
bigjoolsI need to handle shutdown gracefully as well, did we work out if there was a reactor hook?16:57
jmlbigjools: I didn't find out.16:58
jmlbigjools: part of the problem with unhandled errors is that there's no way of telling a particular error is unhandled until the gc kills the deferred with the error.16:59
* jml has a look at the code16:59
bigjoolsand that's bad, because in at least one case it failed the builder immediately (I need to purge all those)16:59
bigjoolsjml: def defer_with_timeout(self, d, timeout):17:00
bigjoolslook ok?17:00
bigjoolsin lib/lp/services/twistedsupport/xmlrpc.py17:00
rockstarjcsackett, I think that's fine.  It'll probably make that page a little busier.17:02
jmlbigjools: it's actually not anything to do w/ xmlrpc, I'd put it in __init__ and call it cancel_on_timeout, I think.17:03
jmlbigjools: and I presume you saw the recent discussion on #twisted17:03
bigjoolsno, not paying attention17:03
jcsackettrockstar: i think if it's refactor into one smooth sentence it'll be alright. i'll get a ui review on it when i'm done to be sure though.17:03
jmlbigjools:  reactor.addSystemEventTrigger('before', 'shutdown', f)17:03
jmlbigjools: also, we should be using Services, but one thing at a time17:03
bigjoolsoo nice17:04
jmlmrevell: do we have any docs about the product release finder?17:07
mrevellhmm17:09
mrevelljml we have this http://blog.launchpad.net/cool-new-stuff/automatically-import-files-to-launchpad-using-product-release-finder17:11
jmlmrevell: ta17:14
=== deryck is now known as deryck[lunch]
bigjoolsjml: I want to test the scenario where the deferred completes instead of cancelling17:20
bigjoolsand struggling a bit17:20
jmlbigjools: from a proxy or from cancel_on_timeout?17:21
jmlbigjools: from a proxy, just do DeadProxy again but with 'return defer.succeed(None)'17:21
bigjoolsjml: testing the cancel on timeout17:21
jmlbigjools: from cancel_on_timeout, d = cancel_on_timeout(defer.succeed(None), timeout=10)17:22
bigjoolsjml: can I assert it was not cancelled?17:22
bigjoolsthat will not fail either way :)17:22
jmlbigjools: sort of. you can assert that you can add a callback to it and get whatever you passed in to succeed()17:22
jmlbigjools: and rely on the TestCase to assert that the callLater has been cancelled17:23
bigjoolsright17:23
jmlbigjools: if that's too implicit for you...17:23
=== al-maisan is now known as almaisan-away
jmlactually... that won't work anyway17:24
jmlself.assertEqual([], clock.getDelayedCalls())17:24
jmlbecause Trial makes assertions about the actual reactor, and presumably you are passing in a fake.17:25
jml(see IReactorTime for docs on that)17:26
bigjoolsimplicit is fine17:28
jmlbigjools: not if you are passing in a clock, it isn't. it won't make the assertion at all.17:28
bigjoolsoh, meh17:28
LPCIBotProject db-devel build (66): STILL FAILING in 4 hr 19 min: https://hudson.wedontsleep.org/job/db-devel/66/17:30
jmlnow, where was I17:31
jmlerror handling.17:31
LPCIBotProject devel build (106): STILL FAILING in 3 hr 43 min: https://hudson.wedontsleep.org/job/devel/106/17:32
LPCIBotLaunchpad Patch Queue Manager: [r=jelmer][ui=none][bug=656295] Allow derivers to specify which17:32
LPCIBotpackagesets they want to copy to the child distroseries in17:32
LPCIBotInitialiseDistroSeries.17:32
=== matsubara is now known as matsubara-lunch
bigjoolsjml: http://pastebin.ubuntu.com/513242/17:34
jmlbigjools: sweet.17:35
bigjoolsI'll commit here but land it in a separate branch too17:35
jmlbigjools: good call.17:35
bigjoolsone of the few things I can :)17:36
jmlbigjools: I've just looked at that unhandled error in the paste you posted earlier17:36
jmlbigjools: this is the relevant code:17:37
jml        d = self.scan()17:37
jml        d.addErrback(self._scanFailed)17:37
jml        return d17:37
jmlif _scanFailed fails unexpectedly, nothing will handle that17:37
bigjoolsha17:37
jmlso you could change it to:17:37
jml        d = self.scan()17:37
jml        d.addErrback(self._scanFailed)17:37
jml        d.addErrabck(self._handleUtterDisaster)17:37
jml        return d17:37
jmlbut I'm not sure that would win you very much.17:37
bigjoolsso I need an error handler for the error handler17:37
=== benji is now known as benji-lunch
jml(particularly if you typo addErrback!)17:38
bigjoolsbelt & braces17:38
bigjools:)17:38
jmlbigjools: hmm, I'm not sure writing more code to handle runtime cases where there are programming errors counts as belt&braces17:39
jml*deleting* code would be a far more sound strategy :)17:39
bigjoolsI know what you mean, *but* there is one piece of code that's out of the managers hands17:39
bigjoolsbuilder.getCurrentBuildFarmJob()17:39
bigjoolsthat can failed and we have no control17:40
bigjoolsfail, even17:40
jmlfair enough. in that case maybe put a try/except around it in _scanFailed?17:40
bigjoolscan do - and fail the job immediately17:40
jmlunfortunately I have to go now.17:51
=== beuno-lunch is now known as beuno
dobeyabentley: around?18:11
gary_posterbac: hi?18:18
abentleydobey: back.18:24
dobeyabentley: hi. about the bzr upgrade of remote branches issues. is there some way to separately upgrade the repository from the branch itself? or is that what the link on the web does?18:26
abentleydobey: I don't understand the question.  Technically, the branch will already be in format 7, and its repository is the only thing that could be upgraded.18:27
dobeyabentley: ok, i upgraded a branch to 2a several weeks ago, and no new revisions have been committed, and the web page still says KnitPacks5 for the repository format18:28
dobeyabentley: https://code.edge.launchpad.net/~configglue/configglue/trunk18:28
=== matsubara-lunch is now known as matsubara
abentleydobey: the branch and its repository have been upgraded, but the database is out of sync.18:31
=== deryck[lunch] is now known as deryck
dobeyabentley: and there's nothing i can do myself short of committing a new revision to force a rescan, right?18:32
abentleydobey: well, we could try taking out a branch lock and seeing if that triggers a scan.18:32
abentleydobey: or you could uncommit a revision and then push it again.18:33
=== salgado-dr is now known as salgado
=== benji-lunch is now known as benji
dobeyabentley: ok. i'm not especially concerned at this point. i was just wondering since your e-mail suggested this case shouldn't be happening, as an upgrade should cause a rescan to trigger.18:35
abentleyIt shouldn't be happening.  An upgrade should cause a rescan to trigger.  I can investigate why that didn't happen, now that I have an example.18:35
dobeyabentley: do you know more specifically when upgrades should have started causing a rescan? if the code that handles that was deployed after i did the upgrade, that would probably be the reason. but "these days" isn't a very exact metric :)18:37
jcsackettis there a way to force lowercase on text in a template? ideally without using "python: " ?18:37
abentleydobey: months ago.18:38
dobeyah ok18:38
abentleydobey: probably around May.18:39
dobeyyeah this was definitely upgraded after that then18:39
dobeywell the last revision was in August, and I think I did the upgrade probably about 3-4 weeks ago18:40
abentleydobey: my logs go back to Sept 23.  Was it before that?18:41
dobeylet me see if i can find an exact date for it18:42
dobeyabentley: it probably would have been sept 22 or 23 though18:42
dobeyThu 2010-09-23 11:09:34 -040018:43
dobey0.025  bazaar version: 2.2.018:43
dobey0.025  bzr arguments: [u'upgrade', u'--default', u'lp:configglue']18:43
dobeyabentley: should i file a bug?18:43
abentleydobey: I guess.  I'm not sure we can do more than mark it incomplete, at this stage.18:46
abentleydobey: what's your offset from UTC?18:47
dobeyabentley: -040018:49
abentleySo 11:09 would be 15:0918:50
abentleydobey: So you remotely upgraded the branch, rather than using the web page, right?18:50
dobeyabentley: right, i did bzr upgrade --default lp:configglue18:51
abentleydobey: okay, it's possible we don't handle that case.  I was thinking of web-based upgrades, where I know we handle it.18:52
dobeyabentley: ok, i'll file a bug18:55
LPCIBotYippie, build fixed!19:03
LPCIBotProject devel build (107): FIXED in 1 hr 30 min: https://hudson.wedontsleep.org/job/devel/107/19:03
LPCIBot* Launchpad Patch Queue Manager: [r=leonardr][ui=none][no-qa] Modify xx-person-subscriptions.txt not19:03
LPCIBotto use sample data.19:03
LPCIBot* Launchpad Patch Queue Manager: [r=lifeless][ui=none][bug 46581] Do not oops when users hack poll19:03
LPCIBottypes.19:03
_mup_Bug #46581: Change a poll type URL manually crashes <oops> <polls> <Launchpad Registry:Fix Committed by sinzui> <https://launchpad.net/bugs/46581>19:03
dobeyabentley: filed bug #66069519:04
_mup_Bug #660695: Remote upgrade not triggering rescans <Launchpad Bazaar Integration:New> <https://launchpad.net/bugs/660695>19:04
abentleydobey: I can't reproduce it.  I just created a branch and upgraded it remotely.19:05
dobeyhmm19:05
dobeyabentley: let me see if i have another branch i can try on19:06
abentleydobey: And it shows the correct repository format.19:06
abentleydobey: wrong branch format, though.19:06
dobeyhmm19:08
dobeyabentley: interesting. i see that as well on another branch i tried. and yet another i tried, has the right branch format, but still says KnitPack619:21
abentleydobey: you mean, you just created a new branch in KnitPack6, upgraded it, and it's showing the wrong data?19:23
dobeyabentley: no, i found a branch already on lp which i already owned, which was in the old format, and upgraded it19:23
abentleydobey: but you upgraded it just now?  Okay, maybe it's something to do with the format.19:24
dobeyyes19:24
dobeyabentley: it seems that things that are already BranchFormat7, exhibit the issue of showing the old Repository format info19:25
abentleydobey: aha!19:25
dobeyabentley: and BranchFormat6 branches seem to always show BranchFormat6, but the Repository format gets updated19:25
dobeyabentley: that makes sense to you i take it? :)19:27
abentleydobey: I can see how such a bug would happen.  Someone misunderstood the significance of branch format, and assumed if it hadn't changed, the repository format hadn't changed.19:27
dobeyabentley: ah. and presumably the reverse as well, in the other case where BranchFormat doesn't change?19:29
dobey(doesn't change in the UI)19:29
abentleydobey: AFAICT, there are no cases where the branch changes in the UI from an upgrade alone.19:29
dobeyabentley: so for the case where the UI still shows BranchFormat6 after an upgrade to 2a, is a separate bug?19:31
abentleydobey: yes, I've filed a bug for it.19:31
dobeyabentley: ok, cool. glad i could help :)19:31
abentleydobey: bug 66070619:31
_mup_Bug #660706: Wronng branch format shown on web page after remote upgrade <branch-scanner> <Launchpad Bazaar Integration:Triaged> <https://launchpad.net/bugs/660706>19:31
abentleydobey: Successfully reproduced the bug.19:34
dobeyabentley: cool.19:39
=== cjohnston_ is now known as cjohnston
=== almaisan-away is now known as al-maisan
mwhudsongood morning20:09
lifelessmoin20:11
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
wgrantAny progress on the EC2 breakage?21:07
mwhudsonwgrant: i just sent a mail that may be related21:08
wgrantAh.21:08
* wgrant looks.21:08
wgrantHm, yes.21:09
lifelessmwhudson: so, have you filed it upstream yet?21:09
mwhudsonlifeless: no21:09
mwhudsonat least, not that i remember21:10
lifelessmwhudson: (hint)21:15
mwhudsonyeah yeah21:16
mwhudsoni don't really want to remember the details, they made me very angry21:16
lifelessSimple* can do that ;)21:18
mwhudsoni'll do it when i get through my mail21:20
LPCIBotProject db-devel build (67): STILL FAILING in 3 hr 49 min: https://hudson.wedontsleep.org/job/db-devel/67/21:20
LPCIBot* Launchpad Patch Queue Manager: [rs=buildbot-poller] automatic merge from stable. Revisions: 1169621:20
LPCIBotincluded.21:20
mwhudsonwhich has a new way for oopsprune to fail today21:20
LPCIBot* Launchpad Patch Queue Manager: [r=gmb][ui=none][bug=655567] Wire up structural bug subscription21:20
LPCIBotfilters to the subscriber selection machinery.21:20
mwhudsonIOError: [Errno 13] Permission denied: '/srv/launchpad.net/production-logs/2010-10-14/57341.C3848'21:20
wgrantI wonder why Hudson managed to discover the errors more than a week before EC2.21:23
lifelesswgrant: hudson is nice :)21:26
wgrantWell, yes, but...21:27
lifelessmwhudson: #python-testing may interest you as a lurking channel21:30
lifelessI need a teddy bear for where to put some testing code21:30
mwhudsonlifeless: lp.testing.$whatever?21:30
lifelessmwhudson: mocker vs fixtures.*21:30
mwhudsonah21:30
lifelessso, I'm writing some code that invokes external processes.21:31
lifelessI have no interest in actually invoking them in my tests.21:31
lifelesspartly because the process is bin/test so it would be hugely meta to do so21:31
lifelessand partly because the zope stack is so slow I'd die of old age waiting for things to run21:31
wgrantCan I send you off on a diversion to fix that slowness? :P21:33
wgrantThat generally seems to be fairly effective.21:33
lifelesswgrant: yes, ditch zcml & global state. Thanks, I'll expect a patch :)21:33
jammwhudson: just to be sure, merging *from* devel and proposing *into* db-devel is always safe, right?21:35
jam(aside from short-term bugs in devel that haven't made it into stable yet, that would eventually cause testfix mode)21:36
mwhudsonjam: yeah, but you'll end up with a diff that's way bigger than necessary in the mp21:36
mwhudsonit sucks that we can't retarget the existing mp21:36
mwhudsonthumper: hey, fix that :-p21:36
thumperyeah yeah21:37
thumperI've talked with wally about that21:37
jammwhudson: why would it be too big? Stuff that devel has that hasn't propagated into db-devel yet?21:38
wgrantRight. That can take days if buildbot is screwed.21:38
wgrantWhich is fairly often these days.21:38
mwhudsonjam: yeah, exactly21:39
lifelessmwhudson: so where was I21:39
lifelessright, I want to use a test double for 'subprocess.Popen'21:40
lifelessI *could* use a mocking library21:40
lifelessbut I'll still have an implementation of subprocess hanging around which is a little larger than a mock21:40
lifelessSo instead I'm thinking to add a tested double and a glue fixture, with setUp monkey patching the system module21:41
lifelessmwhudson: what do you think?21:41
=== mordred_ is now known as mtaylor
wgrantlifeless: You wanted less global state, but you are advocating monkeypatching out subprocess.Popen? :P21:42
lifelesswgrant: sadly yes. But for the duration of a single test21:42
lifelesswgrant: modules are themselves global state; we can work better layers up on top of them though.21:43
lifelessanother option is to make the code I write take a Popen implementation21:43
mwhudsondependency injection woo21:46
mwhudsonthat said, i think monkey patching will produce less wtfs per second21:46
wgrantjelmer: Hi.21:47
lifelessyeah21:48
jelmerwgrant: Hello.21:48
wgrantjelmer: I was just stalking recent Launchpad branches, and I think the assert in 135610-duplicated-ancestry is still a little wrong.21:49
lifelesshmm, I probably need to upload fixtures to debian soonish21:50
wgrantThere can be more than one Published publication if the publisher hasn't finished yet.21:50
wgrant(it first marks everything has Published, then later marks old ones Superseded)21:50
jelmerlifeless: NEW is stalled again though :-/21:52
jelmerwgrant: Hmm21:52
jamwhen logging into the local launchpad instance, what username are you supposed to use? (I'm trying to get an ssh key registered, etc)21:53
jamIt seems to be redirecting me to "testopenid.dev" but that isn't letting me create a new account21:53
wgrantjam: admin@canonical.com is an admin.21:53
wgrantadmin@canonical.com:test21:53
jamwgrant: and that person is then "name16"... very strange21:54
jambut it worked, thanks21:54
wgrantjam: Well, username != password21:54
wgrantI think there's a script (utilities/make-lp-user?) which will create a new user and upload your SSH key to it.21:55
jamwgrant: or login name, or account name, or...21:55
wgrantNot sure if it still works.21:55
wgrantjam: By password I of course meant email address.21:55
wgrantusername != email address21:55
jamwgrant: yeah, but also calling "admin@canonical.com" "name16" isn't very obvious, either21:56
jam"admin" would have been a bit more obvious21:56
wgrantadmin@canonical.com is a relatively new alias.21:56
wgrantname16 dates to 2005 or so.21:56
wgrantYay sampledata.21:56
jamI wouldn't have too much problem, but it seems that every "make schema" nukes the stored ssh keys21:56
wgrantWhy are you running make schema so often?21:56
jamso just about every time I update my launchpad branch, I have to start from scratch21:56
wgrantYou could always upgrade your DB with database/schema/upgrade.py, I guess.21:57
jamwgrant: I get a lot of "schema is out of date" failures, but partly because this was originally based on db-devel21:57
wgrantBut make-lp-user may be a better option.21:57
wgrantI have a couple of scripts which I use to prepare a fresh DB.21:58
wgrantSo make schema isn't so bad.21:58
wallyworld abentley, thumper, rockstar: standup?22:07
rockstarwallyworld, sure.22:07
=== al-maisan is now known as almaisan-away
pooliejam, so, still hoping for a landing before uds?22:14
jampoolie: well, land, maybe deployed to staging, pretty unlikely to be deployed to production22:14
jamis my current thought22:14
wgrantHm.22:15
wgrantlaunchpad-developer-dependencies should depend on lpreview-body, or something.22:15
jammwhudson: so I haven't reproduced the failing tests yet, but mostly because "make schema && bin/test -vvt lp.codehosting" seems to be awfully slow going22:15
jambut I'll hopefully get there before I stop for tonight22:15
mwhudsonjam: you should definitely only have to run make schema once per branch22:16
jammwhudson: well, and every time I update from somewhere22:16
jamI think I was slightly out of date from the last time I pulled in db-devel22:16
mwhudsonjam: if you're targeted devel now, then merge from there, commit, run make schema22:16
mwhudsononce :)22:16
jammwhudson: right22:16
mwhudsonit can be a pain though, it takes a long time22:17
pooliejam so it looks like you're not blocked, at least22:17
jamI'm at the point that "bin/test" has been running for 20 minutes or so, and it is on "lp.codehosting.tests"22:17
jamtake that back "bin/test" has been running for 1:0622:17
pooliejam i recently fixed a bug where resizing the window made the tests crash22:18
poolie_that_ is annoying when they've been going for an hour22:18
jampoolie: definitely22:18
jamI'm running it on a 1GB VM, and having bin/test fork bin/test fork python fork... and all at 177MB of virtual memory isn't very happy, either22:19
mwhudsonargh22:19
jamI'm pretty sure lp. has now bloated from about 120MB to about 150MB since I last updated22:19
jammwhudson: I at least make sure to "/etc/init.d/apache2 stop" since that would be running yet-another copy of lp.*22:20
lifelessjam: yes, layers are terrible (layers support the idea of unteardownable fixtures)22:22
lifelesswhich is frankly batshit insane22:22
pooliehi lifeless22:23
rockstarwallyworld, do you have time for a chat now, or do you have kids to deal with?22:24
wallyworldrockstar: i have to do the school drop off - can you ping me alter after you've done your things?22:25
lifelesshi poolie22:25
rockstarwallyworld, mine things don't need to be done for 2.5 hours, so ping me when you're back.22:25
jamlifeless: would it matter if you just made sure all of the layers that *launchpad* has can be torn down?22:25
lifelessjam: at that point we can just drop in testresources :)22:26
rockstarlifeless, yes please.22:26
wgrantDoes lp-propose do prereq branches?22:26
wallyworldrockstar: actually, we can have a chat now if you like. i don't have to do it for another 20 mins or so22:26
rockstarwallyworld, okay.22:26
jamlifeless: so is that why it forks its own children? So that it can ensure clean state?22:26
lifelessjam: yes, it forks its own child when it hits 'NotImplementedError' in a layer tearDown22:27
jmlbest feature evar22:27
wallyworldrockstar: skype?22:27
rockstarwallyworld, yea, I'm up.22:27
lifelessand depending on where its at in the test process hitting that error means it won't tear down other layers, so a month ago you'd have had multiple librarians, memcached, etc all running too22:27
jamany ideas on the "No module named mailman.monkeypatches.*" stuff? I did just run "rocketfuel-get" and "make"22:28
marsjam, try 'make clean && make' just to be safe, and check for conflicts22:28
lifelessjam: rm -rf lib/mailman22:28
lifelessjam: then do 'make22:28
jmlmwhudson: I can no longer understand your comment in layers.py about twisted signal handling: http://paste.ubuntu.com/513406/22:29
jamlifeless: so you're saying that I need to start this 1+ hour test run from scratch again...22:29
jam:)22:29
lifelessjam: its a stale statically-copied mailman element22:29
jamI find it interesting that the import facist complains so loudly, yet it doesn't stop anything from running22:30
mwhudsonjml: it's possible it doesn't apply with twisted any more22:30
jmlmwhudson: well, aiui, when the reactor is running there *is* a sigchld handler installed22:30
mwhudsonjml: let me read some code again22:31
jmlmwhudson: ok.22:31
mwhudsonjml: ah ok22:32
mwhudsonthe point is to make sure that the sigchld handler is not installed while the test_* method runs22:32
jmlmwhudson: the point of the comment or the code?22:33
mwhudsonif a test returns a non-fired deferred, trial starts the reactor22:33
mwhudsonwhich installs a sigchld handler22:33
mwhudsonand then stops/crashes/mutilates it again22:33
mwhudsonwhich doesn't uninstall the handler22:33
mwhudsonjml: the code22:33
mwhudsonjml: i can probably rephrase the comment a bunch22:34
jmlmwhudson: I thought the code was about undoing the mangling that trial does22:34
mwhudsonjml: i don't think so22:34
jmlmwhudson: then save & restore are odd names22:34
mwhudsonjml: they're about undoing the mangling that reactor.run does22:35
jmlmwhudson: oh ok, that's what I meant.22:35
jmlmwhudson: if you could rephrase that comment that would help me, I think22:36
mwhudsonjml: ok22:38
mwhudsonjml: twisted no longer raises PotentialZombieWarning22:40
jmlmwhudson: so we can forget about the comment?22:40
mwhudsonwell, simplify it a lot22:40
jmlheh22:40
mwhudsoni think we suppressed the warnings in a few tests, but i deleted the suppressions when i upgraded to 10.122:41
mwhudsonjml: it's still a bit of a novel: http://paste.ubuntu.com/513424/22:44
jmlmwhudson: that's good, thanks.22:45
jmlmwhudson: so if we replaced our Twisted tests with something that always ran the reactor, basically we'd be unable to use tachandler as-is22:46
LPCIBotProject devel build (108): FAILURE in 3 hr 42 min: https://hudson.wedontsleep.org/job/devel/108/22:46
LPCIBot* Launchpad Patch Queue Manager: [r=edwin-grubbs][ui=none][bug=347218] Allow a project's or22:46
LPCIBotdistribution's bug supervisor to set the official bug tags for it.22:46
LPCIBot* Launchpad Patch Queue Manager: [r=gary][ui=none][bug=628510] Fixes bug 628510 by overriding the22:46
LPCIBotdefault permission value for the oops file and oops dir when22:46
LPCIBotthose are created.22:46
_mup_Bug #628510: OSError at /oops.py/  when using lp-oops <canonical-losa-lp> <Launchpad Foundations:In Progress by matsubara> <https://launchpad.net/bugs/628510>22:46
mwhudsonjml: yeah22:47
gary_poster"IOError: [Errno 28] No space left on device"22:47
lifeless\o/22:47
mwhudsonyeeeeeeeeeeeha!22:47
wallyworldrockstar: just checked - old version has same issue :-(22:48
rockstarwallyworld, okay. Maybe the problem IS in our code.22:50
* rockstar sads22:50
jmlmwhudson: ok, thanks. the testtools/twisted thing I'm coming up with does the signal save/restore, but always runs tests in the reactor22:51
jmlmwhudson: so I guess I'm going to have to fix tachandler22:51
mwhudsonjml: ok22:52
mwhudsonjml: i think there is something in twisted that is supposed to do signal handling in a less interruptive fashion22:52
mwhudsonjml: but i don't know the details and it didn't seem to work for the buildd-manager so ...22:53
jmlmwhudson: maybe I'll be forced to write APIs for twistd22:53
mwhudsonjml: woo22:54
=== matsubara is now known as matsubara-afk
jmlI would like some more days22:57
pooliehello jml22:59
jmlpoolie: hello22:59
jmlpoolie: do you have some days that I can use?22:59
thumperjml: you can use saturday and sunday :)23:10
jmlthumper: you'd think so23:10
jmlthumper: but they are decreasingly available to me for programming23:10
pooliejml, octember's looking good23:12
thumper:)23:14
jmlpoolie: Cool, thanks. I'll see what I can do.23:14
* jml -> bed23:21
jmlg'night23:21
=== _thumper_ is now known as thumper

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