/srv/irclogs.ubuntu.com/2011/05/03/#launchpad-dev.txt

=== cinerama_ is now known as cinerama
jtvmorning folks03:33
lifelesshahhahahahahaahahahahahahahahaha03:50
lifelessha03:50
lifelesswgrant: yo, soyuz question03:54
lifelesshttps://lp-oops.canonical.com/oops.py/?oopsid=1904K161403:54
lifelessqueries 10 and 1203:54
wgrantlifeless: What about them?03:57
lifelesswhy does the file size count not have the status enum check03:57
wgrantlifeless: It uses dateremoved instead.03:58
wgrantWhich is similar, but not quite the same.03:58
wgrantdateremoved lags a bit.03:58
wgrantBut it represents the actual size on disk.03:58
lifelessuhm03:58
lifelesswould it be incorrect to put the status enum in ?03:58
wgrantIt depends on your definition of correctness.03:58
wgrantIt would make it no longer reflect the archive disk usage.03:59
wgrantlifeless: Erm, 6to4 doesn't do that.04:00
wgrantMaybe you mean NAT64.04:00
wgrantWhich is in no way widely supported.04:00
wgrantAnd then you probably need DNS64 too.04:01
wgrantPure IPv6 is not a very friendly environment at the moment.04:01
lifelessah04:01
lifelessthere used to be a 6 -> 4 thingy04:01
wgrantStill, World IPv6 Day soon.04:01
lifeless6-7 years ago04:01
wgrantYeah.04:01
wgrantThat was deprecated.04:01
wgrantAnd replaced by NAT64.04:02
wgrantBut neither has ever been widely supported.04:02
wgrantDoable, but not common.04:02
lifelessI feel for the guy04:02
lifelessbut its totally not a bug in lp's code04:02
StevenKI just love how The Plan for IPv6 is "Oh, everyone will move. At some point."04:02
wgrantStevenK: What more plan can there be?04:02
wgrantPeople have to stop being hideously lazy.04:02
wgrantAnd just do it.04:02
spivI just like to imagine IPv6 causing DNS servers the world over to scream “AAAA!”04:02
wgrantIt's not that hard.04:02
StevenKspiv: Boo. Hiss.04:03
StevenKwgrant: No, it just costs time and lots of money.04:03
wgrantStevenK: And they've had more than a decade to do it.04:04
StevenKAnd telecommunication companies prefer to *recieve* lots of money and spend very little.04:04
lifelesswgrant: thats -barely- 2 equipment refreshes of core switch gear04:04
wgrantlifeless: Sure. But most companies are not even thinking about it yet.04:04
lifelesswgrant: and its not been /stable/ for all that long04:05
lifelessanyhow04:05
lifelessarchive:+repository-size04:05
lifelessnot ip604:05
lifelesskgo04:05
wgrantAt least aarnet's tunnel broker is reasonable.04:06
wgrantlifeless: What about it?04:06
lifelesswgrant: thats the oops I'm looking at04:08
lifelesshttps://bugs.launchpad.net/launchpad/+bug/73907004:08
_mup_Bug #739070: Archive:+repository-size timeout <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/739070 >04:08
lifeless9+ seconds to query file sizes04:08
wgrantYes.04:08
wgrantlifeless: Would the status filter improve it significantly?04:09
lifelessI'm not 100% sure04:09
lifelessexploring the space atm04:09
lifelessis it 2 for binaries as well?04:09
=== Ursinha is now known as Ursinha-afk
wgrantYes.04:10
wgrantPackagePublishingStatus is universal.04:10
wgrant~/launchpad/lp-branches/bfj-different-urls$ bzr push04:10
wgrantUsing saved push location: lp:~wgrant/launchpad/bfj-different-urls04:10
wgrantbzr: ERROR: Server sent an unexpected error: ('error', '<ProtocolError for xmlrpc.lp.internal:8097/codehosting: 502 Bad Gateway>')04:10
wgrantI don't think that's meant to happen.04:10
lifelesswgrant: would 2+3 be equivalent ?04:10
wgrantlifeless: No.04:10
wgrantlifeless: What's 3? Superseded?04:11
wgrant(it's working this time)04:11
lifelesswgrant: yes04:11
lifeless4 is deleted04:11
lifeless1 is pending04:12
wgrant5 Obsolete.04:12
wgrantRight.04:12
wgrantI never remember the 3/4 order.04:12
wgrantSo, 3/4/5 are all potentially removed.04:12
wgrantIn the beginning there was Pending/Published/PendingRemoval/Removed.04:12
lifelessanyhow04:12
wgrantThen ArchiveRemovalRedesign happend, and the removedness was moved into dateremoved instead.04:12
lifelesswith (2) its a 50ms query hot04:12
wgrantWith status indicating the reason for removal.04:12
wgrantHmm.04:12
wgrantWith dateremoved how is it hot?04:13
lifeless73ms04:13
lifeless:P04:13
lifelesslook at the plan04:22
lifeless    "securebinarypackagepublishinghistory__archive__status__idx" btree (archive, status)04:22
lifelessis the index it is using04:22
lifelessso it reads every row ever in that archive04:23
lifelesswgrant: ^04:26
lifelesswgrant: ping04:28
lifelesscreate index bpph__dateremoved__for__size__idx on binarypackagepublishinghistory using btree (dateremoved) WHERE dateremoved IS NULL;04:28
lifelesscan you create that on dogfood04:28
lifelessand get me an explain analyze for the query in https://bugs.launchpad.net/launchpad/+bug/739070/comments/1 ?04:28
_mup_Bug #739070: Archive:+repository-size timeout <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/739070 >04:28
wgrantlifeless: Ah, didn't see the plans in the bug.04:31
wgrantLet's see.04:31
wgrantlifeless: The index is building.04:33
lifelessI suspect we'll want (archive) where dateremoved is null04:34
lifelessor04:34
lifelesswe should make dateremoved go away04:35
lifelesseither folding it into the status enums04:35
lifelessor dropping the librarian reference or whatever04:35
wgrantlifeless:                      ->  Index Scan using temp_bpph_archive_dateremoved_idx on binarypackagepublishinghistory  (cost=0.00..1112.40 rows=391 width=4) (actual time=56.562..107.930 rows=915 loops=1)04:43
wgrant                           Index Cond: ((archive = 14516) AND (dateremoved IS NULL))04:43
StevenKSo the bpph scan is cheap with an index04:43
wgrant34ms hot.04:44
jtvIs that dateremoved check a status check in disguise?04:44
wgrant10s cold, but DF.04:44
wgrantjtv: Yes.04:44
StevenKlifeless: There is a stay of execution for [bs]pph, we'd need to think very carefully about it.04:44
lifelessStevenK: We don't need to remove it04:44
lifelessStevenK: but we do need to model it. Modelling it as a separate field may be worse than not.04:45
lifelesswgrant: the query was 10s cold ? did you get the full explain analyze?04:45
StevenKWe could add another DBItem to PackagePublishingStatus -- PURGED or so04:46
wgrantlifeless: I had it, but then I made the mistake of pressing PgUp, which DF does not enjoy at all.04:46
wgrantStevenK: Doesn't quite work.04:46
wgrantStevenK: PPS has three separate end states.04:46
wgrant(whether this is sane or not is in question)04:46
wgrantlifeless: But cold data from DF is entirely useless.04:47
wgrantlifeless: The numbers, at least.04:47
wgrantThe plan is OK.04:47
lifelesswgrant: can I see?04:47
lifelesswgrant: cold data still tells me where time is going, and thats useful.04:47
lifelesswgrant: so I dispute entirely useless04:47
lifelesswgrant: oh, I see, lost.04:47
lifelesskk04:47
wgrantYeah.04:47
wgrantGet one from qastaging, I guess.04:48
lifelessselect count(*) from branchrevision; then try again ?04:48
wgrantIt doesn't tell you where the time goes, really.04:48
wgrantIt tells you that DF has like 4MB of RAM.04:48
StevenK4MB. 'lol'04:48
lifeless640k surely04:48
=== Ursinha-afk is now known as Ursinha
lifelessugh, timeline only works if you run upstream builds of chromium? wtf04:52
wgrantlifeless: Hm?04:53
wgrantWorks for me.04:53
lifeless"Pfffttt, Speed Tracer is not working.04:53
lifelessPlease double check a couple of things:04:53
lifelessYou must start Chrome with the flag: --enable-extension-timeline-api04:53
lifelessYou must be running the Chrome Dev channel.04:53
lifelessFor more details, see our getting started docs."04:53
wgrantOh. Not an upstream build.04:53
lifelessI have enable-extension-timeline-api in CHROMIUM_FLAGS in /etc/chromium-browser/default04:53
wgrantJust not a stable build.04:53
lifelesswebdevs are stable users too04:54
StevenKAnd error message that includes "Pfffttt," Kwality04:54
wgranteg. ppa:chromium-daily/beta or so.04:54
lifelessI question the sanity of this04:54
wgrantlifeless: *That* makes you question the sanity of Chromium?"04:54
StevenKI have yet to see any *compelling* reason to switch to Chromium, TBH.04:54
wgrantStevenK: I use Chromium.04:54
wgrantIt's not bad.04:55
StevenKHowever, I question Google's motives.04:55
wgrantFirefox 4 is OK, except not with fglrx.04:55
lifelesswgrant: so can has plan?04:55
wgrantlifeless: The hot one?04:55
lifelessthe cold one after querying branchrevision a lot04:56
wgrantIt's been running that select for 8 minutes, still hot as ever.04:56
lifelessargh hhaa04:56
lifelessok04:56
wgrantYes.04:56
lifelesshot will be fine04:56
wgranthttp://paste.ubuntu.com/602605/04:56
micahgfunny, 3.6 was broke with nvidia, 4.0 is broke with fglrx04:57
wgrantOur test suite is slow.04:57
lifelesswgrant: https://bugs.launchpad.net/launchpad/+bug/739070/comments/405:00
_mup_Bug #739070: Archive:+repository-size timeout <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/739070 >05:00
wgrantlifeless: 19ms05:01
lifelessthis is 1/2 the estimated cost05:01
lifelesswhich is daft but there you go05:01
wgranthttp://paste.ubuntu.com/602606/05:01
lifelesswhy are we bringing back the rows ?05:02
wgrantWhich rows?05:03
lifelessthese rows05:03
lifelesswhy aren't we summing05:03
wgrantNFI05:03
wgrantBut it's only a single column.05:03
wgrantSo it's not that bad.05:03
wgrant(yes, it should be fixed)05:03
wgrantOh. This query is not a single column.05:03
wgrantAhh, this is query 11, not query 10.05:04
lifelesswgrant: https://bugs.launchpad.net/launchpad/+bug/739070/comments/505:06
_mup_Bug #739070: Archive:+repository-size timeout <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/739070 >05:06
lifelesswgrant: actually I'm in https://lp-oops.canonical.com/oops.py/?oopsid=1948BB19705:06
lifelessquery 2105:07
lifeless8929msSQL-launchpad-main-master05:07
lifelessSELECT DISTINCT LibraryFileContent ...05:07
wgrantlifeless: Still 19ms.05:07
lifelessspm: can you run https://bugs.launchpad.net/launchpad/+bug/739070/comments/5 on the readonlymode replica - *one* run, I need the explain analyze (looking for cold cache effects)05:08
_mup_Bug #739070: Archive:+repository-size timeout <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/739070 >05:08
spmoki05:08
lifelesswhy does packagefile exist?05:23
lifelesshttps://bugs.launchpad.net/launchpad/+bug/739070/comments/605:24
_mup_Bug #739070: Archive:+repository-size timeout <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/739070 >05:24
lifelesswgrant: ^05:25
lifelessStevenK: ^05:25
wgrantlifeless: packagefile? You mean BinaryPackageFile?05:25
lifelessyes05:25
StevenKThere are two05:25
lifelessand I assume sourcepackagefile05:25
wgrantSourcePackageReleaseFile is essential.05:26
StevenKIt's SourcePackageReleaseFile05:26
StevenK(Usually called SPRF)05:26
wgrantBinaryPackageFile is for potential expansion to multi-file binaries.05:26
wgrant(yes, seriously, one has Release and one does not)05:26
lifelessok05:26
lifelessI can see the expansion factor05:26
lifelessbut05:26
lifelessif we makde bpph be an owner of LFC (wrapping the LFA fields in it, and glued into the gc process) we'd save 2.2 seconds of overhead.05:27
wgrantaaaaaaaaaaaaaaa05:28
wgrantaaaaaaaaaaaaaaaaaa05:28
wgrantSo, an SPR can have any number of SPRFs.05:28
wgrantAnd there are often lots of BPPHs for a BPR.05:28
lifelesssure05:28
lifelessbut the whole point of LFA is to reference-count-own LFC05:28
lifelessignore SPRF for now, I see why the 1:M is needed05:29
lifelesswe could roll up some stuff there too, but separate problem.05:29
wgrantNo point solving BPPH without SPPH.05:29
lifelesswgrant: 3:1 bpph -> spph rows05:29
lifelessor more05:29
wgrantA constant factor of three is not very compelling.05:30
lifelesswgrant: solving a problem is solving a problem05:30
lifelessso the question is, can we solve05:30
lifelessor05:30
lifelessdo we need to precalculate05:30
* StevenK murders gina.txt05:43
lifelessstub: hi05:52
jtvSpeaking of stub, where did his wonderful "prejoin" decorator go?05:54
lifelessjtv: deleted05:54
jtvin favour of what?05:54
lifelessDecoratedResultSet05:54
lifelessstub: is 2.8 seconds 'about right' for reading in 1000 cold rows from libraryfilecontent?05:55
jtvWith cold rows, how would you know?05:56
stubyo05:56
lifelessjtv: https://bugs.launchpad.net/launchpad/+bug/739070/comments/1105:56
_mup_Bug #739070: Archive:+repository-size timeout <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/739070 >05:56
lifelessjtv: science :>05:56
stublifeless: I don't think is very good05:56
jtvIt's still considerably less than you'd expect from a full seek per row.05:57
lifelessstub: https://bugs.launchpad.net/launchpad/+bug/739070/comments/605:57
_mup_Bug #739070: Archive:+repository-size timeout <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/739070 >05:57
jtvlifeless: no I don't mean how do you know it's 2.8 seconds for 1000 rows, but how would you know whether it's "about right."05:57
lifelessjtv: we're seeing 2.5ms per row, thats plausible with many redundant spindles05:57
lifelessjtv: I would ask someone familiar with our db's guts :>05:58
jtvRegardless, it's all a question of access patterns isn't it?  It could probably be 5x worse, it could probably be 500x better.05:59
lifelessjtv: not really05:59
lifelessjtv: if this is slower than we'd anticipate given our hardware and prior experience, then we can go digging for issues like table/index bloat, contention whatever06:00
lifelessjtv: if this is approx as fast as we'd expect on an average day, then we're wasting time if we do that and we should instead look at how to either avoid it being cold or avoid accessing the rows06:00
StevenKwgrant: Want to hear something awesome?06:00
StevenKwgrant: gina.txt has been running for 20 *minutes* locally.06:01
stubSo that is 695 index lookups and row lookups, so pulling a minimum of 1400 blocks off the disk random access06:01
jtvlifeless: what I'm trying to say is that cold random reads have so many unknowns that this sample size seems inadequate.06:01
wgrantStevenK: It normally only takes 60 seconds. I think you have a bug.06:01
StevenKwgrant: Or I've broken it into pieces.06:01
StevenKAnd since it's a doctest, I have to printf-debug06:02
lifelessStevenK: how do you go from 695 -> 1400 blocks ?06:02
lifelessbah06:02
lifelessstub: ^06:02
lifelessstub: heuristic of 2:1 (index + table) ?06:02
jtv(It would be pretty nice if postgres could at least profile distribution of I/O latencies)06:02
lifelessjtv: that would be awesome06:03
lifelessjtv: I agree that there are many unknowns06:03
stubRead a bucket in the index == pull one block from disk. Read that row from disk == pull one block from disk.06:03
jtv(The stupid thing is, we've been thinking of I/O costs in terms of FS cache misses, which is impossible to predict and may soon be an outdated concept anyway.  If we could just look at it from an empirical standpoint, we might win something.)06:04
lifelessits about 150 bytes per row min, so what 25 per page06:04
lifelesson a 14M row set we're very likely to get one page per row06:04
stubSo 700*2 == 1400, == the minimum if we somehow magically only load up wanted information from the index06:04
lifelessstub: kk, thats cool, i have the same basic model06:05
lifelessstub: was just checking06:05
stubOk. I was assuming the size of the table would make it unlikely to get multiple rows in a page.06:05
lifelessyeah, an assumption I agree with06:05
lifelessthe BPPH table is very spread over time06:05
lifelessjtv: thats not my model of IO costs06:05
jtvNot "we" personally; I mean the world.06:06
stubThe index should be much more tightly packed too.06:06
lifelessjtv: ah; so I don't think the world thinks of IO that way per se ;) - see for instance the scale free algorithms work06:06
lifelessjtv: which models IO as tiers of progressively bigger and slower cache06:06
jtvWell okay, the database world.06:07
jtvAnd that model is still wrong, is my point.06:07
stublifeless: Oh... and the toast lookups for the md5 and sha1 hashes which are stored as text, so potentially another 4 lookups06:07
lifelessjtv: they seem to have /very/ good results doing this - noting that they start with the CPU L1 cache and work out06:07
lifelessstub: even if we're not looking at the columns (as my rephrased cheaper-estimate query doesn't)06:08
jtvYes, but that's cache-oblivious algorithms isn't it?  I'm talking database.06:08
lifelessjtv: it is, but database will get those algorithms eventually I suspect06:08
stublifeless: I think that will avoid loading the data from the toast tables, yes.06:08
lifelessthat or mlock() the entire table06:08
jtv(And I'm not talking cache-oblivious database either: we can worry about that once that world finally catches on to space-filling curves)06:08
lifelessjtv: I think its percona that have a space-filling curve index06:09
jtvlifeless: There have long been cache-oblivious algorithms for databases.  I worked on a cache-oblivious join algorithm 2 jobs ago.06:09
lifelessjtv: very similar to bzr's index /packing logic in fact06:09
lifelessjtv: \o/06:09
lifelessstub: so what I'm trying to assess, is there some way to get this down to < 2 seconds reliably (we have to do a parallel query for the source package data)06:11
jtvBut when it comes to buffer management and individual query optimization, my point is is we can't afford to keep thinking "what if this misses in FS cache and the seek is long" because it just gets too complex: SSD, on-disk cache, bad blocks, network latency.06:11
lifelessstub: or should we be maintaining the archive size as a cache06:11
lifelessstub: its currently 9 seconds with the original query, 6.6 seconds in my rephrased one06:12
jtvStevenK, wgrant: should the "synchronize the simple updates" button on +localpackagediffs update blacklisted differences as well?06:13
lifelessstub: and we're seeing ~ 7 of these a day where its stuttering (presumably on IO)06:13
wgrantjtv: No.06:13
stublifeless: So your theory is this query will often be cold due to access patterns so the lfc lookups will sometimes be too slow? I'm trying to think if we have other pages accessing more than a few dozen lfc rows.06:14
stubMore of the ones I can think of are dealing with bulk packaging data and are slow too06:15
lifelessstub: bug attachments show their size in the comment, for some bizarre reason06:15
lifelessvery busy bug pages could access hundreds; *but* we will paginate those eventually06:15
lifelessso not relevant here06:15
wgrantlifeless: That's also the only non-packaging one I can think of.06:15
stublifeless: Bug attachments are fine as it would be rare for a page to have more than a dozen attachments.06:16
wgrantSome have hundreds.06:16
jtvwgrant: I'll take your word for it.06:16
lifelessstub: its rare, but I can link you to the bugs :>06:16
wgrantjtv: That is sort of the point of blacklisting.06:16
lifelessstub: I don't think its *often* cold, but I think its cold *often enough*06:16
lifelessspecifically I don't think we do this query on this dataset anywhere else except *perhaps* on package upload (for quota checking)06:17
jtvwgrant: well, unless maybe we have automated syncing and then users start blacklisting dsds they feel will behave correctly without human attention.06:17
wgrantjtv: Then we've redefined the term.06:17
jtvwgrant: so it sort of requires a conscious decision that blacklisting means "I don't want this change" and not "I don't want to see this change."06:17
stubyeah. so caching the archive size is fine for this query. I'm wondering if there is something more generic we can do to solve slowness in similar pages. The packaging tables always seem to be an issue - large, and the users want complex reports.06:17
wgrantjtv: At the moment the Ubuntu sync blacklist blacklists the sync.06:17
lifelessstub: so in this particular case; there is a missing index that would drop the rows examined by 6000 in the packaging table06:18
lifelessstub: I don't know if its worth adding06:18
lifelessI don't think it will solve the problem06:18
StevenKjtv: It effectively means "I don't care"06:18
jtvwgrant: fine by me; the "I'll take your word for it" still stands but in light of yesterday's conversation I thought I'd at least ask.  :)06:18
wgrantHeh.06:19
wgrantStevenK: ^^06:19
jtvStevenK: that seems to contradict wgrant's take.06:19
wgrantDo you agree?06:19
wgrantOh, he's here.06:19
jtvAlas, yes.06:19
jtv<wink>06:19
wgrantStevenK: You mean "I don't care what the parent thinks"?06:19
lifelessstub: ok, I'll update this bug to say 'needs cached figures'06:19
StevenKMore correctly: "I don't care about this difference"06:19
jtvwgrant is showing his age06:20
jtv"I don't care what my parents think"06:20
StevenK"I'll hack on Launchpad even if my father thinks that Web 2.0 is wrong! I'll show them!"06:21
jtvStevenK: humans may not think they care, but it'd be nice to have a clear notion of whether they have a right to be disappointed if the blacklisted difference stops the package from updating.06:21
StevenKjtv: Yes, a blacklisted difference stops a sync06:21
jtvOf course the button I'm building will sort of eliminate an excuse for blacklisting packages that should be updated.06:21
* jtv updates his tests.06:21
StevenKKeep in mind there are two blacklist states06:22
stublifeless: So that query is broken anyway, because the distinct on is lacking an order by so it isn't doing what the author thought it is doing06:22
lifelessstub: my one ?06:23
stubthe one in the bug comment you linked me to06:23
lifelessstub: my rephrased one is the one with the subselect06:23
lifelessstub: it doesn't need the order by06:23
StevenKRan 1 tests with 1 failures and 0 errors in 35 minutes 35.459 seconds.06:23
lifelessstub: look at the plan: it orders to do the distinct and unique automatically06:23
StevenKWHEEE!06:23
stublifeless: That is fine if you happen to get the plan you are expecting.06:24
jtvStevenK: not too worried about the two blacklist states; I'm whitelisting, not blacklisting statuses.  Are we confused yet?  :)06:25
stublifeless: So we really need the order by, esp if we want this to survive future PG upgrades.06:25
stub(and with luck, it will be a noop with the expected plan)06:26
lifelessstub: I'd like to learn more about this06:26
lifelessstub: which docs should I read?06:26
StevenKjtv: Don't make me kick you.06:26
stublifeless: This is documented in the DISTINCT ON section of the SELECT page in the SQL Reference guide for PostgreSQL06:27
stubSorry - 'DISTINCT clause' section06:27
stubfile:///usr/share/doc/postgresql-doc-8.4/html/sql-select.html06:27
lifelessstub: so, I read that06:30
lifelessstub: and it doesn't conflict with what I've done06:30
lifelessstub: because - 'Note that the "first row" of each set is unpredictable unless ORDER BY is used to ensure that the desired row appears first'06:30
lifelessthats fine, we're selecting identical rows, so whichever row comes first is ok06:31
lifelessstub: anyhow, I can add a sort in06:31
lifelessstub: but we don't use that crafted query /anyway/ because I was seeing if we could make it fast without caching etc06:32
stublifeless: nm. You are correct I think.06:32
stubI wonder if it changed, or if I'm thinking of a similar statement? I'm sure there was one that if you neglected the ORDER BY you can get duplicate results06:33
stublifeless: So in this case you can use the SQL standard "SELECT DISTINCT libraryfile, filesize" rather than SELECT DISTINCT ON (libraryfile) filesize, but the cost saving is statistically insignificant.06:36
lifelessstub: interesting; we don't need libraryfile at all anyhow, just the summed sizes06:37
stublifeless: Should we be using rabbitmq instead of triggers to maintain BugSummary btw?06:37
lifelessstub: it would remove all the races06:38
lifelessstub: I have a branch for rabbitmq but ec2 threw it out06:38
lifelessstub: I don't know why yet and haven't gotten back to it06:38
stub(now that I think the DB patch is done, and just waiting on tests to confirm this hypothesis :) )06:38
lifeless:>06:39
lifelessstub: thanks!06:39
lifelessI've written up my theory in https://bugs.launchpad.net/launchpad/+bug/73907006:39
_mup_Bug #739070: Archive:+repository-size timeout retrieving many hundreds of package sizes <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/739070 >06:39
lifelessjust the top of the bug summary06:39
stublifeless: I needed to change the structure a bit - we might be race free now with the simpler triggers that I thought were needed to catch some potential modifications06:41
lifelessbug_fti || 76% || 612 MB of 798 MB06:41
StevenKwgrant: I fixed gina!06:42
lifelessstub: that would be cool, but the case of 'person subscribes and the bug is made public' - how will that be race free?06:42
wgrantStevenK: Oh?06:42
StevenKwgrant: Well, the test now takes 65 seconds, rather than 2135.06:42
wgrantThat's more normal.06:42
wgrantWhat did you break?06:42
StevenKwgrant: gina needed access to DSP06:43
wgrantAh.06:43
StevenKSince she creates DSDJs06:43
wgrantYes.06:43
wgrantAnyone want to review https://code.launchpad.net/~wgrant/launchpad/bfj-different-urls/+merge/59730? Fairly long, but mostly just sed applied to test.06:43
wgrant+s06:43
jtvwgrant: I'll take it06:44
lifelessstub: have we got enough bloat-changing data to point at (or exclude) bug heat yet ?06:45
lifelessstub: or equally, backups06:45
stublifeless: yer... I think the race is still there.06:46
lifelessstub: I thought of a way to make it detect races06:46
stublifeless: No, I haven't got the data to confirm the cause.06:46
lifelessstub: but you'll either cry or aim a nuke at me.06:46
lifelessstub: and I don't want to cause either event.06:47
stubWe can serialise it by using an advisory lock.06:47
lifelessstub: the way would be in any transaction affecting a bug, update a row in a common table, to for serialization detection06:47
lifelessa lock sounds better :>06:49
stubAnd advisory lock will do the same thing, and be explicit and faster. yes.06:49
StevenKbzr di can't handle multiple revspecs? :-)07:10
StevenK:-( rather07:10
lifelessStevenK: -r x..y07:11
StevenKlifeless: I'd like to skip one in the middle07:12
lifelessyou may want difftastic07:12
LPCIBotProject windmill-devel build #2: STILL FAILING in 1 hr 5 min: https://lpci.wedontsleep.org/job/windmill-devel/2/07:13
StevenKlifeless: Google doesn't show anything relevant for that?07:13
lifelessaarons plugin for lp merge proposals to show incremental diffs07:14
wgrantdifftacular?07:14
StevenKPerhaps I'll just use filterdiff07:14
lifelesswhata the rev you want to skip? a merge?07:15
StevenKYes07:15
lifelessinterdiff / difftcular is what yo uneed then07:15
StevenKI can generate the two diffs, interdiff shows the diff between them, how does that help?07:17
StevenKOooh, I see. combinediff07:19
jtvwgrant: done07:19
lifelessbbiab07:35
jtvwgrant: in case I didn't get through earlier, your review is done.08:25
jtvAnyone care for a simple, short cleanup review?  https://code.launchpad.net/~jtv/launchpad/db-pre-747546/+merge/5973708:25
StevenKBah, I was about to answer him, too08:28
StevenKjtv: r=me08:29
jtvthanks08:29
lifelessjml: hi08:29
lifelessjml: sorry I was afk; was fooding08:30
jtvStevenK: and fwiw you're absolutely right about moving it.  One battle at time though.08:30
StevenKjtv: Sure, which is why I just approved it08:31
jtvWe're in loud agreement.08:31
StevenKjtv: You probably could have targetted devel, too08:31
jtvYes, but I already have these changes in another branch and I want to had them off at the diff.08:32
StevenKjtv: Just saying, is all08:33
jtvThat is understood.08:33
wgrantjtv: Thanks. It changes the URLs used by the API, but not the API itself.08:44
jtvVery well.08:44
adeuringgood morning08:46
rvbawgrant: Hi! I modified the call sites of Archive.syncSource like you suggested ... you might want to have a look since the modification is kind of sensitive (https://code.launchpad.net/~rvb/launchpad/change-perm-sync/+merge/59341).08:54
wgrantrvba: I think CannotCopy exceptions are exposed in the UI, so you probably want to check that their values will be sensible.08:58
rvbawgrant: good point.08:59
wgrantOtherwise that looks great.08:59
bigjoolsmorning all08:59
wgrantMorning bigjools.08:59
rvbabigjools: Morning!08:59
bigjoolswhat's broken? :)08:59
wgrantYou survived your vacation without PSN?08:59
bigjoolsyeah, I got a  copy of Portal 2 :)09:00
wgrantAh, 'tis an excellent game.09:00
bigjoolsI like Valve stuff anyway09:00
wgrantalthough dissapointingly short.09:00
* bigjools sees size of inbox09:06
StevenKbigjools: And you run screaming?09:07
StevenKA GLaDOS reference somewhere in Soyuz would be apt.09:07
bigjoolsI am gently rocking backwards and forwards while hugging a small furry toy09:07
bigjoolsStevenK: ha09:08
mrevellGood morning!09:09
lifelessjml: ready when you are09:11
jtvhi mrevell09:13
=== almaisan-away is now known as al-maisan
jmllifeless: hi09:49
lifelesshi09:49
jmllifeless: sorry, I got distracted by my RSS feeds.09:49
lifelessskype/voip either is good09:49
jmllifeless: ok. what's your voip number?09:49
lifelessjml: thats ok, its only getting vs is late :)09:49
lifelessjml: actually, skype is better because I don't need a headset ;)09:49
lifelessekigas echo detection is still poor09:50
jmllifeless: ok. skype.09:50
StevenKallenap: http://pastebin.ubuntu.com/602641/ ; thanks!09:53
allenapStevenK: Cheers.09:54
henningewgrant: Hi!10:26
=== gmb changed the topic of #launchpad-dev to: PQM in RC mode | https://dev.launchpad.net/ | On call reviewer: gmb | https://code.launchpad.net/launchpad-project/+activereviews
wgranthenninge: Hi.10:53
henningewgrant: Do you happen to know if bug 776160 is  a duplicate?10:54
_mup_Bug #776160: mail headers inconsistent between FAILEDTOUPLOAD and FAILEDTOBUILD <Launchpad itself:Triaged> < https://launchpad.net/bugs/776160 >10:54
wgranthenninge: I don't think it is.10:54
henningewgrant: thanks10:54
=== al-maisan is now known as almaisan-away
henningeI have a problem writing a view test for bug 644872.10:57
_mup_Bug #644872: UnicodeEncodeError in search_text field <faqs> <lp-answers> <oops> <Launchpad itself:In Progress by henninge> < https://launchpad.net/bugs/644872 >10:57
henningeI can trigger it in the UI by searching "português" here: https://answers.launchpad.net/ubuntu/10:58
bigjoolswgrant, rvba: regarding the sync package permission change, did you think about how it'll fit in when we start doing it asynchronously?10:59
wgrantbigjools: Do we have a plan for that yet?10:59
rvbabigjools: I'm afraid not. But how is this particular change (the permission change) related to that exactly?11:00
bigjoolswgrant: sorta.  The job is done but not used.  allenap is working on changing the job schema so we can query across archive/series and display something to the user to show pending jobs.  Then we'll switch over the syncing first, maybe PPA copies in the future.11:00
bigjoolsrvba: the check will happen in the job, not the UI.11:00
bigjoolsit would be nice if it happened in the UI but I think it'll bust the query time11:01
wgrantbigjools: This seems like it's only useful for mass copies.11:01
rvbathe permission check is now done in the copyChecker along with the various other checks11:01
bigjoolswgrant: correct.  We might decide an arbitrary number of packages, over which we use the job rather than synchronously.  The next step is to design the UI.11:02
wgrantbigjools: Great.11:02
wgrantbigjools: As long as you're not trying to do async for normal copies.11:02
wgrantWhen immediate feedback is helpful.11:02
bigjoolswgrant: define "normal"11:02
bigjoolsnot trying to do async for *anything* yet :)11:03
wgrantbigjools: PPA copies, mostly.11:03
wgrantNot let's-sync-20%-of-the-archive.11:03
bigjoolsnot initially but I have PPAs in mind11:03
bigjoolssince some PPA copying times out still11:03
wgrantIt's very fixable.11:04
wgrantMost of the time in most cases is now spent in the UI.11:04
wgrantDetermining the list of sources.11:04
bigjoolsok11:04
wgrantBut there are some very expensive build queries when there is a potential source conflict in the destination (which is rare)11:04
wgrantAnd delayed copy creation is slow :(11:05
bigjoolswgrant: what do you think is a good number?  50? 100?  (total source+binaries)11:07
wgrantbigjools: NFI11:07
wgrantWe may need science.11:07
* bigjools licks finger and holds to the wind11:08
wgranthenninge: Wishlist doesn't exist. We are using Low instead.11:11
wgrant(just hope Rob doesn't notice you doing that ;))11:11
henningewgrant: thanks ;)11:12
henningewgrant: I'll fix the documentation11:12
wgrantI thought it already was fixed :(11:12
henningeWe map these buckets into:11:13
henningecritical : generally empty, bugs that need to jump the queue go here.11:13
henningehigh: bugs that are likely to get attention within 6 months11:13
henningelow [or perhaps wishlist]: All other bugs.11:13
henningethat sounds old11:13
henningeis the critical definition current?11:14
wgrantYes.11:15
wgrantBut ZOP means it's not empty.11:15
wgrantYet.11:15
henningeAh, I see.11:15
wgrantWe have 5 years of debt to repay.11:15
henningeok, doc changed.11:16
henningelow: All other bugs.11:16
henningeWe don't use wishlist.11:16
wgrantThanks.11:16
bigjoolsrvba: regarding the permission changes to syncing, I am concerned that users with zero permissions can cause a load on the job runner11:19
bigjoolsand in the webapp for direct syncs, for that matter11:19
rvbabigjools: good point, but is there a "small" permission that can be checked before doing the sync?11:20
bigjoolsrvba: I'm trying to work that out now :)  Ideally, we need a "has any permission at all?" check11:21
wgrantIf it's too expensive to check all permissions at the time of the request, you could just check for any ArchivePermission on the Archive.11:21
bigjoolsright11:21
bigjoolsin fact the upload processor does this somewhere11:21
* bigjools digs11:21
wgrantIf you use the upload processor as a model for anything I will cry.11:21
* bigjools slaps wgrant11:21
wgrantBut yes.11:21
wgrantIt's struct_component on checkUpload.11:22
wgrants/struct/strict/11:22
wgrantBut it's not quite right.11:22
wgrantOh, no, there's that other thing too.11:22
wgrantArgh this is such a mess.11:22
bigjoolsyes11:22
bigjoolsblame Ubuntu policies11:22
wgrantYeah, see Archive.verifyUpload11:23
wgrant        if not self.getComponentsForUploader(person):11:23
wgrantBut it's buggy because it only considers components.11:23
bigjoolsle sigh11:23
wgrantA bug exists for that, I believe.11:23
wgrantBut the any-permission-at-all check is pretty simple to query for.11:24
bigjoolsyep, we can just join TP to AP11:24
wgrantExactly.11:24
wgrantReally cheap.11:24
bigjoolsrvba, ok?11:24
rvbabigjools: sounds ok. Just tell me what TP and AP are11:24
rvbaArchivePerm11:25
wgrantTeamParticipation11:25
wgrantIt is a flattened version of TeamMembership.11:25
rvbaok11:25
wgrantSo it contains indirect memberships too.11:25
bigjoolsmake life so much easier when querying11:25
wgrantAnd faster.11:25
wgrantAnd less recursive.11:25
wgrantAnd less reliable...11:25
bigjoolsso if someone has any AP at all, show the button11:25
bigjoolsotherwise, nada11:25
rvbaall right. I'm on it.11:26
rvbawgrant: why "less reliable"?11:26
wgrantThere are occasional bugs in its maintenance.11:26
wgrantSo it gets inconsistent with TM.11:27
rvbaI suppose it gets periodically whipped out and recalculated then.11:27
LPCIBotProject windmill-db-devel build #230: STILL FAILING in 1 hr 4 min: https://lpci.wedontsleep.org/job/windmill-db-devel/230/11:28
jtvallenap: are you all caught up?11:45
allenapjtv: In what? :)11:46
jtvallenap: ah11:46
allenapjtv: I assume you want to talk about the sync button?11:46
jtvYes!11:46
allenapjtv: IRC, Mumble, Skype?11:46
jtvI've been asked to make a change to the indexes initialization code, which means dropping my ongoing work on the sync button.11:46
jtvIRC would be convenient for me right now (headset is charging).11:47
allenapjtv: Okay.11:47
jtvNow, the code I have should be in a pretty nice shape.11:47
jtvI'm trying to make useful notes.11:48
jtvAnd Steve said you'd been working on something called... SyncPackageJob?11:48
allenapjtv: SyncPackageJob has been reincarnated as PackageCopyJob, but yes.11:49
allenapInstead of calling IArchive.syncSource() it calls do_copy() directly, and so can copy multiple packages in a single job.11:49
henningeCan anybody give me a clue why this test http://paste.ubuntu.com/602716/ produces this output http://paste.ubuntu.com/602717/ ?11:50
jtvallenap: ahhh so copying and syncing really are more or less the same thing?11:50
henningeFor some reason, "search_text" is an "object", not a string.11:50
allenapjtv: Yeah, so it seems :) syncSource() and syncSources() both end up calling do_copy().11:51
jtvhenninge: no idea; looks like it might be one of those uses of object() as a way of creating a guaranteed-unique value in cases where None already has a meaning.11:53
jtvallenap: Thanks.  I'll update my comments so at least that is correct.11:53
henningejtv: thanks for looking at it ;)11:55
jtvallenap: another point is that the button's working title is Upgrade Packages.  There may well be a better name for that.  I'm told cjwatson would probably know.11:56
henningeadeuring: Moin! Do you have an idea ^^ (My question with the two pastebins)11:56
allenapjtv: Cool.11:56
* adeuring is looking11:57
cjwatsonthe main thing to be careful of is to draw a distinction between pulling in new versions of unmodified packages from the upstream distribution, which can be done verbatim, and pulling in new versions of packages that have been modified downstream, which requires human attention (and is, I hope, outside the scope of this button)11:58
jtvcjwatson: thanks.  That is correct: the harder case is outside the scope of this button.11:58
jtvThe big question right now is what should be on the button.11:58
cjwatsonin Ubuntu jargon we call those "sync" and "merge" respectively11:58
bigjoolsits label?11:58
jtvbigjools: yes11:59
bigjools"sync all unchanged" ?11:59
jtvWell they are unchanged, but in the parent.11:59
bigjoolsor sommat11:59
adeuringhenninge: after looking at an "advanced search" page, I'd suggest: s/search_text/searchtext/11:59
henningehm11:59
bigjoolscjwatson: do you differentiate in nomemclature between a single sync and the mass-sync?12:00
bigjoolsnomenclature, even12:00
henningeadeuring: I'll try but this is the equivalent in the UI:12:00
henningehttps://answers.launchpad.net/ubuntu/+questions?field.search_text=portugu%C3%AAs&field.actions.search=Search&field.status=OPEN12:00
jtvbigjools, cjwatson: I'd also like to be very clear in the distinction between the "interesting" cases and this simple case.12:01
cjwatsonbigjools: no12:01
bigjoolsok12:01
henningeadeuring: does not help but interestingly gives the same error.12:01
jtvJust repeating the word "sync" all over the place and making the button labels very long doesn't quite do it for me.12:01
adeuringhenninge: weird...12:01
henningeadeuring: it's like it does not see the parameter.12:01
bigjoolscjwatson: when someone wants a brand new package, presumably its uploaded rather than synced?12:01
lifelesshenninge: thanks12:01
jtvhenninge: then it may just mean that the data dict is uninitialized and there's a get(foo, object())12:01
cjwatsonbigjools: that's generally synced too12:01
bigjoolsinteresting12:02
cjwatsonbigjools: well, if it was in Debian and we can just reuse that, anyway12:02
cjwatsonbigjools: if they do it from scratch for Ubuntu, that's an upload12:02
bigjoolswell, sync-source is rather esoteric12:02
adeuringhenninge: have a look at https://bugs.launchpad.net/launchpad/+bugs?advanced=1 . There is this tag: <input class="textType" id="field.searchtext" ...12:02
cjwatsonnot especially, it's rather simple-minded12:02
bigjoolscjwatson: right, ta12:02
cjwatsonin our terminology, "sync" is any case where we copy a package verbatim from another archive12:02
jtvPackages that are in the parent but not the derived series are another thing I'd very much like to stay away from, naming-wise.12:02
bigjoolsyeah, makes sense12:02
cjwatson(source-only)12:03
henningeadeuring: I am quite sure it's "search_text" in this case.12:03
cjwatsonI'm not wedded to that terminology, but if you do use the word "sync" then it should match those semantics, IMO12:03
bigjoolsyup, that's been my assumption all along12:04
bigjoolswe're not touching mergers12:04
bigjoolsmerges12:04
adeuringhenninge: argh... your bug is about questions, not bugs, right?12:04
* adeuring was looking in the wrong place...12:04
henningeadeuring: it is. Sorry.12:04
jtvbigjools, cjwatson: would "upgrade" be a good word to use then, for the case where it's merely an upgrade that's being pulled in?12:04
wgrantThe same button will also probably sync new packages. So I doubt it.12:05
cjwatsonpersonally, "upgrade" sounds like something users do12:05
cjwatsonand yeah, I'm not sure I see any value in a UI distinction between install/upgrade in the button name12:05
bigjoolscjwatson: oh one more thing, we're going to auto-create indexes in new series as part of the first publisher run.  I think you'll still be able to do compare-archive even without disabling the publisher since the release pocket won't change and the new series is frozen12:06
wgrantI think we should reuse the terminology from everywhere else in LP: just say copy.12:06
cjwatsonbigjools: doesn't the first publisher run already create indexes?  unless you're talking about some indexes I'm not aware of12:06
cjwatsonI think I agree with wgrant12:07
cjwatsonit's a source-only copy12:07
bigjoolscjwatson: the "careful" mode I mean12:07
jtvThe button as specified doesn't copy new packages.12:07
wgrantcjwatson: initialisation will automatically create the indices.12:07
wgrantcjwatson: No need for a manual run any more.12:07
cjwatsonoh, right12:07
cjwatsonsure, whatever :)12:07
bigjoolsheh12:07
wgrantClick button in the web UI, it will do the rest.12:07
bigjoolscjwatson: is compare-archive really necessary anyway?12:07
wgrantNo manual i-f-p or p-d or blah.12:07
cjwatsonbigjools: it's just paranoia12:07
bigjoolsfigured12:07
cjwatsonand it doesn't cost you guys anything12:08
cjwatsonbut yeah, less manual work => good12:08
bigjoolsyeah I didn't think there'd be any complaints :)12:08
bigjoolswe need to do it for derivations, or they will need someone to ssh in to somewhere12:09
cjwatsonjtv: hm, well, sync-source can only go away once we have some other way to copy new packages12:09
cjwatsonso that sounds like a spec weakness12:09
bigjoolsthere is a way, it's in the spec12:09
wgrantI wasn't aware it wasn't going to copy everything :(12:09
wgrantbigjools: Also, how are we going to push copies through the queue?12:09
bigjoolswe're not12:09
wgrantErm.12:10
wgrantErm.12:10
bigjoolswell, it doesn't do that right now12:10
wgrantClearly.12:10
wgrantBut it needs to.12:10
bigjoolsout of scope12:10
cjwatsonso right now, syncs get away with going through a specialised queue (ignoring unapproved etc.) because only archive admins can run it12:10
=== almaisan-away is now known as al-maisan
bigjoolsright12:11
cjwatsononce it's opened up to everybody, not going through the queue means that any developer can break our release management around milestones and we can't stop them12:11
cjwatsonso if it's out of scope, it needs to be turned off :-)12:11
bigjoolsheh12:11
wgrantThat is my point, yeah.12:11
wgrantWe can't allow syncSource into a primary archive unless it goes through the que.12:11
wgrant+ue12:11
bigjoolsthe other option is to restrict copying to archvie admins until we add queueing12:11
wgrantSince it would allow anyone to copy into -updates, for example.12:11
wgrant== bad12:11
* cjwatson nods12:14
bigjoolscjwatson: so, you'd be happy with all syncs going through the normal queue process that uploads do?  (including auto-acceptance etc)12:16
adeuringhenninge: trying to reproduce your problem, I got at first another error: SyntaxError: Non-ASCII character '\xc3' in file ... After s/ê/\x2345, and after adding "with_person_logged_in", create_initialized_view worked for me.12:16
henningeadeuring: thanks, I'll check that after lunch.12:17
cjwatsonbigjools: totally12:17
=== henninge is now known as henninge-lunch
cjwatsonbigjools: er, modulo mail announcements12:17
bigjoolscjwatson: great, I always wondered why sync-source never did that anyway12:18
cjwatsonmanually requested syncs need announcements on the -changes list; mass autosyncs need to not flood the -changes list12:18
bigjoolsbut as you say, it needs shell anyway12:18
wgrantYeah. I think mass syncs will have to be AA-driven with a no-mail flag.12:18
bigjoolsAA?12:18
bigjoolsoh nm12:18
cjwatsonbigjools: I think it's because if you put it through the queue then there's no way to suppress announcements12:18
cjwatsonIIRC12:18
bigjoolsthere's always a way :)12:18
cjwatsonwgrant: doesn't really help derivatives ...12:18
wgrantAlso because the hack wasn't dirty enough, they needed a bit more dirt.12:19
wgrantcjwatson: I mean in the UI.12:19
cjwatsonbigjools: well, I mean when we set it up12:19
cjwatsonwgrant: ok12:19
wgrantcjwatson: We don't want normal people to copy things in without announcement, do we?12:19
cjwatsonoh, actually, there was a BIG reason they went through a separate hacked queue12:19
cjwatsonsyncs aren't GPG-signed12:19
cjwatsonwgrant: no, indeed12:20
bigjoolswe can handle that now12:21
wgrantbigjools: Oh?12:21
StevenKPerhaps we just implement NSS :-)12:21
cjwatsonat the time, though, that's the basic reason why Daniel set it up with a different queue12:21
wgrantStevenK: That's what this is...12:21
bigjoolsI can't remember *why* but there's code that handles lack of signer12:22
wgrantbigjools: Right, and that's what the backdoor policies use. :(12:22
bigjoolsnot those12:22
wgrantHuh?12:22
wgrantWhat else accepts uploads with no signer? :/12:22
bigjoolsthere is actual code that doesn't fall over blindly accessing the signature12:22
StevenKbuildd?12:22
wgrantOh.12:22
StevenKI guess.12:22
bigjoolslike I said, I can't remember why it's there12:23
wgrantbuildd doesn't go anywhere near sigs.12:23
StevenKBut it does do uploads.12:23
wgrantOh, you mean -C buildd?12:23
bigjoolscjwatson: which queue?12:23
wgrant-C sync, I presume.12:24
wgrantThat is SyncUploadPolicy.12:24
cjwatsonyes.12:24
cjwatson~lp_queue/sync-queue/ for those with cocoplum access.12:24
cjwatsonthe processing command is LPCONFIG=ftpmaster /srv/launchpad.net/codelines/current/scripts/process-upload.py -d ubuntu -C sync $DRYRUN $NOMAILS -v .12:25
StevenKcjwatson: Of LP devs, that's ... me12:25
bigjoolshow do the packages get to the local FS?12:25
wgrantsync-source with evil...12:26
StevenKThey are grabbed from ftp.uk.debian.org and/or the librarian12:26
bigjoolsahhhh12:26
wgrantMore evil, that is.12:26
bigjoolsright, I forgot that sync-source doesn't actually do any uploading does it?12:26
cjwatsonno, it creates the files in good order to be copied into a queue12:26
bigjoolswhich queue?12:27
cjwatsonsee above!12:27
bigjoolsI mean, LP queue.  I presume they just hit accepted?12:27
wgrantThey go through whatever SyncUploadPolicy puts them into. Which is normally DONE>12:28
bigjoolsauto-accepted then12:28
bigjoolsok I'll dig later12:28
wgrantIndeed.12:28
wgrantAbstractUploadPolicy.autoApprove returns True.12:29
wgrantThe FROZEN handling is in InsecureUploadPolicy. Odd.12:29
bigjoolsthis makes things a little more complicated than I'd anticipated12:29
cjwatsonright now yes - but as I say they'd need to be treated slightly more like uploads once this is open to all developers.12:29
wgrantThat seems like the sort of thing that really should be elsewhere.12:29
cjwatsonthe real distinctions we actually need are insecurity and announcements.12:29
cjwatson(AFAICR.)12:29
wgrantInsecurity?12:29
wgrantOh.12:29
wgrantRight.12:29
wgrantYes.12:29
cjwatson(no signed .changes)12:29
wgrantAnnouncements are going to be amusing.12:30
bigjoolsfor NSS that won't be an issue since there's no changes file12:30
wgrantSince we don't have changes files at all for Debian uploads.12:30
wgrantWe'll have to parse the changelogs.12:30
bigjoolsyeah, *that*'s the issue :)12:30
cjwatsonsync-source does that already.  just move the code around.12:30
wgrantsync-source must burn.12:30
wgrantBURN.12:30
cjwatsonbut that code is the very bit you need.  burning it out of pique is a tad silly. :)12:30
wgrantpython-debian makes it easy these days.12:30
cjwatsonsure - reuse the business logic though12:31
wgrantDon't need sync-source's regexps.12:31
wgrantIt does things like this:12:31
wgrant            if previous_version is None:12:31
wgrant                previous_version = "9999:9999"12:31
wgrantI'm reluctant to reuse logic that has been near that.12:32
bigjools /o\12:32
cjwatsonI thought I proposed a patch at one point to fix that.12:32
wgrantThere was a fix at one point for < 0 versions.12:33
wgrantBut I don't recall anything about this bit.12:33
cjwatsonsigh, trapped in a local branch12:33
cjwatsonhttp://paste.ubuntu.com/602728/12:33
wgrantWell, that was easy.12:33
cjwatson(since < 0 versions don't work right now)12:33
wgrantYeah.12:33
wgrantcjwatson: Can we get away with not attaching a fake changes file -- just compiling the usual email contents?12:35
cjwatsonprobably12:35
wgrantI don't know of anything that parses the changes files.12:35
cjwatsonoh, hm12:35
cjwatsonI do12:35
wgrantCan it use the API instead? :)12:35
cjwatsonit does12:35
cjwatsonwe have an API-based thing that we use for compiling point release notes12:35
wgrantOh, right.12:35
cjwatsonit grabs .changes files using the API12:35
wgrantHMm.12:35
bigjoolsso when we have this in the UI, one button "mass sync" will not send announcements, the other one "sync" will.  I assume that's good enough.12:35
wgrantThat's slightly upsetting.12:35
wgrantcjwatson: Can I see that code somewhere?12:36
cjwatsonhttp://paste.ubuntu.com/602729/ is the most recent version of it I have to hand12:36
wgrantHopefully it doesn't want too much.12:36
wgrantAh, so it just wants bugs?12:36
cjwatsonright now I think so, though I think in general having access to the equivalent of changes['changes'] would be good.12:37
wgrantYeah. Hmm. That's difficult.12:37
wgrantSince the definition of that is a little hazy.12:38
cjwatsonit's tricky in cases where the sync skips over several versions12:38
wgrantRight.12:38
wgrantWe need to determine the old version.12:38
wgrantWhatever that means...12:38
cjwatsonpublishing history?12:38
wgrantSure, we have the data, but we have to work out how to interpret it. And then how to store the changelog entries.12:39
wgrantUnless we just provide a method on SPPH which finds the last published version and grabs the library files and works it out.12:40
wgrantNot quick, but meh.12:40
wgrantSince we don't really have anywhere to store it.12:40
cjwatsonbigjools: announcements> yes, sounds good enough12:41
cjwatson(whether it meets your UI guidelines is another matter, but it meets our requirements)12:41
wgrantCome now, you've been around Launchpad for long enough to know how strict and excellent our UI guidelines are....12:41
bigjoolscjwatson: I'll work that out later but it was to clarify the difference for me, which you did12:41
cjwatsonit's certainly better than archive admins having to remember which ones need a special flag passed12:42
wgrantOr forgetting to flush normal sync queues before someone does a no-mail run...12:42
cjwatsonyeah, though the person who does such a run is supposed to check12:43
cjwatsonbut it's a bit error-prone12:43
StevenKallenap: O hai -- has my diff made you blind yet? :-/12:55
bigjoolswgrant: I think the queue stuff will be easy-ish.  We can refactor the nascentupload checks so they can be re-used.  If the package is not auto-accepted, we make the appropriate PU, otherwise copy as we do now.  Does that sound sane?12:55
wgrantbigjools: We also need to log the copies.12:55
bigjoolslog?12:56
wgrantWho did them, and where from.12:56
wgrantAt the moment we have no idea.12:56
bigjoolsjoy12:56
=== henninge-lunch is now known as henninge
wgrantI had considered just adding a creator to [SB]PPH. I still think that might be reasonable.12:56
wgrantBut it sounds relevant to the queue stuff.12:56
bigjoolswell we're not losing anything by not doing it if it's not already done, so it's not critical12:56
wgrantcjwatson: Do you want to know who copied things? I presume so.12:57
wgrantIt would seem mildly insane to not.12:57
cjwatsonwgrant: at the moment we record who requested the sync by pretending they're the uploader13:01
wgrantRight, I know that, but we can't do that any more.13:02
cjwatsonthat kind of loses information a bit and it would be better to have that in a separate slot13:02
wgrantYeah.13:02
cjwatsonyes, definitely do want to know, for audit trail13:02
wgrantBut in the current copy model there is no record (besides appserver logs)13:02
wgrantRight.13:02
wgrantbigjools: ^^13:02
bigjoolswell, they are effectively the uploader13:02
cjwatsonand it should go out in mail announcements of manual syncs too13:02
bigjoolsok13:02
cjwatsonbigjools: in the past, Debian people have justifiably got upset at what looks like an Ubuntu person taking credit for their work13:02
wgrantcjwatson: But we also have them getting upset about the opposite :/13:03
cjwatsonso we should have both names13:03
wgrant"I didn't upload that"13:03
bigjoolscjwatson: don't they see the different users involved?  uploader vs maintainer vs creator?13:03
wgrantuploader/creator are one field in LP.13:03
cjwatsonbigjools: by overwriting uploader, we lose one of those13:03
wgrantsigner is different, but that's not used for syncs.13:03
bigjoolsnot exactly13:03
cjwatsonand signer may be the sponsor in Debian anyway, not the person who actually did the work13:04
cjwatsonwgrant: I'm much happier to defend the case where we give too much credit13:04
bigjoolssourcepackagerelease.creator13:04
wgrantbigjools: That's Changed-By, right?13:04
bigjoolsI thought it was the dsc signer?  can't remember!13:04
cjwatsonas for recording the Ubuntu side of it: we do need to do that because it's used as part of people's applications for Ubuntu upload rights13:04
wgrantNo.13:04
wgrantbigjools: SPR.dscsigningkey13:05
wgrantHuh.13:05
bigjoolsI would like to maintain uploaded-by as-is13:05
wgrantWhy dscsigningkey and not changesigningkey? :/13:05
wgrantThat's pretty bad.13:05
wgrantbigjools: As-is? What do you mean?13:05
bigjoolsif something's getting overwritten that's a separate bug13:05
wgrantbigjools: We have no control over that. gina sets it.13:05
bigjoolsI'm talking about syncs13:06
wgrantSyncs will stop existing.13:06
bigjoolsgina should not set uploader13:06
wgrantHm?13:06
wgrantWhat do you mean by uploader?13:06
bigjoolsof course they won't, we're syncing here13:06
wgrantWe normally use SPR.creator as uploader.13:07
bigjoolsinstead of sync-source13:07
wgrantAnd that is Changed-By.13:07
bigjoolsthat's crack13:07
wgrantbigjools: Why?13:07
wgrantAnd even so, we can't use anything on SPR to record the requestor.13:07
bigjoolsthe uploader is whoever signed the changes file13:07
bigjoolsor in this case, did the sync13:07
wgrantbigjools: Right, that's (mostly) dscsigningkey.13:07
cjwatsonum, ish13:07
bigjoolsnot really13:07
wgrantAt present it's all we have.13:08
bigjoolsright, and it needs cleaning13:08
wgrantWhere do you propose to store the sync requester?13:08
wgrantIt can't be on SPR>13:08
bigjoolsdunno13:08
bigjoolsnot got that far yet :)13:08
wgrantI am initially inclined to store the uploader/requestor in some generic version of PackageUpload, which works for copies too and goes through the queue.13:09
bigjoolsmebbe13:09
bigjoolswhy can't it be on spr?13:10
bigjoolsah I see13:10
wgrantWhat happens if I sync it to two places?13:10
bigjoolsyeah13:10
bigjoolsso, maybe on spph13:10
bigjoolsnot sure about creating PUs all the time13:11
wgrantWe need to think and see if we can unify this and PackageUpload and all the checks in archiveuploader that duplicate packagecopier.13:11
bigjoolsyes13:11
wgrantSince it's currently stupid.13:11
bigjoolsyes13:11
wgrantReally duplicated and really stupid.13:11
bigjoolsyes13:11
bigjoolsone step at a time13:11
allenapStevenK: I was talking about other things this morning, sync buttons, PackageCopyJob, etc, so I haven't got to the diff yet, but I'm clear now.13:11
wgrantRight, but some of these steps are DD-critical, so it is probably a good idea to go some way to at least identifying that they exist :)13:12
bigjoolswgrant: do you have a list/idea of which checks are duped in packagecopier and archiveuploader?13:15
wgrantbigjools: Not really... but everything in packagecopier is either buggily duplicated or buggily omitted from archiveuploader.13:16
wgrantIt is *entirely* checks that archiveuploader needs too.13:17
bigjoolssorta, but yeah13:17
wgrantI don't really know how we can unify them.13:18
bigjoolsarchiveuploader deals with one at a time13:18
wgrantUnless we make the internal copy logic take a set of SPRs and BPRs and their overrides.13:18
bigjoolsI don't either, we'll just have to look at it and work it out13:18
wgrantAnd then the copier can extract those from the source archive, and archiveuploader can use the ones it's just created.13:18
wgrantThe post-refactor underlying logic mostly does that, anyway.13:19
wgrantIt just needs to be dragged up a bit further.13:19
bigjoolsit needs a coding sprint13:19
wgrantYes13:19
wgrantthe copying stuff is not going to get fixed without that, I don't think :/13:19
wgrantIt needs thought and experimentation and throwing at people.13:20
* bigjools eats13:23
henningeadeuring: thanks, that helped! I also had use a different layer.13:33
adeuringhenninge: out of curiosity: Do you know what type this object was you got for the string "português"?13:34
henningeadeuring: "object" ...13:35
henningegeneric13:35
henningenothing13:35
=== al-maisan is now known as almaisan-away
adeuringindeed13:35
henninge...13:35
henningeadeuring: I also found it that it was using the widgets from zope.app.dav not zope.add.form.13:35
henninges/add/app/13:36
adeuringintereting13:36
henningeI don't know if the wrong layer influenced that but I could imagine that.13:36
jcsackettclear13:44
jtvgmb: free to review a simple peephole cleanup branch?  https://code.launchpad.net/~jtv/launchpad/pre-747546/+merge/5977113:45
gmbjtv: Sure.13:46
jtvthanks13:46
jtvallenap: my branch for the upgrade button is here as a WIP... https://code.launchpad.net/~jtv/launchpad/bug-747546/+merge/5976513:49
allenapCool, thanks jtv.13:49
jtvA lot of that diff is actually just cleanup, which is currently being reviewed as a separate branch to lighten the diff.13:49
gmbjtv: r=me13:49
jtvthanks!13:49
jtvallenap, correction: the cleanup branch _has been_ reviewed.  :)13:50
jtvIt's set as a prerequisite for the main branch.13:50
jtv(So actually I'm not even sure why its changes show up in the diff)13:51
allenapjtv: Mmm, suspicious :)13:52
henningeHi deryck! ;)14:00
deryckHi hi14:00
deryckhenninge, stand up?14:01
henningederyck: I need a minute alone with my laptop ... :(14:02
deryckhenninge, tmi14:02
deryckhenninge, join us when you finish :)14:02
henningesure14:02
jtvallenap: the big remaining issue with my branch is that the few people who actually know soyuz stuff get into long, incomprehensible discussions when you ask "what label do you want on the button?"  :-)14:10
allenapjtv: lol!14:11
jtvI'm serious!14:12
deryckgmb, ping14:17
gmbderyck: Hi14:17
=== almaisan-away is now known as al-maisan
sinzuideryck: This page has directions to enable the backlight buttons on you computer: https://help.ubuntu.com/community/MacBook5-1/Natty14:35
derycksinzui, oh happy day!14:35
derycksinzui, it worked for you?14:35
sinzuiyes14:35
derycklovely.  I shall disappear shortly as I relog. ;) :)14:37
sinzuiI did the same :)14:37
deryckoh happy not-overly-bright-or-overly-dim day!14:40
derycksinzui, many thanks for the pointer!14:40
bigjoolsheh14:40
* deryck turns the brightness up and down repeatedly, just 'cause he can14:40
sinzuideryck: I believe every feature of older macbooks are now working working without hacks14:41
derycksinzui, yup, that was my last issue.14:42
sinzuiNow I need to avoid buying a new computer for a few years14:42
jcsackettsinzui: in a few years you won't be able to install any software on a macbook anyway, so you'll have to buy a different computer *anyway*.14:43
jcsackettsooner or later usb ports will be deemed as too messy for the unibody. :-P14:43
sinzuijcsackett: I doubt that. I do not use the macos except as a way to buy music from time to time. I buy from U1 and amazon UK too because my indie tastes are poorly represented in all music shops14:44
StevenKjcsackett: But then how will fanbois hook up their iPhones and iPods!14:45
StevenKjcsackett: I mean, oh noes!14:45
jcsackettsinzui: ah, so your next computer may be a thinkpad or something?14:46
* jcsackett is considering his next upgrade14:46
jcsackettStevenK: ipods will be updated via a proprietary protocol that is basically tarted up bluetooth. they will call it iSync, and it will return "childlike wonder" to wireless devices.14:47
* jcsackett stops his cynical futurism.14:47
StevenKWhere did I put that hangman's noose ...14:48
jcsackett?14:48
StevenKjcsackett: iSync as a 'feature' makes me want to inflict harm14:48
* jcsackett laughs.14:48
jcsacketti joke, but apple did just by the iCloud domain.14:48
jcsacketts/by/buy/14:49
sinzuiStevenK: hmm, I think that tarted up protocol will be based on what the hacker community created to enable mounting the pnhone over the net.14:49
StevenKallenap: Thank you for the review. No fair not +1'ing my shell output.14:49
allenapStevenK: Okay, okay, +1 on shell dump.14:49
StevenKThat sounds like Apple. What Free Software project can we take, bend to our will and never release as source?14:49
StevenKallenap: :-)14:49
allenapStevenK: The whole diff was actually repeated twice. It was a nice surprise to find that I was done once I was only half way through.14:51
StevenKallenap: Oh, drat. Sorry about that. In which case, there is *one* change between the two diffs, can you find it? :-D14:52
allenapStevenK: Yeah, there was a change to a docstring iirc.14:52
StevenKRight14:53
StevenKallenap: Nicely done. At least you didn't mention the fix in the review mail :-)14:54
=== Ursinha-afk is now known as Ursinha
adeuringgmb: could you please review this mp: https://code.launchpad.net/~adeuring/launchpad/bug-768443/+merge/59782 ?15:10
deryckmrevell, ping15:14
mrevellHey there deryck. How are things in Alabama?15:15
henningegmb: Hi! Are you free for a review?15:15
henningehttps://code.launchpad.net/~henninge/launchpad/devel-644872-unicode-error-in-search-text/+merge/5978315:15
deryckmrevell, getting better here.  still lots of damage to clean up, though.15:15
gmbadeuring: Sure.15:16
adeuringthanks!15:16
gmbhenninge: I'll take yours afte adeuring's15:16
henningegmb: thank you ;)15:16
gmbadeuring: r=me15:22
adeuringgmb: coool, thanks!15:22
gmbhenninge: r=me15:27
henningegmb: thank you ;)15:27
rvbagmb: Hi! Could you please review this MP: https://code.launchpad.net/~rvb/launchpad/sync-to-updates/+merge/59653 ?15:29
gmbrvba: Sure15:29
rvbathanks.15:29
gmbrvba: Approved.15:33
rvbagmb: thanks a lot.15:33
gmbnp15:33
=== al-maisan is now known as almaisan-away
jcsackettabentley: can i beg your assistance on some yui/test stuff?15:48
abentleyjcsackett: Sure.15:48
jcsackettcool. so, i am trying to just get a stubbed out suite with two tests that fail. right now i have http://bazaar.launchpad.net/~jcsackett/launchpad/spam-button-ui/view/head:/lib/lp/answers/javascript/tests/test_question_spam.html15:49
jcsackettand it's js file is http://bazaar.launchpad.net/~jcsackett/launchpad/spam-button-ui/view/head:/lib/lp/answers/javascript/tests/test_question_spam.js15:49
jcsackettthe js file being tested is stubbed out here: http://bazaar.launchpad.net/~jcsackett/launchpad/spam-button-ui/view/head:/lib/lp/answers/javascript/question_spam.js15:49
jcsacketti am pretty sure i have failed in setting something up, as when i open up the html i expect to be told of two failures (for the Assert.isTrue(false)) stuff, but i get nothing.15:50
abentleyjcsackett: For me, that's usually failure to include a JS file, or perhaps a wrong path.15:50
LPCIBotProject db-devel build #512: FAILURE in 5 hr 39 min: https://lpci.wedontsleep.org/job/db-devel/512/15:51
jcsackettabentley: i thought that, but i've double checked the paths and they all look correct.15:51
jcsackettabentley: in the html harness, i link in test_question_spam.js and ../question_spam.js; as the test_*js file is in the same dir as html and the other file is one above, that should be right, shouldn't it?15:52
abentleyYes, that does look right.15:52
abentleyjcsackett: Your paths to yui etc don't look like mine at all.15:54
abentleyjcsackett: e.g. I have ../../../../canonical/launchpad/icing/yui/yui/yui.js15:54
jcsackettabentley: ah, that could be. i didn't double check those b/c i copied them out of the wiki page.15:55
abentleyjcsackett: I know the wiki was wrong, but I thought we'd fixed it.15:55
abentleyjcsackett: Anyhow, try copying them out of lp/translations/javascript/tests/test_sourcepackage_sharing_details.html15:55
jcsackettabentley: okay, thanks.15:56
timrcIs 404 to an empty PPA really the correct response?  When you create a PPA, it should exist at the URL, even if it's empty IMO.  Maybe I'm about to split blasphemy but wouldn't a 204 No Content be an improvement?16:04
bigjoolsindexes are deliberately not published to save space/inodes16:04
jcsackettabentley: i have updated the paths, still nothing. :-/16:05
jcsackettabentley: do you have any knowledge regarding hooking in namespace stuff? perhaps i've screwed up in getting the stub of a js module hooked in...16:05
timrcbigjools, but changing the HTTP code to a 204 would distinguish is from a "you mistyped the URL" error16:05
abentleyjcsackett: sorry, OTP16:05
bigjoolstimrc: how do we know it wasn't a mistype?16:05
bigjoolsit's just a plain Apache server16:06
=== matsubara is now known as matsubara-lunch
timrcbigjools, launchpad should be smart enough to know that the ppa was created, but is empty and then return a code better reflecting that.. based on launchpad's implementation 404 is probably technically correct, but it's not intuitively correct IMO16:10
bigjoolstimrc: fair enough.  I think it's quite a lot of work to do for a small gain though.16:10
timrcperhaps :)16:11
bigjoolspatches welcome :D16:12
abentleyjcsackett: I did have to hook up a namespace for the work I did, but I just followed an example I found.16:20
abentleyjcsackett: Are you using firebug or similar?  That sort of problem will usually generate error messages.16:21
jcsackettabentley: no, firebug isn't catching anything either, which is weird.16:21
jcsackettabentley: does our test stuff work with firefox4?16:21
abentleyjcsackett: there were some firefox4 compatibility issues.  deryck, could you remind us what those were?16:22
* deryck looks at scrollback16:23
abentleyderyck: with javascript testing in general?16:23
deryckabentley, jcsackett -- ah.  so yui test has no ff 4 issues.  windmill has issues with the magic comment bugs that only become enabled when you type text into them.16:24
deryckabentley, jcsackett -- and then getting a profile windmill can use with ff 4 is a bit tricky16:25
deryckbut running yui test in the browser should work fine16:25
abentleyderyck: thanks.16:25
jcsackettok, so that eliminates that as a source of the problem. thanks, deryck.16:25
derycknp!16:25
jcsackettok. i have managed to get an error. yuitest is not loaded. except that i can see the .use('test') bit. hm.16:33
jcsackettsuccess! also, i cannot read.16:44
abentleyjcsackett: yay!16:47
jcsackettabentley: so, i was doing use('yuitest'), not use('test).16:48
abentleyjcsackett: doh!16:48
jcsackettwhen i went to doublecheck, i was actually looking at your file opened as an example, not mine, and saw 'test'. :-P16:49
jcsackettthus, i cannot read. :-)16:49
jcsackettthanks for the help, abentley. :-)16:49
abentleyjcsackett: you're welcome.16:49
benjijml: do you have a minute to chime in on bug 772763?  in particular the importance of "low"16:50
_mup_Bug #772763: Unmuting a bug's notifications should restore your previous direct subscription <story-better-bug-notification> <Launchpad itself:Triaged> < https://launchpad.net/bugs/772763 >16:50
jmlbenji: not until tomorrow afternoon. sorry.16:50
benjijml: no worries; I'll ping you again then16:51
jmlbenji: I'm already late for an appointment, and am flying out to Budapest tomorrow morning. will make sure that bug doesn't slip through the cracks.16:51
jmlbenji: ta16:51
* jml gone16:51
=== Ursinha is now known as Ursinha-afk
=== matsubara-lunch is now known as matsubara
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Ursinha-lunch
=== gmb changed the topic of #launchpad-dev to: PQM in RC mode | https://dev.launchpad.net/ | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
JonOomphGreetings!  I am having a LaunchPad PPA issue and I'm not sure who to direct it to.  I have many builds that are marked as 'Needs building', and they have been stuck in the queue for about 12 hours now.  Any thoughts?17:46
bigjoolsJonOomph: there is currently a very large backlog of builds, the queue is very long17:47
bigjoolssee https://launchpad.net/builders17:47
bigjoolswe're currently missing a number of builders as they are temporarily used during the Ubuntu release17:48
JonOomphAhhh, that makes perfect sense17:49
bdmurraybac: what's the right way to give you feedback regarding better bug notifications?17:50
JonOomphHaving a few days of delay in the PPA build system makes releasing a new version of OpenShot a bit tricky, but I'm patient and can wait.  =)17:51
=== Ursinha-lunch is now known as Ursinha
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
sinzuijcsackett: do you have time to mumble?19:50
jcsackettsinzui: sure, just one moment.19:50
benjisinzui: will you have some time this afternoon to do a small UI review for me? (https://code.edge.launchpad.net/~benji/launchpad/click-to-close-boxes/+merge/59818)20:10
sinzuibenji: I can starting it now20:10
benjisinzui: I am thanking you now.20:11
jelmerrockstar: hi20:41
lifelessmoin20:41
jelmerg'day lifeless20:42
rockstarjelmer, hello sir20:43
jelmerrockstar: What's the policy on landing changes in lp:tarmac?20:44
jelmerrockstar: related, is it intentional that lp:tarmac is owned by an open team?20:48
jelmerargh, it isn't.. nevermind20:49
abentleyderyck: there's no OCR.  Could you please review https://code.launchpad.net/~abentley/launchpad/allow-noop-claims/+merge/59795 ?21:31
deryckabentley: sure.21:31
abentleyderyck: thanks.21:31
benjisinzui: Thanks for the review.  Do you want the "Hide \2715" bit in parenthesis to distringuish it from the text of the message?21:32
sinzuiNo, that would introduce difference. We want to be the same21:32
benji(I'm also investigating using the sprite.)21:32
benjik21:32
deryckabentley: r=me21:34
abentleyderyck: thanks.21:34
lifelessbenji: hi21:42
lifelessmerge proposals don't do attachments21:42
benjilifeless: I know that now. :)21:42
lifelessbenji: where else could one see these screenshots?21:42
lifelessah, I see, nvm21:42
benjiI edited the MP to point to...21:43
benjiright21:43
lifelessso, UI question (perhaps curtis has asked this)21:43
lifelesswe have a X icon in the top right of other things that are closable21:43
abentleylifeless: they do too!21:44
lifelessabentley: oh ?21:44
abentleylifeless: attach a patch and we'll even colourize it!21:44
lifelessabentley: supporting attachments is a superset of supporting attachments-that-are-patches21:45
benjilifeless: right; in the review he suggested emulating the "Hide X" target on the new private bug ribbon21:45
lifelessbenji: ok cool; I can butt out21:45
lifelessbenji: separately, I declined the team-join for lp to alpha testers21:45
abentleylifeless: you didn't say "launchpad doesn't support attachments of particular kinds"21:46
lifelessI think a feature flag is better and easier to clean up21:46
benjiabentley: my problem with that MP was that I submitted it after forgetting the attachments and it took less time to find the edit link then to figure out how to add attachments after the fact21:46
lifelessabentley: you're splitting hairs I think; theres a very large set of more refined meanings I could have meant21:46
lifelessabentley: mps don't support attachments *like bugs support attachments*21:47
benjilifeless: i.e., just change the flag to predicate on team:launchpad instead of team:malone-alpha?  if so, that sounds good to me.21:47
lifelessbenji: yeah, or add a row21:47
lifelessbenji: depending on whether you anticipate having non-lp folk participate in the alpha stage21:47
benjisounds good; I'll get that done tomorrow21:47
lifelessI would expect something like adding launchpad-beta-users as a rule when it comes out of alpha21:47
abentleylifeless: It looked to me like you were saying "merge proposals don't allow attachments" as an absolute.21:48
benjilifeless: I wasn't aware of launchpad-beta-users, sounds like the ticket21:48
lifelesshmm, spelling error, one sec21:49
lifelessbenji: https://help.launchpad.net/GetInvolved/BetaTesting21:50
lifelesslaunchpad-beta-testers21:50
lifelessis the team21:50
lifeless2K early adopters21:50
benjicool21:51
=== flacoste changed the topic of #launchpad-dev to: Merge to devel are open again | https://dev.launchpad.net/ | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
benjisinzui: hmm, the privacy ribbon's hide affordance is underlined on hover and changes the mouse cursor.  I'll match that behavior.21:56
lifelessbenji: oh, btw - you have 'edge' in your browser bookmarks :>22:11
benjiheh, so I do; fixed now22:19
=== matsubara is now known as matsubara-afk
lifelesshmm22:27
lifelesswe have lots of css warnings in the ff4 console22:27
=== salgado is now known as salgado-afk
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
sinzuilifeless: pocket-list also complains about CSS. There is no to that is aware of supported and proprietary rules to provide a competent report of broken css.23:02
sinzuis/pocket-list/pocket-lint23:02
=== Ursinha is now known as Ursinha-afk
lifelesssinzui: hi23:25
sinzuihi lifeless23:25
lifelesssinzui: I'm thinking of closing https://bugs.launchpad.net/launchpad/+bug/74109223:25
_mup_Bug #741092: Archive:+subscriptions times out with many subscribers <qa-ok> <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/741092 >23:25
lifelessbecause it seems ok now23:25
lifelessIMBW, what do you think?23:25
sinzuiI honestly do not know. When was the last time we saw an issue23:27
lifelessI looked back a few days, couldn't see one23:27
lifelessit may be very sporadic though23:28
sinzuiI favour closing it, though I also like being able to say this issue has not been see in 30 days23:29
lifelessbetter matching in oops-tools would be nice23:31
=== Ursinha-afk is now known as Ursinha
lifelessAny follow on issue will not need the sql optimisation23:31
sinzuilifeless: actually, I still wonder if qastaging was a bad env to test one.23:31
lifelessso I think I'll close it23:31
sinzui+1 I believe there are some performance issues that can only be experienced in production23:32
lifelesslosa ping23:48
lifelesscan you please change a feature flag on qastaging:23:48
lifelessmalone.bugmessage_owner default 0 on23:48
sinzuiwgrant: I cannot attend the meeting in 15 minutes. I can we talk later? I want to understand the effort needed to address bug bug/74755823:48

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