/srv/irclogs.ubuntu.com/2011/12/08/#launchpad-dev.txt

cjwatson[6~[6~ [5~/wg 6100:15
cjwatsonargh, lag00:15
lifelessargh01:43
lifelessset_up_tacfile_logging01:43
wgrantThat's not the problem here, AFAICT, but yeah.01:44
wgrantI commented it out, still borked.01:44
lifelesswell01:44
wgrantIt's evil, though.01:44
lifelessI'm yak shaving on the stdio thing01:44
wgrantAh01:44
lifelessits that or yakshave on a manhole01:44
lifelessso01:45
lifelessthe channel is set to pretend to be non-errors01:45
lifelesswhich is why that function isn't the cause of the looping01:46
wgrantAh01:46
lifelesschannel = logging.StreamHandler(log.StdioOnnaStick())01:46
lifelessthats what is connected to the python logging system01:46
lifelessnote further that the python logging stuff *also* needs a oops handler attached (with special gymnastics) because set_up_tacfile_logging turns errors into plain messages01:47
lifelessspecial gymnastics because its calling 'normal' oops code in a twisted appserver.01:47
lifelessclimb through, if you dare01:47
lifelessaaaaaaah01:48
lifeless-> execute_zcml_for_scripts()01:48
lifeless(Pdb)01:48
lifelessand thats where my prompt disappears01:48
lifelessit may just be horrendously slow under pdb.01:53
lifelessah yues01:53
lifelessaieee01:53
lifelesssomeone in twisted had a daft day01:53
lifeless623  -> def startLoggingWithObserver(observer, setStdout=1):01:53
lifelessthere appears to be no way to control that.01:54
wgrantHeh01:55
lifelessTwisted-11.1.0-py2.6-linux-i686.egg/twisted/application/app.py(228)start()01:57
lifelessthe use of -n doesn't stop this happening01:57
lifelessso, interactive debugging -> nah, we can't do that01:57
lifelessnow, with that hacked in, lets see01:57
lifelessoh joy01:59
lifelessand then we re-setup logging doing that against as well01:59
wgrantWe have to be sure :)01:59
lifelessvia ib/lp/services/sshserver/service.py(174)startService()01:59
lifelessyay.01:59
lifelessnow I have pdb, I am all powerful02:00
lifeless12K oopses written02:00
lifelessthen it stopped02:00
lifeless2 oopses this time02:01
lifelessnow 102:02
lifelessheisenbug02:02
poolielifeless, if we depend on python-fixtures is that likely to be released etc?02:04
pooliebackported even?02:04
lifelessuseless backtrace though02:04
lifelesspoolie: hi released for sure02:04
lifelesspoolie: I have no idea about backports to official ubuntu; it is in a ppa building for a wide set of releases02:04
pooliei guess adding dependencies is a muscle that should be worked02:04
poolieit hurts :)02:04
lifelesswgrant: https://bugs.launchpad.net/launchpad/+bug/901498/comments/502:07
_mup_Bug #901498: poppy-sftp OOPSes infinitely <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/901498 >02:07
lifelesswgrant: :!ls -l /var/tmp/lperr/2011-12-08/ | wc -l02:08
lifeless502:08
lifelesswgrant: suggestions on making it break solicited02:08
wgrantlifeless: That normally degrades into infinite recursion, I believe.02:08
lifelessof course, it might be the setStdout thing02:08
lifelesswgrant: hasn't for me02:08
wgrantEven when you run without your hacks and without -n?02:08
lifelessits the setStdOut parameter to startLogging02:09
* lifeless runs with 2>/dev/null02:11
lifelessright02:11
lifelessour logging is wired up to stderr02:12
lifelessand we redirect stderr to be an OOPS02:12
lifelessour *python* logging is wired up to stderr02:12
wgrantAh02:14
lifelesswe have logging wired up to stderr for scripts02:14
lifelesswhere the stderr goes to lp-error-reports02:14
lifelessfor 'help me' reporting02:14
lifelesswgrant: analyzed https://bugs.launchpad.net/launchpad/+bug/901498/comments/702:16
_mup_Bug #901498: poppy-sftp OOPSes infinitely <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/901498 >02:16
lifelessoh wow. we export a function from a package.02:19
lifelessbah02:19
lifelessfunction from a module as the same name as the module02:19
lifelesslib/canonical/launchpad/scripts/__init__.py line 3102:19
lifelessok, this is crazy. going in loops :(02:24
spmwhile poppy=aaaaaa; do sudo crazy --user=lifeless ; sleep 5 ; done02:26
poolielifeless, i don't suppose you would be open to reconsidering https://code.launchpad.net/~mbp/launchpad/show-timeline/+merge/80166 to not consolidate it with ++profile++ for now?02:27
pooliethe profile code is a bit hardcoded02:27
pooliei feel a bit averse to refactoring it02:27
poolieat least until i know if this is actually useful02:27
lifelessmmm02:29
lifelessIf you want to land it, and then either refactor or remove it in january sometime, thats fine02:29
lifelessI don't want deliberate duplication in this area; it is as you note already clumsy, and duplication around it makes that worse.02:30
lifelessso I'm *not* ok with landing it and then forgetting about it.02:30
poolieok, deal02:30
pooliei promise to at minimum delete it02:30
lifelessok02:30
lifelessthank you02:30
pooliehopefully it will actually be useful and we can unify them02:31
pooliei will add an integration smoke test02:31
lifelesswgrant: feedback wanted02:41
lifelesshttps://bugs.launchpad.net/launchpad/+bug/901498/comments/802:41
_mup_Bug #901498: poppy-sftp OOPSes infinitely <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/901498 >02:41
lifelessI thnk I have a full handle on it now02:41
wgrantlifeless: That sounds reasonable, I think.02:45
wgrantBut I don't know twistd.02:46
lifelessStevenK will rejoice02:58
wgrantOh?02:58
lifelesshe has a branch to delete setup_tacfile_logging02:58
lifelessI suggested that he needed to figure out this set of intricate pain to move forward and it stalled02:59
lifelesshaving figured it out, it should be fairly straightforward to make a patch02:59
wgrantAh02:59
StevenKlifeless: What's your plan, then?03:03
lifelessStevenK: https://bugs.launchpad.net/launchpad/+bug/901498/comments/803:03
_mup_Bug #901498: poppy-sftp OOPSes infinitely <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/901498 >03:03
StevenKHmm, I'm can't recall that branch03:05
* StevenK looks03:05
StevenKFound it.03:06
wgrantlifeless: Does one just use https://lp-oops.canonical.com/admin/oops/prefix/ to assign appinstances to prefixes?03:09
lifelessyes03:09
* wgrant fixes them up.03:09
lifelessper the docco wiki page03:09
lifelessits a bit horrible03:09
wgrantHorrible? This is Django!03:09
lifelessa bit, not a lot03:09
lifelessjus tsome of the maniuplation gets clumsy03:10
StevenKlifeless: So I should resurrect my branch?03:10
wgrantOh goody.03:10
wgrantWe have 'production' and 'lpnet' appinstances.03:10
lifelessStevenK: I think so, especially if you're up to tweaking the other bits too03:10
lifelesswgrant: production was scripts etc03:10
lifelesswgrant: lpnet is just appservers03:10
lifelessIIRC03:11
wgrantProbably.03:11
StevenKlifeless: I would, but I have no idea how to.03:13
wgrantlifeless: https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-04319168ea720529358ae77eb667fea903:14
lifelesszomg links that work :P03:14
wgrantYES03:14
lifelessStevenK: I can give you pointers03:14
lifelesswgrant: epic fail traceback03:15
lifelesswgrant: the no URL thing is interesting03:16
wgrantYes.03:16
lifelesswgrant: no req variables either03:16
wgrantIt probably happened aoutside the request.03:16
wgrantIt's in the disconnection.03:16
lifelesswgrant: can you file a bug for this? it managed to keep the timeline though.03:16
* StevenK points lifeless to this whole annual leave thing.03:16
lifelessStevenK: are you there now ?03:16
lifelessStevenK: you could link your branch in as a starting point (just in a comment I mean)03:17
wgrantHmm.03:19
wgrantOur DB needs pruning.03:19
lifelesswgrant: oops DB?03:19
StevenKlifeless: Comment 903:19
wgrantSo many obsolete unreferenced prefixes.03:19
wgrantYeah.03:19
lifelesswgrant: oh, prefix pruning.03:19
lifelesswgrant: wait till we have the new configs streamline03:19
wgrant139 unreferenced prefixes.03:19
wgrantSSO and crap.03:19
wgrantYeah.03:19
lifelesspoolie: the linaro thing is a sadness03:23
StevenKWhich thing?03:23
lifelesszygmund? I forget the spelling - moved a linaro project to github, unilaterally.03:26
lifelesswith a bit of a rant about usability03:27
lifelesssome true aspects03:27
poolieyeah03:30
pooliesome seems fairly easily fixable :/03:30
wgrantYes.03:32
wgrantBut the problem is they've been fairly easily fixable for 4 years.03:32
wgrantAnd they're still not fixed.03:32
lifelessa few good men03:37
StevenKI'd suggest they get escalated, but what good will that do.03:38
pooliewgrant,  they are actually a bit more easily fixable now03:41
wgrant(I don't actually know what they are)03:41
lifelessYHBTHANDHTH03:42
nigelb...03:42
poolieyou have been trolled etc03:45
lifelessWgrant sometimes needs the reciprocal branded on his forehead :)03:46
wgrantI was being quite serious :)03:46
lifelessexcept you didn't know the specific issues03:46
pooliefeaturefixture assumes every defined feature is true :(03:47
pooliecan be fixed03:47
poolies//flag03:47
lifelessso you were at minimum applying /some/ hyperbole03:47
wgrantSome, yes.03:47
wgrantBut it was a reasonable assumption.03:47
mwhudsonlifeless: i was pretty unhappy he did that03:48
lifelessmwhudson: I am too03:49
wgrantSo am I. Doesn't meant I don't see his points as valid :)03:49
lifelessmwhudson: he could at least have offered some patches03:50
mwhudsonmy upsetness is probably from a different direction though03:51
lifelessmwhudson: sharable?03:52
mwhudsonlifeless: bad timing, and we're supposed to be a team dammit03:52
poolieexactly03:52
lifelessmwhudson: What made the timing bad? Team thing yes, I agree - thats kindof where my point was...03:53
lifelessmwhudson: though I think that Linaro being a separate org makes that a little less clear.03:53
mwhudsonlifeless: the project is a bunch of scripts we use for deployment03:53
mwhudsonlifeless: he moved it <12 hours before we used them for the first time for a production deployment03:53
lifelessoh wow03:53
lifelessmwhudson: who reports to whom in this structure?03:58
mwhudsonzyga and i both report to paul larson03:58
poolieshort review anyone? https://code.launchpad.net/~mbp/launchpad/featurefixture-from-request/+merge/8488704:14
wgrantlifeless: Did you have a fix for https://lp-oops.canonical.com/?oopsid=OOPS-5c5df29093442e212197300c3b8d2f8a?04:16
lifelessbah, slid off plate04:16
lifelesslet me shelve my DB changes and I'll get on it04:16
lifelesswgrant: you're landing the soyuz start tweaks?04:16
lifelesswgrant: was there a bug for this ?04:17
lifelessah yes, 898638 is it04:17
wgrantlifeless: They landed a few hours ago.04:17
wgrantlifeless: Also, your (qa)staging de-oops-prefix-isation made various staging OOPSes show up on prod.04:17
lifelesswgrant: win04:18
wgrantBecause there are prefixes configured in schema-lazr.conf, for some probably not very good reason.04:18
wgranteg. CB and CID04:18
wgrantAnd CIW04:18
lifelessHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAAHAHHAAHA04:18
wgrantAnd APPORTBLOB04:18
wgrantAnyway.04:18
lifelesscaretokill ?04:18
wgrantNot really.04:18
wgrantMight as well just kill off all prefixes on Monday.04:18
wgrant:)04:18
wgrantActually.04:18
lifelesswell, all script ones04:19
wgrantI guess we can sensibly just drop those now, can't we.04:19
wgrantSince we're using the new datedir-repo on prod everywhere.04:19
lifelessset to none in the schema04:19
wgrantYeah, just was thinking it wasn't safe everywhere yet.04:19
lifelesswgrant: we haven't updated the prod config yet04:19
wgrantBut it is.04:19
wgrantThey don't need to be unique any more, and reporter defaults to something sensible for scripts now.04:19
lifelessyes, that part of it definitely04:20
wgrantI'll remove all the prefix defaults now.04:20
lifelesshttp://pastebin.com/3Q7v6YVD04:21
wgrantaaaa04:22
wgrantbut ok04:22
lifelesshow do you propose to address it ?04:22
wgrantI don't have any better ideas.04:23
lifelesswhee04:25
lifeless  File "/usr/lib/python2.6/urllib.py", line 1222, in quote04:25
lifeless    res = map(safe_map.__getitem__, s)04:25
lifelessUnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal04:25
lifelessclose enough to demonstrating the problem IMO04:25
lifelessand with the fix04:25
lifelesswgrant: lp:~lifeless/launchpad/bug-89863804:37
poolielifeless, what is an 'extra oops message'?04:37
poolienm04:38
lifelesswgrant: review -  https://code.launchpad.net/~lifeless/launchpad/bug-898638/+merge/8489104:38
lifelesspoolie: have a look in errorlog.py, should be fairly obvious04:38
poolielike         with globalErrorUtility.oopsMessage(oops_message): ?04:38
lifelesssomething like that yes04:39
lifelessI don't know if there is a good API for 'and I am not raising right now'04:39
lifelessI hope there is04:39
lifelessotherwise I'm sending you off yak shaving again04:39
lifeless(which wasn't my intent)04:39
wgrantlifeless: APproved04:40
lifelesswe need a longpoll hook for changes to the MP other than diff04:41
lifelesshas stubs stuff landed again ?04:45
* lifeless checks04:45
wgrantIt has, yes.04:46
lifelesswgrant: https://code.launchpad.net/~lifeless/python-oops-tools/prune/+merge/8489204:58
wgrantI need to remember to not hit refresh.04:58
lifelesswgrant: diff is there :P05:06
poolielifeless, according to some documentation, oops messages are not supported in the webapp because they're not thread safe05:07
lifelesspoolie: hmm, so I believe we have per-thread utilities05:08
lifelesspoolie: so if I wrote that, I was misguided.05:08
wgrantlifeless: k05:10
wgrantr=me05:10
pooliewhere are oopses from make run now put?05:29
wgrant/dev/null unless you have python-oops-tools set up, or kill rabbit.05:29
pooliei guess i'm really asking, what's the easiest way to look at them05:30
lifelesspoolie: run up oops-tools locally.05:31
wgrantIt's actually pretty easy nowadays.05:31
lifelesspoolie: give me 5 minutes to land a switch to the LP sourcedep branch and it will be even easier.05:31
wgrantAlthough it would be nice if you didn't have to create a special postgres cluster and blah.05:31
lifelesswgrant: patches gratefully.05:31
pooliesrsly05:31
poolieok thanks05:31
wgrantpoolie: If you kill rabbit and cause an oops, it will appear in /var/tmp/lperr as before.05:31
lifelesswgrant: is there an exchange by default ?05:32
lifelesswgrant: w/no exchange they should be written to disk regardless05:32
wgrantlifeless: Hmm, that's true.05:32
wgrantPerhaps the dev rabbit is more persistent than I thought it was.05:33
lifelesspoolie: I'd expect by default they arrive in /var/tmp/lperr/05:33
lifelesspoolie: if you have oopstools you can glue it in very easily. I reference an email describing this from https://dev.launchpad.net/QA/OopsToolsSetup05:34
lifelessthe precise link is05:34
lifelesshttps://lists.launchpad.net/launchpad-dev/msg08183.html05:34
lifeless(but see https://dev.launchpad.net/QA/OopsToolsSetup#Deploying_locally_.28e.g._devpad.29 anyhow)05:34
lifelesssadface05:35
lifeless bzr resolve --all download-cache/05:35
lifelessbzr: ERROR: If --all is specified, no FILE may be provided05:35
wgrantYeah, that sucks :/05:35
lifeless bzr resolve --all -d download-cache/05:35
lifelessbzr: ERROR: no such option: -d05:35
lifeless cd download-cache/ && bzr resolve --all && cd -05:35
lifeless/home/robertc/oops-tools05:35
poolie:/05:37
lifelessman, I wanted to get so much more done today05:39
lifelessE-TIME05:39
lifelessof course, having rogue services check up gb's of queue memory is a good excuse.05:39
wgrantIndeed.05:41
wgrant14M oopses from one service is quite the exceptional circumstance.05:41
lifelesswgrant: you're missing the 700K it processed.05:42
lifelesswgrant: that graph was depth, not volume05:42
wgrantlifeless: True.05:43
wgrantlifeless: Although some of that 700000 was from after the peak.05:43
wgrantBut before I hacked it to skip them.05:43
lifelesswgrant: not really05:43
lifelesswgrant: it had 9 hours of constant chewing on them05:44
wgrantTrue.05:44
lifelesswgrant: and ~20 minutes of quad consumer05:44
wgrantYeah05:44
lifelessso thats 9*60=540 vs 8005:44
pooliestub,  this is for stub, this is for https://code.launchpad.net/~mbp/launchpad/666765-features-no-reasons/+merge/8405005:47
poolieany better ideas welcome05:47
lifelesspoolie: does the request flags controller know the scope values ?05:47
lifelesspoolie: if so, adding an oops hook, or extending attach_request, would be clean.05:48
poolieyep05:48
pooliei don't understand how the existing use of it is really safe05:48
pooliei guess it's mostly stateless05:48
lifelessits probably not05:48
pooliein the way it's used in the webapp05:48
poolieok that should work05:48
lifelessthis is old and crufty code mostly facelifted05:48
stubpoolie: I think at the moment all data is attached to the request, which is effectively thread local and gets destroyed at the end of the request. The utility certainly should be stateless, or failing that use thread local storage.05:50
lifelesscertainly the amqp publisher has TLS built in05:50
lifelessand the datedir repo publish function doesn't alter global state (though the old one did). All hail clean code.05:51
poolieright except it has this concept of 'messasges' which mislead me05:51
stubI attached something to the OOPS reports via request the other day but can't remember what it was now... :-/05:51
pooliepulling it from the request at the time it's fired looks like it will work05:51
lifelessstub: the previous oops05:51
poolieand is even slightly clean05:51
* stub wanders off on his walking frame to grab a cup of tea05:51
stubahh... that's right05:51
lifelesspoolie:  trunk of python-oops-tools is now using the lp sourcedeps cache.05:54
lifelessI'm going to mail the list a tl;dr summary in a second05:55
poolieall my lp branches failed with that soyuz apparently spurious failure06:48
wgrantYeah, it's become extremely common lately.06:48
wgrantPossibly 100% common.06:48
wgrantI have two branches in ec2 now that I'm going to try to catch.06:49
jtvwgrant: I've been trying to Q/A a change to PackageCloner.packageSetDiff… any idea how I exercise it?  I thought I could initialize a distroseries but haven't had much luck with that.06:59
jtv(And what is a SetDiff?)06:59
wgrantIt's a diff of a package set. Note that a package set is not to be confused with a packageset.07:02
wgrantInitialising a new distroseries in the same distribution should use the cloner.07:03
wgrantBut the easiest way is to use populate-archive to create a copy archive.07:03
wgrantThat uses the cloner.07:03
jtvAnd specifically packageSetDiff?07:04
wgrantHmm.07:06
wgrantI'm not sure that's ever been used.07:06
wgrantThe cloner was initially going to be able to do progressive copies, IIRC.07:06
wgrantBut that never got finished AFAIK.07:06
poolieok, night all07:06
wgrantAt least never used anywhere.07:06
jtvnight poolie07:07
jtvwgrant: then I guess qa-untestable.07:07
wgrantjtv: Probably.07:10
jtvwgrant: Thanks.  By the way, it runs on cocoplum, right?07:17
jtvThe package cloner in general?07:17
wgrantYeah.07:19
wgrantMostly.07:19
jtvMostly..?07:22
jtv“They mostly come at night.  Mostly.”07:22
* jtv flashes wgrant a terrified look07:22
wgrantIt would occasionally be run from loganberry, probably, and will soon be on bilimbi.07:23
jtvI'm filing NDT & cocoplum rollouts then.07:26
wgrantObjection.07:26
jtv?07:26
wgrantWe can't roll out to cocoplum until next week.,07:26
wgrantpoppy is a bit fucked07:26
wgrantTook down all of LP this morning.07:26
jtvBut that's germanium innit?07:26
wgrantBy overloading rabbit with 14 million OOPSes in 10 hours.07:26
jtvwhoopie07:26
wgrantpoppy is both cocoplum and germanium.07:26
jtvIs that the new logging of GPG errors?07:26
wgrantA bug in the new OOPS infrastructure.07:27
wgrantWhich causes the first error to create an infinite loop.07:27
wgrantOf OOPSes.07:27
jtvI shouldn't have joked about that the other day.07:27
wgranthttps://lpstats.canonical.com/graphs/ProductionRabbitOopsQueue/20111208/20111209/07:28
lifelesswgrant: that should be on LPS in the cherrypick section I suspect07:28
wgrantlifeless: It's in the cowboy section.07:28
lifelesscool cool07:28
wgrantI'll add germanium as well.07:28
lifelessalso  https://lpstats.canonical.com/graphs/AppServerRequestLpnet/20111208/20111209/ which we have no current clue about07:30
jtvwgrant: is the upshot that rolling out to cocoplum doesn't work today?  Or that do so would break something, and if so, how?  Would it override a cowboy, for instance?07:30
wgrantjtv: Rolling out to cocoplum will work for a few hours, and then cause all production services to hang.07:30
wgrantBug #90149807:31
_mup_Bug #901498: poppy-sftp OOPSes infinitely <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/901498 >07:31
jtvSo it would break something.07:31
jtvThat's something I hate even more than just not being able to do it.07:31
lifelesshttps://bugs.launchpad.net/launchpad/+bug/90149807:31
_mup_Bug #901498: poppy-sftp OOPSes infinitely <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/901498 >07:31
wgrantlifeless: Well, it's nothing to worry about.07:32
wgrantlifeless: Data collection on loganberry probably just hung for a while.07:32
wgrantlifeless: Note that there's a gap, and then the next point is high -- it's the sum of the missing data.07:32
jtvwgrant: argh.  As usual I didn't see the moin warning until I hit the button.  :(07:32
jtvwgrant: I'm afraid I cross-edited LPS.07:32
jtvVery sorry.07:33
jtvI still want a red background with a skull-and-crossbones motif when that happens.07:33
wgrantjtv: It's a far too subtle warning.07:34
wgrantI think it's actually more subtle than the warning that other people will be warned.07:34
lifelessrestyle it07:34
lifelesswe have a branch with the theme07:34
wgrantlifeless: wiki.c.c?07:34
wgrantjtv: What'd you change? Added a deployment request?07:34
wgrantAh, yeah.07:34
wgrantNo conflict.07:34
* wgrant saves.07:35
lifelesswgrant: yes, pretty sure. check with webops.07:35
jtvNo, edited my existing deployment request.07:35
jtvPoppy oops loop.  Now there's something to say quickly.07:35
lifelessor as I like to say07:35
lifelesspoops07:35
jtvwell if you had to say "poppy oops loop" a few times, chances you'd have ended up saying it anyway07:37
jtvchances *are07:37
jtvThis keyboard lets my fingers fall too far behind my brain.07:37
wgrantjtv: I've amended your suspended request further, to request germanium as well.07:40
wgrantBecause it's nice to keep them together.07:40
wgrantThey have the same downtime constraints, so there's no reason to let them diverge.07:40
jtvI was wondering about that.  Is there any particular reason why we don't deploy those as a coherent set?07:41
wgrantBecause I only just altered LPS to recommend that that be done.07:41
wgrantthere's probably not much benefit in adding a special alias for them.07:42
wgrantAnd we can't really merge the nodowntime-but-not-nodowntime targets into a single set, since they require codehosting.07:42
wgrant(codehosting, mailman, librarian are nodowntime-but-not-nodowntime)07:42
jtvnowdowntime-but-not-nodowntime..?07:44
wgrantAble to be deployed without downtime, but not in nodowntime because their upgrades require handholding.07:45
jtvShould we have a plus-zero-downtime set?07:45
wgrantHeh07:46
lifelessmailman needs to be divorced from LP07:53
lifelessmade into a separate consumable thing, not part of the same tree07:53
wgrantYes.07:53
lifelessthat will eliminate one of those07:53
lifelessI've run that broad plan past elmo for comment, and he is (provisionally) cool with it07:54
adeuringgood morning08:53
jtvmorning adeuring08:56
adeuringhi jtv08:56
mrevellHey08:56
jtvhi mrevell08:57
micahggiven Bug #788819, do I need a second bug to be able to subscribe to all team branches?09:39
_mup_Bug #788819: want to subscribe to all merge proposals project wide <code-review> <feature> <notification> <Launchpad itself:Triaged> < https://launchpad.net/bugs/788819 >09:39
lifelessocr: https://code.launchpad.net/~lifeless/python-oops-amqp/bug-901497/+merge/84915 plox10:17
=== almaisan-away is now known as al-maisan
lifelessstub: around? should we catchup?10:59
lifelessstub: I'll try to catch you tomorrow. EHALT now.11:03
lifelessallenap: ditto for you (re the bug I was talking to julian about)11:04
bigjoolslifeless: allenap is not around reliably today11:04
stublifeless: night12:08
rick_h_morning everyone12:21
nigelbbigjools: Seen IND vs WI match?12:24
bigjoolsnigelb: yes, amazing12:26
nigelb:)12:26
nigelbThe office seems to be in party mode :P12:26
sinzuijcsackett, can you check your email to verify you were notified that you were assigned a bug? I am verifying that email is working...you can ignore the bug14:07
jcsackettsinzui: this was within say the last hour? (i have a misbehaving bug mail filter, so i'll need to search)14:08
sinzuiIt was 15 minutes ago14:09
jcsackettsinzui: i see no email.14:10
sinzuiokay14:10
=== jcsackett changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: jcsackett | Critical bugtasks: 3*10^2
jmlhey, is there something wrong with the builders. the queue seems pretty big.14:43
jmlor is this just usual flux14:43
bigjoolsjml: probably a result of the librarian outage the other day14:44
flacostebigjools: that and we were missing some builders14:47
flacosteor are14:47
flacosteback saturday i think14:48
bigjoolsflacoste: nothing to do with that unfortunately14:48
flacosteoops, don't list active feature flags right?15:05
=== Ursinha is now known as Ursinha-lunch
* deryck goes afk for early lunch/errands, back in hour15:22
=== deryck is now known as deryck[afk]
bigjoolsjml: remember when we wrote some poppy tests and you duplicated them across ftp and sftp by using "multiply_tests" in the loader?15:30
jmlbigjools: yes.15:30
bigjoolsjml: do you know how to run only one scenario?15:30
jmlbigjools: yeah, just pick the right regex15:30
bigjoolsthe test name that it prints when running is not recognised by -t15:30
jmltest.py test_poppy <regex>15:31
bigjoolswell finding the regex is proving hard :)15:31
bigjoolsfor example:15:31
bigjools lp.poppy.tests.test_poppy.TestPoppy.test_bad_gpg_on_changesfile(sftp)15:31
jmlbigjools: don't use -t, use the two regex way of selecting tests15:31
bigjoolsahl ISWYM15:31
bigjoolsjml: didn't work :(15:32
bigjoolsunless ( and ) need escaping15:32
jmlprobably they do15:32
jmlI'm guessing you just want ftp15:32
bigjoolsaha there we go15:32
bigjoolshow'd you guess :)15:32
bigjoolsthat did it, thanks jml15:32
jmlyou could probably also change the name of the scenario15:32
adeuringjcsackett: could you please review this MP: https://code.launchpad.net/~adeuring/launchpad/history-model/+merge/84973 ?15:35
jcsackettadeuring: sure.15:35
adeuringjcsackett: thanks!15:35
benjiI'm confused.  I didn't realize we still used the release-cirical-only mode of PQM any more, yet my branch just got rejected because of it.15:54
=== deryck[afk] is now known as deryck
flacostebenji: there were two buildbot failures earlier on16:32
jcsackettadeuring: r=me, sorry for the delay.16:33
flacosteunless a testfix was landed or a rebuild requested16:33
adeuringjcsackett: thanks :)16:33
flacostewe are in testfix mode16:33
flacostebenji: so we are not using release-critical anymore16:33
flacostebut testfix yes16:33
benjiflacoste: let me double-check, but I'm pretty sure the rejection email said release-critical and not testfix16:33
=== salgado is now known as salgado-lunch
flacostebenji: the message might be wrong16:34
flacostei think we are still in testfix16:34
flacostebecause nothing was done with the db_lp failures16:34
=== al-maisan is now known as almaisan-away
benjiflacoste: heh, my tendancy to read right to left combined with the fact that the regex has *both* testfix and release-critical in it bit me16:36
flacostewhat was the issue with "True != False: memcached is live but should not be."16:36
flacostethese errors happened both on lp and db_lp?16:36
flacostewas it deemed transient?16:36
flacosteshould we trigger a rebuild on db_lp?16:36
flacosteor the same fix that got applied to lp should be to db_lp?16:37
deryckrick_h_, hey.  can you just pastebin me the queries you want run, in order. Just the queries, no extra text.16:42
rick_h_deryck: sure thing, sec16:42
rick_h_deryck: http://paste.mitechie.com/show/466/16:44
gary_posterflacoste, I came back in for only part of a conversation you were having with someone, and no-one replied.  I'm going to assume that we still need someone to investigate the issues that benji raised in email, and the buildbot failures.16:58
gary_posterI'll arrange for it to be tackled.16:58
gary_posterbenji, could you try reverting the new germinate locally as Francis suggested?  I'm not sure how to do it, and if you are not either, I bet there are many people who could help you.17:00
deryckrick_h_, I don't follow the "repeat" comment below. Do I need to change an id and run them again?17:00
rick_h_deryck: yes please, I want to then get the same info for the parent messages of those two17:00
gary_posterI guess that the memcache error on buildbot is about some memcache that started and shouldn't have.17:00
deryckrick_h_, what is the parent message?17:00
rick_h_parent field in the results17:00
rick_h_message.parent17:01
gary_posterI'll try to investigate that17:01
rick_h_should be either null, or ids of messages as well17:01
rick_h_deryck: ^^17:01
benjigary_poster: I haven't upgraded it manually so I doubt I have the newest version, let me check17:01
deryckrick_h_, I don't get anything for the first results.17:03
deryck0 rows17:03
gary_posterbenji, it  would be upgraded automatically when you upgrade stuff because we have Launchpad's PPA as a source17:03
rick_h_deryck: http://paste.mitechie.com/show/468/ ?17:04
gary_posterI guess you mean you didn't update launchpad dependencies, you just installed the missing dependency?17:04
gary_posterIf that's the case you should definitely update all your dependencies before you try again17:04
benjigary_poster: by "when you upgrade stuff" do you mean running a blanket "apt-get upgrade"?  I haven't done that lately.17:04
deryckrick_h_, https://pastebin.canonical.com/56886/17:04
rick_h_deryck: ok, thanks17:05
deryckadeuring, you linked a branch to bug 898200, which is the dupe. bug 295214 is the master bug.17:06
_mup_Bug #898200: Can't sort bug list by customized fields <bug-columns> <Launchpad itself:Triaged> < https://launchpad.net/bugs/898200 >17:06
_mup_Bug #295214: ordering options should match data that is displayed in bug listings <bug-columns> <confusing-ui> <lp-bugs> <Launchpad itself:In Progress by adeuring> < https://launchpad.net/bugs/295214 >17:06
deryckadeuring, well, sorry, maybe you linked both?  skimming through mail now. ;)17:06
adeuringderyck: right, I linked both17:07
deryckadeuring, ok, cool.  Sorry for the noise.17:07
adeuringnp17:07
=== Ursinha-lunch is now known as Ursinha
rick_h_deryck: one more please: http://paste.mitechie.com/show/469/17:09
benjigary_poster (and flacoste): neither updating germinate or using an older version makes my errors (http://paste.ubuntu.com/763881/) go away17:10
cjwatsongary_poster: I'd be surprised if the new germinate could have broken anything, since prior to https://code.launchpad.net/~cjwatson/launchpad/refactor-cron-germinate/+merge/84624 (which hasn't landed yet), it wasn't actually tested17:10
gary_posterholy smoke, what happened yesterday on buildbot?  The currently running build has over 88 revisions, which start from over a week ago17:11
cjwatsonit certainly has nothing to do with builds17:11
cjwatsonas in buildmaster17:11
gary_postercjwatson, germinate not being a cause makes sense in general.  There does seem to be a difference between ec2 and buildbot results though, and deb dependencies would explain it.  That said, something appears to be seriously screwy here.17:13
gary_posterin buildbot17:13
gary_posterand our devel17:13
cjwatsonsure - just trying to help cut out probable red herrings17:14
cjwatsoncode not run in any tests has a low probability of breaking tests :-)17:15
gary_postercjwatson, cool, thx.  when you said builds are not at fault, that's in response to looking at benji's pastebin (email)?  http://paste.ubuntu.com/763881/17:15
gary_posterit looks build-y but I don't know that system.17:15
=== salgado-lunch is now known as salgado
deryckrick_h_, https://pastebin.canonical.com/56889/17:26
deryckmrevell, I've seen so much mail about long bug titles and one line vs. two, I can't even follow it any more.17:30
deryckmrevell, I feel like we're trying to solve too many problems.  What are we trying to solve?  Are trying to get everything on one line, or trying to make better use of the space?17:31
mrevellHey deryck. My priority is this: we should offer a one-line view that gives the same info you can get from the currently live non-beta bug listings. If there's a way that we can also cater to wider screen users by putting additional data to the right-hand of their wide page, rather than on a second line, then that'd be a nice bonus. I'm sorry this has become a confused issue over the past few days.17:34
mrevellI believe we've solved that first part.17:35
deryckmrevell, no worries, I just want to be clear. it feels a bit like we're talking about ideas, just to be talking now. And I was losing *why* we're discussing this. :)17:36
deryckmrevell, my impression from the check point call was that we had done as well as good on this, and we'd come back to this if we could, but were not really trying to.17:36
deryckmrevell, so I could have completely misunderstood, sorry.17:36
mrevellderyck, Sorry, I should have given a clearer direction to the mailing list threads. The discussion I was hoping for was about whether it was possible to use people's widescreens more effectively, while not forcing horizontal scrolling or too much wrapping on narrower screen users. I agree, the discussion seems to have strayed. Got time for a quick call?17:38
deryckmrevell, yeah, that might be useful.  I'm sorry. I think the discussion is happening across two different threads, too.17:40
deryckmrevell, skype?17:40
mrevellsure17:40
deryckmrevell, ready when you are.17:41
lifelessbigjools: you can use load-list to run one scenario precisely17:57
bigjoolslifeless: never mind that, help with me logging!17:57
bigjoolsabout to run out of hair17:57
lifelesssure, give me 5 to do some essential I-just-woke-up-stuff17:58
lifelessand you'll have my full attention, FWTW17:58
bigjoolsTMI17:58
lifelessmrevell: I *love* your attitude17:59
mrevellYou do? :)17:59
lifelessmrevell: totally.17:59
lifelessmrevell: re the thing poolie forwarded.17:59
lifelessmrevell: your response has made my day, and it has only just started18:00
cjwatsongary_poster: that wasn't what I meant actually; sorry to confuse.  What I said was that germinate is not involved in anything to do with the buildmaster18:01
cjwatsonor what I meant to say18:01
cjwatsongary_poster: germinate is loosely-coupled to the publisher, rather than to builders18:01
mrevelllifeless, Ah, cool :)18:02
lifelessmrevell: FYI: I rarely do sarcasm online; it doesn't transcribe well enough to avoid confusion.18:02
lifelessmrevell: so you can take emphatic positive statements as being what you see18:03
mrevellGreat :)18:03
bigjoolslifeless: I need to eat, I'll be back online in ~1hr18:03
lifelessbigjools: ok. I'll look at your notes on the bug18:03
lifelessbigjools: and repage it all in in prep.18:03
deryckrick_h_, I took a look at your MP again.  Generally it looks great.  Can we chat via mumble or Skype about something with it?18:03
bigjoolslifeless: I solved the problem - sorta.  :)  You'll see ...18:03
rick_h_deryck: sure thing18:03
lifelessbigjools: I fear the pastch18:03
deryckrick_h_, mumble or Skype?18:03
cjwatsongary_poster: ah, Benji suggests python-lpbuildd in https://lists.launchpad.net/launchpad-dev/msg08641.html, which makes a lot more sense as that package is actually related18:03
rick_h_deryck: mumble18:04
deryckack18:04
deryckrick_h_, see if Skype is better?18:15
rick_h_deryck: ok18:15
flacostegary_poster: i asked myself the same question about the 88 revisions build18:20
mrevellNight all18:20
flacosteand didn't find a satisfactory answer18:20
flacostethere are like several testfix in there18:20
lifelessflacoste: https://bugs.launchpad.net/python-oops-amqp/+bug/901449 is looking to me like its the longpoll code failing18:21
_mup_Bug #901449: Rabbit failure when sending an OOPS seems to hang the producer <rabbit> <python-oops-amqp:Triaged> < https://launchpad.net/bugs/901449 >18:21
flacostebenji: i think your failure is bug #77936718:22
_mup_Bug #779367: spurious failure in test_builder.TestSlave <critical-analysis> <spurious-test-failure> <test-system> <Launchpad itself:Triaged> < https://launchpad.net/bugs/779367 >18:22
flacostelifeless: how so?18:23
* benji looks.18:23
lifelessflacoste: unreliablesession is a longpoll thing18:23
lifelessflacoste: the idea of 'big oopses' is a distraction. The issue was volume not size.18:24
flacostelifeless: i got that, so poppy was the source of the volume, which killed rabbit18:24
flacosteand the app server dying is because of a bug in unreliable sessio?18:25
lifelessflacoste: I *think* that unreliablesession is being hooked in automatically in the appservers; and it has (at least one) bug in handling rabbit issues (see comment 2)18:25
benjiflacoste: it might be, comment #3 is exactly the same as mine18:25
lifelessflacoste: I think it may be. Doesn't mean we should stop looking18:26
lifelessflacoste: there is also bug https://bugs.launchpad.net/python-oops-amqp/+bug/901497 which could indeed affect LP appservers during rabbit issues18:26
_mup_Bug #901497: close_ignoring_EPIPE can trigger IOError <python-oops-amqp:Triaged> < https://launchpad.net/bugs/901497 >18:26
lifelessI've just pushed a release for that18:26
bachi flacoste, trunk for lazr.uri is an old bzr format and it breaks dailydeb.  can you upgrade it?  for some reason that branch, unlike most other LAZR projects, is owned by PQM not ~lazr-developers19:02
bacflacoste: btw, lazr.uri and lazr.restfulclient need to be backported for the natty SRU of launchpadlib19:03
rick_h_deryck: ping, I've got the start working, but not sure if the look is going to pan out. http://uploads.mitechie.com/lp/limited_textinput.png19:06
rick_h_deryck: before I go with it more, what do you think, do we want to keep going with it?19:07
flacostebac: if it's owned by PQM, it will need to be done by a losa19:07
deryckrick_h_, well, if we can drop the scrolling and overflow, have the outer-styled element expand as the stuff overflows, and drop the border around the input, then yeah, that could work. ;)19:07
deryckrick_h_, but if that leads to cascading issues, then I think it's not worth pursuing.19:08
bacflacoste: any reason to not change the ownership at the same time?19:08
flacostebac: probably not19:08
bacwill do19:08
rick_h_deryck: ok, yea didn't want to get too crazy changing all the css styles/etc. More meant the space on the side that appears and the fact that it'll cause more text to hit the default max_height setting of the resizing widget19:09
rick_h_which brings up scroll bars19:09
rick_h_deryck: I can remove the max height setting when used from the inline edit, but not sure if that would bring up other issues19:10
deryckrick_h_, I leave that to your judgement. Sorry, just don't know the ramifications of the max height restrictions without working on it more myself.19:11
rick_h_deryck: ok, sounds good.19:11
lifelessbac: most lazr trunks *should* be pqm or tarmac managed (same user) - we just haven't got a round tuit19:13
baclifeless: oh, i thought this one was the outlier in the wrong direction19:14
bigjoolso/ lifeless19:14
lifelessbigjools: oh hai19:14
lifelessbigjools: do you want voice ?19:14
bigjoolslifeless: if I had remembered to bring my headset in....19:15
bigjoolslifeless: the more I see of Twisted logging, the more I shake my head in disbelief19:16
bigjoolslifeless: I got as far as noticing that the twisted stuff was monkey patching sys.stdout and then I quit in disgust19:19
lifelessbigjools: right19:21
lifelessthat happens from self.logger.start(application) deep in twisted19:21
lifelesswe have to work with that19:21
lifelessit framed the situation for my proposed solution19:22
lifeless(sorry for the slight latency replying, helping lynne with meds for cynthia)19:22
bigjoolsno worries19:23
bigjoolslifeless: so I expect this is part of the problem with sys.stdout not working in the stream handler19:23
bigjoolsbut what I can't fathom is the duplication if I use stdioonnastick19:24
lifelessthe looping ?19:24
bigjoolsno19:24
bigjoolsit prints each message about 20 times19:24
bigjools*bizarre*19:25
lifelessI did not see that19:25
bigjoolsapply the diff in my paste19:25
bigjoolsuse the log.stdioonnastick option19:25
lifelessok, so RotatableLogFileObserver fits in as a replacement observer19:25
lifelesswe want that to be the fallback observer for the OopsObserver19:25
bigjoolsye19:26
bigjoolss19:26
lifelessso, we don't want errors going to stdout/stderr because nothing is watching those streams on the daemon19:28
bigjoolstbh I was trying to rip out all use of the python logger and use twisted's19:28
lifelessthat would be ideal19:28
lifelessbut19:28
bigjoolsbut19:28
bigjoolsHooks has some debug logging19:28
lifelesswe use an unknown amount of LP code today19:29
lifelesssomeone might add a logging output in there somewhere and screw us19:29
lifelessso we have to handle it19:29
bigjoolsright19:29
lifelessif we get one solid recipe19:29
lifelesswe should be set19:29
bigjoolsI have had an unpleasant day working all this out19:29
lifelessI bet19:29
lifelessSo, I think we need to do:19:30
lifelesslogging.basicConfig(stream=sys.stdout)19:30
lifelessbefore all the twisted application stuff kicks in - e.g. where setup_tacfile_logging happens is fine.19:31
lifelessthe fiddling with channels etc isn't needed19:31
bigjoolsok19:31
lifelesswe can pass level=X to that function too19:31
lifelesshttp://docs.python.org/library/logging.html#logging.basicConfig19:31
lifelessusing getLogger('poppy-sftp') should be fine19:32
bigjools*should* :)19:32
bigjoolsbut wasn't19:32
lifelessonce everything else is sorted I mean19:32
lifelesswe need to change the OOPSObserver setup19:32
lifelessits participating in the loop19:33
bigjoolsI am really worried this will screw over the  build manager19:33
lifelessdoes the build manager call setup_tacfile_logging ?19:33
bigjoolsno19:33
lifelesswe probably want what the builddmanager has19:34
lifelessto fix the separate bug that poppy log rotation is terrible19:34
bigjoolsit uses Rotatable...19:34
bigjoolsright19:34
lifelesswe had 50G of poppy logs or something19:34
lifelessit was taking a while to rsync after each rotation19:34
bigjoolsyeah it logs excessively anyway19:34
lifelessso yeah, the builddmanager could be affected19:35
lifelessbut, we have and end goal that makes sense for both19:35
lifelessapplication.addComponent(19:35
lifeless    RotatableFileLogObserver(options.get('logfile')), ignoreClass=1)19:35
lifelessthats what builddmanager does19:35
lifelessthat won't give OOPS integration19:36
lifelessit probably needs to be19:36
lifelessapplication.addComponent(OOPSObserver(oops_config, RotatableFileLogObserver(options.get('logfile')), ignoreClass=1))19:36
lifelessand may need a tweak to the OOPSObserver to pass down the rotation event. I don't know.19:36
bigjoolssimples :)19:36
lifelessthat + a logging.basicConfig(stream=stdout, level=X)19:37
bigjoolsRFLO installs its own signal handler19:37
lifelessshould give us everything we need19:37
bigjoolsok I am going to experiment now19:37
lifelessthis function: set_up_oops_reporting19:37
lifelessin loggingsupport.py19:38
lifelessis what creates the loop19:38
lifeless(because it turns stderr output into oopses19:38
lifelessand writes a msg on oops19:38
lifelessand joins twisted msg() output to python logging19:38
bigjoolswell I managed to stop the loop without changing that19:38
lifelesswhich is joined to stderr by default19:38
lifelesssure, you can break it at a number of points.19:38
bigjoolsand I've seen looping in poppy before your changes19:38
lifelesshere, one sec19:39
lifelesshttp://pastebin.com/LV3QtjT919:44
lifelessthis is a sketch19:44
lifelesswe have techdebt all around19:44
lifelesse.g. in the SSHServerService which self-configures oops reporting19:44
lifelessrather than letting it be configured for it19:44
lifelessyou may want to add a flag to stop calling the setup rather than changing what it calls, etc etc19:45
bigjoolslifeless: yes that will affect a few things19:47
lifelessyup19:48
bigjoolsthis, b-m and the branch server iirc19:48
lifelesswon't affect b-m19:48
lifelessAFAICT from daemons/buildd-manager.tac19:48
lifelessand manager.py19:49
lifelessit only grabs the rotatablefileobserver from loggingsupport19:49
bigjoolssorry not b-m19:49
lifelesswe *should* change the buildd-manager to get oopses from it, but we should get poppy and the bzr service sorted first.19:49
bigjoolswell this will fix the bzr server I hope19:50
bigjoolsunless ...19:50
lifelessright, once the code fallout is done :)19:50
lifelessbasically the SSHService can't do its own oops config, because its being used in cooperation with other services, but logging-glued-in oops configuration is global.19:51
lifelessso it has to be pulled out of there.19:51
lifelessit could have its own oops config object, for direct raising of soft reports.19:51
lifelessbut thats a totally different question.19:51
bigjoolsright, separate bug19:53
bigjoolsI shall fix this first19:53
lifelessyeah19:54
lifelessthis is contained to:19:54
lifeless - stop sshservice configuring logs or oops19:54
lifeless - delete all the accumulated cruft around that19:54
lifeless - return an observer with rotation which we can use anywhere19:54
lifeless - and setup python logging to just stdout19:54
lifeless-fin19:54
lifelessoh, and it looks like a trivial 'delete set_up_logging_for_script' - just doing a full grep to be sure19:56
lifelessaieee19:57
lifelesssupermirror-pull19:57
lifelessthat should be an easy fix - migrate across to the set_up_oops_reporting API and call t.python.log.startLoggingWithObserver(oops_observer))19:58
lifelessor move it to the end of the set_up_logging_for_script call19:59
lifelesseither will work AFIACT19:59
lifelessbigjools: you use 'longpoll' right as the tag?20:00
bigjoolslifeless: yes20:01
lifelessFYI https://bugs.launchpad.net/launchpad/+bug/90184420:01
bigjoolsprob need to make it official20:01
_mup_Bug #901844: unreliablesession service causing oops during after-request processing <fallout> <longpoll> <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/901844 >20:01
bigjoolslifeless: so in your patch you've removed startLoggingWithObserver20:05
lifelessright20:06
lifelesstwistd calls that itself20:06
lifelessif the application thing that the buildd-manager uses works, it should be enough20:06
bigjoolsyeah20:07
lifelessI haven't traced through to see whats happening20:07
bigjoolsI keep thinking that it won't but that's the txlongpoll stuff .... it's a TAP not a TAX20:07
bigjoolsTAC20:07
bigjoolslifeless: I like your optimism of expecting "options" to be available in the tac file :)20:12
lifelessbigjools: see buildd-manager.tac20:12
bigjoolsah different options20:13
james_wwould someone please review my branch? https://code.launchpad.net/~james-w/launchpad/binaries-created-since/+merge/8502220:16
james_wjcsackett, are you still on call?20:16
jcsackettjames_w: i am.20:17
jcsackettyou have something for me?20:17
james_whttps://code.launchpad.net/~james-w/launchpad/binaries-created-since/+merge/85022 if you would be so kind20:18
jcsacketti would be happy to.20:18
abentleyjcsackett: could you please review https://code.launchpad.net/~abentley/launchpad/batch-dealising/+merge/85023 ?20:18
jcsackettabentley: sure. it's next.20:21
abentleyjcsackett: tia20:22
bigjoolslifeless: what happens if set_up_oops_reporting is called twice?20:23
lifelessyou'll have two signal handlers installed ?20:24
lifelessseems like a bad idea20:24
flacostelifeless: fwiw, googlebot doesn't execute javascript20:30
flacostehttp://code.google.com/web/ajaxcrawling20:30
flacosteis the convention they suggest to make ajax site indexable20:30
bigjoolslifeless: just a theoretical question.  Anyway, your change has the same affect as my branch - nothing from the python log ends up in the twisted log20:30
flacostelifeless: and sorry for the out-of-context info :-)20:30
lifelessflacoste: interesting20:32
flacosteyeah, more server work20:33
flacostewhich is what we hoped to get rid of20:33
rick_h_deryck: I've pushed changes to the inline editor, appreciate your feedback on if it gets the look you were thinking of20:34
lifelessbigjools: hmm20:36
bigjoolslifeless: this is why I have no hair left today :)20:36
lifelessbigjools: so, I suggest you push this current experiment somewhere20:36
lifelessbigjools: I will dig while you sleep20:36
lifelessbigjools: and hand-back your fri morning.20:36
lifelessbigjools: its well past your EOD now :)20:36
jcsackettjames_w: is the interface addition of created_since_date to add a field on a form in the webapp? i don't see anything connecting it back, but i'm unfamiliar with the soyuz bits of the webapp and could see it just being automatically handled with that addition. just want to make sure that's the case.20:37
bigjoolslifeless: yes, I am 2 whiskies in to EOD20:37
james_wjcsackett, I want it for the webservice, I don't think there's really anywhere it would fit in the webapp either20:37
james_wjcsackett, I have an API client that needs the parameter to make it a billion times more efficient20:38
lifelessflacoste: whats the bug # for the linaro-cannot-upload-releases bug? I can't seem to find it again..20:38
jcsackettjames_w: ah.20:38
james_wlifeless, https://bugs.launchpad.net/launchpad/+bug/19455820:39
_mup_Bug #194558: Project file uploads time-out but don't OOPS <escalated> <linaro> <Launchpad itself:Triaged by gmb> < https://launchpad.net/bugs/194558 >20:39
lifelessjames_w: thank you!20:39
flacostewhat james_w says :-)20:39
lifelessbigjools: so yeah, pastebin or push to a branch, and make it my problem20:39
lifelessbigjools: I'll get the basics hanging together properly.20:40
bigjoolslifeless: http://pastebin.ubuntu.com/764210/20:40
bigjoolsI've actually been using it on a branch where I've added extra gpg debugging to poppy20:40
bigjoolsgood way to test the logging :)20:41
jcsackettjames_w: r=me.20:41
jcsackettabentley: looking at yours now.20:41
james_wjcsackett, merci20:41
james_wnow to see if I can actually land it20:41
lifelessbigjools: cool, I saw the MP for that branch20:41
lifelessbigjools: btw, I don't think we should log errors for these gpg failures if its a sigfail - thats a user problem (analgous to a 404). But lets worry about that *after* we sort out germanium20:42
bigjoolslifeless: right - this is purely for debugging since we have NFI why it fails20:44
bigjoolsthere's a "source" debug property that'll tell us where the error originated20:44
lifelessbigjools: ah, I don't mean your change, I mean the existing code20:44
bigjoolslifeless: the logging comes from the FTP handler in Twisted :/20:45
lifelesssomething, perhaps in twisted itself, is logging an isError20:45
lifelesswe'll want to add an oops filter to mask those from being oopses I think. eventually.20:45
bigjoolsthe writer handler just tells the parent class there was a failure and it does the rest20:45
lifelessyup20:51
lifelessflacoste: thanks for the link20:51
jcsackettabentley: just to make sure i'm reading this all right, the purpose of this branch is to avoid reloading stuff and just grab the data we've already got, right?20:53
abentleyjcsackett: right.20:54
jcsackettabentley: awesome.20:54
deryckrick_h_, sorry, missed the ping somehow.  looking now.20:54
jcsackettabentley: okay, given that my understanding is on the mark, this looks good to me. r=me.20:54
abentleyjcsackett: thanks.20:54
rick_h_deryck: cool, I'm off to run around, but feel free to leave any notes and I'll check it out in the morning20:57
deryckrick_h_, sounds good.  Have a nice evening.20:58
abentleyderyck: I'm having trouble reproducing 900398 locally.  I've set a bug to incomplete, and it still says "There are currently no open bugs."  Any tips?21:04
deryckabentley, ah, expire able.  yeah, you'll need to back date a bug and back date when it was marked incomplete, by poking at db or in console.21:06
abentleyderyck: How old does it need to be?21:07
deryckabentley, hmmm, that's a good question.  my impulse was >60 but not sure what the expireable view shows, since those should auto expire.21:09
* deryck looks at some things....21:09
abentleyderyck: that's why I find it confusing.  I thought all incomplete bugs were "expirable", and if they were >60 they'd be expired.  Well, invalid.21:09
wgrantabentley: Assigned bugs or those with multiple tasks don't expire, IIRC.21:10
abentleywgrant: Ah, that could be it.21:11
wgrantabentley: I believe there are other exceptions as well. They used to be documented, but I'm not sure if it's up to date.21:12
abentleywgrant: hmm.  I set https://bugs.launchpad.dev/ubuntu/+source/linux-source-2.6.15/+bug/10 to incomplete, and claims it will expire, but doesn't show in the list.21:14
_mup_Bug #10: It says "displaying matching bugs 1 to 8 of 8", but there is 9 <lp-bugs> <Launchpad itself:Invalid> < https://launchpad.net/bugs/10 >21:14
deryckabentley, also the project has to have expiry enabled for that view to work.21:14
deryckabentley, and I think expiry is off by default21:14
abentleyderyck: Yes, I made sure that was checked.21:14
deryckok, hmmm.  can't be a dupe, can't be assigned, can't be targeted to milestone21:15
* deryck is thinking of every criteria21:15
deryckabentley, ah.  and it is a config param for how old it needs to be.  config.malone.days_before_expiration21:16
deryckabentley, and as I read the method to get the list, the bugs have to be created than that value.21:17
derycks/created/greater/21:17
abentleyderyck: It's particularly weird, because lp says it will expire on the bug page, but doesn't list it in the listing.21:17
wgrantOh, so +expirablebugs or whatever it is only makes sense when expiry is disabled?21:17
wgrantBecause otherwise everything there should already have expired...21:17
deryckwell, expiring has to be enabled for that page to have any bugs.  but yeah, I agree it doesn't make sense why a bug has to be ready to expire before it shows on that page.21:18
wgrant"An Incomplete bug can remain in this list indefinitely, so long as the bug is regularly updated."21:19
abentleyI guess that would explain why it's a custom view, instead of searching on status=Incomplete.21:19
wgrantThat suggests it doesn't have the timeout.21:19
abentleywgrant: I think that means that updates reset the timeout.21:19
wgrantBut then it wouldn't be on the list.21:19
wgrantSo it wouldn't stay on the list indefinitely.21:19
abentleywgrant: Maybe the page doesn't know what it actually lists?21:20
deryckthe view uses findExpirableBugs which does: Bug.date_last_updated < CURRENT_TIMESTAMP AT TIME ZONE 'UTC' - interval '%s days'21:20
deryckwhere the config value is the %s21:20
lifelesshave we finished the migration to the new ENUM as well ?21:20
wgrantYeah, the docs seem wrong.21:20
wgrantThat makes the view pretty useless.21:21
deryckindeed21:21
abentleyderyck: do we want to fix this view or kill it?21:21
wgrantOh.21:21
deryckyou can only view them on that view when they're old enough to expire but before the script has actually run :)21:21
wgrantBut findExpirableBugTasks takes min_days_old as an argument.21:21
flacostewtf, i get this email back from PQM: http://pastebin.ubuntu.com/764259/21:21
flacostewhat is that supposed to mean21:22
wgrantflacoste: Check the attachment.21:22
wgrantflacoste: It will say the regex doesn't match.21:22
flacosteah!21:22
flacosteattachments!21:22
flacostethat must be new21:22
flacostewgrant: thanks!21:22
wgrantderyck: Perhaps we should change BugTaskExpirableListingView to show everything older than 0 days?21:22
deryckwgrant, yeah, I think so.21:23
deryckabentley, ^^.  Just fix it to show anything that could expire when the time comes.21:23
wgrantI guess for years it made sense to show only the stuff that was really expirable -- because they never actually expired.21:23
abentleyderyck: Okay.21:23
deryckThat's my understanding of what this view is meant to show.21:23
deryckwgrant, heh. yeah.21:23
abentleywgrant: older than 0 days == everything?21:23
flacostewhy are we still still in testfix mode?21:23
wgrantabentley: I think so.21:24
flacostesince both lp and db_lp are building happily?21:24
abentleyflacoste: because the last build attempt failed, and no one has landed a testfix.21:24
wgrantflacoste: I'm not sure. It may be because the last devel build blew up really impressively, and buildbot apparently lost its memory.21:24
wgrantabentley: That doesn't normally matter.21:24
flacosteright21:24
wgrantNormally as long as both are either successful or building, it's happy.21:24
flacosteyep21:24
wgrantBut buildbot-poller probably doesn't handle results that end in an exception, I guess.21:25
flacostebut the memory aspect might confuse buildbot-poller :-/21:25
flacosteor something like that21:25
wgrantabentley, deryck: Hah21:25
abentleywgrant: I could have sworn I saw that behaviour yesterday when I forced a build.21:25
wgrantThat's a recent change.21:25
wgrant11057.8.221:25
wgrant  modify can_expire to use the days_before_expiration config option21:25
wgrant     expirable_bugtasks = list(bugtaskset.findExpirableBugTasks(21:25
wgrant-        0, getUtility(ILaunchpadCelebrities).janitor))21:25
wgrant+        config.malone.days_before_expiration, getUtility(ILaunchpadCelebrities).janitor))21:25
deryckah interesting.21:26
abentleywgrant: thanks.21:26
deryckThat's a bdmurray change.  I'm sure he and I talked about it, but don't recall now why we did that.21:27
wgrant  [r=leonardr][ui=none][bug=595124] unexport IBug.can_expire which is21:27
wgrant        confusing instead create and export IBug.isExpirable which can21:27
wgrant        accept a custom number of days.21:27
abentleyIt was proposed here: https://code.launchpad.net/~brian-murray/launchpad/595124/+merge/2854321:27
wgrantIs the landing message.21:27
wgrantHow odd.21:27
wgrantIt seems unrelated.21:27
lifelessui=none is rather stale21:27
deryckheh, I even discussed this and approved then.21:28
deryckwell, I unapprove my approval. ;)21:28
wgrantderyck: It made sense back then :)21:28
wgrantIt was still switched off.21:28
abentleyderyck: lol21:28
wgrantSo it was useful for expirable-bugs to show what *would* happen.21:28
deryckyeah, and as it is now, we'll never actually see them.21:29
deryckunless the expiry script barfs. ;)21:30
wgrantYep.21:30
wgrantrevert revert revert21:30
wgrantbaaaah21:33
wgrant**********************************************************************21:33
wgrantCan't use pdb.set_trace when running a layer as a subprocess!21:33
wgrant**********************************************************************21:33
wgrantHow nice.21:33
wgrantAh, OK, lp-buildd problem is clear now.21:35
* wgrant fixes.21:35
* wgrant was wrong to blame poolie :(21:35
abentleyderyck, wgrant: thanks.  Can now reproduce the issue.21:36
nigelbwgrant: winpdb might help.21:37
nigelbstatik showed me that trick. It helped when I was debugging LP :)21:37
poolieglad it wasn't me21:38
pooliewgrant, what was it?21:38
wgrantpoolie: We added a new config option last week.21:38
wgrantpoolie: It's mandatory.21:38
wgrantpoolie: The config file is installed by python-lpbuildd, but the migrator is in launchpad-buildd.21:38
wgrantSo upgrading python-lpbuildd doesn't upgrade the config file.21:38
poolieah21:39
pooliekind of my fault for not separating them better perhaps21:39
wgrantMeh.21:39
pooliei don't know if making it mandatory but added by upgrading makes sense, but i don't know the specific21:40
wgrantI guess I'll move it, alter the migrator to also migrate for 111 if the option isn't in the file, and release a new one.21:40
wgrantpoolie: It's how all the path configuration is done, unfortunately.21:40
wgrantIt's all pretty ancient and bad.21:40
lifelesspoolie: http://lists.linaro.org/pipermail/linaro-dev/2011-December/009059.html suggests a place where git hosting would be valuable to LP users21:44
poolie yep21:45
lifelessabentley: whats the expiry policy on your ajax batch cache ?21:46
abentleylifeless: None.21:46
pooliei think the clearest case for it is as a replacement for git.kernel.c.c. and git.l.c21:46
lifelessabentley: so users have to refresh the page to see new results?21:46
abentleylifeless: right.21:46
lifelessabentley: you might like to have a bug noting this - one of the things we're trying to do long term is make LP more responsive, and having to refresh will conflict with that21:47
abentleylifeless: the irony is, of course, that not loading is a great way of making Launchpad more responsive.21:48
lifelessabentley: well, its a way. I don't think it gets used much at all - e.g. see poolies data that users use 'next' very rarely.21:49
abentleylifeless: For users that don't use the cache, its expiry policy doesn't matter :-)21:50
lifelessagreed21:50
lifelessjust noting that this is a side effect of the cache - part of the expected overhead of having a cache21:51
lifelessIt is a significant difference to the non-ajax behaviour where next/prev give live data.21:51
abentleylifeless: So if they're not using the cache, then it neither makes launchpad more responsive nor forces them to reload.21:52
lifelessIt would be nice to have the user subscribe to the bugs visible in the batch, so they can be removed from the batch live21:52
lifelessabentley: thats true. But we know some users do use the cache. And we haven't drilled into where that usage is distributed21:53
lifelessI forget what the percentage was21:53
lifelesscall it N. It may be that N% of users use next/prev all the time.21:53
abentleylifeless: Yes, I'd love to see that data by user rather than by hit.21:53
abentleyAnyhow, I will be happy to contribute to the effort to make pages update live.21:55
wgrantpoolie: Ah, actually, the config file I had was crufty. python-lpbuildd doesn't use the system config file at all. But there's a test-specific config file in the tree which wasn't updated.21:57
lifelessabentley: I think for now a bug noting that this is the situation is appropriate (because its not obvious to users that this will be happening)22:06
lifelessabentley: I can file it if you like22:06
abentleylifeless: There's no spinner when retrieving from cache, so it should be obvious, but feel free.22:06
lifelessabentley: folk in europe working with small batches probably won't register the spinner anyhow :)22:07
=== jcsackett changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugtasks: 3*10^2
lifelessabentley: bug 90189222:11
_mup_Bug #901892: bug search cache makes next/prev return old data <bug-columns> <Launchpad itself:Triaged> < https://launchpad.net/bugs/901892 >22:11
lifelessderyck: ^ FYI too22:11
lifelessabentley: its a little entertaining to me that 7 years on we're still talking about cache implementations22:11
lifeless:)22:11
deryckack, thanks22:12
derycklater on, everyone.22:14
flacosteneed to run for the rest of the evening22:17
flacostecu later22:17
lifelessciao22:19
mtaylorlifeless: so - I set up launchpad translations a while back for nova, and they seem to be working, even though nova doesn't have a .pot file in the repo (since it generates one through distutils-extra)22:35
mtaylorlifeless:  I was starting to try to set up the same thing for glance, but I'm not sure I did it right - who should I bug with questions?22:36
lifelessmtaylor: if there is a CHR listed in #launchpad, start there22:37
lifelessmtaylor: failing that, just ask there - there are folk around22:37
mtaylorok. cool. thanks22:37
lifelessmtaylor: failing that, open a ticket at l.n/launchpad22:38

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