[04:44] <lifeless> timeouts are looking goo
[04:44] <lifeless> d
[21:51] <lifeless> aieee http://pgbouncer.projects.postgresql.org/doc/faq.html#_how_to_upgrade_pgbouncer_without_dropping_connections
[21:52] <wgrant> Impressive.
[21:53] <lifeless> looks like a race still exists
[21:54] <wgrant> Oh?
[21:54] <wgrant> SUSPEND will stop it accepting connections.
[21:55] <wgrant> SHOW FDS will transfer the sockets, including anything waiting on the listener.
[21:58] <lifeless> yes, and somsone connecting between suspend and the new process binding will get a rejection
[21:59] <lifeless> unless the listening socket is handed over
[21:59] <lifeless> it might do that
[21:59] <wgrant> That's what I assumed.
[21:59] <lifeless> [which you said ... :P]
[21:59] <wgrant> Otherwise it would be pretty useless.
[22:00] <wgrant> And pretty flawed.
[22:01] <wgrant> lifeless: Found any issues with batchnav/
[22:02] <lifeless> none
[22:02] <lifeless> abel found that glitch by code inspection
[22:02] <wgrant> Great.
[22:02] <wgrant> Argh.
[22:02] <wgrant> People hardcoding Ubuntu.
[22:02] <wgrant> grar
[22:02] <lifeless> url hacking can create it, but I don't think regular use will - at least not in any volume
[22:02] <lifeless> wgrant: where?
[22:03] <wgrant> http://bazaar.launchpad.net/~launchpad-pqm/launchpad/stable/revision/13446
[22:03] <wgrant> The idea is flawed, and it hardcodes Ubuntu too :(
[22:06] <wgrant> We really need to SOA Soyuz :(
[22:06] <lifeless> a funding project for it is in the pipeline
[22:06] <wgrant> Ah, excellent.
[22:10] <wgrant> lifeless: Shall we qa-ok bug #809719, then?
[22:10] <_mup_> Bug #809719: current lazr.batchnavigator version requires high OFFSET queries <qa-needstesting> <timeout> <Launchpad itself:Fix Committed by lifeless> < https://launchpad.net/bugs/809719 >
[22:10] <lifeless> what can possibly go wrong
[22:10] <lifeless> [yes]
[22:11] <wgrant> Now we need to check every page with an expander.
[22:17] <wgrant> Hmm.
[22:17] <wgrant> Bad, but very minor so far.
[22:18] <wgrant> Expanded suggestions on +filebug don't have a height limit on the sprite, so the sprite below (the branch icon) leaks onto the page.
[22:18] <lifeless> usable ?
[22:18] <wgrant> Yes.
[22:18] <wgrant> So I'm not going to qa-bad it yet.
[22:18] <lifeless> I'm inclined to tolerate that w/ a regression bug
[22:19] <wgrant> Yup.
[22:20] <wgrant> Ah, it actually used an <img> before.
[22:28] <wgrant> Fail.
[22:28] <wgrant> The regression fix did not fix the regression.
[22:30] <wgrant> Oh.
[22:30] <wgrant> It didn't actually land.
[22:30] <wgrant> https://code.launchpad.net/~danilo/launchpad/fix-806925
[22:31] <wgrant> Looks like it was thrown at ec2, though :/
[22:31] <wgrant> lifeless: lp-land and pray? Or roll the whole lot back again?
[22:32] <wgrant> We are almost up to 50 revs :/
[22:33] <lifeless> so the regression fix was landed separately to relanding what was rolled back ?
[22:34]  * lifeless wants to understand a little more what went on
[22:34] <wgrant> Well, there were two revs doing the same sort of thing. I rolled back one, which turned out to be the wrong one, despite modifying the relevant file. It was relanded once the fix was written, but apparently the fix was not landed.
[22:34] <wgrant> I assumed they landed together.
[22:34] <wgrant> Only noticing now that it's not actually fixed.
[22:37] <lifeless> so
[22:37] <lifeless> we're 12 hours till danilo
[22:37] <lifeless> 5 hours to find out what went wrong in ec2
[22:38] <lifeless> ~1 hour to fix, another 5 to bb
[22:38] <lifeless> so 11 if we try to fix ourselves
[22:38] <lifeless> vs 5 if we land a revert
[22:39] <wgrant> We really need to fix those LXC hangs.
[22:39] <lifeless> we can expect about 3 revs to land if we were to ec2 it and have it land ok
[22:40] <lifeless> wgrant: the sudo thing?
[22:40] <wgrant> lifeless: No, what I believe to be a reliable LibrarianLayer setup hang on one of the 6 workers.
[22:41] <lifeless> I haven't seen that
[22:41] <wgrant> Have you run the whole suite parallel?
[22:41] <lifeless> anyhow, I'm +1 on a revert
[22:41] <lifeless> wgrant: yes
[22:41] <wgrant> HMm.
[22:42] <lifeless> wgrant: other than the sudo thing, it seemed ok in terms of not hanging
[22:42] <wgrant> I need more RAM.
[22:42] <lifeless> wgrant: it helps; I have 16GB :P
[22:49]  * wgrant reverts.
[23:27] <wgrant> wallyworld_: Morning
[23:27] <wallyworld_> hello
[23:27] <wgrant> wallyworld_: Any idea what creates that horrible broken red picker error box?
[23:28] <wgrant> Ah, activator.renderFailure, it seems.
[23:28] <wgrant> Kill.
[23:28] <wallyworld_> i looked a little at some point in the past and sort of found some generic error handling stuff but that was while ago
[23:29] <wallyworld_> activator.xxx sounds right
[23:29] <wallyworld_> it's pretty ugly
[23:29] <wallyworld_> at least it's out of lazr-js now and we can easily fix it :-)
[23:29] <wgrant> It includes the error page's HTML in a <pre>.
[23:29] <wgrant> Yeah, pretty ugly.
[23:29] <wallyworld_> reminds me, i need to delete the lazr-js eggs
[23:29] <wgrant> I did that on Saturday.
[23:29] <wgrant> Cleaned out download-cache.
[23:29] <wallyworld_> oh cool
[23:30] <wgrant> Except for a couple of things that are still needed by deployed code.
[23:32] <wgrant> 2 revs to go.
[23:34] <wgrant> One of them seems to be designed to time out.
[23:34] <wallyworld_> wgrant: i was just about to qa my bug, you beat me to it. did you login as a non-priviledged user to test. if so, is there a generic user that we use for such things on qas?
[23:34] <lifeless> is there a setup.py setup() parameter for test only requirements ?
[23:35] <wgrant> lifeless: Sort of. Check txlongpoll
[23:35] <wgrant> lifeless: You declare it in extras_require.
[23:35] <wgrant> lifeless: Not sure how to install them without buildout (where you say, eg., 'txlongpoll [test]').
[23:35] <wgrant> wallyworld_: I have a few test SSO accounts. I don't know of any generic one.
[23:36] <wallyworld_> ok. thanks
[23:36] <wgrant> LOSA ping
[23:37] <wgrant> Woah
[23:37] <wgrant> impressive.
[23:37] <wgrant> It doesn't time out.
[23:37] <wgrant> It hung chromium.
[23:37] <wgrant> But it didn't time out.
[23:37] <lifeless> garh
[23:37] <lifeless> hth does anyone use bootstrap.py
[23:37] <wgrant> (getBranchTips with no since date, so it returned the tip for every Ubuntu branch)
[23:37] <wgrant> Oh?
[23:37] <wgrant> It is a terrible terrible thing, but it works.
[23:38] <lifeless> :!./bootstrap.py
[23:38] <lifeless> Downloading http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
[23:38] <lifeless> While:
[23:38] <lifeless>   Initializing.
[23:38] <wgrant> Ah, yes.
[23:38] <lifeless> Error: The specified download cache:
[23:38] <lifeless> '/home/robertc/source/launchpad/python-pgbouncer/working/download-cache'
[23:38] <lifeless> Doesn't exist.
[23:38] <wgrant> make
[23:38] <wgrant> Most people use a global download-cache.
[23:38] <lifeless> yes
[23:38] <wgrant> But the makefile will create download-cache for you.
[23:38] <lifeless> bringing up a new project
[23:38] <wgrant> Length: 31270702 (30M) [application/json]
[23:38] <wgrant> Saving to: 'ubuntu?ws.op=getBranchTips'
[23:39] <wgrant> I am *really* impressed that it rendered.
[23:39] <lifeless> me too
[23:39] <lifeless> its a new page
[23:39] <wgrant> Getting like 700KB/s, too.
[23:39] <lifeless> it should have a 5 second hard timeout
[23:39] <wgrant> More than I've ever got from the DC.
[23:39] <wgrant> I geuss it comrpesses.
[23:39] <lifeless> can you get such a timeout put on it please?
[23:39] <wgrant> Not sure if we can.
[23:40] <lifeless> its a api call right?
[23:40] <lifeless> it will have a page id
[23:40] <wgrant> Yes. I forget how pageids work there.
[23:40] <wgrant> Oh, right, a third bit.
[23:40] <wgrant> Distribution:EntryResource:getBranchTips or so?
[23:40]  * wgrant checks.
[23:40] <hloeung> wgrant: hi
[23:40] <lifeless> Distribution:EntryResource:#getBranchTips I think
[23:41] <wgrant> hloeung: Sorry, thought qastaging had blown up, but it survived.
[23:41] <wgrant> lifeless: Yeah.
[23:41] <wgrant> lifeless: Is that your +1 for the flag change?
[23:41] <lifeless> yes
[23:41] <lifeless> you don't need one on qastaging
[23:41] <lifeless> (a +1 that is)
[23:42] <wgrant> hloeung: Could you please add the feature flag 'hard_timeout pageid:Distribution:EntryResource:#getBranchTips 5 5000' to qastaging?
[23:43] <hloeung> wgrant: ok done
[23:43] <wgrant> Oh, last_scanned_id is stored in branch. That's cheating.
[23:43] <wgrant> hloeung: Thanks.
[23:44] <wgrant> lifeless: Still renders after the second try!
[23:46] <lifeless> neato
[23:48] <lifeless> I bet it fails the '99% < 1 second' test, but reliably under 5s is sufficient to make me happy.
[23:48] <lifeless> :!bin/buildout
[23:48] <lifeless> Develop: '/home/robertc/source/launchpad/python-pgbouncer/working/.'
[23:48] <lifeless> /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'extra_requires'
[23:49] <lifeless>   warnings.warn(msg)
[23:49] <wgrant> lifeless: extras_require
[23:49] <wgrant> (yay)
[23:50] <lifeless> so how do you trigger the test deps ?
[23:51] <wgrant> With buildout you say 'eggs = some.package [test]'.
[23:51] <wgrant> In the section that builds the testrunner.
[23:51] <wgrant> Or, potentially, in the main section.
[23:52] <wgrant> You can also do 'easy_install txlongpoll[test]', I believe.
[23:53] <wgrant> Not sure if setup.py develop supports it.
[23:53] <lifeless> [scripts]\neggs=pgbouncer[test]
[23:53] <lifeless> seems to trigger it
[23:53] <wgrant> Yeah.
[23:53] <lifeless> now I need to find out why van.pg isn't findable
[23:53] <wgrant> pgbouncer egg?
[23:53] <lifeless> new fixture
[23:54] <wgrant> What does it do that van.pg doesn't?
[23:54] <lifeless> pgbouncer
[23:54] <wgrant> Why do we want pgbouncer?
[23:54] <lifeless> fastdowntime
[23:54] <lifeless> less idle connections on db servers
[23:54] <wgrant> No, why do we want it in the test suite?
[23:54] <lifeless> fastdowntime behaviour checking
[23:55] <wgrant> It's not sufficiently transparent?
[23:55] <wgrant> So we must introduce a new layer of slowness, pain, death and destruction into the web of trouble that is our postgres fixture already? :(
[23:55] <lifeless> no
[23:55] <lifeless> we need 3-4 tests that use this
[23:55] <wgrant> Ah
[23:56] <wgrant> With a better name than python-pgbouncer, sounds good.
[23:57] <lifeless> suggestions welcome; I already discounted pgbouncefixture
[23:57] <wgrant> Why?
[23:57] <wgrant> pgbouncer is a tad generic.
[23:58] <lifeless> it is
[23:58] <lifeless> but I can see us wanting a fixture, a config generator, and some glue logic to rewrite user configs and so forth
[23:59] <wgrant> I have reservations around polluting the global namespace like this.
[23:59] <wgrant> It's alright if it's under lazr, where it can only kill us...
[23:59] <lifeless> I looked for existing modules