/srv/irclogs.ubuntu.com/2012/09/04/#launchpad-dev.txt

wallyworld_StevenK: wgrant: bug 900431. the get_branch_privacy_filter() method ignores stacked on branches. so we have a new version of the transitively_private issue. i'm not sure if we want to solve this or not. thoughts?02:09
_mup_Bug #900431: branch visibility queries do not consider visibility of stacked on branches <403> <branches> <disclosure> <privacy> <sharing> <Launchpad itself:Triaged> < https://launchpad.net/bugs/900431 >02:09
=== dhillonv10 is now known as dhillon-v10
wgrantwallyworld_: Right, that's related to the MP security check performance issue02:17
wgrantwallyworld_: It's not a recurrence of the transitively_private issue; it existed even then.02:17
wallyworld_it's a similar issue though02:17
wgranttransitively_private ensured that the stacked branch was private, but it never ensured that the stacked-on branch was actually visible02:17
wallyworld_sort of. it allowed a quick check to be made02:18
wgrantWhich is why I didn't really want to keep it -- it didn't solve enough of the problem that it was really worth it02:18
wallyworld_without needing recursion each time02:18
wgrantRight, but you still had to check the stacked-on visibility02:18
wgrantIt wasn't a sufficient check02:18
wallyworld_it was sufficient before we introduced info types02:18
wgrantNo02:19
wgrantI can very well be subscribed to the stacked branch, but not the stacked-on branch02:19
wgrantEven back in the olden days02:19
wallyworld_i was ignoring subscription/visibility conflation02:19
wallyworld_is there a bug for the mp security check?02:19
wgrantThere's one or two timeout bugs about it02:20
wallyworld_so do we think we can solve this without a denormalisation effort?02:20
wgrantAnd the subscription/visibility conflation isn't really relevant here; visibility can differ regardless of the precise mechanism02:20
wgrantI don't believe the denormalisation is practical even if we wanted to do it02:21
wallyworld_so we need efficient sql then02:21
wgrantIn either the old or the new model02:21
wgrantRight02:21
wallyworld_denormalisation worked for private02:22
wgrantIt didn't.02:22
wallyworld_why?02:22
wgrantI have this private branch02:22
wgrantIt's stacked on another private branch02:22
wgrantI'm subscribed to my branch, but not the one it's stacked on02:22
wgranttransitively_private is true on the private branch, but it doesn't tell the code that I can't see the stacked-on branch02:22
wallyworld_it wasn't supposed to02:23
wgrantRight, so the situation is not significantly different from today02:23
wgrantIn the old days you had to check visibility of the stacked-on branches02:23
wallyworld_it was just supposed to highlight that public branches stacked on private were private02:23
wgrantNow you have to check visibility of the stacked-on branches.02:23
wgrantSure, but that's only vaguely related to this issue02:24
wallyworld_right. so the reason it is no longer needed isn't because it didn't work as advertised, but because we no longer allow public stacked on private02:24
wgrantThe role that transitively_private served was of very limited use, due to exactly this issue02:25
wgrantFrom the day transitively_private was created.02:25
wallyworld_ it servered the purpose it was written for - to stop public branches stacked on private advertising themselves as public02:25
lifelessyay svn02:25
wgrantwallyworld_: Right, but that's not fundamentally hugely useful in itself02:26
wgrantlifeless: Oh?02:26
wgrantwallyworld_: transitively_private was floated as a partial solution to the issue you're looking at now02:26
wgrantBut it doesn't work for that at all unless you squint very hard02:26
wallyworld_i recall it slightly differently - it was intended to stop people trying to access a so called public branch and being denied access02:27
wgrantRight02:27
wgrantBut that doesn't help much02:27
wgrantSince you can still access a so-called private branch to which you have access02:27
wallyworld_i think it does, but anyway02:27
wgrantBut still be denied access02:27
wallyworld_sure, different use case02:28
wgrantIt helps the public case, but not anything else02:28
wgrantIt's very very similar02:28
wgrantI have access to a branch, except I don't.02:28
wallyworld_but in the public case, yu expect access02:28
wgranttransitively_private solved the public special-case of that02:28
wallyworld_since there's no padlock etc02:28
wgrantSure, and in the private case where I have access I expect access.02:28
wallyworld_5 minutes is up, i haven't paid for the 10 minute argument02:29
lifelesswgrant: stabbing log rotate, tired of the incident reports02:30
wgrantlifeless: Ahh02:30
lifelesshttps://code.launchpad.net/~fdrake/zconfig/trunk is the closest zconfig has to a trunk02:30
wgrantlifeless: svn.zope.orgZ?02:30
wgrant-Z02:30
wgrantOh, that's an import from there, I see02:41
=== Ursinha` is now known as Ursinha
=== Ursinha is now known as Guest70417
StevenKwallyworld_, wgrant: https://code.launchpad.net/~stevenk/launchpad/proper-error-on-bug-attachment-bad-filename/+merge/12260803:00
wallyworld_StevenK: perhaps include the filename in the exception message?03:02
StevenKwallyworld_: I think this particular exception is only triggered via the API, in which case the user is well aware which filename.03:03
wallyworld_ok03:03
StevenKI'm still not sure about raising BadRequest directly03:04
wallyworld_we are losing the root cause info from the original exception03:04
wallyworld_so the user doesn't get to know why it's a bad filename03:04
StevenKwallyworld_: They didn't before either -- it tripped a constraint in the DB.03:05
wgrantRaising a BadRequest in the model sounds like a Bad Idea™03:05
StevenKAdd more lines and create class InvalidFilename(Exception) ?03:05
wallyworld_sounds more reasonable. but we need to try and propogate the cause of the error03:06
StevenKwallyworld_: http://pastebin.ubuntu.com/1184984/03:10
mwhudsonwgrant: postgres performance question03:11
mwhudsoni'm finding that03:11
mwhudsonselect * from foo where bar in $SUB_QUERY1 and bar in $SUB_QUERY2;03:11
mwhudsonis waaay slower than03:11
mwhudsonselect * from foo where bar in ($SUB_QUERY1 intersect $SUB_QUERY2);03:11
mwhudsonwgrant: have you run into this?03:11
wgrantmwhudson: It's probably trying to be too smart in the first one. Do you have plans for both?03:11
wallyworld_StevenK: but it doesn't say *why* it's a bad filename - can we extract and use that from the original exception?03:12
StevenKwallyworld_: Nope.03:12
mwhudsonwgrant: yes, but they may cause eyeball stabbing03:12
wgrantStevenK, wallyworld_: How does the webapp handle this?03:12
StevenKwallyworld_: Because the constraint error doesn't say either.03:12
wgrantStevenK, wallyworld_: This is a normal validation problem03:12
wgrantI'd suggest looking at how eg. product name validation is done03:12
StevenKwgrant: I think well-behaved browsers are immune03:13
wgrantOh right, cause the filename is embedded in the widget, blah03:13
wgrantSo difficult to use a traditional validator03:13
StevenKRight, which is why I was saying it's really only API03:13
mwhudsonwgrant: slow: http://paste.ubuntu.com/1184985/ faster: http://paste.ubuntu.com/1184987/03:14
wgrantmwhudson: EXPLAIN ANALYZE is probably helpful, to see where its estimates go wrong03:15
mwhudsonwgrant: heh, http://explain.depesz.com/s/5i9 <- fast http://explain.depesz.com/s/xUB <- slow03:15
wallyworld_StevenK: the IntegrityError exception does have a useful message doesn't it? so can we not reuse that?03:17
mwhudsonwgrant: seems that the materialize is the problem?  i'm not super experienced at reading explains03:19
wgrantmwhudson: You're missing an index03:19
wgrantNot quite sure what your schema is, but I suspect a CREATE INDEX foo ON dashboard_app_namedattribute (content_type_id, name, value); will fix it03:20
mwhudsonoh right, django03:20
wgrantCurrently it finds everything with the matching content_type_id03:20
wgrantThen filters by name and value03:20
mwhudsonyeah, that's not going to be helpful03:20
wgrantWhich seems like the wrong way to do things, but is also trivially indexable03:20
wgrantAnd should take the query into the hundreds of microseconds.03:20
mwhudsonoh03:21
mwhudsonis it pulling the common part out of the two subqueries and so doing things in a boneheaded order?03:21
wgrantOh, except for the testrun join, but still, tens of milliseconds.03:21
wgrantI don't know what the query looks like03:21
wgrantBut no, it seems to be doing them separately03:21
wgrantIt's just really slow to filter dashboard_app_namedattribute how you've asked03:22
mwhudsondjango generic relations, yay03:22
wgrant:)03:22
mwhudsonoh well, i've wasted enough of your time, thanks03:22
wgrantStill, create that index and see what happens03:22
wgrantShould work03:22
wgrantNo idea how you create custom indices in Django, though...03:22
wgrantyay django03:22
wgrantI love django, as you can tell03:22
mwhudsonwell03:23
mwhudsoni'm not even slightly pretending to be portable in this project03:23
wgrantGood :)03:23
mwhudsonso i can generate them with sql/$model.sql i guess03:23
wgrantDo you understand how to read the relevant bit of the explain?03:23
mwhudsonthe index doesn't help though :(03:23
wgrant:(03:23
wgrantDoes it change the plan at all?03:24
mwhudsonCREATE INDEX03:24
mwhudsonTime: 36607.299 ms03:24
mwhudsonwee03:24
mwhudsonthe index is used by the plan now03:24
mwhudsoni think, as i could probably have predicted, the problem is that our schema is a bit nuts03:25
mwhudson                                             ->  Index Scan using foo on dashboard_app_namedattribute u1  (cost=0.00..1773.90 rows=527 width=4) (actual time=0.043..30.131 rows=28501 loops=1)03:25
mwhudson                                                   Index Cond: ((content_type_id = 23) AND (name = 'target.device_type'::text) AND (value = 'panda'::text))03:25
wgrantDjango has that effect on people03:25
mwhudson30000 index scans ?03:25
mwhudsonnot going to be good, i suspect03:25
wgrantAnd that's going straight into the testrun index scan, I guess, yeah :/03:26
wgrantNot ideal03:26
mwhudsonhttp://explain.depesz.com/s/xkDK <- plan with index03:26
wgrantWhat's the actual query?03:27
mwhudsonah sorry03:27
mwhudsonwgrant: http://paste.ubuntu.com/1185000/03:28
wgrantmy eyes03:28
mwhudsonbrutally word-wrapped to avoid the one long line effect03:28
mwhudsonhee hee03:28
wgrantMmm03:30
wgrantThat's ugly03:30
mwhudsonyeah03:30
wgrantBut nothing blatantly obvious03:30
* wgrant runs off to lunch, will look more later03:30
mwhudsoni think the problem is that the two queries on attributes vary massively in selectivity03:31
mwhudsonthere are a _lot_ of target.device_type = panda attributes03:31
* mwhudson looks at the intersect plan some more03:31
mwhudsonheh the index helps the fast plan a _lot_03:32
mwhudsondown to 100ms now03:33
StevenKmwhudson: Have you seen http://sqlformat.appspot.com/ ?03:44
mwhudsonStevenK: no!03:47
mwhudsoni actually went looking for one of them a few days ago03:47
mwhudsonStevenK: it doesn't do a very good job on this query :)03:47
StevenKHahaha03:47
StevenKYeah, it's formatting rules are a little strange03:48
mwhudsonfor which i think we can just blame django03:48
mwhudsonheh heh03:56
mwhudsonoptimization is fun: i now have a version of this query that runs in 22ms03:56
mwhudsonabout 200x faster than where i started03:56
StevenK\o/03:57
StevenKwallyworld_: So http://pastebin.ubuntu.com/1184984/ is still bad?03:57
=== Guest70417 is now known as Ursinha
=== Ursinha is now known as Guest78022
wallyworld_StevenK: i think you missed my last comment - can we extract the root cause message from the IntegrityError and include it with the new exception?03:59
wallyworld_otherwise the use has no idea *why* the filename is invalid04:00
wallyworld_so they don't know what to fix or correct04:00
StevenKwallyworld_: I did answer -- no, because the constraint error doesn't say either.04:00
wallyworld_you sure? eg from hwdb.txt "IntegrityError: ... violates unique constraint "hwsystemfingerprint..."04:01
wallyworld_there's info in there somewhere04:01
StevenKIntegrityError: new row for relation "libraryfilealias" violates check constraint "valid_filename"04:01
StevenKAnd it's an OOPS, so the user gets a 500.04:02
wallyworld_:-(04:02
StevenKSeriously, *anything* we do is going to be better.04:02
wallyworld_ok. we do seem to have an inherent layering issue though04:03
StevenKwallyworld_: Mmmm, we could move the exception handling into ILibraryFileAliasSet.create04:04
wallyworld_that would be a bit better04:06
StevenKBut still makes you unhappy?04:06
wallyworld_there's still an issue extracting the reason for the error and presenting it to the user04:07
wallyworld_but moving the exception handling to the correct place helps04:08
StevenK"valid_filename" CHECK (filename !~~ '%/%'::text)04:08
StevenKAh ha04:08
StevenKraise InvalidFilename("Filenames can not contain slashes.")04:08
wallyworld_yay04:08
StevenKwallyworld_: Let me move it into LFA and test, as well as change the message. Hopefully that will fix your little red wagon. :-)04:09
wallyworld_ok, thanks.i'm just thinking of the users :-)04:09
StevenKSuuuuuuure04:09
wallyworld_it would be nice to be able to look at the constraint name that was violated and re-raise with a sensible message. is there more than one i wonder. or is there only the slashes one04:11
StevenKThat's the only CHECK CONSTRAINT that libraryfilealias has.04:12
mwhudsonwgrant: for when you get back, it turns out that punching through the genericrelation abstract gets me a query that runs in 22ms :)04:13
mwhudson*abstraction04:13
mwhudson(with the index, 200ms without)04:16
StevenKwallyworld_: http://pastebin.ubuntu.com/1185054/04:21
wallyworld_StevenK: comment on line 48 needs fixing. are there more test changes? i think it looks ok though. the users thank you04:24
StevenKwallyworld_: It does? But it is a BadRequest?04:25
StevenKThe API will never see the internal exception, but it raises BadRequest04:25
wallyworld_oh, yes, sorry. misread04:26
StevenKwallyworld_: So, push it up and prod you somewhere inappropriate when the diff updates?04:27
wallyworld_why not. i'm waiting with anticipation04:27
* wallyworld_ grips the desk04:27
wgrantAnd he drops out just as I return04:31
wgrantStevenK: Want to extend that ndt by a rev?04:32
StevenKwgrant: To r15901? Sure.04:32
wgrantmwhudson: How'd you avoid that expensive join?04:51
wgrantI guess eliminating the duplicate dashboard_app_testrun join might have helped04:52
StevenKwgrant: https://oops.canonical.com/?oopsid=475a419919a34a618febf7b2ba9573e005:05
StevenKwgrant: Why are their 5 repeated Archive lookups? :-(05:06
lifelessStevenK: 'there'05:06
StevenKlifeless: And where is your Grammar Nazi cape?05:07
lifelessin the kitchen05:07
StevenKMaybe I should have used "you're" just to make you twitch.05:07
* wgrant twitches05:11
wgrantStevenK: It's probably trying to find archives that are buildable into, maybe.05:12
wgrantChecking the tracebacks will tell you for sure05:12
StevenKwgrant: The tracebacks for the UNION'd queries are quite unreadable05:13
wgrantLet me prove you wrong :)05:14
wgrantBy reading them05:14
StevenKOh wait, there it is05:14
StevenKThe stack is like 100 deep and the font is tiny :-(05:15
wgrant  File "/srv/launchpad.net/production/launchpad-rev-15890/lib/lp/code/model/sourcepackagerecipe.py", line 89, in get_buildable_distroseries_set05:15
wgrant    supported_distros = set([ppa.distribution for ppa in ppas])05:15
wgrantlol05:15
StevenKThat has to win some kind of award05:15
StevenKwgrant: Tempted to just have that use ILaunchpadCelebrities.ubuntu rather than that insane query.05:18
wgrant:(05:18
lifelessLOLWHAT05:18
StevenKOh, SERIOUSLY05:19
StevenK                    |     # Now add in Ubuntu.05:19
StevenK                    |     supported_distros.add(getUtility(ILaunchpadCelebrities).ubuntu)05:19
wgrantheh05:19
StevenK(Guess what I'm reading ... :-)05:19
wgrantheh heh05:19
lifelesshttps://code.launchpad.net/~lifeless/zconfig/bug-481512/+merge/122612 - fingers crossed.05:45
StevenKlifeless: WTB CMPXCHG for Python, PST ?05:48
lifelessyup05:48
adeuringgood morning07:25
jelmermoin08:01
=== almaisan` is now known as al-maisan
=== frankban changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: frankban | Firefighting: - | Critical bugs: ∞
jelmermgz: there?08:13
mgzwhere?08:13
jelmermgz: le mumbles08:14
mgzyeah.08:15
evis there an estimate on staging coming back from the dead?08:15
wgrantev: No, could easily be another day or so. Can you use qastaging instead?08:17
evwgrant: absolutely can - didn't realize it existed08:17
evthanks a bunch!08:17
wgrantIt's been around for nearly two years now, I believe08:18
wgrantThe DB is reset less frequently and the code updated slightly more quickly08:18
evneat08:18
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
mwhudsonwgrant: it was eliminating the joins in the subqueries that flipped the performance to good09:57
wgrantmwhudson: Ah, good09:58
jamjelmer: python-all-dbg: Depends: python-all (= 2.6.6-3+squeeze7~lp1) but it is not going to be installed                   Depends: python2.5-dbg (>= 2.5.5-6) but it is not installable10:07
jamit looks like your squeeze package wants to keep python-2.510:07
jamvs 2.7?10:07
czajkowskimgz: jelmer jam does this make sense to any of ye ? https://bugs.launchpad.net/lpsetup/+bug/104572811:00
_mup_Bug #1045728: lxcip.py looks for liblxc.so.0 in the wrong directory on 12.10 <lpsetup:New> < https://launchpad.net/bugs/1045728 >11:00
jamczajkowski: looks to be a yellow squad thing (since they introduced lpsetup).11:01
jamI understand what the bug is reporting (a library is looked for in .../lxc/lxc.so, but it would be found as just .../lxc.so)11:01
jamI don't know what a fix would be.11:01
wgrantRight, it moved in quantal11:02
czajkowskijam: ahh ok11:03
czajkowskiare yellow off that area now though ?11:04
jamI think so. I seem to remember a "we need maintenance to take over our work" email.11:04
czajkowskiyup11:04
czajkowskisaw that11:04
czajkowskijam: so it's yers now :)11:07
jamunless I stick my head in the sand for wgrant next week :)11:07
* wgrant points at the SEP field11:08
jamSEP ?11:08
wgrantSomebody Else's Problem :)11:09
wgrantIt's not my problem (yet?), so I don't acknowledge its existence.11:09
jelmerwgrant: as if you are ever reluctant about acknowledging problems.. :P11:12
wgrantHeh.11:13
czajkowskijelmer: few of your questions on LP answers need follow up, do you wantme to assign them to you so you'll get the mails ?11:14
jelmerczajkowski: that'd be great, thanks11:14
czajkowskiblues, I've created a ticket to track the bugzilla imports not working issue like mrevell suggested last week, this will be handy come handing off time11:30
czajkowskihttps://support.one.ubuntu.com//Ticket/Display.html?id=2183211:30
czajkowskias we're trying this out for a month be nice to have some feedback on this new way of tracking items raised.11:30
=== rick_h_ changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: frankban, rick_h | Firefighting: - | Critical bugs: ∞
=== gary_poster|away is now known as gary_poster
jamjelmer, mgz: I think gary_poster has officially handed lpsetup over to Maintenance, so can one of you look at: https://code.launchpad.net/~jameinel/lpsetup/missing_lxc_1045728/+merge/12266312:25
jelmermgz: Can you look at that one perhaps? I haven't dealt with lpsetup yet12:25
gary_posterno-one has except yellow, jelmer :-) we can do a review-of-the-review if you like?12:26
jamgary_poster: it is a pretty small change, (just probe in 2 locations for lxc.so)12:26
jamfeedback on how I refactored for testability would be nice12:26
gary_posterlooks nice on the face of it jam.  I'll look more carefully--or get someone else to--but why don't we try to get someone else looking at the code first so we can start the acclimatization process, and then we'll come around and confirm12:28
jamgary_poster: fine with me12:28
gary_posterplease ask reviewer to ping me (or someone else on yellow) to review the review12:29
mgzso, I can confirm that you know how to write code jam, no idea if it's the right code.12:30
gary_posterlol12:30
gary_posteroh come on, lxcip is itsy bitsy and self contained :-)12:31
jamgary_poster: is there a tarmac or something protecting the trunk?12:32
jamor are you just expected to run pre-commit.sh yourself?12:32
gary_posteryes jam12:32
gary_posterjam, tarmac.  pre-commit.sh if you want to be super careful. It takes awhile though12:33
mgzwell, I don't understand why _load_library exists, and ctypes.find_library doesn't work12:34
mgzbut I presume there's a reason12:34
jammgz: does find_library know how to handle the multiarch stuff?12:36
mgzI'd expect debian to patch the logic they need for multiarch, but perhaps they've not.12:36
gary_posterI don't think it does. frankban, question about lpsetup from mgz ^^12:36
mgzctypes hasn't been well maintained of later12:37
mgz-r12:37
mgzand it's always been on the nastier side of neat hax12:37
mgzthere's a comment in my ctypes.util about the logic being wrong for biarch and multiarch12:38
gary_posterjam, frankban reports that our pre-commit.sh only tests lpsetup, not lxcip.  An oversight.  In order to make the tests work on the machine we need to make some sudoers changes on that machine, since the tests need to run as root because lxc-ip needs to run as root12:42
gary_posterI'll file a bug jam, and ask bac to comment12:42
gary_poster(since he knows the most about the tarmac setup)12:42
jamgary_poster: thanks. Looking at the code, it would appear to just run 'nosetests' which should run all of them, but maybe they fail when not run as root.12:43
gary_posterright, I believe that's the case12:43
gary_posterwell...12:43
gary_posterif they fail then tarmac won't work...12:43
gary_posterand it does12:43
mgz<http://bugs.python.org/issue13508> filed by lool is of some interest12:46
gary_posteragreed12:47
gary_posterbac, do we run nosetests as root on lpsetup tarmac?12:47
frankbanmgz: that's exactly the problem we had with multiarch. and about the tests: nosetests run in the base directory will only run the tests for lpsetup. `cd lplxcip && sudo nosetests` must be used to run lxcip tests. This is because 1) lxcip requires root 2) test_lxcip creates an LXC container, used to exercise the main functions12:56
czajkowskia12:57
* bac looks12:58
gary_posterbac, frankban, jam, ok cool.  I filed https://bugs.launchpad.net/lpsetup/+bug/1045807 .  bac, could you link the tarmac config info so that people can know where to look and what to do?  Or is this something only yellow squad can do (in which case I should probably file another bug :-P ) ?13:04
_mup_Bug #1045807: tarmac should run lplxcip tests <lpsetup:Triaged> < https://launchpad.net/bugs/1045807 >13:04
bacgary_poster: pre-commit.sh is run by the tarmac user.  however that user has sudo privileges so tests for lp-lxc-ip could be run as root.13:05
gary_postercool bac13:05
gary_posterso it could be a trivial fix13:05
bacyes, just mod pre-commit.sh13:06
gary_posterbac, do you want me to add that to the bug (happy to) or are you?13:06
gary_posterIOW, are you doing it now?  If not, I will :-)13:06
bacmgz, jam: if you're interested the tarmac+lp2kanban canonistack branch is at https://bazaar.launchpad.net/%7Eyellow/lp-tarmac-configs/tarmac-puppet/files13:06
bacgary_poster: please do it13:06
gary_posterbac, on it.  thx13:06
bacgary_poster: i turned off lp2kanban for the yellow board.  let me know if you ever want it fired up again.13:07
gary_posterack thanks bac13:08
bacgary_poster: we should probably add the maintenance squad to the list of people who can access the canonistack instance.  unfortunately it is currently a static list of people, not teams.13:09
gary_posterbac, makes sense. Ideally we would add all of LP13:10
gary_posterbac, can you do that as a misc thing today, or should I file a bug for "someday"?13:10
bacgary_poster: it shouldn't be hard to write a lplib script that can take a list of teams and do it.  i'll add a misc card for it.13:30
gary_posterthanks bac. slack might be more apt.  dunno13:32
=== Guest78022 is now known as Ursinha
=== Ursinha is now known as Guest61980
sinzuijcsackett: am I really here? My irc is borked after quantal upgrade14:45
sinzuiwell the fonts are extra ugly too14:45
rick_h_sinzui: howdy14:45
czajkowskisinzui: welcome14:45
sinzuiSo freenode is indeed on despite the off switch14:45
czajkowskisinzui: how were the holidays and were you sick ?14:46
sinzuium, Staying in a beach house with extended family was awkward. That is the most polite way to describe the on going civil wars in house. There were only a few places to hide14:47
mgzsee, you make that sound fun.14:47
sinzuiI travelled to a Renaissance Festival yesterday. That felt like a holiday.14:48
rick_h_my wife was just saying that she wants to go to that when it's in town.14:48
rick_h_now I've got to go hiding14:49
sinzuiI go several times a year for the bad food, shlocky celtic music, and fashions (and fashion tragedies)14:50
rick_h_hah, now I'll have to rethink my lack of desire to go. Your 'bad food' really sold me14:50
sinzuiThis years secret theme is Doctor Who. I have never seen so many Whovians in one place before.14:51
sinzuirick_h_ steak-on-a-stick is just the start. It eventually leads to macaroni-and-cheese-on-a-stick14:52
sinzuiI am not kidding either14:52
rick_h_lol, I went one year and just don't have the desire to go back, but the wife wants to take the 2yr old and 'experience' it14:53
rick_h_yea, the giant muttons walking around with people snacking on them really set the scene14:53
cjwatsonAn ex of mine does full-on week-long Tudor immersion stuff14:53
sinzuiMy children demand going. Anne made the costumes toos14:53
cjwatsonScary amount of work14:54
sinzuiI dress as myself because I look the same in all eras14:54
rick_h_cjwatson: oh hey, you're around. I'm looking at this MP14:54
rick_h_cjwatson: what do you think of tring to celery-ize this? It seems like a perfect fit though you'd be the first thing full time on celery14:54
cjwatsonHeh, that was sort of why I wasn't :-)14:54
rick_h_cjwatson: in looking at the irc logs you link it seems wgrant and StevenK were going to check some perf stuff, did that all work out?14:55
rick_h_cjwatson: oh come on :P be brave and daring. It's a new job that only needs to happen in a specific use case, celery/queue ftw14:55
rick_h_a job per bug found would rock14:55
cjwatsonI tried to include the necessary bits for celerification but I don't really know what I'm doing.  Would it just be an extra feature flag?14:55
rick_h_abentley: would probably be able to help tell you that. I think they're pretty close14:56
* sinzui restarts to see if he can be on more than one irc server at a time.14:56
cjwatsonThe perf work is basically not likely to get to the point of being good enough to avoid the need for this job14:56
cjwatsonSo it's IMO orthogonal14:56
cjwatsonAfter this branch it would just have the effect of making the jobs run faster14:56
rick_h_cjwatson: ok, but there were no performance reasons against this job?14:56
cjwatsonNot that I know of14:57
rick_h_cjwatson: gotcha14:57
cjwatsonSo, I'm up for giving celery a try if it's at all likely to be workable.  How about I stick the job creation behind a feature flag and then we can try it on dogfood?14:59
cjwatsonNot that I know whether it has celery runners14:59
abentleycjwatson: You need to run celeryRunOnCommit.14:59
rick_h_ abentley can you peek at https://code.launchpad.net/~cjwatson/launchpad/process-accepted-bugs-job/+merge/122420 and advise on testing it?14:59
abentleycjwatson: The feature flag is already there.14:59
cjwatsonabentley: Right, I have celeryRunOnCommit.15:00
abentleycjwatson: jobs.celery.enabled_classes15:00
cjwatsonabentley: I mean a different feature flag specific to this job, so that if it's off the code can adopt the previous behaviour of closing the bugs directly15:00
cjwatsonSo that we could land this and test somewhere without fear of breaking existing behaviour yet15:00
abentleycjwatson: Well, in theory you could reuse jobs.celery.enabled_classes for that...15:00
cjwatsonI guess15:01
abentleycjwatson: I thought you already had a cron script.15:01
cjwatsonYou mean in stable or in my branch?15:01
abentleycjwatson: in your branch.15:02
cjwatsonNot a specific one; it would involve cronscripts/process-job-source.py.15:02
cjwatsonThat will work, although it won't be as responsive as celery presumably could be.15:03
cjwatsonI don't think responsiveness is hugely critical, but I'm wary because I'm going from synchronous behaviour to asynchronous so I don't want to create a significant perceived slowdown.15:04
abentleycjwatson: So I think the decision about whether to test the job under a feature flag is orthagonal to celery, then.15:04
cjwatsonThat's probably a fair point.15:04
abentleyrick_h_: I don't know a lot about what's running or not running on dogfood.  You'd need to ensure a celeryd is running with the 'job' queue (and maybe the 'job_slow' queue).  And then you'd do an upload.15:09
cjwatsonThere's no celeryd running right now.15:10
cjwatsonWhere's this done on production?  I don't see it in lp-production-crontabs - is there an init script?15:11
abentleycjwatson: It runs on ackee.  I don't know the details of the deployment.  I think it's puppetized.15:13
=== Guest61980 is now known as Ursinha
rick_h_abentley: ok yuck on the extra work then.15:19
cjwatsonThat might not be too horrible; I'll need to talk to ops I suppose.15:20
rick_h_cjwatson: ok, well I guess it's up to you. I don't want to hold up your stuff, but it seems like a good candidate for the celery work.15:21
cjwatsonI don't mind trying, and it isn't OMG urgent.  It might produce a better result all round.15:21
cjwatsonOr it might involve mountains of extra debugging.  BUT THAT'S THE FUN15:21
rick_h_cjwatson: wooo more fun for you15:22
rick_h_abentley: does this ring any bell while tring to run tests? ImportError: cannot import name BzrDirMetaFormat1Colo16:00
rick_h_abentley: full trace: http://paste.mitechie.com/show/771/16:00
abentleyrick_h_: No.  It sounds like it's running against an old version of bzrlib.16:01
rick_h_abentley: ok thanks...looks like something broke on me from thurs. Will peek further16:02
=== matsubara is now known as matsubara-lunch
czajkowskibac: bug 1045774 want me to set the importance on it ?16:19
_mup_Bug #1045774: Attempting to authorize from cron script leads to repeated reauth attempts <launchpadlib :Triaged> < https://launchpad.net/bugs/1045774 >16:20
bacczajkowski: yes please16:20
czajkowskilow or high?16:20
mgz5am is pretty low :)16:21
mgzI'd be tempted to revert r93 on launchpadlib16:28
mgzit's a pain to deal with regardless16:29
mgzneeding to hit enter isn't that much more pain.16:29
=== frankban changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: rick_h | Firefighting: - | Critical bugs: ∞
=== matsubara-lunch is now known as matsubara
cody-somervilleOn the sharing pages, does anybody else notice that 'First' and 'Previous' never become links? (though clicking the words still works as expected).17:35
=== almaisan-away is now known as al-maisan
al-maisanq18:29
=== al-maisan is now known as almaisan-away
rick_h_deryck: is alive!19:01
deryckrick_h_, indeed! :)19:01
deryckactually deryck's internet lives!19:01
deryckhi abentley, too :)19:01
abentleyderyck: Hi!19:01
deryckI'll do the webcam home tour at tomorrow's stand-up.19:02
rick_h_hah19:02
rick_h_how many sq ft was that going to be? /me blocks out the mansion tour on the calendar :P19:02
deryckheh19:03
deryckyeah, it could take awhile :)19:03
* sinzui rescues children from state institution19:22
abentleyrick_h_: Merged devel and got BzrDirMetaFormat1Colo19:59
rick_h_abentley: yea, I got it working with an apt-get update, source deps update, make clean and rebuild19:59
rick_h_abentley: not sure which one is the magic sauce tbh, the last thing I tried was make clean_buildout && amke clean so not sure if the other steps were required/not20:00
abentleyrick_h_: Yikes.  Given that bzr is an egg, make should be all that's needed.20:00
rick_h_abentley: might have been, when you said bzrlib was out of date I went hitting the system first20:00
rick_h_so I probably went all the way around the thing20:01
abentleyrick_h_: Sorry if I mislead you, but Launchpad doesn't use the system bzrlib.20:01
rick_h_well, I did a bin/py and import bzrlib; help(bzrlib) and found it was 0.0.1 behind my system so thought my lxc needed to be updated20:02
rick_h_anyway, all better, thanks20:02
abentleyrick_h_: plain "make" solved it for me.  (Then I had to do update-sourcecode to handle bzr-loom imports.)20:05
rick_h_abentley: cool, I'll rework my depth chart of "crap's broke...try these commands"20:06
abentleyrick_h_: yeah, "make" should be at the top of your list.  That's why I patched the 2.7 JS stuff-- because I use make a lot.20:08
cody-somervillesinzui, Does the sharingdetailsview use the API to get the information it shows or just to revoke grants to individual artifacts?20:10
sinzuicody-somerville, 100% api20:12
cody-somervillesinzui, I can't figure out how to get the data on the individual artifacts.20:12
sinzuiah20:12
sinzuithat bloody cache again20:13
* sinzui looks20:13
cody-somervillesinzui, getPillarGranteeData doesn't return details on the individual assets granted - just if there is any for the different information types20:13
sinzuiI think the cache is being loaded. then maintained by the script. I recall there is a reload to get data. I am looking at how the page first gets the data. I suspect we may not be using API if I do not see a reload to sync changes20:14
sinzuibut it is supposed to be 100% api20:15
sinzuicody-somerville, getSharedArtifacts() is not exported. I will report the bug now20:19
cr3I just noticed that blueprints now have a work items section in addition to the whiteboard. Should work items be defined like before, ie: Lorem ipsum dolor sit amet: TODO20:20
sinzuicody-somerville, https://bugs.launchpad.net/launchpad/+bug/1046022 should be fixed in a few days20:25
_mup_Bug #1046022: Cannot get the artifacts shared with a person over the API <api> <disclosure> <sharing> <Launchpad itself:Triaged> < https://launchpad.net/bugs/1046022 >20:25
rick_h_cr3: I believe so. If I recall it has a format validation that runs in case it's slightly off20:25
czajkowskicr3: that was there at last uds http://blog.launchpad.net/cool-new-stuff/work-items-in-blueprints20:25
rick_h_czajkowski: ftw!20:25
cr3rick_h_: sweet, thanks!20:25
czajkowskinew features go on the blog20:27
czajkowskialways check there :)20:27
abentleyrick_h_: could you please review https://code.launchpad.net/~abentley/launchpad/blueprint-info-type-change/+merge/122753 ?20:40
rick_h_abentley: rgr20:40
abentleyrick_h_: thanks.20:40
rick_h_abentley: r=me20:44
=== rick_h_ changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: - | Firefighting: - | Critical bugs: ∞
abentleyrick_h_: thanks.  Have a good one!20:45
cr3czajkowski: weird, when I save my work items, it adds the string "Work items:" at the top of my work items, which looks redundant considering the label of the text area is also called "Work items" :)20:45
cr3... and then I get an email that says: work items set to: work items: ..20:49
sinzuicr3, work items are not complete and have no commitment to ever be completed.20:57
cr3sinzui: ah, that has happened to be too: working on a feature that almost got done but not quite :(20:59
sinzuicr3 czajkowski: the feature was built by linaro to their needs and only they can use it fully. When the registry.upcoming_work_view.enabled is set to default or the guards removed from the code, everyone can use the full feature20:59
cr3sinzui: I'm sure contribute are quite welcome :)20:59
sinzuicr3, they are. At this time it is a maintenance burden since removing the flags break Lp :(20:59
cody-somervillesinzui, I notice that the API still returns 'USERDATA' for 'private'. Is that a bug/going to be changed to reflect what's in the UI?21:12
sinzuicody-somerville, that is intentional. "Private" is for the punters. USERDATA is for people who know better21:15
cody-somervillesinzui, It's likely that the lp api will be used by the punters too ;)21:16
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
cody-somervillesinzui, Since 'private' is really 'USERDATA', should I migrate all our bugs to proprietary?21:34
sinzuicody-somerville, you can try. Bugs that are shared with another project will raise and exception21:35
sinzuiI think true private projects will require the bugs to be proprietary, but that is two or more months away.21:36
rick_h_no, we're currently looking at providing a 3 way option of public, proprietary, and embargoed21:36
sinzuihow can a private project have public bugs?21:36
sinzuiGood luck getting users to see the bugs when they cannot traverse to the project21:37
rick_h_sorry, didn't mean that. Meant the project gets those three choices21:37
sinzuiyes. I agree21:37
rick_h_so then the bugs have to be one of the 'private' types21:37
rick_h_but won't require proprietary, embargoed will also be an option from what I understand21:38
sinzuirick_h_ private/USERDATA can be shared with other project, which leaks. Leak a lot in fact. We agreed not to support it. So the sharing policies will must be Proprietary only. Embargoed is not support by bugs but could be. any other choosen sharing policy will lead to constraint violations because the default cannot be enforced21:41
rick_h_sinzui: ok, I think our goal is to support embargoed in bugs, but as you said we've just started to maybe that doesn't work out21:43
sinzuirick_h_I think we should. They asymmetry will probably cause problems21:44
sinzuieg, can a proprietary bug be linked to an embargoed branch? What happens if the user cannot see both?21:45
sinzuiIt probably causes the same problems as public branches stacked on private branches.21:45
rick_h_sinzui: right, I assume we'll have some restrictions to manage that for sure21:45
cody-somervilleI was told that the ability to affect /private/ bugs on a private project against public projects would be retained - via using the 'private' type for some bugs vs. 'proprietary', ie. you have to make a conscious decision to lower the privacy type.21:47
sinzuicody-somerville, yes, for pubic projects with private defaults.21:48
sinzuicody-somerville, the bug-linking feature was (and honestly alway will be) a requirement to address the needs of true private projects looking at bugs in many projects21:49
cody-somervillebut the bug linking feature isn't going to be implemented - correct?21:50
sinzuicody-somerville, The other choice is to cut scope, accept the risk, and allow projects to share with non-canonical projects21:50
cody-somervillesinzui, I'll need to check with the folks who make heavy use of the bug linking. It might be acceptable that there projects have private bugs by default but not be an entirely private project. If not, that's indeed a discussion we'll have to have.21:51
cody-somerville*their21:51
sinzuiIt is a valid decision, though you need to be really sure the other project knows what you are doing to honour your intentions. And hope that the project does not send bugs to upstream bug trackers or mailing lists21:51
cody-somervillelifeless, would there be an easy way to add support to lazr.restful for prefetching certain relationships - sorta like how django lets you?22:00
lifelesscody-somerville: possibly22:00
lifelesscody-somerville: but I don't know what it is22:00
cody-somervillelifeless, basically being able to say when I make the request, for example, a project that I can specify that I want it to also return in the same response the entity linked to via the maintainer field instead of just a link22:03
cody-somervillesame rationale as making one db request to get the info I know I'll need instead of a bunch of small ones22:04
lifelessyes, I know what you mean22:05
lifelessthere was a plan put together by leonard + gary + benji + others22:05
cody-somervillelifeless, the getPillarGranteeData method on the sharing_service returns a json response with the bits of info I need on both the grants and the user so my script to inspect sharing information on a project is super fast compared to if I had to make an api request for each user22:06
lifelessyup22:06
lifelessthats why that approach has been adopted22:06
sinzuiwallyworld_, https://launchpad.net/~launchpad/+related-software <- makes little sense23:02
wgrantcjwatson: It's a daemon23:03
wgrantblah23:03
wgrantI was scrolled back a few hours23:03
wgrantnevermind23:03
sinzuiwallyworld_, https://bugs.launchpad.net/launchpad/+bugs/?field.tag=related-projects-packages <- the madness23:06

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