/srv/irclogs.ubuntu.com/2011/02/24/#launchpad-dev.txt

wgrantStevenK: The only ordering differences there are doctests :(00:00
wgrantStevenK: I wonder if the value already fluctuated, and the test had a buffer built in that my extra line exceeds.00:01
wgrantStevenK: One way to test that is to decrease the limit by a few and throw it at ec2 two or three times, and see what values come back and which queries differ.00:02
lifelessinteresting00:03
lifelesshttps://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1880F243400:03
lifeless2.5 seconds sql00:03
lifeless12 python00:03
lifeless><00:03
wgrantlifeless: You really need to acquire some LOSAs next week.00:03
lifelessit will help00:04
lifelesshmm, thats what I was going to do.00:04
wgrantlifeless: Did you see my review poke?00:06
lifelessno00:06
wgranthttps://code.launchpad.net/~jameinel/launchpad/loggerhead-disconnect-701329/+merge/4866500:07
wgrantIt is our friendly 16k OOPS bug.00:07
lifelessdone00:09
lifelesswe need a bug, if there isn't one, about the lack of timeout checking on that exception check.00:10
=== barjavel.freenode.net changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: abentley | https://code.launchpad.net/launchpad-project/+activereviews
wgrantlifeless: Because haproxy will kill the connection after a while?00:10
lifelesswgrant: that or users yes00:11
lifelessbasically we don't have the timeline trigger we do in the zope stack00:11
wgrantRight.00:11
lifelessso if the client goes away and we render at 8 seconds in00:12
lifelesswe'll hit a socket error rather than generating a timeout00:12
lifelesswe should record them as oopses, as timeouts00:12
StevenKEr, wasn't the entire point of the branch to *stop* oops on socket errors?00:13
lifelessyes, but we shouldn't stop them all00:13
lifelessits better to land this branch now00:13
lifelessbut we *know* we're discarding valid, important oopses as a result. Its overcorrecting.00:14
StevenKSo, the 16k oops aren't all the haproxy ping?00:14
lifelesstheres two different exception times00:14
lifelessone is haproxy, a few hundred a day are not haproxy00:14
lifelessthey are all going to go when this lands00:14
StevenKwgrant: So subunit-diff helped, or you got distracted?00:15
wgrantStevenK: I used subunit-ls then normal diff.00:15
wgrantStevenK: There are no significant non-doctest order changes.00:16
StevenKwgrant: Which means toss it through ec2 again?00:18
=== Guest72054 is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Guest70297
=== Guest70297 is now known as Ursinha-afk
=== Ursinha-afk is now known as Guest94180
=== Guest94180 is now known as Ursinha_
wgrantStevenK: Maybe not.00:22
wgrantChecking something locally.00:22
wgrantStevenK: Try running the whole test_archive_packages locally.00:26
wgrantIt seems to succeed.00:26
wgrantCan you confirm?00:26
StevenKwgrant: YEs00:32
wgrantStevenK: Throw it at ec2 again, and lp-land if it fails again.00:32
StevenKSo .... yay00:32
wgrantI can debug it locally from here.00:33
lifelesswgrant: had you done a test run with your eager loading person patch00:42
timrcStevenK: Hey... I followed your example in https://bugs.launchpad.net/launchpad/+bug/440652/comments/4 using changing out values 'ppa-foo' and 'edge in login_with() and my e-mail for getByEmail().  When I do a dir(me), I do not see createPPA... was wondering if you may have an idea why00:47
_mup_Bug #440652: Allow creation of PPAs via API <api> <bad-commit-11820> <lp-soyuz> <oem-services> <ppa> <qa-ok> <Launchpad itself:Fix Released by stevenk> < https://launchpad.net/bugs/440652 >00:47
wgrantlifeless: No.00:50
wgrantStevenK: Actually, if it fails ec2 again and I haven't landed a fix yet, increase the limit in the test by 1 and lp-land.00:50
wgrantJust to be safe.00:51
lifelesswgrant: ah. Well, I may break ec2 then00:51
wgrantlifeless: Oh?00:52
wgrantIt's very unlikely to break anything...00:52
lifelessadds another query to bug page loading00:53
lifelesssome of the scaling tests are exactly on the minimum query count00:53
StevenKtimrc: Having a look00:53
wgrantlifeless: Only if there are no comments.00:53
wgrantNo comments with people other than the reporter, I guess.00:53
wgrantStevenK: Ah, I see the issue.00:54
lifelessit doesn't discard things in the storm cache from the queyr00:54
lifelessso it will query them all00:54
StevenKwgrant: With test_source_query_counts?00:54
wgrantStevenK: Yes.00:54
wgrantStevenK: It was already fluctuating, and my change made it exceed the buffer.00:54
wgrantStevenK: The first webservice test does a SELECT secret FROM secret00:54
wgrantSubsequent ones do not.00:54
StevenKI did see that in the traceback.00:55
wgrantWill fix properly after lunch -- increment the buffer and lp-land for now.00:55
StevenKwgrant: The branch has been in ec2 for 10 minutes :-(00:56
wgrantAh.00:56
wgrantIn happier news, the mirror prober has now shut up.00:57
wgrantIn less happy news, lucid_db_lp has librarian-broken again00:57
StevenKwgrant: I can kill the instance with fire, bump the 42 to 44(?) and lp-land00:57
wgrantStevenK: 4300:58
StevenKOr I can just wait00:58
wgrantBut yes, that's a good plan.00:58
wgrantMy change added (626, 626, 'SQL-nostore', 'Transaction completed, status: Active') to the end.00:58
wgrantThat's all.00:58
StevenKThat's a COMMIT or actually something else?00:58
* thumper takes a break00:58
wgrantI am not entirely sure.00:59
wgrantNormally it says something like "Committed" or "Doomed"00:59
StevenKwgrant: Mind you, the branch had 3 other failures, which I've fixed, so not sure that impacts your "use lp-land" comment01:00
wgrantAh.01:00
StevenKtimrc: This is strange. The production API doesn't mention createPPA at all.01:01
StevenKBut qastaging does01:01
wgrantStevenK: I see createPPA in lpnet's apidoc...01:02
StevenKwgrant: Looking at my api.launchpad.net cached WADL, I can't see it01:03
wgrantStevenK: What if you move the cached WADL away?01:03
wgrantOr use devel instead?01:03
StevenKtimrc: Are you using edge or production?01:06
StevenKwgrant: Still happy for me to kill the instance and lp-land directly?01:06
wgrantStevenK: If you've fixed the other failures and incremented the value, sure.01:07
StevenKwgrant: http://pastebin.ubuntu.com/571446/01:10
wgrantStevenK: If it passes on its own locally, go for it.01:11
StevenKIt does, pushing and landing01:11
wgrantThanks.01:11
wgrantI will fix the test infrastructure to clear the session machinery's secret cache, I think.01:12
StevenKRargh, lp-land uses edge01:12
StevenKEDGE!01:12
* wgrant → lunch01:15
timrcwgrant, StevenK: my apologies, I had to dip out01:15
timrcStevenK: I was testing with edge01:15
StevenKtimrc: I had to delete my launchpadlib cache, but using production I could see createPPA()01:17
timrcStevenK: okay, let me give it a try01:17
* cody-somerville wondered if it was a cache issue.01:17
StevenKcody-somerville: I was hoping it wasn't, and my cache of the production WADL was only 24 hours old01:18
cody-somervilleinteresting01:18
StevenKITYM "disturbing"01:18
timrcStevenK: okay, switching to production, and it worked as expected01:20
timrcStevenK: and clearing my cache for edge also worked01:23
timrcStevenK, wgrant: thanks!01:24
StevenKtimrc: You're welcome01:25
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
=== 84XAAAATU is now known as beuno
lifelesshmm01:48
lifelessis there an ISourcePackage adapter for IDistributionSourcePackage01:48
lifelesswgrant: btw01:56
lifelesstest_source_query_counts - the expected_count += 1 due to getCurrentSourceReleases can be trivially fixed now.01:57
StevenKIt can?01:59
lifelessyes01:59
lifelessStevenK: look at the implementation of DistroSeries.getCurrentSourceReleases02:01
wgrantlifeless: How does it make sense to adapt a DistributionSourcePackage to an ISourcePackage?02:16
lifelessget the current series sourcepackage02:22
lifelesshttps://bugs.launchpad.net/launchpad/+bug/27951302:22
_mup_Bug #279513: Distribution source package tooltip in bugtask table shows most recent SPPH in any series <lp-bugs> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/279513 >02:22
wgrantAh.02:22
lifelessbunch of code in dsp would be simpler if it indirected to ISourcePackage(self).<same>02:25
lifelessfor instance02:26
wgrantIf you add that adapter then you have to rename it to DistroSeriesSourcePackage.02:26
lifelessbah02:26
lifelesswhats in a name02:26
lifelessalso the sample data is bong02:26
lifelesshoary has no publications02:27
wgrantYes, the sample data is really bad.02:28
wgrant  44 IntegrityError: duplicate key value violates unique constraint "tm__potmsgset__language__shared__ubuntu__key"02:30
wgrantNot ideal.02:30
lifelessoops?02:30
wgrantOOPS-1880A157802:31
wgrantsession_dev=# SELECT secret FROM secret;02:39
wgrant          secret02:39
wgrant--------------------------02:39
wgrant thooper thpetial theqwet02:39
wgrantHah02:39
lifelessoh noes02:42
lifelesslp has been hacked02:42
wgrantI know!02:42
wgrantlifeless: lib/canonical/launchpad/webapp/session.py, _get_secret is a test isolation issue.02:42
wgrantI am wondering about a good place to clear that.02:43
lifelesssec02:44
lifelesshttps://code.launchpad.net/~lifeless/launchpad/bug-279513/+merge/5106302:49
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
wgrantlifeless: Looking.02:49
lifelessso re the secret02:50
lifelessI've worked around it by doing one request before actual test requiests02:50
lifelessthats a bit fugly02:50
wgrantI am tempted to clear it in getUserBrowser.02:50
wgrantWell, setupBrowser.02:50
lifelessforcing it on every time?02:50
wgrantEmpty the cache so it is queried for every test.02:51
lifelesswon't help folk doing 2 queries per test02:51
lifelesswhat about populating it when the layer is brought up02:51
wgrantBut it will isolate the tests.02:51
wgrantI guess.02:51
wgrantYeah, that might work.02:51
wgrantJust need to be sure the DB is in place at that point.02:51
LPCIBotProject db-devel build (392): STILL FAILING in 5 hr 23 min: https://hudson.wedontsleep.org/job/db-devel/392/02:52
LPCIBotLaunchpad Patch Queue Manager: [rs=buildbot-poller] automatic merge from stable. Revisions: 12438,02:52
LPCIBot12439 included.02:52
thumperwgrant, wallyworld: update script evolved to http://pastebin.ubuntu.com/571485/02:53
wallyworldthumper: cool. otp. will look soon02:53
wgrantthumper: e.name vs e.new_value?02:54
thumpere.name is the name of the field updated02:54
thumpere.new_value is the value of the field02:55
wgrantOh, right, separate events.02:55
thumperwgrant: yup, very simple update methods02:55
wgrantLooks really great.02:55
wgrantPlease deploy it EVERYWHERE>02:55
wgrantNow.02:55
thumperwgrant: would you like to review the interesting change?02:55
thumperwgrant: like Javascript?02:56
wgrantthumper: I would.02:56
wgrantI don't know YUI well at all, but I need to learn it.02:56
thumperwgrant: well... there are three branches here02:56
thumperwgrant: I've self approved the first one02:56
wgrantI saw that.02:56
thumperit changed LP.client.cache -> LP.cache02:56
thumperand LP.client.links -> LP.links02:56
thumperand that was it02:56
thumperthe second makes LP.client methods a YUI module02:56
thumperI was about to self approve, but if you want to take a look, it is mind-numbingly boring02:57
thumperhttps://code.launchpad.net/~thumper/launchpad/lp-client-yui-module/+merge/5103802:57
thumperand 2.2k lines02:57
wgrantI already had that open, and it is 1.5k lines... has it grown?02:57
wgrantHah, it has.02:57
thumperhttps://code.launchpad.net/~thumper/launchpad/client-cache-sync/+merge/5104902:58
thumperthat is the intersting one02:58
LPCIBotProject devel build (469): FAILURE in 5 hr 21 min: https://hudson.wedontsleep.org/job/devel/469/02:58
LPCIBotLaunchpad Patch Queue Manager: [r=jcsackett,sinzui][no-qa] Add a test to prevent new Sphinx errors02:58
thumperwgrant: where is that bug of yours that says the base branch and deb version get out of date?02:59
wgrantthumper: Bug #72106403:00
_mup_Bug #721064: Inline recipe text editor doesn't update the "Debian version" field on the page <recipe> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/721064 >03:00
wgrantI actually thought you'd just laugh and ignore it.03:00
wgrantI didn't imagine a fix was in progress.03:00
thumper:)03:01
wallyworldthumper: looks ok on first read. i think i need to actually wire something up though and experiment to get a full feel for it03:06
wgrantlifeless: These structural subscription queries upset me.03:08
wgrantJust looking at some checkwatches OOPSes.03:08
lifelessthere is a bug now03:08
wgrantSQL queries that are 323 lines long: Australia says no.03:08
lifelessoh good03:14
lifelessquestion:+index is back03:14
thumperwgrant: I've added a description to the MP03:18
wgrantHmm.03:19
wgrantThat LockWarner thing just killed devel for a second time.03:19
wgrantMaybe not spurious.03:19
wgrantWell, it seems to at least occur there with far higher frequency than the other places it shows up.03:20
wgrantI think we should disable that test.03:21
wgrantlifeless: Do you know why NullBugTask still exists?03:21
wgrantthumper: hm, why do you redirect on location change?03:22
lifelessits high frequency03:22
lifelesswe should fix it03:23
thumperwgrant: ahh... whut?03:23
lifelessits the same as the oopses we're seeing I think03:23
wgrantthumper: erm, I mean, why do you reload the page when the web_link changes?03:23
lifelesswgrant: nullbugtask exists for when someone puts in an invalid context for a bug03:23
wgrantlifeless: I know that's why it existed.03:23
wgrantBut it doesn't explain why it still exists.03:23
thumperwgrant: because the current page is now invalid03:23
thumperwgrant: it doesn't exist any more03:24
thumperwgrant: it would be a 40403:24
lifelesswgrant: whats more interesting is 'why isn't the NBT redirect working'03:24
thumperwgrant: for example, if I change the owner of a recipe03:24
thumperwgrant: the recipe now has a new url03:24
lifelessI think this may be related to it being a source package, or something03:24
wgrantlifeless: There is one case left.03:24
wgrantlifeless: It is.03:24
wgrantlifeless: It checks if it's reported in the distribution at all.03:24
wgrantIf it is, it's OK.03:24
wgrantI am wondering why that is OK.03:24
lifelessI think this is oversight03:24
wgrantI hope so.03:25
wgrantI meant to check with Bugs people about it.03:25
lifelessgmb muttered words to the effect of 'wtf' when I opened the NBT timeout bug03:25
wgrantthumper: Can't we update things that reference the base URL and push a new history entry?03:25
wgrantThe AJAX product switcher refreshing the page is really disconcerting.03:25
wgrantlifeless: Ah, good.;03:25
wgrantlifeless: 'tis easily destroyed, then.03:26
thumperwgrant: I'm not sure... can we?03:26
wgrantWill you murder it?03:26
lifelessI don't believe you'd meet any objections to nuking it03:26
thumperwgrant: in a reasonable way?03:26
lifelesswgrant: no, I'm staying on the top two timeouts03:26
wgrantthumper: github does it reasonably nicely.03:26
wgrantTwitter does it awfully badly.03:26
lifelessI'm going to poke at Branch:+index for a bit, it seems to be running into grief03:26
thumperwgrant: I'll take a look03:27
wgrantthumper: See https://github.com/jquery/jquery03:28
wgrantClick on a directory there.03:28
wgrantIt changes the URL without refreshing the page.03:28
thumperwgrant: it is refreshing the page, or at least firebug thinks so03:29
wgrantthumper: Firefox 3?03:29
thumperyep03:30
wgrantI guess that doesn't support some new HTML5 API that it needs :(03:30
wgrantSad.03:30
StevenKlifeless: Your forced build failed in exactly the same way ...03:30
lifelessStevenK: no03:30
lifelessStevenK: db-devel failed03:30
lifelessthen devel failed03:30
lifelessdevels previous failure was a different error03:31
* lifeless is pretty but not 100% sure that this is what happened03:31
* StevenK checks again03:31
thumperI am so finishing a little early today03:32
thumper6am call, and working through lunch03:32
lifelessyeah03:32
lifelessnow if only that call was at 7am03:32
StevenKYes, I'm right. Both 653 and 654 both failed with the _LockWarner garbage in the middle of the Sphnix test.03:32
wgrantThat's what I thought.03:33
lifelessah well03:33
lifeless3rd time lucky03:33
StevenKAnd if it fails then you might admit there is an issue?03:33
lifelessif you want to disable it I think thats a reasonable precaution03:33
lifelessI've already agreed to that, no need to get snarky03:33
lifelessall intermittent failures are issues03:33
lifelessthere is a bug open on this one03:33
lifelessmarked critical03:33
StevenKlifeless: You already said I was wrong once ... :-)03:34
lifelessStevenK: I thought the identical failure was on db-devel03:34
lifelesshmm03:34
lifelesswallyworld: do you show bugs in the linked mps you did on branch indexes ?03:35
StevenKNo, db-devel was test_404 and test_old librarian breakage03:35
lifelessStevenK: thanks for digging03:35
StevenKIn fact, Hudson is failing builds in exactly the same way.03:35
StevenKactual = "Making output directory...\nException IndexError: IndexError('list index out of range',) in <bound method _LockWarner.__del__ of <bzrlib.lockable_files._LockWarner object at 0x10ea8790>> ignored\n"03:36
wgrantHuh.03:36
* thumper walks away for today03:39
thumperbranches are up for review03:39
wallyworldlifeless: yes.03:42
StevenKlifeless: I thought we had upgraded all of our sourcecode branches? http://pastebin.ubuntu.com/571505/03:43
wallyworldlifeless: there are a couple of minor enhancements/issue that martin raised. can't recall what they are off hand03:43
wgrantStevenK: Your local branch is an old format.03:44
lifelesswallyworld: https://bugs.launchpad.net/launchpad/+bug/71068503:44
StevenKsteven@liquified:.../sourcecode/loggerhead% bzr info03:44
StevenKStandalone tree (format: unnamed)03:44
_mup_Bug #710685: Branch:+index timeouts <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/710685 >03:44
StevenKHm. Orsum03:44
lifelesswallyworld: *300* bug lookups on Branch:+index pages.03:45
* wallyworld looks03:45
lifelesswallyworld: I suspect, totally without evidence, your patch.03:45
wallyworldlifeless: could be me for sure. it was a while ago, but there already was one round of optimisation to avoid the 1+N query problem. could be something else as well. i'll look at it once i finish my current branch03:47
lifelesswallyworld: you're on maintenance next week03:47
lifelesswallyworld: if I were you, I'd stay focused on recipes this week to leave them as awesome as possible03:48
StevenKHm, what does format: unnamed in bzr info mean?03:48
wallyworldlifeless: yep. wasn't sure if you wanted it to wait til next week but that suits me fine03:48
lifelesswallyworld: I was running it up the flagpole to see if it triggered an 'oh yes' or a 'hmm didn't think of that' or a 'its been changed since me cause I checked for that'03:57
wallyworldlifeless: nothing pops to mind, since work was done to reduce the query count at the time of implementation and i *thought* it was left in a sensible state. something might jump out when i have another look though03:58
lifelessI've just generated OOPS-1881C305 on https://code.launchpad.net/++oops++/~bzr-pqm/bzr/bzr.dev to get an overview03:59
lifelessthat branch has no linked bugs03:59
wgrantOh.04:11
wgrantOH04:11
wgrantFFS04:11
* wgrant headdesks repeatedly.04:11
wgrantREPEATEDLY04:11
wgrantSo. Fucking. Obvious.04:11
wgrantGarrr04:11
wgrantThe librarian mystery is not so mysterious.04:12
lifelesswgrant: 'sup04:13
StevenKwgrant: Is this test_404 and such?04:14
wgrantStevenK: yes.04:14
StevenKSHARE!04:14
wgrantI will have a branch in a sec.04:14
wgrantYou don't want to see it.04:14
wgrantYou will never forgive yourself for not seeing it earlier.04:14
StevenKHahaha04:15
wgrantNow I just have to kick Windmill in the face a few times.04:16
StevenKOnly if you have knives on the bottom of your shoes04:16
StevenKlifeless: I can't see this bug about Sphinx04:20
wgrantThere's a bug about the _LockWarner issue in general.04:20
wgrantSphinx just exposes it better.04:21
lifelessbug 72116604:21
_mup_Bug #721166: Tests sometimes fail on EC2 due to _LockWarner garbage <build-infrastructure> <spurious-test-failure> <Launchpad itself:Triaged> < https://launchpad.net/bugs/721166 >04:21
StevenKI'm strongly leaning towards disabling test_docs_build_without_error04:22
wgrantIf it fails again, do it,.04:23
wgrantIt is not Sphinx's issue, but Sphinx seems to expose it reliably... except locally.04:23
wgrant... and except on ec2.04:23
StevenKIt's failed twice on BuildBot and once on Hudson04:23
wgrantKill it.04:23
StevenK-    def test_docs_build_without_error(self):04:24
StevenK+    def DISABLED_test_docs_build_without_error(self):04:24
StevenKwgrant: Tossing to PQM with "[testfix][rs=stevenk,wgrant] Disable building the Sphinx docs due to spurious failures."04:36
wgrantStevenK: You're disabling the *test*.04:37
wgrantNot building the docs.04:37
wgrantAlso, we're not actually in testfix atm, are we?04:38
wgrantSo you'll need QA tags.04:38
StevenK[rs=stevenk,wgrant][no-qa] Disable the Sphinx docs test due to spurious failures.04:38
wgrantStevenK: Looks good.04:39
StevenKTossing04:39
StevenKwgrant: Where's this librarian branch?04:39
wgrantStevenK: Generating a diff.;04:39
wgrantDescription of the Change04:40
wgrantSo it turns out that str.replace()ing integers in a URL with a random port is not such a good idea.04:40
StevenK*facepalm*04:40
wgrantCodehosting, you suck.04:41
wgrantI discounted months ago the idea that there was an obvious issue in the tests themselves, because a subclass worked fine...04:43
* StevenK discovers the branch04:43
wgrantDiff is mostly there now.04:43
StevenKI note the branch scanner hasn't run over it yet04:43
* wgrant goes logdiving.04:44
StevenKIt has now04:44
wgrantThe diff took 6 minutes :/04:44
wgrantlifeless: Still around?04:45
StevenKwgrant: Why a top level function?04:45
wgrantStevenK: Because there is no benefit in making it a method.04:45
wgrantWe are not Java.04:46
StevenKNext question, why weren't they failing locally? :-)04:46
lifelesswgrant: sup04:47
wgrantlifeless: https://code.launchpad.net/~wgrant/launchpad/fix-librarian-spuriousity/+merge/5106804:48
StevenKlifeless: I've already reviewed, so you need to review my review04:48
lifelessso, when the port == the alias, boom04:49
lifelessyes?04:49
wgrantlifeless: When the alias is any substring of the port.04:49
lifelessright04:49
wgrantI am guessing the ec2 and hudson pids rarely get high enough.04:50
wgrantAnd locally the tests are rarely run.04:50
StevenKOH, it's from the pid?04:50
wgrantHm, except it's ports, not pids.04:50
wgrantFail.04:50
wgrantI wonder what the algorithm is.04:50
StevenKIt does seem to hit buildbot more04:51
lifelessyou need a low ephemeral port #04:51
lifelessand a high lfa id04:51
StevenKRight04:51
StevenKLaaaaaaaaaaand it04:52
wgrantThanks.04:53
wgrantIf only we could restart test runs.04:53
lifelessimport smalltalk; smalltalk.start()04:54
lifelessthink of the good news04:55
lifelessif I broke the test suite, we'll see those failures as well04:55
wgrantWhat good news? There is still Windmill and _LockWarner.04:55
wgrantHah04:55
lifelessnow to figure out why @adapter(IBeforeTraversedEvent) isn't triggering04:58
wgrantWhat are you doing and why?04:58
lifeless++profile++ on staging05:02
lifelesswe'll miss very early setup05:02
lifelessoh wow05:07
lifelesswe call set_developer_in_launchbag_before_traversal a few times too many05:07
lifeless(becaues the event doesn't do what folk think it does)05:07
wgrantIs it before every publishTraverse?05:08
lifelessits before each step of traversal, yes05:09
lifelessI'm going to be using the same event, but explictly handle that case05:09
lifelessits easier than patching zope05:09
wgrantI suppose I should exterminate the remaining third of the checkwatches OOPSes.05:16
StevenKHow many OOPSes is that?05:17
lifeless3 brazillion05:18
wgrantIt varies.05:18
wgrant1000-7000 a day.05:18
wgrant15000 in the last three days.05:18
wgrant9000 of which are fixed.05:18
StevenKstaging doesn't love me :-(05:20
wgrantThe update failed due to some slony stuff.05:21
wgrantSpeaking of slony.05:24
wgrant        if not is_ca_available():05:29
wgrant            raise LayerInvariantError(05:29
wgrant                "Component architecture not loaded or totally screwed"05:29
wgrant                )05:29
lifelesswgrant: speaking of fish, monitors ?05:30
wgrantlifeless: The slony comment was related to the arrival of stub, not the CA screwedness.05:32
wgrantNo fish, sadly.05:32
stubslony is a computer program, not me typing furiously05:33
lifelessa small patch is a good patch05:33
wgrantstub: Anyway, do you know why the staging update exploded yesterday?05:34
stub(Replication lag is spiking. Make stub another coffee!)05:34
wgrantSome slony error.05:34
wgrantThat is not entirely obvious.05:34
wgrantstub: Ahh, I noticed there was multi-minute lag on some stuff an hour ago.05:34
stubthe slony error will be that it obfuscates the real error most likely05:35
wgrantThe forwarded email didn't look like the usual patching failure.05:35
wgrant2011-02-23 07:35:19 INFO    Waiting for cluster to sync.05:36
wgrant/tmp/slonik5hZrbc.sk:27: timeout exceeded while waiting for event confirmation05:36
wgrant2011-02-23 07:45:20 ERROR   slonik script failed05:36
wgrantNot a patching issue :/05:36
stubYup05:36
wgrantHmm, one long transaction.05:36
wgrantExcept it wasn't long.05:36
stubIts sad when I consider an automated system that works most of the time a successful improvement05:36
wgrantAhh, pofilestats was running.05:36
wgrantThat could do it.05:36
wgrantIt probably still is.05:37
wgrantThat's quite a serious transaction it has there.05:37
wgrantAre qastaging and staging in the same replication thingy?05:37
StevenKsoren: Do you know what plugins the OpenStack Hudson is using? I'm interested in the merging one that posted to the MP05:38
lifelessmtaylor: ^05:39
lifelesswgrant: no05:40
lifelesswgrant: qas has no replica05:40
lifelesswgrant: staging has one replica05:40
StevenKThen we can replace both PQM and BuildBot with Jenkins!05:40
wgrantStevenK: Once we unbreak windmill.05:40
wgrantWhich could be approximately infinitely far in the future.05:40
StevenKWindmill makes me sad.05:40
wgrantIt also doesn't work at all with Firefox 4.05:41
wgrantStevenK:05:52
wgrantTest-module import failures:05:52
wgrantModule: lp.scripts.tests.test_sphinxdocs05:52
wgrantTypeError: Module lp.scripts.tests.test_sphinxdocs does not define any tests05:52
wgrantIs that going to break anything?05:52
StevenKOh, DAMN IT05:53
StevenKTestCase, I hate you05:54
StevenKYes, it is05:54
wgrantThat's a little stupid.05:54
lifeless\o/05:56
lifelessstub: just organising dinner; call after?05:56
stubSure.05:57
wgrantHmmm.05:57
wgrantI want to increment this rollout request.05:57
stubCaffeinated. Still stuck with silly sleep cycle though.05:57
lifelesswgrant: do so05:58
wgrantlifeless: But that will make jml and Ursinha sad :P05:58
lifelesswgrant: it was a learning exercise for Ursinha - and she has learnt05:58
lifelesswgrant: I would increment yours, if you were asleep and more was ready05:58
lifelessjust put Ursula, william as the requestors05:58
wgrantHopefully we can do two tonight.06:00
wgrantSince there are 9 revs stuck in buildbot.06:01
* StevenK waits for bzr06:01
* wgrant cuts off shipit's fingers as they go near anywhere except lp.shipit06:02
StevenKOh?06:02
wgrantRemoving the canonical.widgets imports, mainly.06:03
* StevenK cheats06:04
wgrantThat's cheating.06:04
StevenKUh, wgrant, I think the import facist hates you06:05
StevenK** 1 import policy violations **06:05
StevenKThere were 1 imports of names not appearing in the __all__.06:05
StevenKYou should not import UnknownRemoteValueError from lp.bugs.externalbugtracker:06:05
wgrantIt does, yes.06:05
StevenK    lp.bugs.scripts.checkwatches.remotebugupdater06:05
wgrantI noticed that earlier and was going to slip a fix into my query counts branch.06:05
mtaylorStevenK: aroo?06:05
StevenKmtaylor: O hai06:05
mtaylorhey - so, we're just having hudson trigger tarmac06:05
mtaylorI _REALLY_ want to finish some work on plugins for jenkins to allow it to not need tarmac but instead directly interface with launchpad06:06
mtaylorbut that stalls every time I try to make progress onit06:06
StevenKmtaylor: How? I was strugging to figure out how to get Jenkins to do anything after a build finished06:06
StevenKwgrant: I can't test this cheat with that import error :-(06:07
mtaylorStevenK: there are post-build triggers06:07
wgrantStevenK: Hm? That's not an error...06:07
lifeless\o/ working06:08
lifelessstub: skype?06:08
StevenKmtaylor: I see them, but there doesn't seem to be a "Go and run this script for me" one06:08
mtaylorStevenK: I _think_ you can do that, but I don't do that so I don't know06:09
StevenKmtaylor: Also, does that mean you have Jenkins testing random branches?06:09
lifelessStevenK: thats easy; parameterised :)06:10
StevenKwgrant: http://pastebin.ubuntu.com/571547/06:10
wgrantStevenK: Success.06:10
mtaylorStevenK: I do have jenkins set up with parameterized builders both for drizzle and openstack06:10
mtaylorStevenK: although the openstack one is less useful since we're just using jenkins to trigger tarmac for openstack. for drizzle, the param-build jobs are essential and excellent06:11
mtaylorlifeless: have I mentioned how sad I am that I havne't gotten those jenkins plugins done yet?06:11
wgrantproduction deployments don't respect the revisions in sourcedeps.conf, do they?06:12
lifelessmtaylor: you have06:16
StevenKwgrant: My cheating makes me sad: http://pastebin.ubuntu.com/571557/06:18
wgrantStevenK: Can't you just rename the file?06:19
StevenKoh, disabled_test_... ?06:20
wgrant.py.goaway06:20
wgrantOr maybe disabled_test...06:20
wgrantNot sure if that works.06:20
wgrantPreferably the prefix.06:20
lifelessuhm06:20
lifelessprefix preferred for sure06:21
wgrantFor doctests we suffix.06:22
StevenKFix pushed into PQM06:23
StevenKIt would be nice if the deployment report also said how far behind qas is, which might hint at a buildbot stall or os06:28
StevenKs/os$/so/06:28
StevenKEr, how far behind stable tip qas is06:28
wgrantI'd really like the report to list all revisions in devel, split into what is on qas, what is waiting for deploy to qas, what is in buildbot, what is waiting for buildbot.06:30
wgrantAnd somewhere listing in-progress ec2 runs would be handy.06:30
lifelesslp:~lifeless/launchpad/profile06:31
lifelesspushing now06:31
StevenKwgrant: In-progress ec2 runs is *hard*06:31
lifelessstub: https://code.launchpad.net/~lifeless/lp-production-configs/single-threaded/+merge/41554 has a script to add configs06:41
lifelessstub: https://bugs.launchpad.net/launchpad-project/+bugs?field.tag=timeout06:44
lifelessstub: if you wanted to review https://code.launchpad.net/~lifeless/launchpad/profile/+merge/51078 that might be nice06:47
* lifeless goes eats06:47
wgrantInteresting.06:48
wgrantI can set the importance of ShipIt bugs, but can't mark them Triaged.06:48
lifelessbacks06:57
lifelessnomification vacuumed06:57
wgrantExcellent.06:57
lifelessstub: hey; the staging and qastaging restores06:59
lifelessstub: can they inject a feature flag ?06:59
wgrantCan't we add a server:qastaging?07:00
lifelesswgrant: still wouldn't want that on production07:00
lifelessin event of a mishap it would be bad07:00
stubSure. Its just a shell script. It could also be injected in database/replication/Makefile but for a hack just for staging the shell script is a better fit.07:00
lifelesswgrant: oh, and scopes have no boolean operators07:00
lifelesswgrant: so it wouldn't help.07:01
lifelessstub: I'd like to get 'profiling.enabled team:launchpad 0 on' added when the staging and qastaging systems come online07:02
stublp:~canonical-losas/lp-staging-scripts/trunk is where the staging restore script lives07:02
lifelessstub: we also should add those to the current databases07:02
stubDo you want these flags added via config file items, or just hard coded in the rebuild scripts?07:02
stubscrap that... config file items would need to handle removal too and becomes a much bigger problem...07:03
lifelessstub: exactly, just added in the rebuilt scripts07:03
lifelessand manually nowish to the existing [qa]staging servers07:03
wgrantlifeless: https://code.launchpad.net/~wgrant/launchpad/everything-into-lp.shipit/+merge/5108007:06
wgrantThanks.07:09
stubWe have a nice web ui for adding feature flags to live systems somewhere...07:19
wgrantstub: /+feature-rules?07:20
stubThis script is a piece of poo07:22
wgrantWiiiiindmiiiiiiiiiiiiiiil07:33
stublifeless: https://code.launchpad.net/~stub/lp-staging-scripts/devel/+merge/5108207:39
lifelessstub: will that affect qastaging as well?07:42
LPCIBotProject devel build (470): STILL FAILING in 4 hr 49 min: https://hudson.wedontsleep.org/job/devel/470/07:48
LPCIBot* Launchpad Patch Queue Manager: [r=lifeless, wgrant][ui=sinzui][bug=712773, 722344] Show which recipe,07:48
LPCIBotits build and the requester are responsible for the creation of the07:48
LPCIBotpublishing record in the detail of a PPA's +packages page.07:48
LPCIBot* Launchpad Patch Queue Manager: [r=lifeless][bug=724013] Actually eager load message owners in07:48
LPCIBotBug._indexed_messages.07:48
LPCIBot* Launchpad Patch Queue Manager: [r=stub][bug=722429] Eager load milestones used in bug search result07:48
LPCIBottables.07:48
LPCIBot* Launchpad Patch Queue Manager: [r=lifeless][bug=592345,07:48
LPCIBot719288][incr] Several checkwatches OOPSes have been demoted to INFO07:48
LPCIBotlog entries.07:48
lifelessstub: I've lowered the oauthnonce thing to low given its not making trouble at the moment; feel free to make it high or $whatever if I've assessed it wrongly07:52
sorenStevenK: That would be Tarmac.08:08
stublifeless: thats fine08:13
stublifeless: No. I'm not sure where the qastaging rebuild scripts live.08:13
=== jtv-afk is now known as jtv
wgrantIs there a qastaging rebuild script?08:13
lifelessthere is a means08:13
lifelessI don't know the rest08:13
lifelessstub: could I beg a review from you - https://code.launchpad.net/~lifeless/launchpad/profile/+merge/5107808:16
lifelessstub: I forgot to highlight https://dev.launchpad.net/LEP/OopsDisplay for a once over08:22
stubk08:23
stublifeless: reviewed08:32
lifelessthanks08:34
stublifeless: nice to have: short OOPS codes. If you are going for md5 for oops id, might as well just use uuid08:39
* stub tries to recall how well an md5 can be compressed08:39
lifelessstub: uuids are ~ the same length08:39
lifelessstub: we could just use the first N bits of (any) hash and be (probably) unique08:40
lifelesse.g. if we're doing 6M in a month08:40
lifelessand gcing at 30 days08:40
lifelessthen taking, oh, 40 bits, would be pretty unlikely to collide within the lifespan of the oops08:41
* stub wonders where his base.py disappeared too08:41
lifelessit belongs to us08:41
lifelessyou are right though, uuids would also do the job, using libuuid or whathave you08:41
lifeless(40 bits is 10 characters in hex - 012345678908:42
lifelesswhich is pretty short08:42
stublp.services.utils.compress_hash shrinks an md5 to 22 ascii characters (converts the number to base62)08:43
lifelesscool08:43
stubI guess that is fine given our oops prefixes are getting looong already08:44
lifelessis that available outside the lp tree?08:44
stubnot yet, but it probably should since the base() function it uses is PSF licence and pulled from the Python Cookbook.08:44
lifelessI want to write oops-repository as a lightweight project not needing the lp tree, so that other teams can deploy it sanely08:45
stubyup08:45
mrevellHello08:46
stubI suspect local rabbits on each server is overkill. I think we don't care about occasional lost OOPSes enough to warrent the extra complexity.08:47
lifelessstub: I'm torn08:48
lifelesson one hand, it is slightly more setup (only slightly - rabbit, durable queue, shovel - done.)08:49
stubBut then we have three moving parts to fail rather than one.08:49
lifelessbut less dependencies08:50
lifelessif we do just one rabbit, we have more complex code08:51
lifelessthe appserver code would have more reason to be tolerant of that rabbit being down for maintenance (whereas with a federation we can just bring the local rabbit up before the appserver)08:52
lifelessanyway, it won't change the code we write08:52
lifelessthe contract is 'speak to a rabbit' on both ends08:52
lifelessas long as we can configure the rabbbit node to use, its flexible enough to run in either config without change08:52
stubI'm used to more moving parts increasing downtime08:53
stubToo many systems attempt to reduce downtime by creating redundancy and end up increasing it because there are more things that can screw up.08:53
lifelessthats certainly possible!08:54
lifelesswe can afford to lose some oopses08:54
lifelessI'd hesitate to lose hours though, in the event of (say) devpad failing08:54
=== mbarnett` is now known as mbarnett
stubOf course, if casandra is distributed and never goes down we could have the appservers stuff OOPSes directly in there.08:57
lifelesswe could08:58
lifelessI'm totally open to that as well08:58
lifelessone advantage for u1 of rabbit is that they have a lot of network glitches, which cassandra wouldn't help with08:59
wgrantIs that because they are partly on EC2?08:59
lifelessentirely because of that09:00
stubif we want short OOPS ids, systems could pull unique integers from rabbit (fed from some source maintaining the central counter)09:00
lifelessstub: I don't particularly care about short OOPS ids - and having a central allocator would force an api-call rather than a fire and forget model09:00
lifelesswhat would short oops ids help us with ?09:05
stublifeless: Making them citable. bug reports, irc conversations, even phone calls.09:09
lifelessall but phone calls are copy and pastable09:10
stuba script or appserver could pull a unique prefix and then use it to generate unique ids09:11
lifelessfor phone calls, once they are in the database, we can use the prefix logic git and hg do to let you cite just a unique prefix09:11
stubThey are copy and pastable, but not readable09:11
stubBug reports with 'See OOPS-X542327' vs. 'See OOPS-ACBD18DB4CC2F85CEDEF654FCCC4A4D8'09:13
stubMuch more space chewed up, much less readable == sucky ui09:13
lifelessmmm09:14
lifelessI see the point, but it doesn't feel very compelling09:14
lifelessI am possibly overreacting to the current headaches09:15
stubmanually allocated prefixes suck cause people mess up (even if they are slightly nicer in that you can use them to identify the system the OOPS came from without looking at the content). But long ids suck too because of the sheer volume we are constantly wading through.09:16
lifelessOOPS-68b329da9893e34099c7d8ad5cb9c940 - thats an actual md5sum09:27
lifelessOOPS-1202CBB123409:27
lifelessthats our current oopses09:27
lifelessso its about twice as long09:27
=== allenap` is now known as allenap
bigjoolsnicely rounded down :)09:28
lifelessOOPS-1202CBB1234OOPS-1202CBB123409:29
lifelessOOPS-68b329da9893e34099c7d8ad5cb9c94009:29
stub6 digit bug numbers suck too. Should have made the ids alphanumeric :)09:37
jtvmwhudson: you still here by any chance?  Got a problem with the ec2 image, and heard you might know.09:45
jtvWTF?  WTF?  WTFF?09:53
jtvbigjools: /etc/apt/sources.liste09:54
jtvsic09:54
bigjoolsjtv: that pulsing  vein is getting bigger09:54
jtvThey are identical though09:54
bigjoolsthat sounds suboptimal09:54
jtvBut shouldn't there be a sources.list[.d] entry for the Launchpad PPA?09:55
bigjoolsyes09:55
bigjoolsI think09:55
bigjoolsstub: if we add a ulimit on memory for the librarian, how big should it be?09:58
stubDunno. Guestimate by losa?09:59
bigjoolsok09:59
stubIf we spool uploads and/or downloads into RAM, fucking huge (and a bug report opened)09:59
mthaddonstub: enough so that it's not using swap I guess09:59
bigjoolswell it was at 15GB when it went awol10:00
stubmthaddon: Sounds sane10:00
mthaddonbigjools: we have mizuho configured with a ton of swap as when we didn't the process was dying before we could debug it, but that doesn't mean we *want* it to be using that much10:01
bigjoolsindeed10:01
stubIt *should* be small, even with a dozen threads and handling large files.10:01
bigjoolsI'm filing an RT to get a ulimit10:03
mthaddonbigjools: you realise this is just going to mean the librarian process crashes when it hits the ulimit rather than crashing later?10:04
bigjoolsmthaddon: yes - I am just doing what I've been asked to do :)10:04
* mthaddon nods10:04
bigjoolsmthaddon: I don't think it crashed before BTW, it just went very slow10:05
bigjoolsit's preferable to have it crash so you get an alert10:05
mthaddonthe problem we had before was it crashed before we could get debug info, which is why we changed it - it sounds like setting ulimit is going to mean it goes back to crashing before we can do any debugging10:06
bigjoolsok, you might want to put that on the RT10:06
mthaddonk10:09
bigjoolsjml: man I am so jealous of the twisted test suite:  real    1m44.882s11:21
jmlbigjools: yeah. I was going to reply to your comment about the Twisted landing process.11:24
bigjoolsit was somewhat tongue in cheek :)11:24
jmlbigjools: even though Twisted has stricter standards than Launchpad in many ways, it's still way easier to land stuff.11:24
bigjoolsjml: they need to start using bzr/lp for hosting the code - using svn again was kinda painful!11:37
jmlbigjools: tell me about it.11:37
bigjoolsI didn't realise how much I relied on local committing11:37
jmlor shelve, or revert working, etc.11:37
adeuringallenap: do you have time for a review? https://code.launchpad.net/~adeuring/launchpad/bug-688130/+merge/5110711:42
allenapadeuring: Sure.11:43
=== allenap changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: allenap | https://code.launchpad.net/launchpad-project/+activereviews
adeuringallenap: thanks!11:43
bigjoolsit pains me that poppy, which was one of the last truly free scripts, now has to load the zcml11:48
wgrantgina :D11:51
wgrantOr does that load ZCML, but just completely ignore its existence?11:52
bigjoolsit uses getUtility, so no11:52
bigjoolspoppy-sftp will be doing that also, so I had to call execute_zcml_for_scripts11:53
jmlbigjools: codehosting held out for a while.12:03
deryckMorning, all.12:04
bigjoolsjml: resistance is futile ...12:06
wgrantderyck: Morning.12:10
=== jtv is now known as jtv-afk
jtv-afkCould someone try an "ec2 land" to see if it works now?12:22
wgrantjtv-afk: What have you changed?12:23
jtv-afkGenerated new image, from newer lucid12:23
wgrantIt will still have the new bzr.12:23
wgrant'import bzrlib.plugins.pqm' needs to work in a fresh python12:23
wgrantOr we need to patch ec2test-remote.py12:23
jmlHas this error been fixed:12:45
jmlYou should not import UnknownRemoteValueError from lp.bugs.externalbugtracker:12:45
jml    lp.bugs.scripts.checkwatches.remotebugupdater12:45
wgrantjml: It's in an MP of mine.12:46
wgranthttps://code.launchpad.net/~wgrant/launchpad/secret-query-count-determinism/+merge/5108612:46
StevenKwgrant: Can you also revert that 42 to 43 business in that branch?12:48
jmlwgrant: approve w/ tweak.12:48
wgrantStevenK: I can't, sadly.12:59
wgrantStevenK: That bump was legit.12:59
wgrantStevenK: There is actually one more query now.12:59
wgrantYou added one when you changed PPA traversal.12:59
wgrantSo the failure in ec2 was not spurious, but the local failure was.12:59
StevenKAh13:00
wgrantSame test, same failure, different cause.13:00
StevenKHeh13:00
wgrant(yes, that took a while to work out)13:00
elmoso - I'm confused, am I blind or is +copy-packages really a hidden URL?13:06
wgrantelmo: For the primary archive it is deliberately unlinked.13:06
wgrantFor PPAs you need to "View package details" first.13:06
elmoalso - how does the 'rebuild the copied sources' option work when you're copying within the same PPA?  is it a binonlyNMU style thing?13:06
wgrantelmo: It doesn't.13:06
wgrantIt will refuse to rebuild into the same archive.13:06
elmook13:07
elmobother13:07
wgrantRoughly, yes.13:07
elmoalso, is there anyway to transition a PPA from one person to a group?  or should I just copy all the packages (including binaries) from one ppa to the other and then delete the original?13:07
wgrantYou cannot reassign a PPA. Your suggested method is the best workaround.13:08
bigjoolsthe latter13:08
elmocool - thanks guys13:08
LPCIBotProject devel build (471): STILL FAILING in 5 hr 25 min: https://hudson.wedontsleep.org/job/devel/471/13:13
LPCIBot* Launchpad Patch Queue Manager: [r=lifeless][bug=724138][incr] Add remaining shipit canonical.*13:13
LPCIBotimports to lp.shipit.13:13
LPCIBot* Launchpad Patch Queue Manager: [rs=stevenk][no-qa] Unbreak the testsuite,13:13
LPCIBotdisable the entire test_sphinxdocs file.13:13
LPCIBot* Launchpad Patch Queue Manager: [r=lifeless,13:13
LPCIBotstevenk][bug=706992][no-qa] Fix the spurious LibrarianWebTestCase13:14
LPCIBottest failures by restricting LFA ID replacement to the path.13:14
LPCIBot* Launchpad Patch Queue Manager: [rs=stevenk,13:14
LPCIBotwgrant][no-qa] Disable the Sphinx docs test due to spurious failures.13:14
leonardrgeser: while we wait for benjamin (stephano is away), i'll summarize13:15
jmlI didn't see a bug filed about that last one.13:15
leonardrin previous versions of launchpadlib, you had to get a separate credential for every application, and the credentials were stored unencrypted on disk13:15
jmloh well. I guess I know now.13:15
wgrantjml: It was the _LockWarner one.13:16
wgrantjml: The Sphinx test just breaks on it more often than the rest.13:16
leonardrgeser: now the user gets a single credential that authorizes every application they run on their computer, and the single credential is stored in the gnome keyring or kde waller (with a fallback to an encrypted file on disk if neither is running)13:16
wgrantjml: Three builds in a row got it, plus one on Hudson, so we decided to kill it.13:16
bdrungleonardr: hi13:17
jmlwgrant: fair enough. thanks.13:17
leonardrbdrung: hi, let me re-paste what i just told geser13:17
leonardrin previous versions of launchpadlib, you had to get a separate credential for every application, and the credentials were stored unencrypted on disk13:17
geserleonardr: ah that change, I've read about it13:17
leonardrnow the user gets a single credential that authorizes every application they run on their computer, and the single credential is stored in the gnome keyring or kde waller (with a fallback to an encrypted file on disk if neither is running)13:17
leonardrin ubuntu-dev-tools there's some code (find_credentials) to look for a credential file on disk13:18
leonardrthere's also some code to automatically approve an oauth request token, which 1) is something we're trying to get rid of, and 2) will only work for users who got their launchpad accounts before we started using the openid login service13:19
wgrantjml: Can I get a rereview of that branch in a sec? I was going to fix ec2 land in another branch, but since it's trivial and I can't land this one without it...13:19
jmlwgrant: sure, np.13:19
leonardrthere's also some minor cleanup: you use a method get_token_and_login which has been deprecated13:20
geserleonardr: does the new launchpadlib auth method also work in Debian without problems? (server installs or people not using KDE or gnome)13:20
leonardrand in the documentation, and in at least one place in the code, you assume that the server is either 'staging' or 'edge'. there are many more choices now, and 'edge' no longer exists13:21
leonardrgeser: if you're not using kde or gnome, the keyring library stores the keys in an encrypted file on disk. it's not ideal, but it seems to work13:21
leonardrthe keyring system does not work for scripts that must run unattended (such as cron scripts)13:22
wgrantjml: Diff updated.13:22
leonardrfor those you still must get a credential, write it unencrypted to a file, and pass the filename into Launchpad.login_with()13:23
leonardrhi, tumbleweed13:25
tumbleweedleonardr: hi, yes this has been on my todolist for a while13:25
leonardrtumbleweed: i just summarized the changes i think need to be made. let me pastebin the conversation to avoid repeating it in this channel13:25
jmlwgrant: just thinking if there's a sensible way to test the plugin change.13:25
leonardrhttp://pastebin.ubuntu.com/571711/13:25
wgrantjml: I don't think that can really be tested. Apart from by landing it.13:25
=== gary_poster is now known as gary_poster|away
=== gary_poster|away is now known as gary_poster
* leonardr refreshing his memory of how you're supposed to get a credential for a cron script13:26
leonardrgood. you just run your code, and if the credential file doesn't exist, you get a browser open, and the credentials are written to that file.13:27
jmlwgrant: ok. approved w/ comments.13:27
wgrantjml: It needs to be run in a subprocess in the right Python environment :/13:28
wgrantjml: On vanilla Lucid it works fine without it.13:28
jmlwgrant: oh yuck.13:28
wgrantIt's the new bzr PPA packaging that killed things.13:28
leonardrtumbleweed, geser, bdrung: i've blocked out my whole day for talking to developers. once i locate everybody i need to locate, i can sketch out some code changes for u-d-t if you like13:29
leonardrdo you have any questions about these changes?13:29
tumbleweedleonardr: sorry I've just sat down at my desk, and people are coming at me left, right and centre13:30
tumbleweedand now the power has failed13:30
leonardrtumbleweed: np, like i said, i'm here all day13:30
jmlwgrant: today, it's slightly harder to believe that software can make the world a better place.13:30
tumbleweedbut I followed the LP bug about the previous upgrade, so I know vaguely what's happeneing13:30
tumbleweedfor u-d-t it should be quite simple, because the login code is centralised in acouple of places13:30
wgrantjml: Yes.13:31
wgrantBut on the other hand I tracked down the librarian spurious failures.13:31
wgrantAnd that makes me very happy.13:31
jmlwgrant: yeah, I saw that last night and was very happy. Well done.13:32
leonardrtumbleweed: one more thing i noticed (i may just say these random things)13:32
leonardrtranslate_api_web is no longer necessary, since all web service objects that are also published on the website have a web_link. you could add a deprecation warning13:33
geserleonardr: does u-d-t just simply use Launchpad.login_with(...) and launchpadlib will take care of everything or do we need some additional handling code?13:33
jmlI'm going to go outside for lunch & errands and to enjoy the blue sky.13:33
jmlback soon.13:33
leonardrgeser: the goal is that you use login_with and launchpad will take care of everything13:34
leonardrbut i don't know what the people who use your library are expecting13:34
geserleonardr: we use already web_link where possible, only one place left (manage-credentials) but it looks like we can dump that script completely soon13:34
leonardrwow, that caught on quickly13:34
bdrungleonardr: translate_api_web is only used in manage-credentials13:35
leonardroh, it's not even translating a self link. i see13:35
leonardri thought it was a service you provided your users to work around the lack of web_link13:35
jmlwgrant: I also saw your shipit change. Thanks for that.13:38
jmlwgrant: are you planning on patching shipit to only import from lp.shipit?13:38
wgrantjml: It's part 1 of 3.13:38
bdrungleonardr: to summarise: the script just have to use login_with and don't care about the credentials?13:38
wgrantjml: Yes, the branch is up.13:38
wgrantBut I dare not land it until this is deployed.13:38
jmlwgrant: cool. makes sense. I think I can guess what part 3 is.13:38
jmlreally off now.13:40
=== almaisan-away is now known as al-maisan
bdrungleonardr: with version of launchpadlib is required for playing with the new code?13:41
tumbleweedleonardr: ok, things have calmed down a bit. I was hoping we'd be able to get rid of manage-credentials (which is why it still has edge somewhere), but I guess we'll need it for non-interactive u-d-t use13:41
tumbleweedbdrung, leonardr: and is this available packaged somewhere?13:42
leonardrbdrung: i recommend 1.9.3, the latest version. it makes get_token_and_login work with a deprecation warning (in previous versions it was just broken)13:42
leonardrtumbleweed: it's in natty13:42
geserleonardr: translate_api_web was used that way before web_link appeared, but we switched to web_link soon after an entry about it appeared on planet13:42
leonardrbarry also has it in a ppa13:42
=== jtv-afk is now known as jtv
leonardrbut i was never able to get his ppa version to work because of a problem with his package of python-keyring13:42
tumbleweedyeah I think translate_api_web is only used in manage-credentials now13:42
gesertumbleweed: which non-interactive scripts are in u-d-t?13:42
tumbleweedwe still have translate_web_api, though13:43
leonardrtumbleweed: i think you can get rid of manage-credentials altogether. i don't see any difference between calling manage-credentials and calling login_with() and passing in a credential file13:43
tumbleweedgeser: nothing I can think of13:43
wgrantjtv: Hi.13:45
jtvhi13:45
jtvjust looking into what you said13:45
wgrantjtv: Fix already in ec2.13:46
tumbleweedgeser: although, what about using these scripts on a remote box over ssh, I do that quite a lot...13:46
jtv!13:46
wgrantSince I needed to land a branch :P13:46
jtvwgrant: that's fantastic, thanks!13:46
wgrantjtv: Is your rev likely to be QA'd today?13:46
jtvwgrant: which rev?13:46
wgrantjtv: pofilestats perms.13:46
wgrantIt is the sole thing between us and complete deployment.13:47
gesertumbleweed: better ask leonardr, I don't know who that works in this case13:47
jtvThen I'll do that.  So many urgent things going on…13:47
leonardrtumbleweed: you'll need to set something up to get gnome-keyring running over the x session. it's pretty easy, let me find it13:48
wgrantjtv: That would be great. If I'm still around I'll request the deploy, but if not then it'd be great if someone else could.13:48
wgrantThanks.13:48
jtvI'll expedite it.13:48
UrsinhaI can13:48
jtvUrsinha: it's blocked on my Q/A13:48
jtvwhich I'm doing right now13:48
Ursinharight :)13:49
tumbleweedleonardr: that doesn't sound like it'd play well with screen13:49
geserleonardr: I'm using a natty chroot (with bind-mounted /home and /tmp) for development (to not pollute my main system with -dev packages and to be able to upgrade it earlier on the next development release). Will it continue to work in such an environment?13:49
tumbleweedleonardr: will it fall back to an on-disk credential? And would there be an easy way to create such a credential, included in launchpadlib / lptools?13:50
leonardrgeser: tumbleweed: i don't know. try it. if there's going to be a problem, better to find out now13:50
leonardrif it can't access a keyring it should use an encrypted file on disk13:51
leonardrbut there might be a problem if the keyring is there but communication with it is impossible13:51
tumbleweedyeah I remember issues like that with bzr gtk13:51
=== jcsackett changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: allenap, jcsackett | https://code.launchpad.net/launchpad-project/+activereviews
leonardrtumbleweed: fwiw, the workaround is to put "export `gnome-keyring-daemon`" in your .bashrc14:01
leonardrand that's useful in general14:01
bdrungleonardr: can sketch out some code changes in a separate branch?14:09
leonardrbdrung: i can, but it'll need to wait until i contact the rest of the develoeprs14:10
bdrungleonardr: why do you have to wait?14:10
leonardrbdrung: sorry, are you asking me to sketch out the code changes, or are you saying you'll do it?14:11
bdrungleonardr: bug #72432714:11
bdrungleonardr: i was asking you14:11
leonardrbdrung: that bug is private14:12
leonardrmy priority is making sure everyone knows about this change14:12
bdrungleonardr: public now14:13
leonardrbdrung: did you install from the ppa? python-keyring should now be a dependency of python-launchpadlib14:14
bdrungleonardr: the official package in natty14:15
leonardrbdrung: ok, sounds like a dependency problem. try installing python-keyring and see if that helps14:15
=== gary_poster is now known as gary_poster|away
=== gary_poster|away is now known as gary_poster
bdrungleonardr: it works then14:18
leonardrbdrung: ok, i'll turn the bug into a launchpadlib-in-ubuntu bug14:18
tumbleweedleonardr: OOPS-1881A132614:21
tumbleweedseems to have authed, though14:21
leonardri can't see the oops yet, but i bet i know what it is14:21
bigjoolsjml: do our test fixtures give any way of having a fixture that hang around longer than one test?  I've got a slow setup phase running up a  KeyServerTac  process that doesn't really need to go up and down14:21
leonardrtumbleweed: can you paste me the exception so i can find the bug?14:22
tumbleweedleonardr: there was no exception, I got that after confirming the oauth in my browser14:23
tumbleweedon a +token-authorized page14:23
leonardrtumbleweed: it's bug 27101014:23
_mup_Bug #271010: OOPS accessing a non-existent oauth token page. <api> <lp-foundations> <oauth> <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/271010 >14:23
leonardrwe can fix it on the server side14:24
gary_posterallenap hi.  I just saw your reply to bug 723999.  Thank you!  Do I correctly understand your reply to say that, to the best of your knowledge, the query is doing the right/expected thing right now?  Moreover, do I also understand correctly that you do not see a way to improve it (at this time) without offlining the recipient calculation, as discussed at the end?14:24
_mup_Bug #723999: structural subscriptions taking 4.8 seconds during nomination editing POST <story-better-bug-notification> <timeout> <Launchpad itself:Triaged by yellow> < https://launchpad.net/bugs/723999 >14:24
jmlbigjools: not yet.14:24
bigjoolsjml: ok I'll file a bug, which would be the right project, testtools?14:25
jmlbigjools: it's a good enough place to start.14:25
bigjoolsok cheers14:25
allenapgary_poster: Yes, on both counts.14:25
gary_posterallenap, ok, thank you again.14:26
jmlbigjools: a cheap fix might be to write a fixture -> layer adapter.14:26
tumbleweedbdrung, geser: pushing my quick porting to lp:~stefanor/ubuntu-dev-tools/launchpadlib-1.9 (but I don't have too much free time this week)14:26
jmlbigjools: I would like to do it properly though (i.e. have something that could replace layers).14:26
bigjoolshellyes14:26
jcsacketthenninge: any chance i can get your input to answer a question on answers.lp? (per danilos suggestion of trying to get some knowledge transfer going. :-))14:28
henningejcsackett: what's the question?14:29
jcsackettquestion is https://answers.launchpad.net/launchpad/+question/14655614:29
jcsackettmy belief is the answer is "no, we can't support that very specific language code"14:30
jcsacketti saw the faq you wrote about supported language codes, but it mentions exceptions can be made.14:30
jcsackettmy belief, henninge, is that this is not one of the exceptions lp can support. :-)14:30
henningejcsackett: well, for one be-1959acad is probably not an ISO lang code.14:32
jcsackettyeah, it's not in any list, which is why i figured "nope" was the answer.14:33
henningeso you would have to enter it as a variant: be@1959acad14:33
henningeHe is suggesting, I think, to replace "be" with the two variants but we won't do that.14:33
henningeThe translator community has to decide which variant of the language to use for "be" translations.14:34
henningethat is not our call.14:34
henningeBut from what he is writing it seems that they settled on be-tarask, so the other would be the exception.14:35
jcsacketthenninge: ah, okay. and the use of a variant is just a community decision, right? we don't have infrastructure to enter it as a variant or anything?14:36
henningejcsackett: you can offer him to add "be@1959acad"14:36
henningejcsackett: we used to have a special database field for the variant but nowadays it's just part of the language code.14:37
gary_postermrevell, thank you for the user testing report.  I'm 2/5 through reading. :-) You said you could help with the text.  I'd be happy to take advantage of that help as much as you'd like.  For instance, if you have concrete suggestions for one or all of the pages, I'd be thrilled to get them and I expect Graham would as well.  Is that what you had in mind, or some other mechanism?14:37
henningejcsackett: The real problem is: will many people do translations in that language? Is it worth it? Maybe he should be warned about that.14:37
jcsacketthenninge: cool. okay, i'll give him the info and ask if adding be@1959acad is necessary.14:38
jcsackettthanks!14:38
henningejcsackett: welcome.14:38
jtvwgrant, Ursinha: my branch just went qa-ok14:40
Ursinhayay14:41
wgrantjtv: Thanks.14:41
wgrantJust requested the deploy.14:41
jtvwgrant: trying to find your ec2test fix… did you have a bug for it?14:43
wgrantjtv: I stole your bug for it.14:43
jtvThat's fine, thanks14:43
jtvBut please attach the branch there!14:44
wgrantI thought it was...14:44
wgrant** Branch linked: lp:~wgrant/launchpad/secret-query-count-determinism14:44
jtvwgrant: the branch name doesn't sound related14:46
wgrantjtv: It isn't, but I needed to land that through ec2, so I put it in the same branch.14:47
jtvI see14:47
mrevelljml, Yeah, that's what I had in mind. I'll look at that this afternoon.14:50
mrevellsorry jml14:50
mrevellgary_poster, that was meant for you ^^^14:50
jmlheh.14:50
jmlnp at all.14:50
gary_postermrevell :-) awesome thank you14:50
abentleyallenap or jcsackett: could you please review https://code.launchpad.net/~abentley/launchpad/translation-splitting/+merge/50949 ?15:02
allenapabentley: It's a Translations branch so I'm not going to be much more than a glorified linter. If that's what you want, I'll take it :)15:05
abentleyallenap: Is it something about Translations in particular?  Because I'm always reviewing stuff outside Code.15:07
=== Ursinha is now known as Ursinha-lunch
allenapabentley: I'm happy reviewing outside of Bugs, but Translations has always eluded me for some reason.15:08
allenapI can do it, but I am always left with the feeling that I didn't really get it.15:08
abentleyallenap: you could try doing a kiko-style "ask a bunch of questions" review.  I've had to learn all this recently, so I might be better at explaining.15:09
allenapabentley: Hehe, yeah. I'll do the review, though I doubt I'll fire too many questions at you.15:11
abentleyallenap: cool.15:11
=== gary_poster is now known as gary_poster|away
=== gary_poster|away is now known as gary_poster
flacostejcsackett: congrulations on achieving reviewrhood!15:24
jcsackettflacoste: thanks! :-)15:24
danilosallenap, jcsackett: hey-hey, I've got a branch up for review, and I'd be happy to let you guys fight over it: https://code.launchpad.net/~danilo/launchpad/bug-720826-db/+merge/51146 :)15:26
danilos(am I optimistic or what?)15:26
jcsackettdanilos: i'm looking at a huge javascripty branch; i'll take a look at yours after that. :-)15:26
danilosjcsackett, cheers15:27
allenapdanilos: I'm doing one for Aaron right now, but I'll take a look after that unless jcsackett gets there first.15:27
danilosexcellent, that's what I like to see :) thanks guys15:27
jcsackettallenap: thanks for the review on my validator migration, btw.15:28
allenapjcsackett: You're welcome.15:28
=== gary_poster is now known as gary_poster|away
=== gary_poster|away is now known as gary_poster
=== al-maisan is now known as almaisan-away
jmlbuild is broken15:53
=== gary_poster is now known as gary_poster|away
=== gary_poster|away is now known as gary_poster
=== deryck is now known as deryck[lunch]
abentleysinzui: Did I mention that I created a new Job type for a Packaging?  Now that I'm generalizing the code for more than just merging translations, I'm thinking of moving it to Registry.16:24
=== Ursinha-lunch is now known as Ursinha
sinzuiabentley: that sounds good16:25
abentleysinzui: Cool.16:25
jtvhenninge: I think you've fought this as well in the past… unique violations on TM.16:32
henningejtv: Hm ... not sure I was victorious, though.16:33
jtvhenninge: wanted to bounce this off you, in case I'm missing something big: _setTranslation clears the "current" flag(s) on the incumbent(s), then sets it/them on the new message.  But we're not setting an explicit flush order.16:33
henningejtv: I don't remember that we do, no.16:33
jtvSo I added some.16:33
henningeand do they help?16:34
jtvDon't know yet!  Can't think of a meaningful way to test this.16:34
=== beuno is now known as beuno-lunch
jtvhenninge: also came across a bit of weirdness in the "if/ifelse" that implements the "first upstream translation overrides ubuntu translation" exception… would appreciate a second opinion to confirm that as it stands, the "if" _inside_ the ifelse clause has a condition that's always true.16:48
henningejtv: can you point me to the code, please?16:49
jtvhenninge: potmsgset, about line 104016:50
=== salgado is now known as salgado-lunch
henningeah, yes16:51
henningejtv: yes, it looks like that condition can go away.16:53
jtvcool, thanks16:53
bigjoolswhy why why is bzrlib's ftp transport uploading files with a different name to the local one and then renaming it16:54
allenapbigjools: So it can detect half-uploaded files in case of a network failure, and so it can atomically replace existing files (again, protecting against network failure)?16:58
bigjoolsallenap: all very nice but it totally fucks up my tests16:58
bigjoolsnot to mention the server-side upload checks16:59
allenapbigjools: I was about to ask if that was the bother.16:59
bigjoolsoh well I will use ftplib instead of bzrlib16:59
jtvjcsackett: congrats on becoming a reviewer!  Want to exercise your new power?17:00
jcsackettjtv: sure, especially if it's the branch to deal with that weird translation issue. :-)17:00
jtvjcsackett: ah! :)  This one?  https://code.launchpad.net/~jtv/launchpad/bug-708385/+merge/5116917:00
jcsackettjtv: indeed.17:00
allenapsinzui: I have a branch to allow async merging of people and teams. It's not wired into any of the existing call-sites yet. I wonder if you have a few minutes to discuss the best way to do that?17:01
allenapsinzui: https://code.launchpad.net/~allenap/launchpad/async-person-merge-162510/+merge/5091917:01
jtvjcsackett: I got the branch, you got the skillz, let's do this thing17:01
jcsackettjtv: i'm looking now. :-)17:01
jcsackettdanilos: r=me, but there's a not about a test doc string you should change. :-)17:02
jcsackettjtv: that was the smallest most straightforward branch i've seen today.17:05
jcsackettr=me, no comments. thanks for dealing with that.17:05
jtvjcsackett: thanks!17:05
jmlsinzui: I actually quite like the way the Light font looks on Launchpad.17:07
sinzuiallenap: this is great. I think you mean you want delete team, merge, team merge admin merge to show a message that this job is in progress. delete team and merge are most crucial because they are used by users17:07
danilosjcsackett, great, thanks17:08
sinzuijml: I agree. official font-size appear a little smaller in my browser and screen size. Light also has narrower headings.17:09
bigjoolsI borked buildbot17:09
bigjoolsno idea how17:09
allenapsinzui: Yes, something like that :) I have three concerns: how and where to show that a job is in progress, how and where to report on failure, and how to get the complete set of db permissions required for the person-merge-job db user.17:10
sinzuiyuck17:11
sinzuiwell it would be nice to show /!\ on the two persons to explain what is happening. Failures is a challenge because the job can be setup by ~registry or ~admins. allenap, we send emails to the user to confirm the merge should happen. Maybe can email the user to let him know something is wrong17:13
allenapsinzui: Yeah, that concurs with what I was thinking, except I was only going to show a /!\ on the person being merged (the "from" person).17:15
sinzuiallenap: the compete set of db permissions is implied in _merge that looks for all columns that reference person. It is an awesome list17:15
sinzuiallenap: while a job is in progress, the new porfile is gain parts of another. Users see some information transferred and some they now is missing. The user reports a bug or asks a question that I then explain17:17
allenapsinzui: Yes, and I assume there will be others, like tables that are touched as a side-effect of other things. I have a first run of the necessary permissions, so I thought I could make async merging available via a feature flag so that we can converge on the correct permissions. Or we could shove it in staging and keep hacking at it until we seem to have everything.17:17
allenapsinzui: It shouldn't see anything until the job is done though? It only commits at the end?17:18
=== deryck[lunch] is now known as deryck
sinzuiallenap: and we will need to update these permission each time a person reference is added to the schema17:18
allenapsinzui: Yes. There is a test that exercises the new user, so, apart from side-effects, we should catch that before landing.17:19
sinzuiallenap: I think there are parts that do not. Consider that the emaila addresses are moved before the job will start17:19
=== salgado-lunch is now known as salgado
allenapsinzui: Ah, true. Eventually those actions could/should be moved into the job too.17:20
sinzuiI am not sure about the emails. Merge does not actually start until the user has confirmed each email address. that can take days from the initial send17:21
manishhow can I download the latest Launchpad WADL file?17:21
manishis it hosted somewhere?17:21
manishUrsinha, lifeless jml gary_poster is launchpad's WADL file hosted somewhere from where I can download it?17:22
gary_postermanish hi.  Try leonardr?17:23
manishgary_poster, I was not sure if he is there17:23
leonardrmanish: the wadl file is the wadl representation of the service root17:23
manishso this means that I need to authorize the application, and then download it?17:24
leonardrso GET /[version] and ask for application/vnd.sun.wadl+xml17:24
leonardryou should not need to authorize17:24
manishleonardr, possible to download it via curl?17:25
sinzuiallenap: may it would be possible to generate the list of tables in the proc that reads security.cfg. It could call listReferences(cur, 'person', 'id') to build the list. We know that the code has to declare what it will handle itself. I think stub will have to advise though17:25
manishI am working on the API after months17:25
leonardrmanish: yes, let me figure out the syntax17:26
sinzuiallenap: oh. there is a skip list that we know can be invalid after a merge (team poll for example).17:26
leonardrmanish: curl https://api.launchpad.net/1.0/ -H "Accept: application/vnd.sun.wadl+xml"17:27
manishthanks17:27
manishtrying17:27
allenapsinzui: Interesting idea :) See my last comment in https://code.launchpad.net/~allenap/launchpad/async-person-merge-162510/+merge/50919 for how I've calculated the list so far.17:27
allenapsinzui: s/list/permissions/17:27
allenapsinzui: Is your team on maintenance next week? The red squad is moving over to feature work. If you are, then would one of your team be able to take over this work? I don't think I'll get it all done tomorrow!17:30
sinzuiallenap: green will be on maintenance for 4+ weeks I believe17:30
sinzuiallenap: I think you can land the core work, then my squad can take up the integration issue17:31
jtvbigjools: I see you're having one of those good days with buildbot.17:31
bigjoolsjtv: FSVO17:31
allenapsinzui: That's great news. Okay, I'll do that, and email you to hand over.17:32
jtvbigjools: I do TLAs, not ETLAs17:32
sinzuithanks! really. This was the last timeout left in the old registry teams queue17:32
bigjoolsjtv: it's a shame :)17:33
jtvbigjools: I just noticed it's evening here—I ought to go.17:35
bigjoolsthat happens to all of us17:35
=== gary_poster is now known as gary_poster|away
=== beuno-lunch is now known as beuno
=== gary_poster|away is now known as gary_poster
jcsackettsinzui: i notice you have nested <ul> elements in your diff rather than <ul><li>; was that intentional? https://pastebin.canonical.com/43911/18:11
sinzuiI suck18:12
lifelessmorning18:12
jcsackettalso, i just realized, you have this set to code reviewers, did you want UI, since it's mostly ui stuff?18:12
sinzuiIf I did it once, then I think I may have done it 3 times. I am very consistent :)18:12
sinzuioh, good18:12
jmlI've got these branches here that someone might want to take over: https://code.launchpad.net/~jml/launchpad/reported-by-me-121646 , https://code.launchpad.net/~jml/launchpad/advanced-search18:13
sinzuijcsackett: The replace ensure fixes my stupidity. The template should use li as you noted18:13
jmlif not, maybe I'll magically finish them.18:13
deryckMorning, lifeless18:13
jmlg'night all18:13
jcsackettsinzui: ok. i'll continue reviewing with that in mind. you want me to request a ui review for this, as long as i have it open?18:13
sinzuiyes, I will prepare screen caps of the root pages for henninge or huw18:14
jcsackettok.18:14
lifelesshi deryck18:16
lifelessnight jml18:16
jcsackettsinzui: you didn't actually have any other typos like that. i've highlighted the diff in a comment, but aside from the typo, r=me.18:24
sinzuijcsackett: thanks I will look the diff over again. since I am prone to repeating my mistakes exactly18:30
lifelessflacoste: ping18:34
flacostehi lifeless18:34
lifelessquick call ?18:35
flacostelifeless: sure18:35
=== danilos is now known as danilo-afk
LPCIBotProject devel build (472): STILL FAILING in 5 hr 27 min: https://hudson.wedontsleep.org/job/devel/472/18:41
LPCIBot* Launchpad Patch Queue Manager: [r=jml, leonardr][bug=251685,18:41
LPCIBot586695] An implementation of the Poppy FTP server using Twisted.18:41
LPCIBot* Launchpad Patch Queue Manager: [r=abentley][no-qa][bug=723733] Clear LC_TIME for update-image.18:41
abentleyLPCIBot: You mention me, but not even the original committer?18:42
lifelessit hasn't been taught to do that. should be reasonably straight forward to do so18:44
LPCIBotProject db-devel build (393): STILL FAILING in 5 hr 54 min: https://hudson.wedontsleep.org/job/db-devel/393/18:53
flacosteleonardr: can you take a look at https://code.launchpad.net/~thumper/launchpad/lp-client-yui-module/+merge/5103819:20
flacosteand see if you agree with my assessment19:20
leonardrsure19:20
lifelessflacoste: +oops and +haproxy not being allowed db access is a little annoying ;(19:21
flacostelifeless: why? we could revert that policy19:21
lifelesslp:~lifeless/launchpad/profile19:21
flacosteit wasn't like that in the beginning19:21
flacostewhat's the issue with that?19:21
lifelessit does a feature rule lookup to enable profiling19:22
lifelessit happens in beforetraversal, but we inject the null feature controller in callObject19:22
flacosteany reason it isn't injected in beforeTraversal?19:26
flacosteat the same time than the DBPolicy is set19:26
lifelessyes19:27
=== manish_ is now known as manish
lifelesswe need the team selector to use this on staging.19:27
flacosteinstead of looking at the pageid19:27
flacostein callObject19:27
lifelessoh, the db policy19:27
flacostelet's simply look at the DBPoilicy19:27
lifelesssorry19:27
lifelessfeature controller19:27
flacostewe could even set the FeatureController using adaptation19:27
lifelessthat might work19:27
lifelessI've got a very small change to my patch to get by for now19:28
bachi deryck19:58
deryckHi bac19:58
thumperflacoste: the problem with the current launchpad_ajax.js test is I have no idea how to wrap it20:07
thumperflacoste: also... we don't want to use sample data20:07
flacostethumper: you mean automate it's running?20:07
flacosteor run it20:07
thumperflacoste: I'd happily fix it if we can work out how20:07
flacostehang on20:08
flacosteso the bug has the command line to run the tests20:08
thumperflacoste: also, why do you say that the yui tests can't test the api?20:08
flacostebecause they don't have the LP app server running20:08
thumperhmm...20:09
flacostewe might fix that20:09
flacostebut I'm not too sure how the io part would interact with YUI tests20:09
thumperand to answer your other question, yes I was wanting to add some tests for the cache updating :)20:09
flacostei know yuitest supports some form of asynchronous testing20:09
flacostebut not sure it would work in practice20:10
thumperflacoste: my problem was a complete lack of understanding of the windmill tests and how to get them to integrate with the new YUI module20:10
flacosteit's a different test infrastructure20:10
flacostethe jsttests20:10
flacosteit's different from both our regular windmill tests (which uses python)20:10
flacosteand from yuitest20:10
thumpersure, but since the launchpadlib client code is now in a YUI module, is it still possible to test?20:10
flacosteit will yes20:10
thumperI'm referring to the launchpad_ajax.js test20:10
thumperflacoste: would mumble be better?20:11
flacostethumper: we can yes20:11
flacostethumper: i'm in blue one-on-one20:11
mwhudsonjtv: no20:37
flacostethumper: ./bin/tags -e20:37
thumper$ ./bin/tags -e20:38
thumper/usr/bin/ctags: invalid option -- 'e'20:38
thumperTry `/usr/bin/ctags --help' for a complete list of options.20:38
flacostethumper: update-alternatives --list ctags20:40
flacoste /usr/bin/ctags-exuberant20:40
leonardrthumper, flacoste, did you come to an agreement on the javascript tests? i'm late to this party20:50
flacosteleonardr: i think so, on the phone with thumper right now20:54
lifelessany reviewers around ?20:59
lifelesshttps://code.launchpad.net/~lifeless/launchpad/bug-279513/+merge/5106320:59
lifelessI can't mentor wgrants review of mine own branch20:59
lifelessjcsackett: ^21:02
jcsackettlifeless: looking now.21:02
lifelessawesome, thanks21:02
=== salgado is now known as salgado-afk
StevenKthumper: Still on the phone with flacoste? Trying to decide to make breakfast or wait21:13
thumperStevenK: lets do now21:14
thumperleonardr: mumble?21:14
leonardrthumper, sure21:14
leonardrhm, the server's timing out21:15
jcsackettlifeless: in case you missed my wrong channel message, r=me.21:18
thumperwallyworld: bug 68049721:20
_mup_Bug #680497: jstests for LP JavaScript client are not running automatically <lp-foundations> <Launchpad itself:Triaged> < https://launchpad.net/bugs/680497 >21:20
lifelessjcsackett: cool, thanks!21:24
leonardrthumper, when we move to maintenance, i'd really like to address this bug: https://bugs.launchpad.net/launchpad/+bug/27101021:36
_mup_Bug #271010: OOPS accessing a non-existent oauth token page. <api> <lp-foundations> <oauth> <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/271010 >21:36
leonardrnow that launchpadlib has been upgraded in natty, people will start getting that bug all the time21:37
thumperleonardr: sounds great, it is critical even :)21:37
thumperleonardr: I'd also like to see the lazr.restful change we talked about yesterday21:37
leonardrthumper: let me find the bug, i  think lifeless pushed back on it a little21:37
lifelessleonardr: I'd be happy to talk about it21:39
leonardrthumper: https://bugs.launchpad.net/lazr.restful/+bug/72395921:39
_mup_Bug #723959: Separate the floating "latest" version from the latest version-in-progress <lazr.restful:Incomplete> < https://launchpad.net/bugs/723959 >21:39
thumperlifeless: how about we all talk about it next week?21:39
leonardrsure21:40
lifelessthumper: sure; you know where to find me :)21:40
lifelessthumper: if you want to make a specific time, I can do that too. monday/tuesday are best; i have a hosital visit on wed and a short friday21:40
thumperlifeless: we should try early tuesday so we can get leonardr on his monday afternoon21:41
* leonardr approves21:41
lifelesssure21:41
lifelessuhm, my 8am with elliot is cancelled as he's in sa21:41
StevenKSouth Australia?21:42
lifelessafrica21:43
lifelessensemble sprint21:43
flacostethumper: i'm back21:54
lifelessI wonder22:00
lifelessperhaps we should have a batchnavigator for linked bugs on branches22:00
wgrantlifeless: Why?22:01
wgrantAny branch that has lots of bug links probably shouldn't have any shown at all.22:01
lifelesshttps://code.launchpad.net/%7Esoftware-store-developers/software-center/trunk/+index has 375 linked bugs22:03
wgrantlifeless: Hmm.22:05
wgrantBug 721591 is Natty-critical, and we have only one or two cocoplum deployments left before release.22:06
_mup_Bug #721591: backports release files in natty and above don't have new apt metadata <soyuz-publish> <Launchpad itself:Triaged> < https://launchpad.net/bugs/721591 >22:06
wgrantlifeless: I thought we didn't show linked bugs on dev focuses...22:06
lifelesswgrant: we might not show it. We're doing the work.22:07
lifelessanyhow22:11
lifelessfor now, I think batching will handle it fine22:11
lifelessthe actual bugbranch relation should be snappy and grabbing a bug description is shallow22:12
lifelessanyone feeling LP is slower than usual *right now* ?22:13
wgrantI think I have some idea why.22:14
wgrantTesting a theory as we speak.22:14
wgrantI suspect we have extreme request backlogs.22:14
lifelessif we need to escalate, we should do so asap so as not to be waking elmo up22:14
wgrantlifeless: Requests that end in an IntegrityError hang.22:15
wgranton staging and lpnet.22:15
wgrantI wonder if our retry limit is broken.22:15
wgrantIt first appeared within the last two days.22:15
wgrantPossibly the last day.22:15
lifelessthat sounds a little worrying22:15
lifelesshow long do they hang for ?22:16
wgrantEver.22:16
wgrantAFAICT22:16
wgrantWe get a 502 back.22:16
wgrantAfter a long time.22:16
wgrantLet's see if it happens locally.22:16
lifeless502 will be apache?22:17
wgrantserver: Apache/2.2.14 (Ubuntu)22:17
wgrantHangs locally too.22:18
wgrantBisection time!22:18
wgrantAh, found it.22:19
lifelessdon't we have a test for this ?22:19
lifelessyou're going to blame me, aren't you :)22:19
wgrantNo, it was me!22:19
lifelesswhat is it22:19
lifelessrev #?22:19
wgrantThe ZTM thing.22:19
wgrant  File "/home/wgrant/launchpad/lp-branches/secret-query-count-determinism/lib/canonical/launchpad/webapp/adapter.py", line 201, in clear_request_started22:20
wgrant    transaction.manager.unregisterSynch(_local.commit_logger)22:20
wgrantAttributeError: 'thread._local' object has no attribute 'commit_logger'22:20
wgrantDoes that, looping over and over, forever.22:20
wgrantWith pauses, though.22:20
wgrantThe tests must replace some of the error handling machinery...22:20
lifeless\o/22:21
StevenKHm. Four test failures on buildbot, all in devscripts.ec2test22:22
jmlSorry!22:22
jmlI'll fix those now.22:22
lifelesswgrant: so, we'll have hung threads right ?22:22
* jml dons the pointy hat of shame22:22
wgrantlifeless: It's not entirely clear.22:23
wgrantDiff is easy, why it exists and how to test it is not.22:24
jmlStevenK: btw, did you see my suggestion to make your bot report the failing tests rather than the failing commits?22:24
wgrantAlso, why it keeps retrying infinitely is also unclear.22:24
lifelesswgrant: I'm thinking about the operational impact:22:24
wgrantBecause it does.22:24
lifeless - are we on a death spiral?22:24
StevenKjml: Yes, it's a good idea, but I couldn't see a knob to tweak in the Jenkins config.22:25
lifeless - will a service reboot *now* tide us over until the losas are up in 12 hours22:25
lifeless - if (True, True) lets ring the escalation number and get that done22:25
jmlStevenK: can't you get the junitxml & parse it in your bot?22:25
lifelessjml: it has an object model22:25
StevenKjml: It isn't my bot, it's a Jenkins plugin -- I didn't write it, I just run it :-)22:26
lifelessjml: no need to get that close to the plumbing; the bot is a plugin to hudson.22:26
wgrantlifeless: Do we have data to confirm that it is actually slow?22:26
jmllifeless: don't tell me, I'm not going to do it22:26
lifelesswgrant: not without escalating to IS22:26
jmlI see.22:26
lifelessjml: the risk in speculating about implementation is that others think you're interested in implementation :)22:27
StevenKjml: I think an upstream bug report against the IRC plugin would be awesome, though22:27
lifelesswgrant: I'm going to escalate now before it gets really late22:27
wgrantlifeless: OK. We've been running the problematic code for two days now, so a restart should be fine.22:28
lifelesswgrant: can you also prepare a branch against the current deployed version, so that we can do a custom deploy if it hasn't gotten through buildbot + qa in the next 12 hours.22:29
wgrantlifeless: Sure.22:30
thumperis ec2 land fixed now?22:30
wgrantthumper: No, Windmill killed my branch.22:31
wgrantthumper: Easiest workaround is to delete jtv from your list of allowed image owners in lib/devscripts/ec2/account.py22:31
sinzuiwgrant: mumble?22:31
wgrantBut my thing should land in four hoursish.22:31
wgrantsinzui: Mumble production is broken mumble, but OK.22:31
* thumper reverts to ec2 test and pqm-submit22:32
sinzuiwgrant: That reminds. me. I think it messed with my mic again22:32
* jml plays the regex slot machine game22:33
jmlsinzui: I've been having troubles w/ mumble and natty since upgrading a couple of days ago.22:33
StevenKjml: Your bug about printing failing tests has been fixed upstream. I just need to actually get some time and upgrade our install22:33
wgrantAhh, I guess tests might reuse the same thread.22:33
wgrantSo the thread-local exists already.22:33
sinzuijml: yes that is when I started for me too22:34
jmlsinzui: I honestly have "fix this or file a bug" on my todo list.22:34
jmlOK. I think that one has taken.22:35
wgrantjml: What has it done? Muting the mic every time you reboot?22:36
jmlwgrant: yeah, but also other things22:36
wgrantThat's probably the alsa volume changes.22:36
jmlwgrant: I can't actually get mumble to pick up sound any more22:36
wgrantHah.22:36
wgrantNice.22:36
wgrantMy push-to-talk key broke a couple of months ago.22:36
wgrantBut it works OK otherwise.22:36
jmlwgrant: when I opened it, it prompted me with an audio wizard22:36
wgrantMe too.22:37
wgrantYesterday.22:37
jmlyeah22:37
lifelesswgrant: that theory is plausible.22:37
jmlI didn't go through it though22:37
jmland maybe that's the problem22:37
jmlI don't know.22:37
jmlI just need to have half-an-hour free where that's the problem I want to solve22:37
jmlI was intending to hack on Launchpad some more this evening, but I think I'm not going to.22:38
jcsackettsinzui: is there a bug # for the bugmessages => imessage thing we talked about yesterday?22:38
sinzuiOh many, let me look for one we could steal22:39
jmlg'night22:39
lifelessjml: gnight22:40
lifelesswgrant: series branches show open bugs.22:44
wgrantlifeless: :(22:45
sinzuijcsackett: bug 201121 is the goal22:48
_mup_Bug #201121: Option to delete comments <chr> <feature> <lp-answers> <lp-bugs> <ubuntu-platform> <Launchpad itself:Triaged> < https://launchpad.net/bugs/201121 >22:48
lifeless\o/22:48
jcsackettsinzui: cool. it's too late to do so now, can i ping you tomorrow morning to have a bit more of a chat about it?22:48
lifelesssinzui: hide or actually delete?22:48
sinzuijcsackett: Since this is about providing ~registry and ~admins a universal script to hide offensive comments, lets set the first goal to be bug 11532222:49
* lifeless is easy but reckons hide is probably sufficient for now22:49
_mup_Bug #115322: Need better protection against offensive comments and attachments from a user <canonical-losa-lp> <infrastructure> <lp-foundations> <Launchpad itself:Triaged> < https://launchpad.net/bugs/115322 >22:49
sinzuihide, not delete22:49
jcsackettlifeless: hide.22:49
lifelesssinzui: do we need a script? What about just a button on the comment ?22:49
sinzuijcsackett: lifeless, phase 1 move the flag on IBugMessage to IMessage and allow use to change the flag. Update three comment systems to honour the flag22:50
lifelesssinzui: I'm confused22:51
sinzuijcsackett: lifeless phase 2, allow users to mark a comment as inappropriate. Let use review the queue to hide or unmark22:51
lifelesssinzui: -very- few messages are shared between bugs. Why do we need to move the flag ?22:51
sinzuiBecause I will not implement something 3 times22:52
lifelesssinzui: this will have performance implications22:52
sinzuijcsackett: is welcome to implement it 3 or 5 times if he agrees to implement22:52
lifelesssinzui: the query plan filters on bugmessage at the moment, which is very very efficient22:52
jcsacketti would rather not implement 3 times, but if we need to hack something for performance, i can look at it.22:53
sinzuithen I think you want to talk to jcsackett22:53
lifelesssinzui: message is a massive table by comparison; its likely to change the performance of retrieving messages in all the systems if message gets wider22:53
jcsackettlifeless: i'll have to have a longer talk with you tomorrow, i'm 5 min from EOD and need to meet people across town for an evening meeting.22:53
jcsackettbut i'm definitely happy to talk.22:54
lifelesssinzui: I can certainly agree that message is the logical place22:54
sinzuilifeless:  so if we had one comment system, would you be crying?22:54
lifelessjcsackett: Its saturday tomorrow, so no promises. But ping me; if I'm around I'll be happy to talk.22:54
lifelesssinzui: I would be ecstatic if we had that *and* cruft like 'BugComment' - wtf - were gone. *and* we sort the performance stuff out.22:55
jcsackettoh right. i always remember different hours of the day. forget diff days of the week. :-p22:55
lifelessjcsackett: I probably will be around; but it will depend on lynne etc etc22:55
jcsackettright.22:56
sinzuijcsackett: keep in mind that to two bugs I showed you talk about people spamming via the UI. 90% or more are via the email gateway this year22:56
sinzuiMy goal is to not assign a question to a losa to get rid of the message22:56
lifelesssinzui: whats the thing one calls on a view to make it render the template (and subtemplates/portlets etc) in tests22:57
lifelesssinzui: its not just 'create_initialized_template' is it22:57
sinzuiview = create_initialized_view(obj, '+name')22:59
sinzuiview()22:59
sinzuiwell view.render() to be explicit23:00
* wallyworld hates doctests23:00
sinzuilifeless: many templates want you to pass the principal kwarg to create_initialized_view()23:00
lifelessprincipal=a_person ?23:01
wallyworldwhen a test fails, it prints as "errors" all the places where there's "..." and it's hard to see the real error :-(23:01
sinzuilifeless: sorry, I got distracted. yes principal=a_person is used to setup the request23:06
lifelesssinzui: thanks!23:06
lifelesssinzui: I get this - ComponentLookupError: ((<lp.code.browser.decorations.DecoratedBranch object at 0x100bd5d0>, None), <InterfaceClass zope.interface.Interface>, '+hierarchy')23:09
lifelesssinzui: I haven't [yet] added the principal argument. Doing so now23:09
sinzuilifeless: you probably don't need the principal yet, some tales code (menus?) need it23:10
lifelesssinzui: any idea what causes that component lookup error then ?23:10
sinzuiyes, I have seen that with +hierarchy. I am going to look at the lp tree. I think we need to pass a PATH arg23:11
lifelessmaybe layer, or root_site?23:13
sinzuilifeless: here is an example from an old test, and an alternate how I would write it http://pastebin.ubuntu.com/571959/23:15
lifelessis path_info the canonical_url ?23:17
sinzuiyes it is23:19
lifelesssinzui: http://pastebin.com/ZqKwvs2M23:20
lifelesssinzui: https://bugs.launchpad.net/launchpad/+bug/710685 is the bug I'm working on23:20
_mup_Bug #710685: Branch:+index timeouts - 3 queries triggered per linked bug <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/710685 >23:20
sinzuioh effing pagetitle23:22
lifelesscreate_initialized_view has constant query counts, but the page doesn't per the oops, so I want to render23:22
lifelessI could use getUserBrowser23:23
lifelessbut I'm trying to find the thin line below that23:23
lifelesssinzui: where should it get the current request from ?23:24
lifelesssinzui: I see its using get_current_browser_request23:25
wgrantlifeless: In the interests of getting this out ASAP, should I land without tests? They are going to require a bit of thought and work.23:25
wgrantThere's only one un-QAd rev in devel at the moment.23:26
lifelesswgrant: soit23:27
sinzuilifeless: I do not think DecoratedBranch has a registered hierarchy adapter and there is nothing in the default setup that is being used23:27
sinzuiand this is death is render()23:27
lifelessyes23:28
* sinzui looks at DecoratedBranch23:28
lifelessare there reasonable alternatives to a user browser within reach of a morning fiddle ?23:28
sinzuilifeless: I know what to do. I faced this when working with menus23:32
sinzuiWe need a helper.23:32
lifelesso/~ I need a hero o/~23:33
wgrantTotal: 7 tests, 0 failures, 0 errors in 27.508 seconds.23:36
wgrantGeneral warnings.23:36
wgrantThe doctest <doctest test_adapter.txt[98]>, at the line: >>> clear_request_started()23:36
sinzuioh bugger, I may be in a Klein bottle23:36
wgrantThat warning is so general that it has no content at all!23:37
sinzuilifeless: http://pastebin.com/3Bkr9ntz23:39
sinzuiWe need the traversed objects, so we build a request with them first23:39
wgrantlifeless: Ah, so it turns out the retry machinery is buggy.23:40
wgrantlifeless: But we have just been swallowing the warnings about the illegal clear_request_started call for years.23:41
wgrantDoes anybody know how to check warnings in a doctest?23:44
lifelessthey show as 'output'23:44
wgrantNo :(23:45
wgrantThey show as "General warnings." at the end of the test run, apparently.23:45
wgrantI guess I will try the catch_warnings decorator.23:46
wgrantlifeless: https://code.launchpad.net/~wgrant/launchpad/unbreak-request-retry/+merge/5123423:59

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