/srv/irclogs.ubuntu.com/2011/09/27/#launchpad-dev.txt

poolielosa ping, i'd like help qa'ing bug 85515001:18
_mup_Bug #855150: excessive translation import template mails (also poor phrasing) <mail> <qa-needstesting> <spam> <translations> <Launchpad itself:Fix Committed by mbp> < https://launchpad.net/bugs/855150 >01:18
pooliewgrant, lifeless, wallyworld, can you help me work out how to qa it at all?01:18
pooliei'm not sure manual qa would have a good tradeoff in this case01:18
pooliesince there is a fairly good unit test, and the dependencies for it (branches, mail) are a little annoying on qas01:19
wgrantI was not a minute away from asking you about that.01:19
wgrantpoolie: You can't do it with a manual upload?01:20
hloeungpoolie: how can I help you?01:20
wgrantWithout branches?01:20
pooliehloeung, i'm just trying to work that out01:20
pooliehloeung, can you tell me how i'd find out if the poimport cron job runs on qas?01:21
pooliewgrant, ok i'll upload a tarball and we'll see01:21
hloeungpoolie: I've checked and it seems there isn't any poimport cron jobs for QAStaging01:30
pooliecould you run rosetta-poimport for me please?01:31
hloeungpoolie: sure!01:32
hloeungpoolie: https://pastebin.canonical.com/53423/01:35
wgrantThat looks like success.01:36
wgrantThere's an email about the error, but nothing about the successes.01:36
pooliehloeung, also send-bug-notificatinos?01:37
hloeungpoolie: done01:40
pooliewgrant, unless you can think of anything else i'm going to say that's qa-ok02:05
wgrantpoolie: It looks fine to me.02:06
wgrantLifelrss: Back yet?03:40
StevenKDoes Y.Assert have a isNotNull ?04:00
wgrantY.Lang.isValue?04:01
wgrantfalse for null/undefined, true for everything else.04:01
wgrantExcept possibly NaN. That might be false as well.04:01
wgrantI forget.04:02
StevenKThis is for a test, mind.04:02
StevenKY.AssertTrue(Y.Lang.isValue()); ?04:02
StevenKwallyworld: ^ ?04:03
wallyworldStevenK: if you are checking that variable xxx is not null and not defined, that will work04:04
wallyworldbut you don't need the isTrue04:04
wallyworldassrtTrue04:04
wallyworldor maybe you do04:05
wallyworldit's in a test, so yes i think04:05
wallyworldthere is also isNumber, isBoolean etc04:06
StevenKIt's a node04:06
wallyworldah, right, then isValue i think is what you want04:07
wallyworldsolves the == vs === problem04:07
wgrantwallyworld: Are you on top of your two QA items?04:11
wallyworldwgrant: nope, finishing off something else04:11
nigelbHrm, I wonder why I havent got email from the landing last evening :|04:11
wgrantwallyworld: Any ETA on the QA? I'd like to deploy in the next hourish, before sending it off to the downtime hosts tonight.04:12
* wallyworld sighs. i was hoping not to have to context switch :-(04:13
* wallyworld looks at bugs again04:13
wgrantIt doesn't look like it should take long :)04:13
StevenKwgrant: Which revision were you planning?04:14
wgrant1404104:14
wgrantSend it out to ndt+librarian2 ASAP, then ftpmaster/ppa/librarian1 tonight if nothing blows up.04:14
StevenKPoor mizuho. It will be 150 revisions behind after that NDT.04:15
wgrantI'd been putting off librarian1 updates until it was HA, but that could still be weeks away, given what happened on Thursday :/04:15
* StevenK wonders if there is any update with galapagos04:16
wgrantIt's only been down for more than a month :)04:16
wgrantIt makes https://devpad.canonical.com/~wgrant/production-revnos ugly :(04:16
* wallyworld stabs qas. qa would be so much easier without the timeout errors04:16
wgrantwallyworld: Indeed :(04:17
StevenKwgrant: You should generate pretty HTML :-P04:17
wgrantStevenK: The script to generate it is, er, slightly unpleasant, due to the format of the input.04:18
wgrantcarob:~wgrant/bin/parse-revnos.py, if you have a strong stomach.04:18
StevenKYes, that is disgusting04:19
StevenKPerl!04:19
StevenKwgrant: Will you add forster in, or that can be done after?04:21
wgrantStevenK: forster/crowberry can be done without downtime later.04:21
nigelbStevenK: I dedicate this one to you :D https://twitter.com/#!/DEVOPS_BORAT/status/11761320557608960104:21
wgrantBut since spm is not here, I shall not ask too much of hloeung :)04:22
wgrantSpeaking of Perl.04:22
hloeungwgrant: I can try do those too if you like04:23
wgrantBest Practical appears to have the bzr colocated branch syntax, and are now importing even more RT code into LP :(04:23
StevenK"Source of Oracle is tell me latest version of PostgreSQL can be able download from mysql.com."04:23
nigelblol04:23
wgranthloeung: I know codehosting is a pain...04:23
wgrantForgive me, Unity. I did not mean to offend you by closing Empathy.04:26
StevenKHah04:27
StevenKI am disappoint. wc -l of my diff is 23504:27
wallyworldwgrant: done04:29
wgrantwallyworld: Thanks!04:30
StevenKCan haz review? https://code.launchpad.net/~stevenk/launchpad/private-bug-unsubscribe-confirm-2/+merge/7709104:46
wallyworldStevenK: i'll grab it04:46
StevenKAwesomeness.04:48
StevenKOr something.04:48
StevenKMy two garbo populators are doing nothing on prod04:49
StevenKContiniously blocked by postgres or archivepublisher transactions04:50
wgrantNot continuously.04:50
wgrantBut often.04:50
wgrantI'm not sure why they're making no progress.04:50
StevenKI'm trying to figure that out04:50
lifelessso for archivepublisher... we should fix that ;)04:52
wgrantWe should.04:52
wgrantIt's probably process-death-row.04:52
wgrantWhich is now taking 1.5 hours instead of 8 minutes.04:53
wgrantAnd yes, there's a lot of stuff that should be fixed.04:53
wgrantBut we cannot fix them.04:53
wgrantThere are no resources to fix them.04:53
lifelesswgrant: i spoke with flacoste and sinzui about security / privacy and implementation04:53
lifelesswgrant: I can give you a summary if you haven't had one already; the next step is for one of us to nab mrevell and run some questions by him04:54
wgrantlifeless: I was about to ask if you wanted to talk about that. I discovered another larger issue overnight.04:54
wgrantDiscussed it with sinzui in the standup, and we have no idea how to solve it.04:54
wgrantApart from going back to 2004 and hitting people who suggest multitask bugs :)04:55
wgrantlifeless: I've not had a summary of the discussions you had, however.04:55
StevenKprocess-death-row would make sense04:56
wgrantIt'll be far more obvious tomorrow.04:56
StevenKIf it isn't p-d-r, it's backups, and if its not those two it's replication lag04:56
wgrantBecause they'll be using custom DB users.04:56
wgrantlifeless: So, a summary would be nice :)05:01
wallyworldStevenK: done, with comments :-)05:03
wgrantStevenK: What if I try to unsubscribe the team that confers visibility?05:04
lifelesswgrant: skype ?05:05
pooliecinerama, https://bugs.launchpad.net/launchpad/+bug/86027305:44
_mup_Bug #860273: private ppa 'technical details' incorrect for admins <affects-canonical-is> <confusing-ui> <p3a> <private> <Launchpad itself:Triaged> < https://launchpad.net/bugs/860273 >05:44
=== vila is now known as babune
=== babune is now known as vila
=== almaisan-away is now known as al-maisan
adeuringgood morning07:29
huwshimimrevell: Can you think of a better title than "Customise visible information"07:40
pooliehuwshimi, "show/hide"?07:43
poolie(8 letters)07:43
poolielifeless, i'm going to write a braindump pre-lep for ssh oauth and git to get it off my brane07:44
lifelesssure07:44
huwshimipoolie: It's for choosing what bug info will appear in the list (the link opens a popup)07:46
lifelessedit result/report columns07:47
huwshimilifeless: Without using the word columns?07:49
huwshimiI also don't want it to sound like it will be filtering anything07:49
huwshimitricky07:49
huwshimivisible properties?07:49
poolieput a disclosure triangle next to the column headings?07:50
lifelesshuwshimi: so we're editing more than columns ?07:50
huwshimilifeless: This mockup doesn't have columns07:50
lifelesshuwshimi: or we're avoiding the word column ?07:50
lifelesshuwshimi: the search result doesn't ?07:50
huwshimilifeless: it's just for a normal listing of bugs (except that the bugs are not being displayed in columns)07:52
lifelessfields ?07:52
pooliedare i ask how are they being displayed?07:52
huwshimipoolie: In a list07:52
lifelessviews, properties, attributes, fields - easy to hand synonyms07:52
pooliemm07:53
pooliei guess what i'm getting at is, perhaps we can do without text and just show the things that are available07:53
poolieperhaps not07:53
lifelesshuwshimi: this is the solution for arbitrary things being included yes ? I like poolies suggestion of showing a single row 'sample' and letting folk drag/drop to-from it07:54
lifelessor perhaps show a sample with greyed out fields for things not being shown and clicking on them enables that field07:55
huwshimiok, that will have to do for today. Night all07:59
lifelessnn07:59
=== gmb changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: gmb | Critical bugs: 261 - 0:[#########]:256
lifelessteal is sinzui, wally, wgrant, stevenk and <memory fail>09:59
lifeless?09:59
wgrantlifeless: jcsackett09:59
lifelessthanks09:59
* wallyworld wishes were were the purple team10:02
wallyworldwe were10:02
bigjoolswallyworld: could be arranged10:09
poolieitym maroon10:11
nigelbFor a suffient bribe?10:12
nigelb*sufficient10:12
nigelbbigjools: YOu sound right out of Godfather there :P10:13
lifelessbigjools: python-oops-twisted 0.0.2 is in trunk, I'm going to cut a release in a minute10:13
wallyworldbigjools: ok, when you are out here i'll see what i can do10:13
lifelessbigjools: I couldn't reproduce that wtf thing, so I've asked for you to gather some info10:13
bigjoolsok10:14
lifelessbigjools: it may be something like 'something somewhere using cStringIO10:14
bigjoolsI'll reproduce10:14
lifelessbigjools: I also added support for filtered oopses10:14
bigjoolscool10:14
lifelessbigjools: if its filtered it now won't call the fallback at all; if its not published it forwards the event unaltered.10:15
bigjoolslifeless: generally I want both10:15
jtvstub: ReadOnlyLaunchpadDatabasePolicy is only for full-on read-only mode, right?  Wasn't there also some policy to get read-only transactions, but on the master store?10:16
jtvWe need to get object modifications in buildd-master under control so we know when we're committing what.10:17
lifelessbigjools: is that endorsing my change or asking for something different ?10:20
bigjoolslifeless: it sounds ok, if it's not you can be sure I'll let you know, or fix it :)10:21
lifeless\o/10:21
lifelessThe filtering is so that if you e.g. ratelimit, the fallback doesn't end up not being ratelimited.10:21
lifelessthe publishing is the case you identified yesterday10:21
lifelesstarball on pypi now10:22
lifelessbigjools: I need to chase a few other things; can you add it to the download cache yourself?10:22
bigjoolslifeless: excellent, I can sure10:23
stubjtv: I don't recall a policy for only read-only transactions on the master store.10:24
jtv:(  There's @read_transaction, but that still gives you a regular transaction (it just aborts it).10:24
jtv(And actually it should probably abort even on failure)10:24
stubjtv: What are you trying to do? Might be best to write a context manager that does 'set transaction_read_only to true' (or whatever it is) if necessary and resets on exit.10:25
jtvYeah.10:25
jtvI'm trying to make sure that builders and builds do not get modified except from specific, well-bracketed pieces of code.10:26
stubjtv: I think the only place we set transaction to read only mode is in the test harness so 'slave' connections fail writes.10:26
jtvThen I suppose I could try to promote whatever we have there to something production-usable.10:27
stubjtv: We can remove access to them entirely except via stored procedures?10:27
jtvThat may be taking it a bit too far; the code does rely on having the ORM.10:27
jtvI'm not sure how far down into various class hierarchies the object changes go.10:28
stubjtv: So various db users need write access to the tables, but you want to ensure modifications only happen in certain code paths.10:28
jtvYes, I think that's right.10:29
jtvThe latter part is definitely right.10:29
stubThe logic you are enforcing is too complex to do this in the Storm database classes? Or are you scared of people bypassing the ORM?10:29
jtvNo, not particularly worried about people bypassing the ORM.  Just don't know how to do it in Storm.10:30
stubThis *might* mean we need a service that is responsible for making the modifications, and everything else just gets SELECT access to the tables.10:30
jtvThat may already be the case.  The immediate problem is that that single service is complex and twisted.10:30
lifelessjtv: properties?10:31
stubYes, so maybe easiest and best in the long run to split it into bits.10:31
lifelessjtv: and/or validators?10:31
bigjoolslifeless: oops_twisted is not installing10:31
stubWe have examples for enforcing some stuff like this at the Storm level...10:31
bigjoolserror: Setup script exited with error: package directory './oops_twisted' does not exist10:31
jtvlifeless: that's approaching it from the wrong end.  The code is already there, and complex; I want to get a handle on what it's already doing.10:31
bigjoolslifeless: and bootstrapping doesn't work on a new checkout so I can't debug10:32
jtvstub: right now it's too many small bits.  That's part of the problem, in a way.10:32
lifelessbigjools: wow thats one messed up tarball10:32
jtvSo as the first step I want database changes explicit, and then I want to use that to make sure no unrelated changes go into the same transaction.10:32
lifelessbigjools: Have I mentioned my... disdain for setuptools?10:32
bigjoolslifeless: :(10:33
jtvstub: although to achieve that, the transactions may well get chopped into smaller bits.  But first we need to be very sure that we understand their boundaries.10:34
stubAnyone know why we are emitting long poll specific events on object creation/deletion instead of general events any service can listen for?10:34
lifelessbigjools: new tarball up10:34
bigjoolslifeless: 0.0.3?10:34
lifelessbigjools: 0.0.210:35
lifelessbigjools: it had 0 downloads ;)10:35
bigjoolslifeless: tut tut10:35
bigjoolsI downloaded it10:35
lifelessbigjools: EPIC SHRUG10:35
wgrantlifeless: You are the bane of packagers everywhere :)10:35
bigjoolshow will I know I have the fixed one?10:35
lifelessbigjools: specifically, because it was barfing on build, you can't have an egg for it, so it won't hit the failure mode of not updating for someone10:35
lifelessbigjools: if it was building brokenly, it would be different10:36
bigjoolslifeless: fancy updating the lp code too? :)10:36
lifelessbigjools: not a code problem10:36
bigjoolswhy is bootstrapping buggered?10:36
lifelessbigjools: bad MANIFEST file10:36
lifelessbigjools: so the 0.0.2 tarball file had no contents beyond setup.py10:36
bigjoolslol10:37
lifelessREADME, PKG-INFO and an oops_wsgi directory.10:37
lifelesstotally epically fucked10:37
bigjoolsBTW electrician in the house, I may lose connectivity10:37
* stub wonders if Storm has a facility for putting a store into read only mode.10:37
jtvstub: blast.  I thought you were referring to knowledge of such a thing earlier.10:37
wgrantstub: If it did, would we have *_ro? :)10:38
bigjoolsgah Makefiles10:38
wgrantstub: Can't we just use SET TRANSACTUION READ ONLY?10:39
wgrants/U//10:39
stubwgrant: We create all the _ro users such as their default transaction mode is read only10:39
stubSo the test harness stuff is not applicable here10:39
stubBut 'with read_only(store):' is little effort10:40
stubstore.execute('show transaction_read_only').get_one()[0] for the current value, store.execute('set transaction_read_only = true') to set it...10:42
jtvI could extend the @read_transaction we have now, provided we only use it in fresh transations.10:42
stubjtv: if it aborts at the end, it would be a fail to use it for anything that wasn't a fresh transaction10:43
stubUnless it stacks or something10:43
jtvExactly.10:43
jtvStacking it could be risky given its retry behaviour.10:44
lifeless.10:45
jtvLibrarian uses it in one place.  Unfortunately the code seems to have celebrate obscurity, but it doesn't look as if it has fresh connections.10:46
bigjoolslifeless: still seeing both bugs with latest oops_twisted10:46
jtvIt also uses twisted's deferToThread; allenap, one thing I wondered about there is that storms are not supposed to be thread-safe.  Is that all taken care of?10:46
lifelessbigjools: you've updated your versions.cfg ?10:46
bigjoolslifeless: I am not using LP10:46
bigjoolsthis is txlongpoll10:47
lifelessbigjools: sure, but its a buildout project too right ?10:47
bigjoolslifeless: yeeesssss10:47
lifelessbigjools: so it has its own versions.cfg, right ?10:47
bigjoolsnope10:47
bigjoolsthat's an LP thing10:48
jtvDigestSearchResource... another one of those ancient, under-documented classes that used to make our lives a living hell.  I'm sure it'll be clear to someone out there, but not to me.  :(10:48
stubjtv: stores are retrieved through zstorm, which hands out a store specific to the thread. You would have to go out of your way to hand your store to another thread.10:48
bigjoolslifeless: I have rebuilt my entire egg from scratch, and oops_twisted 0.0.2 is in dists10:49
bigjoolssince I specified that in setup.py ;)10:49
jtvstub: does twisted keep a worker thread with a dedicated store for this kind of thing?10:49
lifelessmeep. Well, you may want one ;)10:50
lifelessso that you don't get new releases of $stuff without warning.10:50
lifelessbigjools: anyhow, run buildout with -v or something and confirm that you have 0.0.2 in use. Or check your sys.path etc10:50
lifelessbigjools: you can specify versions in setup.py ?10:50
stubjtv: I don't know about twisted worker threads. I just know that when you request a store, you get a store for the current thread and not a store used by some other thread.10:50
bigjoolsGetting required 'oops-twisted>=0.0.2'10:50
bigjoolslifeless: of course you can10:50
lifelessbigjools: anyhow, I believe you. So put a breakpoint in the 0.0.2 code and see what happes10:50
jtvstub: ah, so it's on-demand.  I think that means this is safe, thanks.10:51
allenapjtv: Each bit of code that is passed to deferToThread() needs to get its own store.10:51
jtvAnd does it?  :)10:51
allenapjtv: I don't know about the librarian...10:51
jtvApparently it gets its own store on demand, so that sounds like it's alright.10:51
lifelessbigjools: in the 'if ids:' if block at the end of log.py10:52
jtvallenap: Yeah, never mind the librarian.  This bit of code is probably from the days when we thought that cryptic code was better because it was By And For Geeks(tm).10:52
bigjoolsok, re-rinning10:52
=== al-maisan is now known as almaisan-away
jtvbigjools: lather, rin, repeat.10:52
bigjoolsjtv: FUGU10:53
jtv$ dict fugu10:53
bigjoolsjtv: like FUBU10:53
lifelessmmm noms10:53
jtv fugu10:53
jtv       n : delicacy highly prized in Japan but highly dangerous10:53
stubWhy are we emitting LongPoll specific events rather than generic events on Storm lifecycle that any process can subscribe to?10:53
bigjoolsallenap: ^10:53
jtvbigjools: thank you, that helps.  I think the other one was fgbg.10:54
=== almaisan-away is now known as al-maisan
stubJust wondering if there is a reason, or if services that listen for new rows to be created in the database are going to be listening for misnamed events10:55
allenapstub: I don't understand. The longpoll code subscribes to the generic events and then re-emits them via Rabbit.10:55
stuboh... I thought I saw us explicitly emitting LongPollSomething events on Storm object creation and deletion, rather than StormSomething events.10:55
stubWhich might just be naming10:56
bigjoolslifeless: http://pastebin.ubuntu.com/697804/10:57
jtvstub: not taking the risk on @read_transaction; I can't be sure what games people play with it.  A "with" sounds good.  I'll also need one that gives a temporary exemption.10:57
allenapstub: There are subscription handlers for (Storm, IObject{Created,Modified,Deleted}Event) so far, so it does rely on code to explicitly emit those lifecycle events. We can add more subscription handlers for other events later, this just fits our needs so far and should fit a lot of other situations.10:58
stubjtv: I don't know the details of your problem, but a pair of context managers that can be nested would be nice and potentially useful elsewhere.10:58
jtvstub: yup.  By "would be nice" by the way I do not mean that I expect you to do it; I'll whip something up and if you're interested, let you know when I think it's in a reviewable shape.10:59
stuballenap: As long as we don't end up emitting 3 specific messages per row updates when 1 general one would do and can be routed with rabbit.10:59
allenapstub: That will be the case. By default no lifecycle events are emitted for Storm stuff; it needs to be done explicitly.11:01
stubcool11:01
stubMight be able to use this for real time karma updates...11:02
allenapYeah :)11:02
stubStill needs the daily job if we want degradation though so not a major win unless we decide on a new design11:03
stuballenap: Originally I was thinking of hooking up zope.event, but I didn't know about the Storm event model back then and I don't think we gain anything by hooking zope.event up in addition.11:05
stub(Maybe Storm should be using zope.event :) )11:05
stubjtv: I'm happy to review it. It should be maybe 10 lines plus boilerplate?11:08
jtvstub: I'm more worried about design than I am about the code.  Who commits when.11:09
stubjtv: I worry that we spend too much time working around a flawed design rather than rewriting - some of this stuff has been a problem for years and most people are too scared to mess with it. I certainly don't know enough to know if the existing design can be rescued or needs to be replaced.11:12
wgrantstub: That comes up a lot nowadays...11:12
wgrantBut buildd-manager was rewritten like 2 years ago.11:12
jtvMy fingers ache to do it again, but realistically...11:12
jtvSee the "read-only transactions" part as a way of getting a grip on what the existing design really does.11:13
jtvOnce we have that under control, we'll have a much better idea of our options.11:13
allenapstub: This does rely on zope.event, but there are no automagically emitted events as Storm objects change state. Storm model instances do have EventSystem which can be used to track changes at a very fine-grained level, but I think piping those out over a message queue would be like a fire hose.11:14
stuballenap: Isn't that why we have this high performance messaging system ;-)11:14
stubIt can handle a zajillion messages per whatsit!11:15
allenapstub: We have yet to see if it's high performance :)11:15
stuballenap: I also considered database triggers emitting events...11:15
jtv(In practice I hear it's often more like 0.6 zajillion per whatsit.)11:15
allenapstub: Oh, in that case, I think we should hook into sys.settrace().11:16
stubYou win11:16
stubUnless I suggest.... ptrace!11:16
allenapDammit!11:16
jtvOn a sidenote, I see that raw_connect defaults to SERIALIZABLE.  I thought it was READ COMMITTED nowadays.  Will we go REPEATABLE READ with 9.1, or upgrade to the new SERIALIZABLE?11:18
danilosgmb, hi, got time for a short review? https://code.launchpad.net/~danilo/launchpad/bug-847485/+merge/7714211:19
gmbdanilos: Hi, sure.11:20
stubwgrant was talking about serializable/read committed by default the other day. Scripts should be defaulting to read committed since they almost certainly won't handle serialization exceptions.11:20
jtvYes, I thought we made them default to read committed some 3 or 4 years ago.  So surprising to see this in raw_connect.11:20
stubAnd one day I'll read the docs and learn what the difference between repeatable read and serializable is11:20
lifelessjtv: oh, 9.1 adds explicit repeatable read ?11:21
wgrantjtv: So, I've been far too deep in this stuff lately...11:21
=== al-maisan is now known as almaisan-away
stubjtv: Is raw connect what scripts use or what the appserver eventually relies on for its connection?11:21
bigjoolslifeless: did you see my debugger results?11:21
jtvlifeless: sort of.  It's the new name for the existing "serializable."11:21
lifelessjtv: and there is a new serializable ?11:21
lifelessbigjools: no11:21
wgrantjtv: initZopeless, may it rest in peace, override the default to read_committed.11:21
wgrants/override/overrode/11:21
wgrantjtv: All scripts called that, so scripts ended up read_committed.11:22
stubits more serializable than the old serializable I hear11:22
jtvlifeless: yes.  Turned out there was a purely optimistic implementation for true SQL serializability for MVCC databases.11:22
wgrantjtv: While the appserver didn't, so ended up with the default in the config file: serializable.11:22
bigjoolslifeless: http://pastebin.ubuntu.com/697804/11:22
jtvwgrant: thanks for explaining that.11:22
bigjoolslifeless: the report dict has no "type" entry11:22
wgrantjtv: Scripts now override this explicitly.11:22
jtvI say "SQL serializable" because there's been great confusion over it.11:22
wgrantjtv: Rather than it being hidden in the default of one of initZopeless' arguments.11:22
jtvThe standard describes two symptoms that you don't want in transaction isolation: "phantom reads" and, er, another thing.11:23
jtvOne is basically "you've seen a row in this transaction, you read it again, and now it's changed."11:23
lifelessbigjools: ok, new bug :) - what does the original event have in it ? (first line of that function, print event)11:23
jtvThe other is, if I recall correctly, rows not suddenly appearing in or disappearing from the results of your query.11:23
jtvSQL described the isolation levels in terms of the exclusion of these two symptoms, and said that neither can happen in SERIALIZABLE.11:24
jtvSo that's what postgres implemented.11:24
bigjoolslifeless: http://pastebin.ubuntu.com/697815/11:24
jtvIt didn't have the changing rows, so two of the lesser isolation levels (read uncommitted & repeatable read) were utterly meaningless in postgres.11:24
jtvInstead you always got one of the better isolation levels.11:24
jtvBut then it turned out that what SQL said about phantom reads etc. in SERIALIZABLE was descriptive, not definitive.11:25
bigjoolslifeless: different problem, *same* bug :)11:25
stubwhich is the sort of behavior ODBC encoded in its api (you get the isolation you requested or better)11:25
jtvThe *definition* of SERIALIZABLE is that the result must be as if no two transactions overlapped in time.11:25
lifelessbigjools: same top level symptom agreed.11:25
jtvAnd so postgres 9.1 has an optimistic technique to guarantee serializability, at the cost of more serialization failures obviously.11:26
lifelessbigjools: what has me confused here though is how the type key is missing11:26
jtvBut no new locks, which is incredibly cool in itself.11:26
jtvREPEATABLE READ in postgres actually guarantees more than it does in SQL, but it was the next step down for the old, dishonoured SERIALIZABLE implementation.11:27
stubAt this point I have no idea if the appserver would benefit or suffer from the new isolation level. Scripts will remain with read committed by default.11:27
lifelessbigjools: you've got a tb_text and a time, which  means emit didn't crash11:28
lifelessbigjools: can you print config.on_create11:28
stubI suspect we need to instrument our transaction retry handling to see what sort of genuine overhead we get with the extra protection11:29
jtvMight be useful to know at any rate.11:29
stubYup11:29
bigjoolslifeless: what scope?11:29
bigjoolsit's not in that func11:29
lifelessbigjools: self.conf11:29
lifelessbah11:29
jtvFWIW the only paradoxes that the existing "serializable" leaves us open to involve cross-table consistency.11:29
bigjoolsah11:29
lifelessself.config11:29
bigjoolslifeless: you want the function or it's invocation?11:30
bigjoolsits11:30
lifelessits a list of functions, I hope11:30
lifelessself.config.on_create11:30
bigjools2011-09-27 12:30:01+0100 [-] (Pdb) [<function attach_exc_info at 0x2ba5488>, <function attach_date at 0x2ba5410>, <function copy_key at 0x2ba5230>, <function copy_key at 0x2ba52a8>, <function copy_key at 0x2ba5320>]11:30
lifelessok, so we need to look at whats going on with emit11:30
lifelessline 5811:31
lifelessit should branch into the 'if 'failure' in eventDict: block11:31
lifelessand before we call11:31
lifelessreport = self.config.create(context)11:31
lifelessour context should have an exc_info key with a (type, value, tb) tuple in it11:32
bigjoolslifeless: I think you need to re-create this locally11:32
lifelessbigjools: yeah, probably.11:33
bigjoolsit's not hard11:33
lifelessbigjools: I have tomorrow off11:33
lifelessbigjools: for baby stuff, but I'll see what I can do11:33
bigjoolsI'm in hospital later :p11:33
lifelessbigjools: can you shoot me a mail with 'do this you daft bugger and it should break for you' instructions ?11:33
bigjoolsyarp11:33
lifelessdefensive programming says we should tolerate the type etc being missing11:34
lifelessand I'll do that11:34
lifelessbut we also want good output, so we need to figure out whats up.11:34
bigjoolslifeless: I'll put it on the bug11:34
lifelessbigjools: a new one please!11:34
gmbdanilos: approved.11:34
lifelessbigjools: it really is a different issue, though its hitting the same area of code11:34
bigjoolslifeless: you didn't close the old one, and I consider it still unfixed11:34
lifelessbigjools: there may be multiple root causes11:35
bigjoolsbugs are to report symtoms, not causes11:35
lifelesssure, and your symptoms have changed :)11:35
bigjoolsnot at all, it crashes in exactly the same way AFAIAC11:35
lifelessbigjools: if you have no publisher, it shouldn't crash now11:36
lifelessbigjools: and I *know* you have a publisher here, because I can see the publisher assigned OOPS id11:36
bigjoolsthe d o u b l e spaced log is still happening too11:36
* bigjools caves in11:36
lifelessbigjools: sure, and that hopefully the repro instructions will let me see11:36
bigjoolsfor a quiet life11:36
lifelessbigjools: try without --date-dir=... or whatever the option is - I bet it won't crash.11:37
bigjoolslifeless: it isn't, correct11:37
lifelessso, this is a flip in your symptoms :)11:38
lifelessnow with a publisher, its barfing, and thats because attach_exc_info isn't attaching the info for some really odd reason11:38
lifelesswhich I'll track down, and separately make it not crash if that happens.11:38
bigjoolshttps://bugs.launchpad.net/python-oops-twisted/+bug/85954511:39
_mup_Bug #859545: Fallback code corrupts the output <python-oops-twisted:Triaged> < https://launchpad.net/bugs/859545 >11:39
lifelessbigjools: gl with the op11:39
bigjoolsadded it there11:39
bigjoolslifeless: ta11:39
lifelessfrom pypi ?11:40
lifeless{from where should I grab the gg}11:40
lifelessbigjools: ^11:41
bigjoolshttps://launchpad.net/txlongpoll11:42
bigjoolsnot on pypi11:42
bigjools(yet)11:42
lifelesshttps://bugs.launchpad.net/python-oops-twisted/+bug/86049011:47
_mup_Bug #860490: oops reports with no type/value crash the fallback reporting code <python-oops-twisted:Triaged> < https://launchpad.net/bugs/860490 >11:47
lifelessbigjools: http://pastebin.com/GrvVx1ZM is the direct fix (but we need to see why you aren't getting those values regardless)11:54
jelmerhmm, am I supposed to be able to upload to maverick-proposed if it is for a package in a package set that is in my permission set?12:04
wgrantjelmer: Remember that packagesets and their permissions are series-specific.12:11
jelmerwgrant: ah, that must be it12:13
jelmerwgrant: I figured I would've been added to the packageset in all active series but that doesn't appear to be the case12:13
jelmerand I could swear I uploaded to lucid-proposed earlier, but apparently not.12:14
StevenKnigelb: r14041 is now live everywhere, so your DB patch can land.12:23
lifelessadeuring: your wiki docs are confusing :)12:26
lifelesscolumn1 > value1 AND column2 > value2 -> that would be wrong, and the implementation using tuples now doesn't it ?12:26
adeuringlifeless: any suggestions for improvements?12:26
lifeless(column1, column2) > (value1, value2)12:26
adeuringright12:27
lifelessadeuring: that was the only thing12:33
lifelessadeuring: nice stuff12:33
adeuringlifeless: thanks :)12:33
=== almaisan-away is now known as al-maisan
deryckMorning, everyone.13:02
nigelbStevenK: \o/ Thanks!13:05
nigelbStevenK: Do I propose an MP?13:05
=== benji___ is now known as benji
=== jtv is now known as jtv-afk
StevenKnigelb: Yes, put up an MP for it.13:57
wallyworldsinzui: hi. this bug subscription thing is a bit of a mess. if you agree with my branch to stick it behind a feature flag as requested by rob, would you be able to push it to ec2 for me? i believe folk are keen to see it land asap but i'm quite tired now and need sleep.14:29
sinzuiwallyworld, The bug looks to be invalid. I would not want to land any branch that make Lp lie to 99% of users14:30
wallyworldsinzui: np. i was following orders :-) i'll let you discuss it with rob, matthew etc.14:31
sinzuiwallyworld, does you branch revert Lp to lie?14:31
sinzuiwallyworld, your branch looks like it is changing flags, which is not what the bug talks about14:32
wallyworldi think they just wanted launchpad back to how it was 48 hours ago - the branch does tha by putting the new stuff behind a ff14:32
wallyworldsinzui: yes, i commented on the bug to change the description14:32
sinzuiokay. I will review the branch an land it if I am satisfied that the correct behaviour is still in the code base14:33
wallyworldoriginally i was proposing a compromise or whatever, but then it was decided just to stick it all behind a ff just to revert lp14:33
wallyworldso that the ubuntu folks wouldn't get very upset14:33
sinzuiwallyworld, I am approving your branch and will land it now14:35
wallyworldthanks! i'm frustrated somewhat by the confusion14:35
wallyworldbut it seemed from irc that we needed to take this action quite urgently, hence i staryed up to catch you and get your +1 on it. we can discuss more tomorrow at the standup i guess14:37
=== al-maisan is now known as almaisan-away
=== matsubara is now known as matsubara-lunch
nigelbStevenK: thanks! Will do15:18
=== gmb changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugs: 261 - 0:[#########]:256
=== beuno is now known as beuno-lunch
=== deryck is now known as deryck[lunch]
=== matsubara-lunch is now known as matsubara
jcsackettsinzui: have a few moments to mumble?16:37
sinzuiyes16:39
sinzuijcsackett, 77021317:02
sinzuijcsackett, bug 77021317:02
_mup_Bug #770213: globalsearch's submit button has no value, thus is strangely represented for screen reader users as unnamed <trivial> <wai> <Launchpad itself:Triaged> < https://launchpad.net/bugs/770213 >17:02
=== deryck[lunch] is now known as deryck
=== beuno-lunch is now known as beuno
nigelbbenji: hi17:48
benjinigelb: hi17:50
nigelbbenji: I didn't get a success/failure email for yesterday's landing. Did something go wrong?17:50
benjinigelb: it may well have; I've had trouble lading things of late.  I'm doing another run on a different branch now; once I figure out the problem I'll re-run your branch.17:51
nigelbbenji: cool, thanks!17:51
benjinp17:52
mtaylorhey guys - bugs email interface - setting fix committed doesn't seem to work if the bug is attached to multiple projects18:03
mtaylorhttps://bugs.launchpad.net/nova/+bug/85461418:03
_mup_Bug #854614: metadata service local-hostname is not fqdn <server-o-rs> <OpenStack Compute (nova):Fix Committed by smoser> <nova (Ubuntu):Fix Committed by smoser> < https://launchpad.net/bugs/854614 >18:03
mtaylorsee the email from our gerrit, and then that the status did not update from the email18:04
mtaylornevermind - jeblair found the affects feature (or already knew about it, he's smart like that)18:15
sinzuijcsackett, do you have pqm power now?19:11
jcsackettsinzui: alas, no. i tried several combinations of settings to no avail, and then realized it was getting on in the afternoon and i hadn't had lunch.19:20
benjijcsackett: what kind of pqm problem are you having?  I'm having issues with it too.20:00
jcsackettbenji: pqm-submit is throwing an smtp error.20:00
benjihmm, so you're not using ec2 land?20:01
jcsackettbenji: no, i have other problems with ec2 land. :-P20:01
jcsackettsince some issues when i updated to oneiric i've been essentially unable to land. it's a bit frustrating.20:02
jcsackettsinzui has been helping me diagnose, but we have not yet solved the problems.20:03
sinzuijcsackett, maybe you should paste the error20:03
sinzuiand maybe use canonical's pastebin20:03
jcsackettsinzui: https://pastebin.canonical.com/53486/20:07
jcsackettnot terribly informative.20:07
sinzuijcsackett,  and you are using the same smtp_* rules as I have in my bazaar.conf?20:08
jcsackettsinzui: yup.20:08
sinzuido you have other directly matching rules?20:09
jcsackettyou mean like via locations.conf?20:12
jcsacketti have some smtp_ stuff set there, but it's the same as in bazaar.conf20:13
* jcsackett takes another look,20:13
bacabentley: i took care of that private project20:15
abentleybac: thanks!20:16
lifelessmorning21:16
abentleylifeless: you know how we're upgrading all branches to 2a-based formats?  loom branches can't even be upgraded to other loom formats.21:31
abentleyhttps://pastebin.canonical.com/53491/21:33
lifelessthey used to be able to21:35
lifelessI don't know whats changed there, but I assume its a bzrlib core thing21:35
=== StevenK changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: StevenK | Critical bugs: 261 - 0:[########*** stack smashing detected ***: ./lp terminated

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