/srv/irclogs.ubuntu.com/2015/09/07/#launchpad-dev.txt

=== heroux_ is now known as heroux
=== danilos` is now known as danilos
cjwatsonThe review queue is getting rather backed up ...10:18
wgrantHm, just the one from Thursday and five from Friday, or am I missing some?10:33
cjwatsonThose, I think.10:40
cjwatsonOh, and ~cjwatson/turnip/merge-prerequisite, and a recheck of my recent changes to ~cjwatson/launchpad/team-mail would be good since those introduce async jobs.10:41
wgrantAh, I see, will do.10:41
cjwatsonTa.  I'm about to tackle the immediate mail delivery thing in zopeless, at least moving things along a bit.10:41
wgrantHm, which thing is that?10:42
cjwatsonhttps://bugs.launchpad.net/launchpad/+bug/2974410:42
mupBug #29744: In Zopeless, mails should be sent only when the transaction is commited <email> <infrastructure> <lp-foundations> <tech-debt> <Launchpad itself:Triaged> <https://launchpad.net/bugs/29744>10:42
wgrantThat's a huge amount of trouble.10:42
wgrantDue to archiveuploader relying on them being sent on abort10:42
cjwatsonNot terrible to at least make it more opt-in.10:42
wgrantIIRC10:42
wgrantTrue.10:42
cjwatsonI've almost fixed archiveuploader.10:42
wgrantOoh10:43
cjwatsonBut the first step is to make it easier for archiveuploader to opt-in selectively.10:43
cjwatsonActually the first first step is to convert more stuff to pop_notifications, because otherwise there's a pattern that's rather too easy to fit where you do self.assertEqual([], stub.test_emails) without committing first, and moving away from immediate delivery makes that kind of test silently ineffective.10:43
cjwatsonI have a fully passing test suite (with the exception of some unrelated buildmaster cruft) with immediate delivery disabled in zopeless in general but enabled in BaseMailer and a few other places.10:44
cjwatsonThe reason I care is that otherwise converting the world of mail notifications to zopeless (so that we don't have to care about having an actor who might not be allowed to know about some subscribers) might be a rather more exciting stealth change than it ought t obe.10:46
wgrantI'm not too concerned about that.10:47
wgrantIt is a slight issue, but not very large.10:47
wgrantAs the main thing that can fail is operation itself, not the email transmission.10:47
wgrantGood to fix, anyway.10:47
cjwatsonarchiveuploader is relatively easy now that most of the code is in PackageUploadMailer.  The fix is to use the mailer directly rather than relying on going through PackageUpload.notify; then it doesn't have to abort in order to get rid of the temporary PU object, and can just do abort; send mail; commit10:47
cjwatsonRequires pushing a couple of extra bits of logic down into the mailer to avoid duplication, but not very much.10:48
wgrantYep10:48
cjwatsonAnd that self.queue_root.notify business in archiveuploader was something I always hated.10:49
cjwatsonHa, I found something that was still depending on the "debian" alias for binarypackage!10:54
wgrantI believe it works due to a very old launchpad-buildd on the buildbot slaves.10:55
cjwatsonYep.  But they have at least 121 per my IRC logs, so we can use the new forms.10:56
cjwatsonI'll get a clean bin/test locally yet.10:57
wgrantOh, I didn't realise they were that new. Handy.10:57
wgrantHmm11:03
wgrantWe should really stop catching IntegrityError in places.11:03
cjwatsonaaaa11:04
wgrantOnly Packageset, Snap and LiveFS do it still.11:04
wgrantWhat triggered the IPv6 alarm?11:04
cjwatsonOh, yeah, I forget why I couldn't think of a better way to do that11:04
cjwatsonJust fear at what else that could hide11:04
wgrantIt just had me running in circles for a bit.11:04
cjwatsonThough it is indeed my fault in this case11:04
wgrantChasing down why a snap got created despite the feature flag being disabled and causing a 401.11:05
wgrantOf course it was actually lying when it said one existed -- instead, git_path was null.11:05
wgrantThe correct thing to do in this situation is LBYL11:05
cjwatsonI was about to say exactly that!11:05
cjwatsonWe're raising a specific error so should check for a specific condition.11:05
wgrantYep11:05
wgrantI think you actually copied that originally from a place that I fixed reasonably recently...11:06
cjwatsonAlmost certainly.11:06
cjwatsonYay clean buildmaster tests11:06
wgrantMarvellous.11:07
cjwatsonI believe that's an entirely clean bin/test for me locally now, with the codeimport fixes.  I ran the whole thing at the weekend to see what exploded without immediate delivery.11:07
cjwatson3.5 hours11:08
wgrantAh, that's right, LibraryFileAlias.create said a filename contained illegal characters whenever there was an IntegrityError.11:08
wgrantNot quite the same, but close.11:08
wgrantYep, even Haswell-U is pretty snappy at running the test suite nowadays.11:09
lifelesscjwatson: 3.5 *hours* ?19:23
cjwatsonlifeless: In which direction is that surprising? :)19:58
lifelesscjwatson: seems slow - I recall running it locally in ~90m ?20:04
lifelesscjwatson: (with parallel of course)20:04
cjwatsonlifeless: This is just serially20:04
cjwatsonNo particular effort to make them go faster, I was doing housework for those 3.5 hours :-)  I very rarely run the whole thing locally, this is the first time it's been necessary for me in eight months full-time on LP20:05
cjwatsonIf I did it more often I expect I'd bother setting up the parallel harness stuff20:05
lifelesscjwatson: ah. Fair enough ... the parallel setup is pretty easy, and it helps even with running subsets20:06
cjwatsonIt's probably worth an hour of effort at some point20:06
cjwatsonEffort in that direction would be more appealingly spent on being able to run tests on more than one branch at once, mind you (though I suppose it involves some of the same work)20:07
lifelesshuh, what stops you running on more than one branch?20:08
lifelesspresumably the only thing is the template db20:08
lifelessand thats (IIRC) controllable via an env variable.20:08
cjwatsonNever having bothered to work out the details :-)20:09
cjwatsonThere are various specific tests that are singleton in odd ways20:09
cjwatsonLike starting up servers on hardcoded port numbers20:09
lifelesspretty sure all the fixtures report back the port number20:10
lifelessif not, I think thats likely a regression20:10
cjwatsonPretty sure not everything uses them right20:10
lifelessentirely possible :)20:10
lifelessanyhow, yes the work doth likely overlap20:10
lifelessbut - the container approach gives you entire isolation anyhow20:10
cjwatsonLike the buildmaster integration tests have AIUI never done dynamic port selection20:10
cjwatsonSo a few tests fail obscurely if you happen to have a real buildd running in the same environment20:11
lifelessso if you have parallel, you have multibranch with at most trivial glue20:11
cjwatsonYeah.  One of these days ...20:11
lifelessindeed http://bazaar.launchpad.net/~launchpad-pqm/launchpad/devel/view/head:/lib/lp/buildmaster/tests/harness.py20:14
lifelessis missing port randomisation20:14
lifelessthere's glue for that elsewhere in the three. TUITs huh20:15
cjwatsonThere's lib/lp/services/librarianserver/testing/server.py20:16
cjwatsonI think that's the only bit of .tac glue that does it20:17
cjwatsonlog parsing, nasty20:17
lifelessyes20:18
lifelesswell20:18
lifelessits better than the race of the 'find a port in parent and say 'use port X' on the command line20:19
lifelessan actual fd handover would arguably be better20:19
lifelesslog parsing is at least race free20:19
cjwatsonYeah20:19
cjwatsonWould want to try to push that down a level if using that from more places20:20
wgrantlifeless: There are heaps of things that were never isolated23:46
wgrantThat's why the container approach was used,.23:46
wgranteg. AppserverLayer even conflicts with the dev appserver.23:47

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