/srv/irclogs.ubuntu.com/2010/09/16/#launchpad-dev.txt

pooliesure, call me?00:00
lifelessare you on skype?00:00
pooliei can be00:00
lifelessplease00:02
pooliemm it's trying to connect00:02
lifelessok, I'll ring ze landline00:02
jamrockstar: just to confirm, the email I CC'd you on failed with Submit Request Failure as I expected it would00:32
rockstarjam, hm.00:50
jamrockstar: would forwarding the failure help you?00:53
rockstarjam, no, I see that it's valid.00:54
jamsure, I didn't know if the failure included any info you could use00:54
rockstarjam, does the same thing happen on bugs as well?00:57
jamsame thing00:57
rockstarjam, hm.  I think the bug probably goes with foundations.  I wonder if something has changed with python gpg bindings.00:58
baclifeless: meeting ping01:02
lifelesshish01:04
pooliejam by 'avatar' do you mean 'current user'?01:14
poolieis that the actual name for it in that code?01:14
* poolie is not pedantic, just curious01:14
jamright01:14
poolieat least in this context01:14
jamavatar.user_id is the database identifier used for the branch vfs01:14
poolieok01:17
pooliejam, robert recently landed (or at least proposed) some new scopes, which may give you a template01:18
poolielifeless: where did they go? they don't seem to be in devel yet01:20
poolieoh, it is landed, i just expected it would be in scopes.py01:21
thumperrockstar: want to talk?01:23
pooliei'll reply by mail01:23
lifelesspoolie: feel free to refactor; I was following what I saw (right or wrong)01:32
rockstarthumper, 5 minutes.01:33
thumperrockstar: ok, I'll go make coffee01:33
wallyworld_thumper: white with 2 sugars please01:34
thumperwallyworld_: pass me your cup01:34
wallyworld_thumper:  i would if i knew how to get the cup icon to display in irc :-)01:34
poolie☕☕01:36
poolie"find" in character map :)01:36
wallyworld_poolie: show off!01:36
* thumper waits for rockstar01:43
rockstarthumper, wait no more!01:44
wgrantCan we get ~ubuntu-bugs removed from ~launchpad-beta-testers? It was added overnight to allow the ubuntu-bugs ML to receive comments from remote bug trackers, but has the side effect of redirecting lots of people to edge.02:06
wgrantWhere "lots" is around 400.02:07
lifelessthat seems like a bad idea02:08
lifelessfile a bug, malone, critical sev02:08
wgrantWhy does it need a bug?02:09
lifelesswell, won't the comments not go to ubuntu-bugs if we remove it ?02:09
wgrantThere's already a bug for sending the remote comments to everybody.02:09
lifelessok.02:09
wgrantAnd they've only been going there since last night.02:09
wgrantSo it's not a significant loss.02:09
lifelessmake sense to me02:09
lifelessbugsquad can do it02:09
wgrantBug 63973602:10
wgrantlifeless: How?02:10
lifelessexit the team?02:10
wgrantBug Control is a member, but bdmurray is the only admin.02:10
lifelessoh02:10
lifelessbdmurray: yo!02:10
wgrantOtherwise an ~l-b-t admin can do it.02:10
lifelessbdmurray: a) you may want to have someother admins02:10
lifelessbdmurray: and b) ^ the discussion aobove02:11
bdmurraywgrant: sure I'll do it now02:14
wgrantbdmurray: Thanks.02:14
bdmurrayI was trying to work around a Launchpad bug02:14
wgrantis there a reason for bugcontrol to be a member these days?02:14
wgrantYeah, I saw the mail go past overnight :)02:15
wgrant~ubuntu-bugcontrol could be the bug supervisor, and ~ubuntu-bugs just be subscribed.02:15
bdmurraywgrant: well Launchpad is oops'ing on me now wrt ubuntu-bugs and lp-beta-testers02:18
wgrantbdmurray: What's the traceback?02:18
bdmurraywgrant: its a TimeoutError in the sql statement02:18
wgrantAwesome.02:18
wgrantRetry a couple of times, I suppose.02:19
wgrantMaybe it will eventually work.02:19
StevenKthumper: O hai; I seem to recall SQLObjectNotFound coming up in your review of my branch -- did you recommend to just bin it and I missed it?02:29
thumperStevenK: I think I recommended getting it form lazr.lifecycle02:30
StevenKAh yes, that sounds right02:30
StevenKthumper: I'm fixing up all of the lint :-)02:30
StevenKthumper: I don't see SQLObjectNotFound in lazr.lifecycle?02:31
thumperwhat do you see?02:32
StevenKI just grepped for it, I got no results02:32
lifelessthumper: is there a bug that02:32
lifelesshttps://code.edge.launchpad.net/~lifeless/launchpad/bugmessage/+merge/35620/reviews/45660/+reassign02:32
lifelessdoesn't let you change the review type requested ?02:33
thumperlifeless: yes02:33
lifelessok cool.02:33
thumperStevenK: you are right02:34
thumperit isn't there02:34
thumperfrom lp.app.errors import NotFoundError02:34
mwhudsonis this a way of teaching your mentee a lesson? :-)02:34
thumperthat'll do a 40402:34
thumpermwhudson: heh02:35
mwhudson"don't take everything on trust"02:35
thumpermwhudson: and "everybody lies"02:35
mwhudson:)02:35
StevenKThank you, House02:35
* StevenK passes thumper a cane, and some Vicodin02:36
* thumper hobbles off to do some shopping02:36
lifelessman03:03
lifeless    2026  OOPS-1719N1979  BugTask:+index03:03
lifelessstill need to get that down03:03
lifelessUrsinha-afk: if you see this https://devpad.canonical.com/~lpqateam/qa_reports/launchpad-stable-deployment.txt - not sure why 'Revision 11522 can not be deployed: not-ok'03:05
bdmurraywgrant: so I set the expiration date for the 16th we'll see what that does03:05
lifelessalso we probably want to report on more of the non-ok revisions03:06
poolielifeless: bug 640125 for logging stuff03:18
wallyworld__anyone seen this error running bin/test -vvm lp.registry.browser.tests.test_milestone04:30
wallyworld__Failure in test lp.registry.browser.tests.test_milestone.TestMilestoneMemcache.test_milestone_index_memcache_anonymous04:30
wallyworld__  File "/home/ian/projects/lp-branches/current/lib/lp/registry/browser/tests/test_milestone.py", line 108, in test_milestone_index_memcache_anonymous04:30
wallyworld__    'anonymous, view/expire_cache_minutes minute', content)04:30
wallyworld__  File "/home/ian/projects/lp-branches/current/lib/lp/testing/memcache.py", line 33, in assertCacheHit04:30
wallyworld__    self.assertTrue(cache_start in before)04:30
wallyworld__AssertionError04:30
wallyworld__i was testing a small change which touched test_milestone.py and get the same error even after reverting back to the original version04:32
thumperwallyworld__: what touched test_milestone?04:40
jtvIs ec2 broken for anyone else?04:41
jtvThe script, I mean.04:41
wallyworld__thumper: line 86 change to series = self.factory.makeProductSeries(product=product) -- it was just self.factory.makeSeries(...)04:41
thumperjtv: I'm just testing, but it is an older one04:41
thumperwallyworld__: ah.04:41
jtvI just updated everything, and regret it04:41
jtvActually it may just be "ec2 land"—I'm firing off an "ec2 test" that's really firing up an instance afaics04:42
wallyworld__thumper: i re-ran the tests on a different branch without the changes and it still failed the same way :-(04:42
thumperwallyworld__: I'll try here04:43
wallyworld__ok. thanks. i'll have to get out my scuba gear and dive in to take a look04:43
thumperwallyworld__: it runs here on your tales-linkify-broken-links branch04:45
thumperwallyworld__: on lucid04:45
wallyworld__thumper: hmmmm. that's the same branch i tried it on :-(04:45
thumperwallyworld__: it could be a lucid vs maverick issue04:45
thumpercan we find other volunteers to try?04:45
wallyworld__ok. I'll make sure all other tests etc run locally and then run it through ec2 test04:46
thumperwallyworld__: one thing on that branch04:47
wallyworld__thumper: yeeeees?04:47
thumperwallyworld__: can I get you to prefix any variable without a proxy with naked_ ?04:47
thumperso...04:48
thumpernaked_product = removeSecurityProxy(branch.product)04:48
thumperwallyworld__: as this confused me looking through the tests04:48
wallyworld__yup. good idea04:48
thumperwallyworld__: as I expected it to fail not realising that the product didn't have a proxy04:48
* wallyworld__ nods04:48
thumperthanks04:48
wallyworld__maybe one day next year this branch will get landed :-)04:49
thumperit is ' ' close04:51
* thumper mimics ' ' this close with fingers slightly apart04:51
lifelessjtv: symptoms?04:51
wallyworld__still, i'm getting to play with pipes going back and firth between the 2 branches. nice plugin :-)04:51
wallyworld__s/firth/forth04:52
jtvlifeless: http://paste.ubuntu.com/494554/04:53
jtv"ec2 test" works04:54
thumperwallyworld__: don't forget to pump :)04:56
* thumper steps away to cook, back later for more evening calls04:56
thumperwallyworld__: I'll check back on the tales fix branch before I sit down to eat to see if we can get that into the landing queue04:57
wallyworld__thumper: i won't forget :-)04:57
wallyworld__thumper: i'm just about to push the "final" changes. had to answer the door. a box from Think Geek arrived :-)04:58
wallyworld__lifeless: what's the status of your getLastOops fix? ie when is it safe to try and land a branch again?05:04
lifelessit landed05:34
lifelessso the symptoms are addressed, I'm landing another branch via ec2 land atm, if that works I'll mail the list. if it doesn't I'll mail the list.05:34
lifelessstub: hai05:57
lifelessstub: I has db patch up05:57
stubyo05:57
stubyup05:57
lifelessI'd like to check its a sane approach with you05:57
stublifeless: That seems fine. I want to run a quick test on staging to see if we should populate it in the DB patch and make it NOT NULL.06:04
lifelessstub: coolio06:05
lifelessstub: I was figuring on a garbo task to populate it06:05
stubWe could just use the message id instead of the index, but that would break existing links.06:06
stublifeless: I don't see how it is useful if it information is only available sometimes.06:06
lifelessstub: garbo task to populate over a cycle06:07
stubok06:07
lifelessonce the row exists land a patch to set it on all new rows06:07
stubThe table isn't wide - I don't think it will take long to rewrite it but I'll check first.06:07
lifelessthen, once the garbo has caught up, we know its all there06:07
lifelessland a patch to use it06:08
lifelessstub: its going to be millions of rows though06:41
thumperwallyworld___: around?06:48
thumperwallyworld_: around?06:52
wallyworld_thumper: like a rissole06:52
thumperwallyworld_: I've approved the tales branch with an optional but suggested change06:53
=== almaisan-away is now known as al-maisan
wallyworld_ok. will check email06:53
wallyworld_btw, a make clean helped that milestone test to pass06:53
wallyworld_thumper: i'll make the suggested change and land it once ec2 is back in business. thx06:55
thumperwallyworld_: ack06:55
* thumper done until call with mthaddon later06:55
stublifeless: its not too slow to update, but it is too slow to calculate all the indexes07:02
stubwell... both...07:03
lifelessstub: times?07:03
stublonger than I could be arsed waiting ;)07:03
=== al-maisan is now known as almaisan-away
lifelessstub: so incremental is the way07:06
lifelessstub: how long to add null and index ?07:07
lifelessstub: or should we add null and index after the rollout ?07:07
stubThe index is added in this rollout, we populate, then we add the not null next rollout.07:09
lifelesskk07:09
lifelesswhat patch number ?07:09
lifelessstub: how many rows do we need to calculate?07:10
lifelessstub:?07:16
stub3.3 million rows to calculate07:17
stubSo 42 seconds to calculate on staging with this approach... I'll leave the update running for a bit.07:22
stubpatch will be 2208-14-007:22
lifelesshow are you populating ?07:24
=== almaisan-away is now known as al-maisan
lifelessstub: and can you approve so I cans lands it ?07:31
poolielifeless:  are your Epic slides on the web?07:42
lifelessyes07:42
lifelesslinked from the architectureguide07:42
poolietx07:42
lifelessand emails n stuff07:43
stublifeless: http://paste.ubuntu.com/494601/ is the best I can do, but the update is too slow (killed it again)07:50
stublifeless: So I'll approve the patch in the form you have and we will need datamigration and a follow up patch07:51
lifelessthanks07:57
adeuringgood moring08:44
mrevellMorning08:49
jelmerlifeless, hi10:00
jelmerlifeless, I saw your getLastOops branch landed. Did it help with your ec2 runs?10:00
jmlgood morning.10:28
jelmerhi jml10:29
jmlI thought someone had done some work recently on exposing blueprints over the webservice10:48
wgrantThere have been a few efforts there.10:49
wgrantajmitch had one.10:49
wgrantI don't recall who tried it last.10:49
wgrantEveryone seems to give up quickly...10:49
jmlI think james_w & cjwatson have both tried.10:51
jml*sigh*10:51
wgrantMaybe some things just weren't meant to be (I may be thinking of the app itself here, though...)10:52
nigelbjml: ajmitch said he was working on one.10:53
nigelbarg, I should read10:53
jmlnigelb, it happens :)10:54
* nigelb is waking up at 3 pm - confusion guaranteed10:54
ajmitchyeah, james_w had done a bit more than me & submitted it for review - I think people recoiled in horror from the blueprints internals that got exposed11:00
nigelbheh11:00
ajmitchI don't know if anyone else has tried further since then11:00
nigelbNow I know why wgrant always wants that part killed11:01
wgrantI too tried back in the early days.11:01
wgrantBut there's a lot of refactoring required.11:02
wgrantThen I decided that attempting to arrange the application's demise was more productive.11:02
ajmitchthis is why I've not really touched it since11:02
nigelboh, it is going to be killed?11:03
ajmitchif wgrant has his way11:03
wgrantSadly, others do not seem convinced.11:04
ajmitchsomeone broke the css again?11:08
henningeajmitch: yup, looks like it11:17
=== noodles785 is now known as noodles775
deryckMorning, all.12:03
jmlI'd love to spend a couple of months improving our developer documentation & tools.12:03
jmlderyck, good morning12:03
jmlderyck, just quickly, what's the status of https://dev.launchpad.net/LEP/BugzillaComponents ?12:07
deryckjml, we're in progress on it.  bryceh started coding a couple weeks ago.12:08
jmlderyck, ta.12:08
deryckjml, I thought you approved this one.  Did we leap before we looked?12:08
jmlderyck, it's approved, but it was in the "Ready to code" section. Just tidying up the LEP page.12:08
deryckah, ok.12:08
jmlthe page tells a slightly different story to the Kanban boards, I think :)12:09
lifelessjelmer: well it, itself, got through ec212:16
lifelessderyck: for your delectation https://code.edge.launchpad.net/~lifeless/launchpad/bugmessage/+merge/3562012:18
lifelessjelmer: two branches since have passed ec2, but not got through pqm12:19
derycklifeless, nice!12:19
* thumper halts12:28
lifelessderyck: hopefully12:28
lifelessderyck: we're 3 weeks out from starting the data migration ;)12:29
deryckheh, well true.  But still it's step in the right direction.12:29
deryckbigjools, hey.  I just now noticed you requested a review from me.  Sorry.  You still need this?12:30
bigjoolshey deryck, yeah it would not hurt if you had a look.  It's to do with closing private bugs from uploads.12:31
deryckbigjools, ok, will look now.12:31
bigjoolscheers12:31
bigjoolsderyck: we had the conversation ages ago where we said it would be a good idea to do the closing in a Job, but I've decided on the dirty hack instead :)12:32
deryckbigjools, right,  I recall that now.  And you dirty hacker, you. ;)12:32
lifelessderyck: bugtrackerset isn't pagination12:33
lifelessderyck: though it only has 900 rows, so its not really dying for it.12:33
lifelessjml: thanks for landing that fix the other day12:35
lifelessbigjools: your cps are done; can you refreeze the db in prod though?12:35
jmllifeless, np12:35
bigjoolslifeless: it was first on my list of things to do this morning, and the branch is playing in prod_lp right now12:36
lifelessbigjools: sweet, thanks12:36
bigjoolslifeless: although the DAS enablement branch should have gone to appservers as well, BTW12:36
lifelessbigjools: we deployed to all12:36
lifelessbigjools: edge prod backends the works.12:37
bigjoolslifeless: your CP request just said "soyuz" ?12:37
lifelessyes, but there were 4? 5? things, and we want same revs as much as possible.12:37
bigjoolsif it went everywhere then great12:37
lifelessso chex just said 'meh, the works'.12:37
bigjools:)12:38
bigjoolsthanks for getting it in12:38
derycklifeless, right.  I didn't think it was paginated.  Would still benefit from that, though the page isn't really doing much short of the listing I think.12:38
lifelessbigjools: If you'd had it partially there I would have known in advance to ensure it got to the appservers :) Still it, did, so its cool.12:38
lifelessderyck: I'm sure of it12:38
lifeless11 /    8  BugTrackerSet:+index12:38
lifelesspity that the oops are not listed12:39
lifelessSpamapS: hey12:43
lifelessSpamapS: what was that 11 second api you found again?12:43
wgrantbigjools: What do you think about bug #566339? I'm fairly sure it's not the one that you've fixed.12:50
bigjoolspossibly yeah, there's more than one place that sends emails12:50
wgrantYay.12:51
deryckbigjools, so I'm not really worried about this change as it stands now, but I do have concerns other additions to the script don't come along acting on a not security proxied bug and doing things we don't want.12:51
bigjoolswell the bug mail and the upload notifications I mean12:51
bigjoolsderyck: totally - this change is completely isolated to that one function though, so it should be fine. I hope :)12:52
bigjoolsderyck: thanks for looking12:52
deryckbigjools, well, I would rather have the comment above be a true XXX or a strongly worded "if you do more than fix release bugs here, this has to move to jobs."  What do you think of that?12:52
bigjoolsderyck: possibly - I'm not sure the job is necessary but I agree with a strongly-worded warning about being careful with the unproxied object in that function/.12:53
bigjoolsthen the developer can make an informed choice about what to do12:54
deryckbigjools, right, that works.  Thanks.  r=me.12:54
bigjoolsderyck: great, thanks12:54
lifelessdanilos: if I'm still not getting it, perhaps we can talk my morning; tis midnight here.12:56
=== mrevell is now known as mrevell-lunch
daniloslifeless, sure12:59
lifelessdanilos: also I really want to figure out if it was canonical_url, or the template code, or 50/50 that contributed to the big +templates speedup13:00
lifelessdanilos: I'm already encouraging gary to get the new template engine widely deployed asap, but don't have enough data yet to say if we need to overhaul/replace/ditch canonical_url.13:00
lifelessderyck: https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1720G8013:06
lifeless938 queries!13:06
=== matsubara-afk is now known as matsubara
deryckoh, wow.  At least one very tracker then.13:07
lifeless1 915 4354 4 4350 SQL-launchpad-main-slaveSELECT COUNT(*) FROM BugWatch WHERE BugWatch.bugtracker = %s13:07
lifelessits counting the bugs per tracker.13:07
lifelessgroup by time boys!13:08
deryckok, so that's a pretty cheap fix!13:08
deryckright!  group by FTW! :-)13:08
lifelessshould be for a while, yes13:08
deryckToday's my long day, so I'll see what I can do today.13:08
lifelesshttps://bugs.edge.launchpad.net/malone/+bug/61837513:10
stublifeless: I'm thinking of making scripts that call logger.exception(msg) emit an OOPS. Worthwhile making scripts that call logger.error(msg) emit an OOPS too? Or logger.warn(msg)?13:11
lifelessderyck: Time: 90.955 ms13:11
wgrantjelmer: Morning.13:11
lifelessselect BugWatch.bugtracker, count(bugwatch.*) from bugwatch group by bugwatch.bugtracker;13:11
jelmerwgrant: hi13:11
lifelessstub: \o/13:11
lifelessstub: here are my thoughts13:12
lifelessstub: things that go wrong in scripts should be oops13:12
stubTo all three? I was thinking of starting with exception and error.13:12
lifelessstub: except for things that go wrong writing oops out.13:12
lifelessstub: I'd do exception and error, and let everyone know that thats happening.13:12
stubk13:13
lifelessstub: just make sure there is a backdoor to say 'hey, oops writing failed'13:13
lifeless(and include the traceback of *that* failure)13:13
lifelessok, really must go.13:13
lifelessavoir.13:13
stublifeless: I'm not going to stop the log.error() output, just create the logs in addition.13:13
stubnight13:13
wgrantjelmer: Your build uploading fixes seem to have alleviated my concerns. Looks pretty good now.13:14
jelmerwgrant: Thanks!13:17
wgrantjelmer: Are you deliberately storing the upload log in all cases now?13:17
wgrantThere's also a tiny race (the upload processor may catch a build after b-m moves it into incoming, but before it commits the UPLOADING status), but that may not be a concern.13:19
wgrantThis is all too complicated :(13:19
jelmerwgrant: you're thinking we should have an explicit database commit before we do the move?13:23
wgrantjelmer: That might work.13:24
wgrantOtherwise, well, the extremely unlikely case will probably happen at some point :)13:24
wgrantAnd then we'll have builds stuck in UPLOADING and the world will end.13:24
jelmerwgrant: actually, it won't be an issue at the moment since the uploadprocessor will warn if it encounters a build that doesn't have the right build.status and skip that directory.13:25
wgrantjelmer: Didn't you just change it to move it to failed?13:26
wgrantIt was OK when it just skipped.13:26
jelmerwgrant: hmm, perhaps it should be changed back to only skip to cope with that situation13:37
wgrantjelmer: It'd be nice if it would skip it once, but that's probably hard to arrange.13:39
wgrantjelmer: Maybe skip if date_finished is in the last 5 minutes or something.13:54
gmbGaaaaah.13:58
gmbCan anyone remember how to raise an exception (or do something similar anyway) in YUI3?13:58
james_wjml: I'm pretty close I think. I need to move the code from security.py on to the model, and tweak some methods, then get the pre-requisite branch reviewed13:59
james_wI haven't worked on it in a while though13:59
gmbOr maybe I should just stick with the JS way of doing things.14:00
=== Ursinha-afk is now known as Ursinha
jelmerwgrant: A commit/flush seems like the proper thing to do though.14:02
wgrantjelmer: As long as nothing expects an UPLOADING build to have an entry in incoming.14:03
jelmerwgrant: right14:04
wgrantjelmer: Previously the upload log was recorded only on failure -- it's probably fine to record on success too, but I'd like to be sure that's a deliberate change.14:08
jelmerwgrant: yeah, I saw your point earlier. I was going to wait for Julian to come back from lunch and then ask him about it.14:08
* bigjools is back14:09
wgrantIt might be a good idea to record it. But it's a little bit of extra librarian bloat.14:09
jelmerwgrant: it's not recorded on successful uploads to save up on space, but lp-code has a triaged bug open about the fact that not storing it for successful builds is inconsistent14:09
wgrantYeah, I saw that.14:09
wgrantGiven the other large files we store for every build anyway, the space is trivial.14:10
bigjoolsjelmer: the bug is filed on lp-code?14:11
jelmerbigjools: yeah - it just talks about recipe builds14:11
bigjoolsI'm inclined to stay with the existing behaviour14:11
jelmerbigjools: https://bugs.edge.launchpad.net/launchpad-code/+bug/14:11
jelmer58189214:11
bigjoolsI don't see the point of storing successful upload logs14:12
bigjoolsnobody will look at them14:12
jelmerabentley: hi14:13
abentleyjelmer, hi.14:13
jelmerabentley: You appear to be the reporter of bug 581892. I'm touching the related code at the moment and we were just discussing how useful having the upload logs for successful builds would be.14:14
jelmerabentley: The upload logs are currently not stored because they're not particulary useful for anything and just take up space on the librarian.14:15
abentleyjelmer, I think that knowing what a successful upload looks like can help with debugging unsuccessful ones.14:15
abentleyjelmer, it also seems asymmetrical.  Why store build logs and not upload logs?14:16
jelmerabentley: build logs contain output from the package build system, they might be interesting to the uploader.14:17
bigjoolsmy suggestion is to make it optional depending on what the upload policy says14:17
bigjoolsnobody wants or needs it in soyuz world14:18
bigjoolsAFAIK anyway14:18
bigjoolsbut that should not block this landing14:18
bigjools(with the existing behaviour)14:18
jmljames_w, that's great.14:18
abentleyjelmer, I don't understand why "contain output from the package build system" makes it more storable.14:18
wgrantIt's useful to see how the package was built. There's more than a binary situation there.14:19
jmljames_w, btw, do you think it would be useful to have a tool that gets the build dependency branches for a given project?14:19
jelmerabentley: it makes it more interesting, thus more storable. as a package uploader I often look at succesful build logs, I have never even thought about looking at the upload logs.14:19
wgrantWith a successful upload... it just works.14:19
jelmerbigjools: That seems reasonable14:19
gmbmars, Around?14:20
james_wjml: I think so14:20
abentleyjelmer, bigjools: when I was first looking at it and coding my own build page, it looked like something was wrong.14:20
abentleyBecause I knew the upload had happened, and I knew we store logs, but I couldnt' see it.14:21
jmljames_w, I don't think it would be too hard to do with what we have now.14:21
james_wjml: indeed not14:21
abentleywgrant, could you give me an example of different ways the package could be built?14:21
jelmerbigjools: I was hoping there was quick consensus on this and we could deal with that bug (whether it be wontfix or fixcommitted), but since there isn't I'll just keep things as is for the moment and leave that bug alone.14:21
jmljames_w, perhaps I'll knock up a prototype and then see if I can get someone else to take over work on it :)14:22
bigjoolsabentley: the soyuz build pages seem to be fine without it14:22
jelmerabentley: the compiler output would be part of the build output14:22
wgrantabentley: configure might make a bad decision based on the installed build-dependencies.14:22
bigjoolsjelmer: it should be policy based14:22
jml(although more likely I'll get distracted fixing txrestfulclient14:22
jml)14:22
wgrantabentley: There could be build warnings.14:22
wgrantWe could have braindead packages detecting the installed kernel version and tailoring themselves to it grrrrrr.14:23
james_wjml: good idea14:23
james_wboth of them14:23
jml:)14:23
abentleywgrant, thanks.14:24
wgrantSo, I agree that it would be nice to store successful upload logs, and it would make things more consistent.14:24
wgrantBut they're really not useful, and are a bit of bloat.14:24
wgrantabentley: Why did Code want them?14:25
abentleywgrant, when I was coding up the the build pages, I found it surprising.  I thought the upload logs were "missing".14:26
wgrantAh.14:26
gmbmars, Unping; I'm an idiot.14:26
bigjoolsI don't think that's a compelling reason to add them, personally.14:27
wgrantWell, it does simplify archiveuploader if they are added.14:28
abentleybigjools, we probably have different thresholds for breaking symmetry.  Their slight bloat doesn't seem like a compelling reason to make the system more complicated to me.14:29
bigjoolsI think you have that back to front, but that's just my opinion14:30
wgrantCode does have branchrevision... :P14:30
abentleybigjools, that opinon would be consistent with us having different thresholds :-)14:30
bigjoolsheh, once you're used to branchrevision, nothing seems like bloat :)14:31
abentleywgrant, thumper and I are looking at ways to get rid of it (or at least remove the scaling problems).14:31
wgrantabentley: Excellent.14:32
bigjoolswgrant: I have a challenge for you14:40
=== mrevell-lunch is now known as mrevell
=== benji____ is now known as benji
wgrantbigjools: Oh?14:50
bigjoolswgrant: yeah, we need a test case for bug 55683914:50
wgrantIs that the +queue 403 that I was arguing about earlier?14:51
bigjoolsit's the double copy thing.  Crap that's a private bug, sorry.14:51
wgrantOh, that one.14:51
bigjoolsnoodles775 may have pinpointed the source of the problem in the packagecopier code14:52
wgrantyeah, can't see it.14:52
Ursinhalifeless, rev 11522 was blocked on bug 86185, that was also linked to the landed branch and qa-needstesting when it was in fact qa-untestable, because unrelated to the fix14:52
bigjoolswhere if you're copying the same SPR with binaries, it lets it through14:52
Ursinhalifeless, the problem we discussed before (bug 638468)14:52
wgrantWhat's the actual problem?14:52
wgrantA double copy should be fine.14:52
bigjoolswgrant: it was nightmarishly hard to reproduce, but I eventually found out that if you double tap the copy button you end up with the same package trying to get published twice, and the publisher spazzes out with a QueueInconsistentStateError14:53
wgrantOh, delayed copies?14:54
bigjoolsnope, regular14:54
wgrantEr.14:54
wgrantWhy would it whinge about that?14:54
wgrantThat doesn't make sense.14:54
bigjoolsthey were both private archives14:54
wgrantWhat's the QISE?14:54
bigjools"blah" is already published in archive for <series>14:55
wgrantThat sounds delayed to me.14:55
wgrantIn fact, yes.14:55
wgrantThe publisher only deals with the queue in the case of a delayed copy.14:55
* bigjools shrugs. It happens.14:56
bigjoolsbut yeah it's in process-accepted14:57
wgrantYou're sure it was direct?14:57
bigjoolsso something went very wrong14:57
wgrantAh, so no, delayed.14:57
wgrantIt's not easy to reproduce?14:57
bigjoolswith the double tap I can do it14:57
wgrantHm, I guess you might have to get another request in before the PackageUpload is there.14:57
* wgrant checks.14:57
wgrantYeah, so you need to have two concurrent transactions.14:59
wgrantOr the second will be rejected.14:59
wgrantThat is hard to test :(14:59
bigjoolsexactly :)14:59
wgrantIt's the same as the upload conflicts we get sometimes.14:59
wgrantSince simultaneous uploads on different machines can violate the file conflict checks.14:59
wgrantThese should probably be solved similarly.15:00
bigjoolsyup15:00
bigjoolsand I've no real idea how15:01
wgrantEverywhere else solves them with UNIQUE constraints. But I don't think we can.15:02
wgrantWe need some way to lock an archive.15:03
bigjoolsmaybe a partial commit15:04
bigjoolsas soon as we get into the copy code15:04
bigjoolsso it's a race as to which appserver thread gets there first and only one wins15:04
wgrantPartial commit in webapp == nauseating.15:04
* bigjools shrugs15:04
bigjoolshow else?15:04
bigjoolswe need a lock15:05
wgrantWe do.15:05
wgrantBut I've no idea how to do that here.15:05
wgrantHopefully somebody else does.15:05
bigjoolsballs, stub just left15:05
bigjoolshmmm15:06
bigjoolsmaybe we can use optimistic locking15:06
bigjoolsnot sure that's the right term actually15:06
bigjoolssince the appservers run with isolation level serializable, we can make the txn write to the same thing15:07
wgrantNo.15:07
bigjoolsone will fail15:07
wgrantThe appservers are READ COMMITTED :(15:07
bigjoolsnope15:07
bigjoolsstub told me not 10 minutes ago they're serializable15:07
wgrantEr.15:08
bigjoolswhich in PG is actually snapshot isolation15:08
wgrantDid that change recently?15:08
wgrantI see you're right now.15:08
wgrantBut I see a lot of READ COMMITTED in old logs.15:09
bigjoolshowever I have a horrible feeling that the transaction just gets retried if it fails15:09
wgrantYep.15:09
bigjoolswe could work around that easy I think15:09
bigjoolstreat a lock flag on an archive as a copy mutex15:09
bigjoolswe just need a way of resetting it later15:10
wgrantWell, we could probably just set it and unset it.15:10
wgrantAnd that would cause a conflict.15:10
bigjoolsit won;t work if the transaction is retried15:10
wgrantAnd while the request would be retried in the case of a conflict, that would mean that the check would be executed, and fail this time.15:11
wgrantSo I think it would work.15:11
bigjoolsyou'd need to 1) check it's not already set, b) then set it or fai;15:11
* bigjools chuckling at jml's tweet15:11
wgrantIf the start of the copy just sets and unsets it, it should cause a conflict in other simultaneous copies, right?15:12
wgrantIn READ COMMITTED that wouldn't work, since they'd have the same final value.15:12
bigjoolswgrant: in that scenario, the 2nd copy would fail once then work the second time15:12
bigjoolsI think15:13
wgrantbigjools: It wouldn't work the second time: the whole request would be retried, which would mean the duplicate check would fail the second time.15:13
bigjoolsok I'm thinking of it re-running the code for the request, maybe that does't happen :)15:14
wgrantIt doesn't just rerun the SQL.15:14
wgrantThat would be insane.15:14
bigjoolseparse.  what?15:15
wgrantWhen retrying because of a conflict, the request is restarted.15:15
wgrantSo all the checks are run again.15:15
wgrantIn a fresh transaction.15:15
bigjoolsok15:16
bigjoolsso it would work the 2nd time15:16
wgrantIn that the duplicate check would reject the copy.15:16
bigjoolssince there would no longer be a conflict15:16
wgrantWhy not?15:16
wgrantOh.15:16
wgrantConflict as in transaction conflict, not archive file conflict.15:17
bigjoolsyes15:17
bigjoolsthe current code does not prevent archive file conflicts15:17
wgrantRight.15:17
bigjoolsso we need to check the flag before embarking on the copy, then try and reset it later.15:18
bigjoolsthat's the nasty bit, only the publisher comes to mind, and that's a long delay to prevent a copy :/15:18
bigjoolshmmm if you don't double tap the copy button, the 2nd request after the current one finishes does get rejects as I recall15:19
wgrantWhy check it? Nothing should leave it set.15:19
wgrantIt does, yes. It will confirm that there's no existing delayed copy.15:19
bigjoolsif it's not left checked then what's to stop another transaction crossing?15:20
wgrantbigjools: If each copy transaction sets and unsets it, they should all conflict.15:20
bigjoolsyes and the retry will work, as we said15:21
bigjoolsso we need the isolation guard and also a code guard15:21
wgrantThe retry has two possible outcomes:15:21
wgrant 1) It occurs during the same conflicting transaction. It too will conflict, and be retried again; or15:22
wgrant 2) It occurs after the conflicting transaction. It will perform the copy checks, notice the file or PackageUpload conflict, and reject the copy.15:22
bigjoolsthere is another way15:23
bigjoolswe make a copy a "copy request"15:23
bigjoolsthey need to go offline anyway, they are too complicated to happen in a request15:24
bigjoolsthen we serialize the copies through a script15:24
wgrantI don't think they're actually that complicated. The checker can be optimised much further.15:24
bigjoolsit's not just the checker15:24
wgrantAnd inline feedback is a whole lot better than forcing clients to poll..15:24
bigjoolscopying one package with loads of binaries also goes titsup15:25
wgrantIs that the checker, or the actual copy?15:25
bigjoolsI *think* the latter15:25
wgrantHmm.15:25
wgrantOdd.15:25
Ursinhasinzui, hi, I'm sorry about your qa-ok bugs retagged by mistake -- I've already fixed them back to qa-ok. We're experiencing preconditional errors in the api with the script so it believes last run was unsuccessful and tries to tag again15:25
bigjoolsbut I am unsure15:25
wgrantI guess for a kernel it could get fairly large.15:25
Ursinhasinzui, I'm working on a fix15:25
bigjoolsthat's exactly the scenario I am thinking of :)15:26
bigjoolswe can't currently copy a kernel reliably15:26
bigjoolsunless it's delayed15:26
sinzuiUrsinha, its okay15:26
wgrantBut there's only 8 archs and probably only a few dozen binaries for each.15:26
bigjoolsactually y'know what, delayed copies are requests-to-copy thinking about it15:26
wgrantSo it's only a few hundred inserts, even if we do it naively.15:27
bigjoolsbut we pre-checked 'em15:27
wgrantWe should try to optimise before we externalise.15:28
bigjoolsagreed15:28
wgrantParticularly given that the primary motive for delayed copies has evaporated.15:28
bigjoolsyeah :/15:28
wgrantStill, they'll be useful for distro copies.15:29
wgrantSo it wasn't all wasted effort.15:29
=== Ursinha is now known as Ursinha-lunch
=== salgado is now known as salgado-lunch
SpamapSlifeless: the 11 second api call was for basically all bugs.16:38
jcsackettis there a way to do conditional define statements in a div in TAL? sort of "condition:view/attr then define:var attr else define:var some_other_attr" ?16:46
benjijcsackett: tal:define="var python:view.attr and one_value or another_value"16:51
jcsackettbenji: thanks. you are my new hero.16:51
benji:)16:51
statiksinzui, your mail about the text = bytea error on launchpad/maverick, there is a branch attached to bug#585704. Should I apply that patch to the version of storm shipping in maverick today?17:00
statikthe patch is here: https://code.edge.launchpad.net/~jamesh/storm/bug-585704/+merge/26472/+preview-diff/+files/preview.diff17:03
sinzuistatik: I believe henninge tried it without success.17:03
statikodd. it's one-line patch to storm/variables.py, excluding tests. you would probably also have to fix some of the launchpad tests to make it all work though (U1 had to do the same)17:05
statiksinzui: i ask because you were "hoping it would be fixed", and I can patch and upload storm to ubuntu if there is a patch required to enable launchpad.17:06
sinzuistatik. yes. excluding tests will not fix Lp17:06
sinzuistatik, Lp dies on the first db request for a lot of page, such as a person page17:07
=== benji is now known as benji-lunch
statiksinzui, my point is simply that downgrading psycopg is not a solution, and there is a rapidly closing window where fixes could be uploaded to maverick, and i am ready and willing to upload such a patch to storm if it helps the LP team.17:12
sinzuistatik. I am out of my depth. gary, stub, or benji-lunch may understand the issue better. I do not know for certain there is a fix I do know that the foundations team controls the versions of storm and psychopg2 and apply patches as needed17:14
statikah, ok.17:14
marsderyck, ping, may have found a nasty regression on the +filebug page JavaScript.  I need some help verifying the problem.17:19
deryckmars, sure.  What's up?17:20
marsderyck, was visiting https://bugs.edge.launchpad.net/launchpad-foundations/+filebug, used the "Extra options" to assign a person.  Pressing the 'Find' link does not throw up a JavaScript dialog - instead it takes you to the search page, trashing all form input.17:22
deryckyup17:22
derycknasty and known ;)17:22
mars:(17:22
marsok, thanks deryck17:23
* deryck is looking for bug17:23
deryckhttps://bugs.edge.launchpad.net/malone/+bug/51359117:23
deryckmars, it's on my top 15 bugs list, but I just haven't gotten someone on it yet.17:24
marsthanks, dupe search didn't turn up that bug17:24
marsderyck, thanks for letting me know.  I'll stop bugging you now :)17:25
derycknp at all17:25
=== al-maisan is now known as almaisan-away
=== matsubara is now known as matsubara-lunch
=== Ursinha-lunch is now known as Ursinha
=== deryck is now known as deryck[lunch]
=== salgado-lunch is now known as salgado
Ursinharockstar, hi :) could you triage bug 639785, please? I've seen those on lpnet for a few days now18:04
rockstarUrsinha, since you asked nicely.18:04
rockstarAlso, wtf is mup?18:05
Ursinhait's dead18:05
Ursinha_mup_, hi18:05
=== benji-lunch is now known as benji
Ursinharockstar, thanks :)18:09
* gmb EoDs. Night folks.18:11
=== matsubara-lunch is now known as matsubara
rockstarjml, can you point me to an example LEP that you find to be the best example of how you envision a LEP?18:57
=== deryck[lunch] is now known as deryck
lifelessUrsinha: ah cool19:36
lifelessjcsackett: can you QA https://bugs.edge.launchpad.net/launchpad-registry/+bug/623408 please?19:57
lifelessderyck: hiya20:15
lifelessabentley: ping20:16
abentleylifeless, pong20:16
jcsackettlifeless: shoot, yes. sorry. qa'ed them in fact a few days ago off the kanban and forgot to update LP.20:16
deryckhi lifeless20:16
jcsackettlifeless: done.20:16
lifelessabentley: just seeking an answer on the (probably unclear) mail I sent about the builder patch in stable & CPing it20:16
lifelessjcsackett: thanks!20:16
jcsackettlifeless: you're welcome. :-)20:17
lifelessderyck: so, I'm thinking to do bugtrackerset, unless you have it in-flight at the moment20:17
derycklifeless, oh, no.  Was actually just about to turn to it in 30 minutes or so.  You're timing is good.20:18
lifelessderyck: nono, don't let me stop you :)20:18
lifelessderyck: just when you sign off commit the inprogress work and push it; then tag me.20:19
deryckah, sure.  I can do that.20:19
deryckthanks lifeless!20:19
abentleylifeless, I suppose it probably is.20:20
lifelessabentley: thanks20:20
lifelessabentley: we've got a bunch of OOPS and timeout fixes we can pull across https://devpad.canonical.com/~lpqateam/qa_reports/launchpad-stable-deployment.txt20:20
abentleylifeless, it does require a new bzr-builder, and it requires it in sourcedeps.conf20:20
lifelessits easier to merge rather than CP when possible20:21
lifelessabentley: ah cool.20:21
abentleylifeless, I'm not sure what you hope to gain from it.20:21
lifelessif 'it' is your patch, bring it across lets me do a branch merge20:22
abentleylifeless, it's just pushing responsibility for safety checks into a better place.20:22
lifelessrather than a partial merge, when preparing the new revision for production-stable20:22
lifelessabentley: cool, it was tagged 'orphaned' was all, so I wanted to be sure it was ok :)20:23
lifelesscategorised as orphaned, I should say, not tagged.20:23
abentleylifeless, It's "orphaned" because it doesn't fix any bugs.20:23
lifelessyeah, which is cool20:23
lifelessas I say, I wanted to do a proper merge and was just cross t's and dotting is.20:23
abentleyI did not bother creating a bug that the code was not it the most optimal place.20:23
lifelessexactly, I wouldn't either.20:24
abentleylifeless, it sounds like a rather aggressive approach to CPing to me.20:24
lifelessabentley: its precisely what we'll be doing once we have the production schema qa environment anyway20:24
lifelessabentley: it can be done now but it needs a little more effort, which I'm delighted to put in, given the rewards20:25
abentleylifeless, that also worries me.20:25
lifelessabentley: can you enlarge on that?20:25
abentleylifeless, merely sticking UI stuff behind feature  flags doesn't seem like a very good way to avoid introducing regressions.20:26
abentleylifeless, I'm working on a lot of changes to put incremental diffs in merge proposals, and there's been a lot of refactoring.20:26
lifelessabentley: we're also QAing it before deploying it.20:26
lifelessabentley: I'm not CPing anything that hasn't been QAd.20:27
abentleylifeless, One can only QA so much.  I would rather give the changes time to cook, too.20:27
lifelessabentley: we're giving it to users uncooked at the moment20:28
lifelessand unqaed20:28
abentleylifeless, not really.  It stays on staging for half a cycle.20:28
lifelessabentley: if its in db-devel, yes.20:28
lifelessabentley: anything in devel, which is all thats in scope for now, hits users the next day after buildbot blesses it. (At the moment, this will change with RFWTAD)20:29
abentleylifeless, some users, not all users.20:31
abentleylifeless, I'd rather break edge than break both edge and production.20:32
lifelesswe appear to break both edge and production once a cycle or two at the moment due to the skew between edge and production.20:32
abentleylifeless, I wonder how that compares to the number of times we break edge alone?20:35
lifelessabentley: so do I20:35
lifelessabentley: I also wonder how many of the things that break edge we would pickup if we qa'd20:35
abentleylifeless, we often do qa on edge.20:36
abentleylifeless, feature flags have been presented as equivalently safe to the edge/production split.  I'm just becoming accutely aware that they are not.20:36
abentleylifeless, you can argue that on balance the risks are reduced or increased, but it's definitely a big change.20:37
lifelessabentley: Its a huge change20:37
lifelessabentley: I think it has massive benefits and that the risks are approximately the same.20:37
abentleylifeless, I think the risks of breaking production are increased.20:39
lifelessabentley: thats true; one of the things being used to mitigate that is smaller rollouts (more granular rollbacks) and manually initiated deployments (human paying attention after the deploy for issues) and no-downtime rollouts (lets us rollback without scheduling stuff if there is an issue)20:40
abentleylifeless, anyhow the reason I didn't reply to your email is because I haven't landed anything worth CPing, so I thought it was for someone else.20:42
lifelessabentley: no worries20:43
lifelessabentley: I figured I was unclear or confusing :)20:43
abentleylifeless, definitely some context on the change would have helped.  I don't keep revnos in my head.20:43
lifelesshah! yes.20:44
lifelesssinzui: hi, bug https://bugs.edge.launchpad.net/launchpad-registry/+bug/640700 - seeking your thoughts20:46
sinzuilifeless, I think half the oopese were me after doko made me an admin of openjdk. I was just using the form normally. The so-called problem message changes twice over the 90 minutes I was using the feature21:11
lifelesssinzui: and you were seeing it batched ?21:11
sinzuiyes21:11
sinzuiSkipping the the last batch, after doing a first batch seems to introduce the problem.21:12
sinzuiskipping TO the last btch21:12
sinzuibatc21:12
sinzuilifeless,  the batches are essentially sequential by date. I realised that the problem message (shown as a message id/timestamp) in the oops was from the start of the batches21:14
lifelessmoderate uses currentBatch21:15
lifelesssinzui: so i'm thinking there are two thinkgs we need to do.21:20
lifelesswe need to use message id as the selector in the form.21:20
lifelessI'm not sure how one does that with the way forms are wired up in lp21:20
sinzuilifeless, I think to loop in the action is brittle21:21
lifelesswe also need to handle receiving a form telling us to do something nonsensical and show that (1, N) messages as being unmoderatable, not cancel the entire thing.21:21
lifelesssinzui: I agree21:21
lifelesssinzui: in the sense that we bail out if anything is wrong, rather than doing what we can.21:22
sinzuiwe loop over the messages assuming the batch has not mutates since the form as rendered. Maybe we should iterate over what is submitted and look for the messages another way21:22
lifelessoh21:22
lifelessalso21:22
lifelessthe batch may not match the backing data21:22
lifelessyes21:22
lifelessso we need to quewry for the messages the form refers to only21:22
sinzuioh, in the 90 minutes I was testing, surely we got spam in the queue21:22
sinzuiI agree21:22
lifelessand handle those21:22
lifelesssinzui: can you give me some tips on getting the message id (or some other primary key) in the form data?21:23
sinzuiwell I have a few hours more experience then yourself...21:23
deryckbryceh, hey.  Let's wait another day before we do another Bugzilla tracker.  I see a backlog for gnome-bugs.  And I want to make sure checkwatches isn't overloaded.21:23
lifelesssinzui: hah!21:23
lifelesssinzui: ok, I will look at it during my day21:24
lifelessthumper: is https://bugs.edge.launchpad.net/launchpad-code/+bug/633758 qa'd?21:24
bryceh deryck, okie doke21:24
sinzuiMessageApproval (the message in holds) as a foreign key to the Message and the MailingList. We can query the table for ids21:24
sinzui^ lifeless21:24
derycklifeless, I'm being too optimistic.  I'm not going to get to this bugtracker set stuff today.  Unless later tonight for me.21:25
brycehderyck, might let some of the grousing about getting emails die down a bit21:25
deryckyeah :-)21:25
lifelessderyck: de nada21:25
lifelessderyck: Being fancy free as I am, I may.21:25
lifelessderyck: or I may not, I'm trying to organise a CP too21:25
deryckright, np21:25
lifelesshmm21:25
lifelessactually, friday is a silly day for that21:25
lifelessI'll agitate folk to QA stuff21:26
lifelessand CP on monday21:26
brycehderyck, btw, I assume there's no way we can temporarily suppress the emails from the checkwatches results, or is there?21:35
deryckbryceh, not really.21:35
deryckhmmm, well unless there is a flag to the script.  Let me see....21:36
deryckbryceh, no, sorry21:38
deryckbryceh, maybe after Mozilla we should hold off unless some asks about a tracker?21:38
brycehok cool, I'd be embarrassed if there had been an easy way to prevent the emails :-)21:39
deryckheh21:40
lifelessbbiab, doctor appt21:51
wallyworld_morning21:54
jelmer'morning wallyworld_21:54
wallyworld_hi jelmer21:55
=== salgado is now known as salgado-afk
abentleythumper, are we standupping at 5:15 or 6:00?22:00
wallyworld_abentley: i've logged in now so we can do it early if everyone is here22:02
mwhudsonmorning22:31
mwhudsonLaunchpad encountered an error during the following operation: generating the diff for a merge proposal.  The source branch has pending writes.23:25
mwhudsonit doesn't say which branch :)23:25
thumper:(23:31
thumpermwhudson: file a bug :)23:31
mwhudsonthumper: ok23:32
=== matsubara is now known as matsubara-afk
mwhudsonhm, https://bugs.edge.launchpad.net/launchpad-code/+bug/612171 is somewhat related23:38

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