/srv/irclogs.ubuntu.com/2010/11/02/#launchpad-dev.txt

lifelesswgrant: https://bugs.edge.launchpad.net/soyuz/+bug/66971700:18
_mup_Bug #669717: archive:+index timeout <dba> <timeout> <Soyuz:Triaged> <https://launchpad.net/bugs/669717>00:18
lifelesswgrant: just to keep you on your toes ;)00:18
lifelessholy f*ck:     5156  OOPS-1765XMLP299  MailingListApplication:MailingListAPIView00:27
lifelessthats a query count00:27
thumperlifeless: yeah00:27
thumperlifeless: I think that is the one I fixed00:28
* thumper is a sad bunny00:28
thumperit seems that the storm insert query has non-deterministic column ordering00:28
lifelesss/insert //00:28
thumperso two subsequent test runs with LP_DEBUG_SQL_EXTRA clash all the time00:28
thumperlifeless: do you know a fix?00:29
lifelessdo you mean column or row ?00:29
lifelessalso, ECONTEXT00:29
lifelessthumper: https://bugs.edge.launchpad.net/launchpad-registry/+bug/666580 - I've put the pageid in there - it helps me a lot.00:30
_mup_Bug #666580: MailingListApplication:MailingListAPIView (getMessageDispositions ) mailing list xmlrpc api call makes excessive queries <mailing-lists> <qa-ok> <timeout> <Launchpad Registry:Fix Committed by thumper> <https://launchpad.net/bugs/666580>00:30
wgrantlifeless: %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s to you too.00:32
wgrantBut wow.00:32
lifelessthumper: did you mail matt?00:33
marslifeless, for shortening the release timeline, I was wondering if we could lock monday, QA tuesday, unlock wednesday, assuming staging updated ok.  Timeline goes from one week to three days.00:40
marsif people finish their QA on Friday, then you can lock and unlock on monday00:42
lifelessmars: I think there is not enough slack00:42
lifelessmars: the critical issue is 'what if the db conversion is a problem' - it takes many hours to do a respin of that test00:42
marsyeah, but if it went OK, and the QA is up-to-date, then you are looking at a much shorter release00:43
mars"if the stars are all aligned just so" - thankfully there are only three to worry about :)00:44
lifelessright00:44
lifelessbut we plan for how to handle failure00:44
lifelessnot how to handle success ;)00:44
lifelessmars: I think we still need to start friday00:44
lifelessbut we could certainly unlock earlier00:44
lifelessmars: I thought my proposal permitted that00:44
marsabsolutely, it does00:45
wgrantlifeless: Can't you just freeze db-devel on Friday?00:45
marswith that extra detail, "Must start Friday, can unlock ASAP", then you can rewrite the release docs00:45
wgrantlifeless: devel doesn't have to be frozen to do DB restore testing.00:45
lifelesswgrant: we don't need to freeze db-devel at all00:45
lifelesswgrant: its not db restore testing00:46
lifelesswgrant: its upgrade-script application00:46
wgrantThat's what I meant, sorry.00:46
lifelesswgrant: which we can start doing on qastaging00:46
lifeless(and should)00:46
wgrantHmm.00:46
wgrantWhat's the point?00:46
lifelessconvergence00:46
marssimplicity00:47
lifelessponies!00:47
marsI would say 'speed', but ponies, well...00:47
lifelesswgrant: qastaging is sitting there without any db patches, so we don't need to do a complete restore to test the upgrade00:47
lifelesswgrant: which is /much/ faster00:47
wgrantlifeless: True.00:47
lifelesswgrant: and it updates its code every 30 minutes00:48
wgrantBut this still means we have a week where production doesn't update.00:48
lifelessso if we have to fine tune the release, we can do so more rapidly.00:48
lifelesswgrant: perhaps we should change buildbot to only merge QA-ok revisions from stable to db-devel.00:48
lifelesswgrant: the week with prod not updating saddens me, but not as much as a month without updates00:49
wgrantRight, but it doesn't mean we shouldn't try to think of a way to minimise that interval.00:50
lifelessagreed00:50
wgrantParticularly now that there are no CPs.00:50
wgrantI don't see a huge benefit in doing the DB upgrade testing on qastaging rather than staging. And doing it on qastaging means we have to make devel undeployable several days earlier than it would be otherwise.00:51
lifelessmmm00:55
lifelesswgrant: I disagree00:55
wgrantOh?00:56
lifelesswgrant: friday avo, sat, sun are all undeployable anyway00:56
wgrantTrue.00:57
lifelessI think if we get 3 clean deploys in a row without needing the extra time, we could move it up to monday.00:58
thumperlifeless: yes I emailed matt00:58
lifelessalso if we have a completely clean development-dbstable report leading up to the report00:58
wgrantI guess that's a good idea.00:59
StevenKwgrant: You still have misgivings?01:03
lifelessStevenK: I think he's looking for a larger win01:04
lifelesswhich is good01:04
wgrantStevenK: I'd like there to be as little freeze of landings and production deployments as possible. So I will have misgivings forever, unless we reduce both to zero :)01:06
wgrantBut this is better than what we have now, so it'll do.01:08
thumperlifeless: I've got a problem with feature flags01:09
thumperlifeless: it is breaking tests01:09
thumperlifeless: and I think I know why01:09
lifelessok01:10
lifeless'sup?01:10
thumperlifeless: there is code that checks the timeout values and uses a feature flag01:10
thumperthis causes a query, and prior to that a flush01:10
thumperwhich can cause partially constructed object to be written to the db01:10
lifelesssay what?01:10
thumpercausing integrity constraint violations01:10
lifelessthat check is done before any domain code01:11
lifelessits in publication01:11
thumper File "/home/tim/src/launchpad/incremental-diff-job/lib/lp/services/features/rulesource.py", line 90, in getAllRulesAsTuples01:11
thumper    .find(FeatureFlag)01:11
thumper  File "/home/tim/src/launchpad/devel/eggs/storm-0.18-py2.6-linux-x86_64.egg/storm/store.py", line 210, in find01:11
thumper    self.flush()01:11
thumperthose are the bits causing test explosions01:11
thumperperhaps for general publication01:11
thumperbut not for tests01:11
lifelessso, there are several things we could do01:12
lifelessfirstly, outside of a publication stack or similar context, timeouts are meaningless01:12
lifelessso we could remove that01:12
lifelesssecondly, the feature values are cached (including absence)01:12
lifelessso evaluating it (e.g. by get_request_timeout()) will cache that outside your code01:13
thumperhow does that interact with the feature flag context manager for tests?01:14
lifelessthirdly test requests have a Null scope provider - they could sensible /also/ install a Null rules provider01:14
lifelesswhich wouldn't call into the db01:14
thumperI don't grok that last oen01:14
thumperone01:14
lifelesssee LaunchpadTestRequest.__init__01:14
thumperlifeless: it has a NullFeatureController01:17
lifelessthumper: ok01:18
lifelessthumper: so in requests using LTR, no db access should happen at all.01:18
thumperbut it is01:18
lifelessthumper: are you using maris' context manager?01:18
thumperthe code I'm looking at is yes01:18
thumper        self.useContext(feature_flags())01:18
thumper        set_feature_flag(...)01:18
thumperalthough ...01:19
thumperit is the set_feature_flag code that triggers the flush and the bomb...01:20
* thumper is now confused01:20
thumperbecause the diff should be fully constructed there...01:20
lifelesshmm, that would be nicer as a Fixture I think.01:22
lifelesssomething for another time.01:22
* thumper relocates01:30
MTecknologyI'm gonna miss edge01:46
lifelesswhy?01:46
MTecknologylifeless: the thing about recipes that I spammed in the other channel01:47
* thumper is very confused02:31
thumper        self.useContext(feature_flags())02:31
thumper        set_feature_flag(u'code.incremental_diffs.enabled', u'enabled')02:31
thumper        self.assertTrue(getFeatureFlag('code.incremental_diffs.enabled'))02:31
thumperfails02:31
thumperin a test02:31
thumperbut only if run after a different test02:31
MTecknologythumper: probably has something to do with that "self." thing you have going on. Anytimg I rely on myself for something I crash.02:33
StevenKOh dear02:33
thumperMTecknology: :-)02:33
lifelessso this may be related to the cross-test thing gmb/deryck mentioned02:33
thumperlifeless: almost certainly02:33
wallyworld_lifeless: email to devel is on my todo list - i just wanted to get the mp set up first02:42
lifelesswallyworld_: sure02:43
lifelesswallyworld_: Belts and braces ;)02:43
wallyworld_lifeless: save me looking it up, what's the losa mail list? i didn't know there was one02:44
thumperlifeless: I'm pretty sure it is a cache invalidation problem :)02:44
lifelessthumper: at what layer? we shouldn't have the same featurecontroller reference should we?02:44
lifelessthumper: I'd guess at the request<->thread-local lifetimes being different.02:45
lifelessthumper: perhaps a function to ensure when one is altered, the other is too02:45
* thumper is poking some more02:47
wallyworld_lifeless: don't worry, found it02:49
lifelesswallyworld_: oh sorry, yes.02:50
wallyworld_lifeless: np. i was just letting you know. it wasn't mean to be snarky :-)02:50
lifelessI know :)02:50
lifelessman02:51
lifelessI hope noone is pissed about all these bug closes :)02:51
MTecknologylifeless: closed as in fixed- or closed as in won't fix?02:52
lifelessboth02:52
thumperheh02:57
thumperset_feature_flag has a store.flush02:57
thumperno...02:58
thumperset_feature_flag adds a feature to the db02:58
thumperwhen the feature is being flushed02:58
thumperit is doing a db query02:58
thumperwhich queries the feature flags02:58
thumperwhich sets the _rules cache02:58
thumperwhich means the newly set feature isn't in the cache02:58
rockstarthumper, yeah, deryck and I fought with that last week.02:59
rockstarIt caused much head scratching.02:59
thumperI'm not yet sure why sometimes it hits this and other times it doesn't02:59
* thumper thinks it is a flush ordering problem03:00
thumperI think it is easily solved though03:00
StevenKtransaction.commit() ?03:00
lifelessno03:00
StevenKthumper: No fair sending wallyworld_ my way with a 1,500 line MP03:01
StevenKI know where you live ...03:01
thumperStevenK: I didn't know it was that big03:01
thumpersorry03:01
wallyworld_StevenK: sorry :-( most of it is unit tests :-)03:01
wallyworld_thumper: looks like devel is still in test fix mode? my pqm-submit was rejected again for that reason03:02
StevenKwallyworld_: I'm working through it, but the current way to get MPs > 800 lines reviewed is to 1. Not, or 2. Bribe a reviewer03:02
StevenKwallyworld_: Consult Ye Olde Buildbot03:02
StevenKWe shouldn't be03:03
wallyworld_StevenK: what can thumper offer you by way of inducement? :-)03:03
StevenKIt isn't thumper's MP ... *cough* *hint*03:03
thumperlifeless: http://pastebin.ubuntu.com/524222/03:03
wallyworld_StevenK: yeah, but he was the one who *made* me throw you the hospital pass :-)03:04
lifelessthumper: does that work for you?03:04
StevenKIt's all about choice03:04
wallyworld_said it would be good for your soul :-)03:04
thumperlifeless: yep03:04
lifelessthumper: something smells here03:05
lifelessthumper: I think features.per_thread.features is stale perhaps ?03:05
lifelessthumper: if so, thats critical to fix.03:05
thumperlifeless: yes... in that the features has cached the rules before we add one03:05
StevenKwallyworld_: If thumper said that with a straight face, then I take the comment about his poker face back03:05
lifelessthumper: if its cached the rules from another test, or even another *request*, then there is an isolation bug that this qualifies as a workaround for.03:06
wallyworld_StevenK: i can offer you paul's eternal gratitutde as he *really* wants to get merge queues done before he takes his sabatical from the code team03:06
thumperlifeless: more of a problem with tests than real life03:06
thumperlifeless: let me plug in headphones03:06
StevenKwallyworld_: I thought I already had that03:06
thumperlifeless: then skype may help here03:06
lifelessok03:06
wallyworld_StevenK: hmmm. i'm running out of possible bribes.03:07
StevenKwallyworld_: Hah, serves you right :-P03:13
lifelessthumper: so - two lines03:16
lifelessda.set_permit_timeout_from_features(False)03:16
lifeless...03:16
lifelessda.set_permit_timeout_from_features(True)03:17
lifelesswebapp/testing/helpers.py03:23
thumperlifeless: http://pastebin.ubuntu.com/524230/03:23
lifelessAdapterIsolator = FunctionFixture(set_request_started, lambda x:clear_request_started())03:23
lifelessin setUp03:23
thumperhttp://pastebin.ubuntu.com/524231/03:23
lifelessself.useFixture(AdapterIsolator)03:23
lifeless--- lib/lp/testing/__init__.py  2010-10-26 15:47:24 +000003:26
lifeless+++ lib/lp/testing/__init__.py  2010-11-02 03:26:01 +000003:26
lifeless@@ -495,6 +495,9 @@03:26
lifeless         self.oopses = []03:26
lifeless         self.useFixture(ZopeEventHandlerFixture(self._recordOops))03:26
lifeless         self.addCleanup(self.attachOopses)03:26
lifeless+        from canonical.launchpad.webapp import adapter03:26
lifeless+        self.useFixture(fixtures.FunctionFixture(adapter.set_request_started,03:26
lifeless+            lambda _:clear_request_started())03:26
lifelessthumper: set_permit_timeout_from_features(False)03:31
lifelessthats all03:31
lifeless11:33 < lifeless> https://dev.launchpad.net/PolicyAndProcess/OptionalReviews03:35
lifeless11:33 < lifeless> Activities03:35
lifeless11:33 < lifeless> Submit the branch to create an MP (our toolchains can look at this and it provides a location for a post landing review if the branch has that done to it). Self review with review type 'unreviewed'. Land via the normal03:35
lifeless                  landing process.03:35
thumperhttps://code.launchpad.net/~thumper/launchpad/fix-features/+merge/3981903:42
=== mwhudson_ is now known as mwhudson
thumperlifeless: bzr lp-land checks to make sure you don't review your own code :)04:00
thumperlifeless: do we land it rs=?04:01
lifelessthumper: change lp-land ?04:01
thumpermaybe it asked a slave04:01
* thumper checks04:01
StevenKlp-land doesn't deal with rs=04:02
StevenKOr MP-less lands04:02
thumperthe code seems to indicate it should be fine :(04:07
thumperbut something weird is happening04:08
thumperme gives up and pqm-submits04:09
lifelessthumper: please file a bug on foundations04:12
thumperlifeless: on the thread local leaking?04:12
lifelesson lp-land not accepting your MP04:12
lifelessthumper: I bet its the review type though04:12
lifelessthumper: try changing the type to nothing/code04:12
thumperah04:12
thumperyeah, you are right04:12
thumperwhich is fucked04:13
* thumper leaves to cook04:13
StevenKAt 5pm?04:18
thumperStevenK: I have kids04:18
lifelessStevenK: hey04:23
lifelessyou know soyuz stuff04:23
lifelesshelp: https://devpad.canonical.com/~lpqateam/qa_reports/deployment-stable.html04:23
StevenKI will look after shopping04:25
thumperheh04:31
lifelessthanks04:32
LPCIBotProject devel build (173): STILL FAILING in 3 hr 52 min: https://hudson.wedontsleep.org/job/devel/173/04:33
lifelesswow Archive:EntryResource:getBuildSummariesForSourceIds is slow04:39
lifelessstill timing out at 20 seconds04:39
lifeless1/2 sec per SELECT * FROM ((SELECT BinaryPackageBuild.distro_arch_series, BinaryPackageBuild.id, BinaryPackageBuild.package_build,04:40
wgrantlifeless: Do we have graphs of page performance vs time?04:47
wgrantlifeless: ie. do we know if it's a pg 8.4 regression, or a BFJ refactor regression, or is it just generally crap?04:47
lifelessits crap now04:47
lifelessthe api wasn't timing out before, so  8.4 regression04:48
lifelessI think04:48
lifelessno we don't have charts per-query04:48
lifelesswgrant: yeah - https://bugs.edge.launchpad.net/soyuz/+bug/66252304:49
_mup_Bug #662523: Archive:EntryResource:getBuildSummariesForSourceIds times out <timeout> <Soyuz:Triaged> <https://launchpad.net/bugs/662523>04:49
=== almaisan-away is now known as al-maisan
jtvHi henninge07:18
henningeHey jtv! ;)07:19
henningeFeeling better?07:19
jtvGrr why don't we have checksums on the Ubuntu iso download page?07:38
thumperinteresting failure on launchpad prod branch in buildbot - http://pastebin.ubuntu.com/524300/07:39
wgrantjtv: I suspect that you don't want to know.07:39
wgrant(the design team probably said they were user-hostile, or something)07:39
wgrantBut they're easy enough to find on the mirrors.07:40
lifelessnight all07:40
wgrantNight lifeless.07:40
jtvwgrant: well I do want to bloody know.  I now have supposedly identical ISOs with different checksums and it should be easy to figure out which, if any, is right.07:40
jtvNight lifeless07:40
wgrantjtv: http://releases.ubuntu.com/10.10/MD5SUMS07:40
jtvThanks07:40
wgrantNice security.py speedup, btw.07:41
wgrantIt's, er, quite effective.07:41
jtvThanks.07:41
jtvI didn't bother with the remaining largest time waster inside the script, since it only took 4 seconds.07:41
jtvScript startup however does seem to take quite a while.07:41
wgrantMost of the remaining 'make schema' time seems to come from build.07:42
jtvSo that's our next target.07:43
StevenKThe WADL isn't very fast either07:44
wgrantThen lifeless can delete ZCML.07:44
wgrantAnd we can build a tree in seconds!07:44
wgrantStevenK: That's in build.07:44
wgrantcompile has slow buildout.07:44
wgrantbuild has compile and WADL.07:44
StevenKwgrant: I spent the trip from ORD to LAX exporting blueprints, I got to know very well how long it takes to generate.07:45
wgrantStevenK: I tried to profile the WADL generator.07:45
wgrantBut it took too long.07:45
StevenKHaha07:45
* StevenK attempts to come up with a clean joke, fails07:45
StevenKHmm. Apparently a horse race happened today07:47
wgrantI've been deliberately avoiding finding out who won.07:48
StevenKI didn't even realise until Sarah loaded smh.com.au while I was walking past07:49
wgrantHah.07:51
wgrantIt's hard not to realise down here; it's a public holiday.07:51
StevenKYeah, I knew that07:52
wgrantWhy a sporting event gets a public holiday I will never know.07:53
jpdsIs it the cricket?07:54
wgrantLess boring than that.07:55
StevenKPaint drying?07:55
wgrantIndeed.07:56
nigelbSomething less boring than cricket? Interesting.07:57
jtvI wouldn't go _that_ far…07:59
wgrantjtv: Do you suggest that something is more boring than cricket?08:00
LPCIBotProject devel build (174): STILL FAILING in 3 hr 27 min: https://hudson.wedontsleep.org/job/devel/174/08:00
LPCIBotLaunchpad Patch Queue Manager: [r=jtv][ui=none][bug=667554] Don't send email for work in progress08:00
LPCIBotmerge proposals when requesting reviews or modifying the proposal.08:00
jtvwgrant: read what nigelb said more closely!08:01
wgrantAh ha..08:01
jtvMy dad was dragged into a cricket match once.  Didn't even find it boring, to his surprise.08:01
jtvA decade later he happened to open a cricket mag (at the dentist's or something) and guess what?  They were still talking about that famous exciting match.08:01
nigelblol08:02
nigelbjtv: heh, you caught that :D08:02
jtvnigelb: red-handed08:02
nigelbheh08:02
nigelbI watched IPL to any extent only for one season.  Lost interest.08:03
jtvIPL = Initial Program Load?  Still talking about profiling?08:03
nigelbNo, was talking about criket :)08:03
jtvWhat's IPL stand for?08:04
nigelbIndian Premier League.  The 'big thing' in 20-20.  meh.08:04
jtvnigelb: thank you for TLA #2366208:04
_mup_Bug #23662: [network-admin] 'connection settings' should not be greyed out when not active (in network settings) <network-admin> <gnome-system-tools (Ubuntu):Invalid by desktop-bugs> <https://launchpad.net/bugs/23662>08:04
jtvNo mup, not that.08:05
jtvhttp://xs4all.nl/~jtv/gtf/08:05
nigelbjtv: lol08:05
jtvnigelb: you can now carry the GTF Contributor Program (GCP) logo on your website or home page.08:05
nigelb\o/08:06
nigelbWell, this day did bring one achievement.08:06
jtvQuite.08:06
StevenKjtv: steven@liquified:~$ host hugeurl.wiggy.net08:06
StevenKHost hugeurl.wiggy.net not found: 3(NXDOMAIN)08:06
StevenK:-(08:06
nigelbliquified, no wonder.08:07
jtvI guess wichert must have shut it down.  It was about a decade ago.08:07
jtvThe idea was that tinyurl etc. are nice, but small URLs don't look impressive.08:07
jtvSo he created a URL stretcher.08:07
StevenKIndeed08:07
StevenKYes, and Wichert is the kind of guy to do it. :-)08:07
jtvOne of the encoding schemes available was: look for three-letter combinations that are in the GTF, and expand them.08:07
jtvHaven't seen him in ages.  You?08:08
StevenKNeither08:08
jtv:(08:08
StevenKNot for 5 years or so08:08
jtvOne wonders how he is.08:08
StevenKHe fell into the black hole that previous DPLs get sucked into08:09
jtvDoes that apply to former colleagues and university friends?08:09
StevenKjtv: Ah, you were at XS with him?08:09
jtvNo, cistron08:10
jtvAnd the first FOSDEM—then still called OSDEM.08:10
jtvI arrived late, having escaped from a lady's bedroom window that morning in a different country.08:10
StevenKNow there's something that sounds like an interesting story08:11
jtvI think it was our mutual friend Ray who started the vicious and baseless rumour that I had escaped from a lady's bathroom window.08:11
jtvIf you ever hear that version, don't believe it!08:11
StevenKPerhaps it was her ensuite window08:11
jtvHer wha?08:12
StevenKAn ensuite is a small bathroom directly accessible from a bedroom08:12
jtvAh.08:12
jtvNo, it was definitely bedroom.08:12
jtvBut thanks for teaching me that word.08:15
StevenKHeh08:16
nigelbjtv: Wait, do we get to hear more of that exploit?08:18
jtvnigelb: what do _you_ think?08:18
wgrantWe must.08:18
nigelbWe demand.08:19
jtvGet me drunk and we'll talk.08:19
nigelbdammit, if I had the money, I'd fly to Australia just to get you drunk ;)08:19
jtvIf you don't have the money to fly to Australia, what makes you think you have the money to get me drunk?08:19
nigelbGood point.08:20
nigelbI was planning on getting you drunk enough for you to hand me you purse and hards :p08:20
jtvMy secret is safe for now.08:20
nigelbGood plan? ;D08:20
wgrantUntil January.08:20
nigelbWhat's in Jan? Epic?08:20
wgrantJa.08:20
nigelbToo bad its a closed event :(08:21
jtvFace it.  You're not looking for an open event.  You're looking for an open bar.08:21
jtv(See "money" above)08:21
nigelbheh08:22
nigelbTrue, that.08:22
nigelbjtv: Love your homepage. "Nor do I speak for my employer; he is quite old enough to speak for himself."08:24
jtvThat's served me well for a fair number of employers.  :)08:25
jpdsWhat if they're a she?08:26
jtvAs now, I suppose, they are.08:27
jtvI didn't know about that particular bit of the English language at the time of writing.  Will rectify.08:27
adeuringgood morning08:42
henningeEverybody: land you branches! Testfix coming up again ... :-(09:13
StevenKI've been seeing the same failures in Hudson09:14
mrevellHello09:16
deryckMorning, all.11:03
LPCIBotYippie, build fixed!11:06
LPCIBotProject db-devel build (111): FIXED in 3 hr 55 min: https://hudson.wedontsleep.org/job/db-devel/111/11:06
deryckgmb, hi.  Did you see thumper's email about test isolation failure and his fix to set_feature_flag?11:13
gmbderyck: Yes; I've already merged my branch but I'll try splitting the tests up again and see if it works now.11:14
deryckgmb, ok, cool.  I expect that will fix the problem we were seeing, too.  If using the testing helpers.  mars fixture would need to flush too.11:14
gmbRight.11:14
* deryck feels like getting on to the kids.... "you need to flush every time!"11:15
LPCIBotProject devel build (175): STILL FAILING in 3 hr 31 min: https://hudson.wedontsleep.org/job/devel/175/11:32
LPCIBot* Launchpad Patch Queue Manager: [r=bac][ui=none][bug=586461, 634326,11:32
LPCIBot634646] Stop generating invalid memcache keys and allow more cache11:32
LPCIBotsharing.11:32
LPCIBot* Launchpad Patch Queue Manager: [r=adeuring][ui=none][bug=668194] Fix IHasTranslationImports in the11:32
LPCIBotAPI.11:32
LPCIBot* Launchpad Patch Queue Manager: [r=adeuring][ui=none][bug=668194] Split off some interfaces stuff11:32
LPCIBotinto separate files.11:32
LPCIBot* Launchpad Patch Queue Manager: [r=thumper][ui=none][no-qa] Move specification enums into11:32
LPCIBotlp.blueprints.enums.11:32
gmbHurrah for ambiguous messages from bots.11:39
cjohnstonderyck: bug 483027 seems to be working now.. I was able to subscribe someone else and myself11:48
_mup_Bug #483027: Display problem when adding subscribers to a bug report <Launchpad Bugs:Triaged> <https://launchpad.net/bugs/483027>11:48
deryckcjohnston, awesome.  Thanks for the confirmation.11:48
cjohnstonnp11:48
* gmb just self-reviewed a branch, feels naughty.11:50
cjohnstongotta do what you gotta do sometimes11:50
jmlmrevell: hello12:41
mrevellhello juml12:41
mrevelloh, jml12:41
jmlmrevell: :)12:41
mrevell:)12:42
jmlmrevell: some guy at UDS came up to me and said, "How do you think of all those clever gadgets?"12:42
mrevellSeriously? Excellent :)12:42
jmlyeah :)12:42
jmlmrevell: anyway, I was wondering if I could do anything to help with the user testing process discussion?12:43
mrevelljml, Do you have time for a call this afternoon?12:43
jmlmrevell: yeah, I could have a call either after or before the standup12:44
mrevelljml, After would be great. Thanks. I think we got pretty close to a general rule: if you need a LEP, you are likely to benefit from user testing.12:44
deryckallenap, hi.  On my review yesterday, you suggested I use inTeam, but I don't follow why, since bug.owner can never be a team?13:16
allenapderyck: It was a general comment that it's not always safe to just compare IDs, and inTeam() does the right thing. (I assume bug.owner is the reporter, not the assignee; if the latter then it can be a team.)13:18
deryckallenap, right, it's the reporter.  So I'd prefer to keep it on ID, even if inTeam covers that case, just so it's clear.  Cool?13:21
allenapderyck: Okay.13:21
deryckallenap, ok, thanks.13:22
allenapderyck: I didn't mean - I rarely mean - for my review comments to be prescriptive.13:23
deryckallenap, oh, I didn't take it that way.  Just wanted to chat more to make sure I wasn't misunderstanding you. :)13:23
jmlI have a soyuz question13:50
jmlI'd like to open up "o" and "p" series for Ubuntu. I'm told that this ought to work, but everyone I've asked has sounded unsure13:51
jmla) how could we test that this works? or13:51
jmlb) if we go ahead and do it, are we capable of easily undoing the mistake?13:51
jelmerjml: I also think that it *should* work. You just want to have them in the database I assume, not allow uploads yet?13:53
jmljelmer: exactly13:53
jelmerjml: We should be able to test it on dogfood or staging I guess. It might be nice to check with bigjools or Colin that there isn't anything I'm overseeing, I haven't been involved in adding distroseries before so there might be some subtle bug I'm not aware of.13:55
jmljelmer: bigjools has said much the same: "it should work, let's test on dogfood"13:55
jmljelmer: and cjwatson, iirc, didn't have any reservations13:56
jelmerjml: Ah, great. Just checking. :-)13:56
jmljelmer: could you please test that on dogfood?13:56
jelmerjml: Sure.13:58
jmljelmer: thanks. it might be a good idea to also get someone platformish to try to break it. maybe cjwatson?13:59
allenapderyck: I just realised that the bug importer could create a new bug with a team as owner.14:00
deryckallenap, ah, good catch.  I'll add a test then with team ownership and fix up the code.14:00
allenapderyck: The team would need to already exist in Launchpad and have an email address corresponding to an email address in the bug import XML.14:01
jelmerjml: I'll check with him once I've got it set up.14:01
jmljelmer: sweet. thanks.14:01
allenapSo, if I have a branch that I don't think needs review, how do I indicate that?14:02
allenapDo I just approve the mp myself and land it?14:03
jmlallenap: that seems sensible14:04
allenapjml: Okay, thanks :)14:04
jmlwhich makes me think of a thing14:04
jelmerjml: btw, this would require knowing the distroseries codenames beforehand. would that possible?14:04
jmljelmer: does it really? can we not rename them later?14:04
deryckallenap, jml -- I thought there was something about [r=unreviewed] to track these.14:04
derycknot sure our tools support that yet, obviously.14:05
jmlderyck: :914:05
jml(that was a frown fail)14:05
deryckheh14:05
deryckI thought it was a district 9 grimace.14:05
* allenap tried to do that with his mouth.14:05
jmlderyck: I don't know. is there a wiki page for the 'speriment?14:05
derycki think so....14:06
* deryck is looking14:06
jelmerjml: I don't think we've ever tried that. I guess files in PPA's with the wrong names won't be an issue as we won't enable these distroseries yet, I wonder if there's other places where we have the distroseries name hardcoded.14:06
jmlallenap: btw, a thing that we do with testtools reviews is we have a 24hr timeout on review requests14:06
deryckhttps://dev.launchpad.net/PolicyAndProcess/OptionalReviews14:06
allenapjml: So, after 24h you can land without a review?14:06
jmlallenap: yeah14:06
jmlallenap: one thing I'll be doing for my own landings under this process is asking for a review and having a 5-10m timeout14:07
jmlderyck: ta14:07
allenapjml: If I want to land sucky code I should submit on 24th or 31st December?14:07
jmlallenap: 24hr timeout on testtools for folk w/ commit access :)14:08
jmlallenap: if you don't have commit access, sucks to be you14:08
allenapjml: Ah, and I've probably just made it harder to get commit access ;)14:09
jmlheh heh14:09
allenapAh, bin/ec2 land does not consider "unreviewed" reviews as reviews and won't land.14:12
jmlpatch patch patch :)14:13
jelmerjml: Can you think of any other things that have a distroseries name hardcoded at the moment? The packaging branches uses something based on the database id, right?14:14
jmljelmer: hmm, yeah, but the stacking URL is hardcoded in the .bzr dir14:14
jmljelmer: perhaps though we forbid setting the official branch for distroseries that are in FUTURE?14:15
jmliirc the check is tied to "can you upload"?14:15
jelmerjml: aren't they generally stacked on the project trunk though?14:15
jmljelmer: packaging branches are stacked on lp:ubuntu/foo14:15
jelmerjml: ah, ok14:15
jelmerjml: yeah, forbidding the setting of official branches for non-enabled distroseries makes sense.14:16
jmljelmer: but I'm not 100% sure that's the case. would need to test.14:16
jml(or read the code)14:16
lifelessgarh14:26
allenapjml: We could say that if you review your own mp then it's unreviewed, then we don't need to patch the tools, and there's no loss of information. Right now both bzr-pqm and lp need to be patched :-/14:26
jmllifeless: your sleep cycle is still off?14:27
allenaplifeless: ^ too.14:27
lifelessjml: I just woke up.14:27
lifelessjml: I feel a little tired but 'awake'.14:27
jmlallenap: yeah, that makes sense to me. I guess it would be nice to patch ./utilities/ec2 to accept self-reviews tagged 'unreviewed'14:28
lifelessallenap: As long as I can reliably find the MP's that were self-reviewed, for the metrics angle.14:28
allenapjml: Okay. I'll file a bug for that (which I might fix myself anyway).14:28
allenaplifeless: Cool, I'm make sure we can do that. Is via the API enough?14:29
allenapActually, can merge proposals be searched for via the web UI anyway?14:29
=== shadeslayer_ is now known as shadeslayer
allenapOnly by status it seems.14:31
lifelessallenap: API is fine.14:31
allenapCool.14:31
LPCIBotProject db-devel build (112): SUCCESS in 3 hr 31 min: https://hudson.wedontsleep.org/job/db-devel/112/14:38
LPCIBotLaunchpad Patch Queue Manager: [rs=buildbot-poller] automatic merge from stable. Revisions: 11820,14:38
LPCIBot11821, 11822, 11823, 11824 included.14:38
LPCIBotProject devel build (176): STILL FAILING in 3 hr 29 min: https://hudson.wedontsleep.org/job/devel/176/15:01
LPCIBot* Launchpad Patch Queue Manager: [r=adeuring][ui=none][bug=656823] Various bits and pieces around15:01
LPCIBotPersonSubscriptionsView.15:01
LPCIBot* Launchpad Patch Queue Manager: [r=jml,15:01
LPCIBotstevenk][ui=none][bug=666660] Lower log level for 'Translations ...15:01
LPCIBotmatch n existing translations.' to INFO to avoid it being15:01
LPCIBotturned into an OOPS.15:01
LPCIBot* Launchpad Patch Queue Manager: [r=adeuring][ui=none][bug=638920] Only try to show links to private15:01
LPCIBotbranches to authorized users ond on a product series'15:01
LPCIBottranslations page.15:01
LPCIBot* Launchpad Patch Queue Manager: [r=adeuring][ui=none][bug=664566,15:01
LPCIBot664569] BugNotificationLevel now has a more readable set of15:01
LPCIBotdescriptions for Bug:+subscribe. BugNotificationLevel.NOTHING15:01
LPCIBotis no longer accepted when one is attempting to subscribe to a15:01
LPCIBotbug through the web UI.15:01
LPCIBot* Launchpad Patch Queue Manager: [r=lifeless][ui=none][no-qa] Explicitly flush the store when adding15:01
LPCIBotfeature flags, and stop our tests from checking features for timeouts.15:01
dobeythat is a noisy bot15:04
flacostelifeless: if you are bored, can you review https://code.launchpad.net/~flacoste/launchpad/ppr-constant-memory/+merge/39666 ?15:07
dobeyso with the API, it appears that branch.landing_targets doesn't contain all the proposals, if branch.status == 'Merged'; is that correct?15:17
dobeygary_poster: ^^ you wanted to talk to me about reviews API anyway, right? :)15:24
lifelessflacoste: bored. Hah! have you seen my job description :) - sit around bored ain't on it :P15:26
gary_posterdobey: I'm afraid I don't know the answer to that. :-/15:26
flacostelifeless: well, it might help you sleep :-)15:26
dobeygary_poster: hrmm, ok. i'm having some issues with landing branches with prerequisites becuase of it :(15:27
=== benji is now known as benji-lunch
gary_posterdobey: I'd be reading the code along with you.  Someone from the code team would probably be much more efficient help, if they are around.  (That said, if you really think a particular bit of code would be valuable for me to stare at, go ahead and send me there)15:29
lifelessgary_poster: hi15:35
lifelessgary_poster: got a few minutes to catch up? I particularly want to talk edge with you15:35
gary_posterlifeless, sure15:39
gary_posternow on Skype and mumble both15:39
dobeygary_poster: i have no idea where in lp the code is. http://pastebin.ubuntu.com/524489/ is the code in tarmac that's checking landing_targets for prerequisite branches. and len(merges) seems to be 0 there, when the prerequisite branch is merged :(15:42
flacostelol, "trendy vs free"!15:50
flacostejml: should we list other internal lists tangentially related like canonical-tech or canonical-javascripters?15:50
flacostethey are not strictly launchpad15:51
flacosteotherwise, i don't see anything missing15:51
jmlflacoste: I guess we can list those in a separate section.15:51
=== beuno is now known as beuno-lunch
=== al-maisan is now known as almaisan-away
lifelessjml: flacoste: want to continue our calls ?16:20
flacostelifeless: going to lunch16:20
lifelessgary_poster: https://bugs.edge.launchpad.net/launchpad-foundations/+bug/67001316:24
_mup_Bug #670013: preflight check for removing edge cluster <Launchpad Foundations:New> <https://launchpad.net/bugs/670013>16:24
gary_posterack lifeless, thanks16:25
jmllifeless: I'm otp16:25
gary_posterdobey, swamped, will ping you when I'm up for air16:25
lifelessdobey: please file a question on launchpad-code16:25
lifelessdobey: that will get to the right people16:26
dobeyok16:28
=== Ursula is now known as Ursinha-afk
derycklifeless, I'd like to change the hard_timeout rule for BugTask:+create-question to 25 seconds.  Any objections?16:40
lifelessyes16:45
lifelesspast 20 seconds is likely to start permitting starvation of appservers via haproxy16:45
lifelesssadly.16:46
lifelesswe have some data that mails are taking a long time to send.16:46
lifelessadding more datagathering there would be a --very good-- idea16:47
lifelessderyck: We know that that page goes past 30 seconds16:47
lifelessderyck: and that will just get cut off by haproxy - there's no benefit taking it up that high.16:47
derycklifeless, no benefit past 30, for the case where we know we'll hit 30?16:48
lifelessderyck: if the total time before the response hits haproxy is 30 seconds, the user gets a 'could not contact lp'16:48
lifelessderyck: the hard_timeout only influences time from when the request servicing *starts* in LP16:49
lifelessderyck: haproxy feeds a backlog of 4 requests per appserver (active threads=4, depth=8)16:49
lifelessderyck: Taking the hard_timeout above 20 seconds means that < 10 seconds queue time (under load) is permitted, and the queue depth (under load) will be 4 on the server...16:50
lifelessderyck: so I wouldn't take the hard_timeout much above 20 seconds16:50
lifelessderyck: I set milestones to 22 seconds because the data suggest its capped there, more or less.16:51
lifelessderyck: For +create-question, I don't think you'll let many more pages complete by adding 5 seconds - I think there is a big gap16:51
lifelessbetween 'ok' and 'fucked'16:51
derycklifeless, ah, ok.  I follow you now.16:51
derycklifeless, the OOPS from micahg had 15.XX seconds.  But the graph seemed to indicate lots on the right side at 20, so was guessing really.16:52
lifelessderyck: we need to debug the mail thing16:52
derycklifeless, right.  I also think we should do 20 then to see if that helps micahg temporariliy and get this work scheduled ASAP.  cool?16:53
lifelessderyck: I realise its strictly foundations, but I'd like to encourage you to just go ahead and add instrumentation to find out where the time is going :)16:53
lifelessderyck: cool16:53
derycklifeless, oh, I really don't think like that short of trying to assign bugs correctly :-)  I'm happy to add it.16:53
deryckI'm extremely overloaded right now, though.  So it will be late this week or first of next before I can add it.  And want to get micahg going again if I can.16:54
sinzuiflacoste, mumble?17:34
flacostesinzui: yes sir17:34
jmllifeless: would you be ok w/ me upgrading LP to use a build of testtools trunk?17:47
lifeless+1000000017:47
jmlcool.17:48
jmllifeless: I figure that upgrading fixtures & testtools separately will ease landing of my testtools-experiment branch17:48
lifelessjml: I'm always happy with snapshots [of upstream] that make things better. Snapshots [not of upstream] need a /little/ more thought.17:49
jmllifeless: makes sense.17:50
jmlnormally I would do a release first, but I'm reluctant to release all of this deferred stuff until I've proven that it works for at least one project's test suite.17:51
lifelesszigactly.17:51
lifelessjml: Can we chat?17:53
lifelessor rather. Speak.17:53
=== benji-lunch is now known as benji
jmllifeless: yes. gimme a sec to finish dumping state.17:55
marshas anyone hit PQM with a testfix yet?17:55
marsI'll assume no - I have a one-line change I can hit it with17:57
jmllifeless: ok. ready.18:00
lifelessskype doesn'tthink so18:00
lifelessjml: you've dropped off?18:17
=== leonardr is now known as leonardr-voting
lifelessflacoste: have discussed work queues with jml - EFUTURE, but broadly interesting18:32
flacostelifeless: ok18:38
flacostelifeless: btw, seems like gary and you see eye to eye on the value of regression tests :-)18:38
lifeless:)18:38
gary_poster:-)18:39
lifelessbah18:40
lifelessI'm going to have to do the mentoring patch on db-devel.18:40
lifelessthe magic cross-check stuff bites18:40
jmlg'night all.18:53
lifelessnight18:53
lifelessjelmer: https://devpad.canonical.com/~lpqateam/qa_reports/deployment-stable.html - we're blocked on QAing that18:53
lifelessderyck: https://devpad.canonical.com/~stub/ppr/lpnet/latest-daily-pageids.html18:54
* deryck looks18:54
lifelessderyck: click on '99% under time' and observe that the top (or near top) row is BugTask:+create-question, with a 99% completion time of 102 seconds.18:54
* deryck is waiting on the page18:55
lifelessscience bitches, it works!18:55
=== leonardr-voting is now known as leonardr
cr3leonardr: hi there, I've been looking at the EntryResource class under the lazr.restful._resource package to find out how I could potentially add the attribute http_link, similar to the self_link, across all my objects.19:05
leonardrcr3: are you trying to fix the bug about this? i thought rockstar already had something19:05
cr3leonardr: I wasn't aware of any bug, might it be related to the EntryResource class is assumed in a few places, like EntryHTMLView for example?19:06
lifelessI'm going to - shock, horror - write some code19:08
derycklifeless, so to simply state your assertion -- "changing the default_timeout will not help. We have to fix the page to help micahg."19:23
lifelessderyck: yeah :)19:24
deryckgotcha19:24
lifelessderyck: I thought the evidence would be useful, and scary.19:24
derycklifeless, yes, it is useful.  Nothing scares me about lp anymore.  Scars me, yes.  Scares me, no.19:25
lifeless\o/19:25
lifelessyou've passed the fear threshold19:25
deryckor else I'm too dumb to be afraid.19:25
lifelessrotfl19:25
lifelessEdwinGrubbs: hey19:28
lifelessEdwinGrubbs: did I answer your question sufficiently about that timeout bug the other day ? I put it in the bug discussion.19:29
SpamapSI heard at UDS that stats for PPA downloads are coming soon? Anybody know if there's an open bug/blueprint for it that I can point others at?19:30
lifelessSpamapS: http://www.google.com/search?sourceid=chrome&client=ubuntu&channel=cs&ie=UTF-8&q=ppa+stats19:31
lifelessSpamapS: learn to love the search19:31
SpamapSlifeless: i'd like to personally thank you for mot lmgtfy'ing me for that gross misappropriation of your time and brainpower. ;)19:33
EdwinGrubbslifeless: thanks for adding that comment. I'll try the eager loading, although I have doubts that it will help, since it looks like most of the time is spent creating storm objects. However, I've only looked at ++profile++show so far, and I need to check if the ++profile++log got copied over to devpad.19:33
lifelessEdwinGrubbs: so the storm object creation concern is coupled to storm object volume19:34
lifelessEdwinGrubbs: less queries can reduce that volume19:34
lifelessEdwinGrubbs: how many objects are being created? 5K ? 10K ?19:34
lifelessSpamapS: I'd never do that to you :).19:35
EdwinGrubbslifeless: I'm guessing 7,500 based on the number of _set_values calls. I just noticed that the ++profile++show says "Total(ms)". Isn't that in seconds?19:38
lifelessEdwinGrubbs: yes19:38
lifelessits bong from the 2.4 change to profiling19:38
lifelessEAttentionToDetail.19:38
lifelessEdwinGrubbs: for clarity, yes, its in seconds.19:43
lifelessthe ms clause is from the older profiler which did report in ms.19:44
james_wjml, hi, I'm hearing rumours that a merge of the bug and blueprint code is planned, is that the case?19:47
brycehjames_w, wow19:49
lifelessjames_w: jml has EOD'd.19:49
lifelessjames_w: but yes.19:49
lifelessjames_w: during 201119:50
james_wis there more information available anywhere?19:50
lifelessdev.launchpad.net/IssueTracker is probably the best source today19:50
lifelessI don't know if that captures jmls current thinking19:50
lifelessbut its certainly not going to be hugely far off19:51
cr3have there been requests to get the web url for objects retrieved through the api?19:58
james_wcr3, yes19:59
cr3james_w: cool, I had a feeling there might be a reason why it wasn't currently available, either because there was no such request or because there might be a fundamental problem with providing this information20:00
cr3and searching bugs for "api url" under the launchpad project, which returned nothing, only reinforced that feeling :)20:03
james_whttps://bugs.edge.launchpad.net/launchpadlib/+bug/31669420:04
_mup_Bug #316694: Add web_link property to resources <launchpadlib :Triaged> <https://launchpad.net/bugs/316694>20:04
cr3james_w: cool, now I know what to name it too!20:05
leonardrcr3: you should definitely talk to rockstar, i know he did some work on this20:09
rockstarleonardr, I did, but we got stuck on some weird test failures that made things more complicated.20:09
cr3leonardr: has there been a consensus on whether this should be done client or server side? I found the thread in the bug fascinating and I have no position myself20:10
leonardrcr3: i think server side20:10
cr3rockstar: might there be a branch I could peek at?20:11
thumpermorning20:11
lifelessnote that canonical_url is a known performance problem.20:12
lifelessit would be sad to make APIs substantially slower to do this; perhaps working on canonical_url would be a good first step.20:13
rockstarcr3, there is indeed.  Lemme find it.20:14
rockstarthumper, morning.  Might we have a chance to catch up?20:14
thumperrockstar: we may20:15
thumperrockstar: let me play with the mixer and mic20:15
rockstarthumper, let me find this branch for cr3 real quick and then I'll jump on skype.20:15
rockstarcr3,20:17
rockstar<beuno> so I preemptively blacked it out20:17
rockstarArgh...20:17
rockstarStupid middle click grabbing randomness...20:17
rockstarcr3, https://code.launchpad.net/~rockstar/lazr.restful/web_link20:17
cr3rockstar: cheers!20:18
lifelessman, its so nice being able to just use lp directly.20:34
lifeless\o/20:34
lifelessjames_w: did that help you ?20:35
allenapDoes anyone know why I have had to re-authorize my launchpad-branch-lander API key 2 (3 maybe?) times in the last couple of days?20:35
james_wlifeless, the spec on blueprints and bugs?20:36
lifelessjames_w: the wiki page :)20:36
james_wlifeless, as much as a spec from 2006 can, yes20:36
lifelesskk20:36
lifelessI'm happy to tell you more20:36
lifelessor voice chat20:36
lifelessit depends what you want to know20:37
james_wI'm mainly interested in where it fits with other blueprint changes, such as the accepted stakeholder proposal for a better workload page20:37
lifelessso the broad description is perhaps best said as 'combine the siloed 'blueprints' and 'bugs' into a single unified workflow with the ability to move from one focus to another as may make sense'20:38
lifelesswe're not going to throw away things folk use20:38
james_wright, but at the same time, you probably don't want to be adding more features to blueprints until it is done20:39
james_wand I have several requests for blueprint changes that I am being asked to bring to the stakeholders meeting20:40
lifelessuhm20:42
lifelessso adding new things in blueprints doesn't really make merging easier or harder.20:42
lifelessthe vast bulk of existing stuff already exists.20:43
rockstarthumper, I wish mumble was happier in New Zealand.20:43
thumperrockstar: actually20:43
lifelessso I would say that there's no particular change to worry about vis a vis requested work20:43
thumperrockstar: can we try that here?20:43
rockstarthumper, sure, one sec.20:43
thumperrockstar: I'm using a different provider20:43
lifelessthumper: whom20:43
thumperlifeless: WIC (I'm hotdesking at the centre for innovation)20:44
thumperrockstar: mumble seems confused20:45
rockstarthumper, looks like it.20:45
* thumper tries again20:46
thumperrockstar: trying to tell mumble to use pulse and it shits itself20:46
rockstarthumper, yeah, that's how it started to feel about my USB headset.20:47
rockstarthumper, you should try blowing away your mumble config and starting over.20:48
thumperrockstar: yeah, where is that kept?20:48
rockstarthumper, no idea.  ~/.config/mumble?20:48
* thumper blew away ~/.config/Mumble20:49
thumpermumble is working well here20:55
jelmerlifeless: *nod*21:03
wgrantjelmer: Evening.21:08
jelmerwgrant: hey - your branch failed to merge. I've been meaning to look at resolving the conflict but other things have been interrupting me all day.21:11
wgrantjelmer: Ah. I'll fix that.21:13
lifelessjelmer: if you can simply assert that deploying bug 627608  to the nodowntime alias won't break anything, we can qa-ok the bug- it owuld be ok to deploy.21:19
_mup_Bug #627608: Got a 401 on a fresh purchase <qa-needstesting> <Software Center Agent:Fix Released> <Soyuz:Fix Committed by michael.nelson> <software-center (Ubuntu):Fix Released> <https://launchpad.net/bugs/627608>21:19
lifelessjelmer: but I can't tell if thats true or false21:19
wgrantIt's fine to go anywhere except germanium.21:20
wgrantBut it's not that hard to QA...21:21
lifelesswgrant: pls help :)21:21
wgrantPerhaps I should have added "for those with DF access right now"21:22
wallyworldrockstar: abentley: thumper: standup?21:22
thumpermumble is working 100% for me here21:22
thumperwallyworld: we are doing it right now21:22
rockstarwallyworld, mumble!21:22
thumperwallyworld: on mumble21:22
lifelesswgrant: its important to get the necessary discipline to qa on qastaging.21:23
lifelesswgrant: how would one qa it21:23
wallyworldi haven't got mumble installed21:23
rockstarwallyworld, sudo apt-get install mumble21:24
wallyworldrockstar: yep, doing it right now21:24
wgrantlifeless: I see a few methods. 1) Add a sleep to the script to make the window for adding a new token long enough to actually do it. 2) Hack the finish time in the DB to make that window longer. 3) Hack the token creation time in the DB. or 4) Be really really quick and activate a subscription at just the right time.21:25
lifelesswgrant: so, disable the script. Add lots of PPAs. Say 20. Get up to the last screen in adding another ppa. run the script and add the ppa21:25
wgrantlifeless: A token is created when a user activates their subscription, not on PPA creation.21:26
wgrantBut yes.21:26
wallyworldrockstar: so what server do i connect to? any?21:27
lifelesswgrant: ah21:27
lifelesswgrant: so those question are for verification21:27
lifelesswgrant: I want validation - is it safe to deploy, not is the bug fixed.21:28
lifelesswgrant: sounds like activating a private PPA token on qastaging will do.21:28
wgrantlifeless: Ah, I didn't know that that was also unknown.21:28
rockstarwallyworld, there's a wiki page. One sec.21:28
wgrantlifeless: You'd need to do that then run the token generation script, which qastaging probably doesn't have configs for.21:28
lifelesswgrant: ok, lets set it up21:29
lifelessI wonder if I can make a p3a21:29
lifelessactually, I can probably nuke and refresh a token21:29
lifelessthe reset passwor dbutton, right ?21:30
wgrantThat should do it.21:30
* wgrant checks.21:30
wgrantYeah.21:31
lifelessok21:31
wgrantThat'll work.21:31
lifelessI've reset it21:31
lifelessnow, we check by looking in the htaccess, yeah?21:31
wgrantNow we need to run cronscripts/generate-ppa-access.py, and watch what explodes.21:31
lifelessmbarnett: ^21:31
lifelesson qastaging21:31
wgrantIt has no interesting flags.21:31
mbarnettso, a vanilla run of that with a bunch of -vvvvvvv s21:32
wgrantBut it will need config, I suspect.21:32
mbarnett?21:32
wgrantRight.21:32
wgrantAs many -v s as you can muster!21:32
mbarnetti can mimic how it runs on prod21:32
wgrantHow does it run on prod?21:32
lifelessvery slowly21:33
lifelessboom-tish21:33
mbarnettgive me a sec to extract myself from this interview, will be literally one minute21:33
lifelessmbarnett: no panic21:33
lifelessmbarnett: thank you21:33
wallyworldrockstar: connected now. what channel?21:34
rockstarwallyworld, there's a code channel.21:34
mbarnettcronscripts/generate-ppa-htaccess.py -vv21:35
mbarnettis all we do on prod21:35
wallyworldrockstar: i've added myself to that already21:35
lifelesswgrant: so mbarnett runs that.21:38
lifelesswgrant: then what21:38
wgrantlifeless: Find out where the qastaging config puts private PPAs.21:40
wgrant(personalpackagearchive.private_root is the config key)21:40
mbarnetthere is the run on qastaging: http://pastebin.ubuntu.com/524684/21:41
lifelesswhats the config key ?21:41
lifelesswgrant: e.g. 'where do I look'21:41
wgrantlifeless: I just said.21:42
lifelesswgrant: sorry, link futzing21:42
wgrantYay, DB config fail.21:42
wgrantAlso, that librarian looks wrong.21:43
lifelessmbarnett: did you run that on 'staging' or 'qastaging'21:43
wgrantHalf is qastaging, half is staging.21:43
wgrantHuh.21:43
mbarnettlifeless: i ran it out of qastaging21:45
lifelessmbarnett: -odd-21:46
lifelessmbarnett: so, we're missing a user in the qastaging db - the generatehtppaccess (spelling?) user21:47
lifelessmbarnett: and it seemed to be speaking to the wrong librarian; could you confirm the production configs are @ rev 152?21:47
wgrantlifeless: But it's also using the staging librarian and half of staging's zcml.21:47
lifelesswgrant: possibly stale pyc files21:47
lifelesswgrant: before we -panic-21:47
wgrantHeh.21:48
lifelesswgrant: possibly not, of course.21:48
mbarnettlifeless: sorry, looking now21:50
mbarnetttoo many things at once!  :)21:50
mbarnettnope, 15121:51
lifelessmbarnett: please pull 152 in, it fixes qastagin to use the right librarian. And we need to setup and configure that user.21:52
mbarnettso, can't actually just pull there.  have to figure out the best way to get 152 there21:53
mbarnettbranched it locally, pushing it over now21:56
wgrantjelmer: I pushed the conflict resolution. Could you try to land it again, please?22:01
mbarnetthaha, that was a lot of work for a 1 line change... i probably should have just taken a look at the diff between those two revnos22:01
lifelessgary_poster: so, I've looked at one of those bugs22:07
lifelessgary_poster: I'm going to stare a little harder and see if I can spot any potential bugs; I need to grab the python 2.6 code first though22:08
jelmerlifeless: sure, I'm looking into a different generate-ppa-htaccess.py bug at the moment22:11
jelmerwgrant: Sure22:11
mbarnettlifeless: the configs are updated (with that 1 line change).  will just take a bit of figuring to get the database user configured properly22:11
lifelessmbarnett: kk22:12
wgrantjelmer: Thanks.22:14
gary_posterthanks lifeless22:41
lifelessgary_poster: no probs22:47
lifelessgary_poster: it looks like an interpreter shutdown issue to me, IMBW22:47
gary_posterlifeless: but as mwhudson said, that would happen after the LOSAs had run ``stop``--so I'd guess that what we are seeing is in phase two of the problem22:49
gary_posterand we don't have visibility on phase 122:49
gary_posterso one debugging step is to ask the losas to run the gdb thread script on hung processes *before* they try calling stop22:49
gary_posterwill pass that to them on -ops...22:50
lifelessgary_poster: well22:50
lifelessthat presumes that the problem exists before shutdown22:50
lifelessgary_poster: if its not /hung/, the shutdown may be the problem.22:50
lifelessremember that we're doing deploys more often22:50
gary_posterin the bug description it is after a nagios check22:51
lifelessright22:51
lifelessthe sequence I'm thinking is this22:51
gary_posterwe can verify that the nagios had been successful previously22:51
lifelesswe deploy 1180822:51
lifelesssome servers don't die properly22:51
lifelessnagios goes 'hey'22:51
lifelesswe find rev 11793 still running22:51
lifelessand wedged22:51
gary_posterok reasonable hypothesis22:52
lifelessit was reported on the 1st22:52
lifelessthe day we deployed 1181122:52
lifelessit has rev 11793 itself22:53
gary_posterin your hypothesis, right?  We don't have evidence of that22:53
LPCIBotProject devel build (177): STILL FAILING in 3 hr 59 min: https://hudson.wedontsleep.org/job/devel/177/22:54
gary_posterif this hypothesis were correct, then I think the following would not be true:22:54
gary_posternagios saw all servers alive after a roll out22:54
lifelessagreed22:54
lifelessgary_poster: we have the deploy log22:55
lifelessgary_poster: which isn't accruate to the minute sadly. Its on LPS.22:55
gary_posterright22:55
gary_posterdo we have a nagios log?22:55
lifelessspm: ^ :)22:55
mwhudsoninterpreter teardown is a bucket of mess22:56
gary_posterheh22:56
lifelessmwhudson: its a shame we can't see thread 0 :)22:57
gary_posterif nagios did show all servers up before this, then we're back to asking losas to try to gather thread info before they issue init.d stop22:57
lifelessmwhudson: could it perhaps have exited already? whilst holding the HEAD_LOCK or something crazy like that ?22:57
mwhudsoni've semi-seriously advocated running appservers in vms and just terminating the vm when you want it to go away before...22:57
mwhudsonlifeless: there isn't a thread 0 usually?22:57
gary_posterheh22:57
lifelessmwhudson: I thought gdb was 0-indexed22:57
mwhudsonlifeless: as i said in the bug report, the rest of the traceback from thread 1 would be interesting22:57
* gary_poster thinks the question mark in mwhudson's statement was misleading :-P22:58
lifelessmwhudson: I certainly can't see a thread with interpreter bootstrap present22:58
mwhudsonlifeless: pygdb's backtrace walks though c until you hit python and then only displays python22:58
lifelessmwhudson: what is the 'stop script' you mean ?22:58
lifelessmwhudson: can you fix that ?22:58
mwhudsonlifeless: i guess22:58
lifelessmwhudson: pretty please with a We Can Fix This Then on top ?22:59
mwhudsonlp:pygdb is team-owned fwiw :-)22:59
mwhudsonbut it's a bit write only code22:59
lifelessmwhudson: I can context switch into it if needed, but I'd *prefer* to not bootstrap on that this week.22:59
gary_posteraccording to flacoste this enters drop-everything mode after the next strike23:00
gary_posterbut not yet23:00
mwhudsonlifeless: the hard part is the heuristics23:00
gary_posterI should run go do family things.  lifeless, should I pass the pygdb-before-init.d-stop request to the losas, and the nagios question, via RT, or may I leave it with you?23:01
* gary_poster needs to go. Younger son is playing the paper-tube-o-phone23:03
gary_posterthank you and good night23:03
mwhudsonooh, i have one good heuristic actually23:04
spmlifeless: heyo. just gimme a sec to get up to speed wrt context/backlog/handover23:07
mwhudsonhuh, i want a multiset for about the first time ever23:13
spivmwhudson: collections.defaultdict(lambda: 0) ?23:14
mwhudsonspiv: well yeah + some sugar on that23:15
mwhudsonlifeless: r52 of lp:pygdb should be more useful in this case23:16
mwhudsonspiv: did you know that collections.defaultdict(int) is the same as that? :)23:16
spivmwhudson: I choose not to know that ;)23:19
spivI find it a bit weird for immutable, non-container objects to have constructors that make "empty" or "zero" instances of themselves.23:20
spivso list() and dict() seem reasonable, but int() and str() make me uncomfortable.23:20
spivAnd tuple()... I could go either way on that ;)23:20
spivmwhudson: how does pygdb relate to the shinier python-gdb stuff that's builtin in maverick?23:22
spiv(I mean shinier relative to previous ubuntus, rather than implying it's shinier than than pygdb)23:23
mwhudsonspiv: it works on lucid i guess :-)23:25
mwhudsoni don't really know tbh, it's all a bit different23:25
mwhudsonin particular it drives gdb from outside23:25
lifelessspm: we want to start using a newer pygdb to get backtraces from hung appserverfs.23:30
lifelessspm: and, we think deploys trigger this, so we want to deliberately look for it after deploy23:31
spmlifeless: why do you feel that deploys cause this?23:31
spm(sure on the pygdb, np there)23:31
lifelessspm: the most recent two show rev 11793 in their trace and come from the day we deployed 1181123:32
lifelessspm: and the internals smell of interpreter shutdown.23:32
lifelessso we think its all a dupe of the 'apservers not shutting down' bug23:33
spmhmmm. one was actually dead for quite a long period... /me refreshes memory with times/dates23:33
lifelessspm: that would fit quite well actually.23:34
lifelessmwhudson: thank you23:34
spmyes lpnet11, that was a dead on a monday (here), but istr had been dead for ~ 12-16 hours.23:34
lifelessspm: hmmm23:34
lifelesswell the other requested thing23:34
spmyeah - it doesn't quite fit.23:34
spmsure. rev 52?23:35
lifelessis to start getting a pygdb run *before* shutdown on deployments23:35
mwhudsonlifeless: np, it was easy when i actually switched my brain on a bit23:35
spmOooo kat23:35
spmkay even23:35
lifelesshowever23:35
lifelessI think thats a problem23:35
lifelessit will be a lot of data23:35
mwhudsonpygdb is fairly slow23:35
spmmwhudson: it's overrated - brain switch on23:35
lifelessthat we won't look at23:35
lifelessand its slow23:35
mwhudsongenerating a core and pygdb-ing that will be less invasive23:35
lifelessso I'd like to go with 'it looks like shutdown to us, and the new pygdb will tell us more'23:36
mwhudsonbut will obviously use a lot more disk, if only temporarily23:36
spmhave you seen how big those core files are?? :-)23:36
lifelessspm: hey, do you have the core from lpnet11 ?23:36
mwhudsoni guess dumping the core takes a while too23:36
spmlifeless: probably... lemme check.23:36
lifelessspm: if so please run rev52 against it23:36
lifelesswe should get more data immediately.23:36
spmlifeless: I don't believe I did on yesterdays(??), but pretty sure I did on monday23:36
spmbugger no. I didn't. most recent is 2010-10-18 03:42 lpnet12-2010-10-18.core.2479523:37
spmI'm 8sure* I did take one this week tho... poking...23:38
lifelessgive it a shot23:38
lifelessits more likely that we have one problem than two causing hangs.23:38
spmhrm. might have been a codebounce hang that I dumped.23:39
spmbother23:39
lifelesslpnet12 should be useful to analyse23:39
lifelessrev52 will show us the entry point to the app and hopefully where its at outside of python frames23:39
spmnod23:39
spmerr - how do I run vs a core? backtrace <corefile> ?23:40
lifelessmwhudson: ^23:41
mwhudsonspm: -c $core23:41
* spm won't point to --help giving a smash. cause that'd be rude. :-P23:41
mwhudsonspm: right23:41
spmheh23:41
mwhudsonthis was hardly written using principles of user interaction design23:42
spmI can tell23:42
mwhudson(or software engineering, come to that)23:42
lifelessmwhudson: punching is a principle.23:42
mwhudsonlifeless: only one that was followed by accident in this case23:42
spmlifeless: mwhudson: https://pastebin.canonical.com/39285/23:42
mwhudsonum23:43
mwhudsonthat's not very useful, is python2.6-dbg installed on that machine?23:43
spmii  python2.6-dbg                               2.6.5-1ubuntu623:44
spmthat dump is oldish - dunno if that messes things at all23:44
spm2-3 weeks old.23:44
mwhudsonshouldn't do23:44
spmI can always gcore something now, and we can verify?23:44
* lifeless sings the edge is dead happy song23:44
spm:-)23:44
mwhudsoni'm not sure there's much point23:44
spmedge is dead, long live edge!23:44
mwhudsonthe modification i made is fairly single-purpose: give more info when something hangs in a __del__ method23:45
lifelessmwhudson: so I'd really quite like ot see the stack back to main()23:46
lifelessmwhudson: the python lines are ok, but every interpreter hang previously I've solved purely on the C frames23:47
lifelessmwhudson: if we have to *choose*, lets get the full C frame.23:47
lifelessmwhudson: "'NoneType' object has no attribute 'exception'",), <traceback at remote 0x2b44aceb5128>), kw=0x0) from ../Python/ceval.c23:47
lifelessmwhudson: \o/23:48
mwhudsonlifeless: if the c traceback is enough, thread apply all bt is all you need?23:48
lifelessmwhudson: maybe just doing that in paralle.23:48
lifelessspm: can you do thread apply all bt in that core too ?23:48
lifelessspm: also, we need to start gathering the appserver log for the time that it hung23:50
lifelessthere may well be things like23:50
lifeless'unhandled exception in thread xxx' in stderr23:50
spmlifeless: hrm. likely pebkac here. gdb <core> ; thread apply all bt<cr> ??23:50
lifelessyes23:50
spmhrm. "/home/launchpad/lpnet12-2010-10-18.core.24795": not in executable format: File format not recognised23:51
lifelessgdb `which python` <core>23:51
spmah23:51
spmhttps://pastebin.canonical.com/39286/23:52
spmcurious. it even looks the same, with the ??'s.23:52
lifelessgarh23:57
lifelessthanks23:57
lifelesswarning: core file may not match specified executable file.23:57
mwhudsonlines like "#7  0x0000000000000010 in ?? ()" don't look very plausible to me23:58
mwhudsonis it possible that this core file predates the update to lucid, or something?23:59

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