[00:00] bah [00:00] I selected a component of main [00:00] status new [00:00] 5.53 seconds [00:00] main is tiny. [00:00] Doesn't count. [00:00] Project devel build #518: FAILURE in 4 hr 48 min: https://hudson.wedontsleep.org/job/devel/518/ [00:00] ok [00:00] universe works [00:03] and its the - guess what - spph join thats the problem [00:03] sinzui: if you are still online, can you tell me how to construct a PrettyOverlay but with a different BOUNDING_TEMPLATE. I'm not sure how to override the default one [00:04] oh. [00:04] That just went over my head. I think I got a nose bleed thinking about it [00:04] sorry :-) [00:05] i want to replace the close (x) with a pair of (tick) (cross) buttons [00:05] since the user needs to be able to poke some widgets on the overlay and then either accept or cancel [00:06] i could get the close div after construction and insert a new node [00:06] that would do it [00:07] wgrant: whats silly is that we get back no packages [00:07] getBuildRecords is a mess :( [00:08] lifeless: ... oh? [00:09] wgrant: see actual time=0.011..0.011 rows=0 loops=1276160) [00:09] perhaps thats just misleading [00:09] we do get 76 bugs === Ursinha-afk is now known as Ursinha [00:10] Ursinha: Hi. [00:11] hi [00:11] it's carnaval, so this might be an automated response :P [00:11] haha, OK. [00:12] wgrant, what's going on? [00:12] wallyworld: I'll take a look [00:12] thumper: ta [00:12] Ursinha: I was just wondering what sends the daily error reports these days. launchpad-errors-yesterday in lp:oops-tools seems to be out of date. [00:13] * Ursinha checks lpqateam's crontab [00:13] Ursinha: is matsubara_ around ? [00:14] lifeless, unlikely, 9pm of a carnaval's tuesday night [00:14] heh, ok :) [00:15] wgrant, so, it's a script called report (heh) [00:16] generated automatically by oops-tools [00:16] wgrant, why? [00:16] lifeless, do you need something specific? [00:17] Ursinha: I have a oops tool merge proposal, hadn't heard anything in a few days [00:17] Ursinha: I want to change a prefix. [00:17] Was hoping to change it there too. [00:17] wgrant, hm, prefixes now are changed using an admin django page [00:17] Ah, handy. [00:17] prefixes are loaded dynamically from oops-tools database [00:18] I'm sure there's a wiki page explaining that [00:18] * Ursinha looks [00:18] there is [00:18] matsubara mailed it to me :) [00:18] wgrant, https://dev.launchpad.net/Foundations/QA/OopsToolsSetup [00:20] Ursinha: Thanks. [00:20] Who has access to add a new prefix to a report? [00:24] ok, got that down to 800ms. [00:24] nice [00:24] Nice. [00:24] What did you change? [00:25] Hm, build breakage. [00:25] Same one us hudson. [00:25] Intriguing. [00:25] Because that's a spurious failure. [00:25] Must be time-based. [00:25] https://bugs.launchpad.net/launchpad/+bug/731679/comments/3 [00:25] <_mup_> Bug #731679: distribution:+bugs timeout searching for bugs by component < https://launchpad.net/bugs/731679 > [00:25] I've seen this happen before, but dismissed it as coincidence :/ [00:26] time to dig into storm, I just wish it was more pleasant [00:27] lifeless: Can't you easily word that as a subselect? [00:28] wgrant: you'd think so [00:28] Does it break the plan? [00:31] sinzui: still around? [00:31] I am [00:31] I'm just encoding that video :) [00:33] thumper: I was just about to have dinner. I will return in about an hour. [00:33] sinzui: ack [00:55] wtf [00:56] ??? [00:56] This test failure. [00:56] It is real. [00:56] But completely unrelated. [00:56] 12555 must have changed test order somehow. [00:57] 'bin/test -m lp.services.job.tests.test_runner -1cvvt TestTwistedJobRunner.test_timeout' reproduces the failure even before then. Dropping the -m works fine. So it needs some test module loaded before it will work. [00:58] Hmm, ampoule can't import _pythonpath. [01:07] mtaylor: does mysql 5.1 support 'with foo as (...) select ... where my.id in (select thing from foo)' ? [01:31] Gnrgh. [01:32] ? [01:33] This test. A subprocess fails if lp.testing imports anything from canonical.testing.layers. [01:33] Must be a circular import, I guess, but Twisted is good at swallowing details. [01:34] eugh [02:08] \o/ 176 / 0 LanguageSet:CollectionResource:#languages [02:08] 58 / 155 BugTask:+index [02:11] lifeless: I have never seen 'with foo as (...)' - but I could of course have just missed it [02:12] mtaylor: thanks, I will write this as a postgresql only tested feature then :) [02:13] lifeless: my pleasure! [02:17] Excellent, the top 50 exceptions now encompass all with multiple occurrences. [02:27] https://bugs.launchpad.net/storm/+bug/731739 [02:27] <_mup_> Bug #731739: with foo as (select...) SELECT ... not supported < https://launchpad.net/bugs/731739 > [02:29] now to figure out how to do a snapshot of storm [02:30] You've done it already? [02:30] yes [02:30] sufficient for our needs anyhow [02:32] https://code.launchpad.net/~lifeless/storm/with/+merge/52630 [02:47] lifeless: You linked to the Postgres 9.0 docs, it's supported earlier? === StevenK changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | firefighting: - | On call reviewer: StevenK | https://code.launchpad.net/launchpad-project/+activereviews [02:50] StevenK: It's new in 8.4. [02:51] That's probably okay, then. [02:53] StevenK: its supported wherever lp is supported [02:53] I seem to be getting lp.services.job.tests.test_runner.TestTwistedJobRunner.test_timeout failing every time on EC2 [02:53] wgrant is working on that [02:53] thumper: Yes, I'm looking at that. [02:53] others getting this? [02:53] wgrant: awesome, thanks [02:53] About to give up and just work around it, though. [02:53] Jenkins is to [02:53] Ampoule is almost more evil than I am willing to deal with. [02:53] wgrant: want to talk through it? [02:54] thumper: That test breaks with an unknown subprocess failure if lib/lp/testing/__init__.py imports anything from canonical.testing.layers (r12555 introduces one such import). [02:55] thumper: The test also fails when run on its own with -m lp.services.job.tests.test_runner, even before r12555. [02:55] hmm... [02:55] But with a slightly different failure. [02:55] it was failing intermittantly [02:55] It always has, yes. [02:55] and there is a bug for that [02:55] There is. [02:55] Bug #505913 [02:55] <_mup_> Bug #505913: TestTwistedJobRunner.test_timeout fails intermittently < https://launchpad.net/bugs/505913 > [02:56] how are you working around it? [02:56] Removing the import. [02:57] Running with -m causes ampoule to fail to import _pythonpath. If I stop it from attempting to use _pythonpath, we get the same error that r12555 introduces. [02:57] Any useful diagnostic information is swalled by Twisted, though. [02:57] +ow [02:57] hmm... [02:58] It also still happens if I stop the tests from running in a subprocess. === lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: StevenK | https://code.launchpad.net/launchpad-project/+activereviews [03:00] thumper: it seems one is not allowed to modify a CollectionField attribute via the web service? i get a "You tried to modify a collection attribute" error [03:00] That's right. [03:00] You might want a List instead. [03:01] eg. IBug['tags'] [03:01] wgrant: thanks. will have a look [03:02] wallyworld: Modifying CollectionFields is hard... what does it mean to remove an object from a resultset? [03:02] wallyworld: hmm [03:02] wallyworld: I'm sure leonardr suggested to me that we'd need add and remove methods to post to. [03:02] wallyworld: or perhaps an update? [03:02] wallyworld: you're one of the first attempting this [03:02] wgrant: i thought a collectionfield attribute were like lists [03:03] wallyworld: so you get to blaze the way [03:03] thumper: i'm replacing the entire field's value so i may as well change it to a List [03:04] wallyworld: Note that it changes the representation significantly; it becomes inline instead of a link. [03:04] This has performance implications. [03:05] wgrant: i'm not familiar with the terminology in this context - inline vs link [03:05] wallyworld: I think you want an update method for the API [03:06] thumper: so leave it as CollectionField and use an update method? if List fields are mutable, given the size of the list is small (<20), does it make sense just to go with that for this case? [03:07] Is this for SourcePackageRecipe.distroseries? [03:08] wgrant: it is for recipe build series [03:08] Right. [03:08] List is probably not appropriate there. [03:08] I would have (add|remove)Series named ops, I think. [03:09] hmm. seems like overkill given the size of the collection and the fact that we really just replace one version with another [03:09] by version i should say value [03:10] add/remove is typically more suited to larger collection sizes [03:10] I think updateSeries should be sufficient [03:10] Store.find(LibraryFileAlias).set(content=None) [03:10] TypeError: unbound method find() must be called with Store instance as first argument (got SQLObjectMeta instance instead) [03:10] * StevenK grumbles more [03:10] StevenK: Store.of(something).find [03:10] StevenK: IStore(LibraryFileAlias) [03:10] Or that. [03:11] wgrant: I've reverted to getCandidates returns ids [03:12] wallyworld: Hmm, a collection can have custom named operations. [03:12] Possibly not collection fields, though... hmmm. [03:13] wgrant: i'm grepping the code as we speak to figure out how to do it :-) [03:13] i'll do a named_post [03:13] SPR.updateseries() or something [03:14] wallyworld: Right, that's easy enough, but from looking at lazr.restful it seems like it might be possible to do something on the collection itself. [03:14] But updateSeries() is probably simpler. [03:15] i'll have a poke around. i'm generally against fine grained collection updates [03:15] especially when the semantics of this is a complete replacement [03:15] of the collection's values [03:16] Right. [03:16] where it would make sense for example is adding/removing a single person from a team [03:18] wgrant: not only done, done and working. [03:18] lifeless: Excellent! [03:23] I can has reviewer? https://code.launchpad.net/~lifeless/launchpad/bug-731679/+merge/52631 [03:23] * StevenK looks [03:24] No reviewer for you. Come back when you have a diff [03:24] :-P [03:24] don't blame me [03:25] lifeless: Does it require the storm changes, or are those seperate? [03:25] requires em [03:25] I've a snapshot ready to commit to the downloadcache [03:26] StevenK: it has a diff [03:27] Yes, I'm reading it [03:27] thanks! [03:27] lifeless: orig_store, and then you call orig_store.with_(with_clause) when you'd already set store = store.with_(with_clause)? [03:27] That version number looks like a lie. [03:27] StevenK: different with_clause [03:28] And yes, I'd prefer that the storm changes get approved and landed first [03:28] StevenK: note the for loop [03:28] StevenK: not going to happen [03:28] StevenK: storm is basically stalled. [03:28] StevenK: I've 0 intention of letting us stall just because its stalled. [03:28] Orsum [03:30] feel free to review my storm changes though [03:30] thumper: https://code.launchpad.net/~lifeless/launchpad/bug-731679/+merge/52631 when you have a tick [03:31] but its an odd coding style there [03:31] lifeless: I glanced at them, but I'm not comfortable reviewing [03:31] * thumper has two ticks [03:31] thumper: thanks [03:32] lifeless: what was the concern addressed on irc? [03:32] thumper: which concern? [03:32] I still think that version number is wrong. [03:32] lifeless: the one that StevenK says in the code review [03:32] thumper: I'd prefer the changes to Storm landed [03:32] [14:28] < lifeless> StevenK: storm is basically stalled. [03:33] Ergo ... [03:33] I don't care if they land, but that 0.18.0.99 is deceptive. [03:33] wgrant: pick a version, I'll roll with it [03:33] wgrant: note that it does string algebra [03:34] wgrant: so 0.18.0.0r14 will be stupidly painful to make [03:34] lifeless: We normally use a suffix like -lp-r1234 [03:34] wgrant: -how- [03:34] lifeless: How are you building it? [03:34] wgrant: like I say, storms setup.py / __init__ do algebra on a constant [03:34] wgrant: setup.py sdist [03:36] Store.of(LibraryFileAlias).find().set(content=None) [03:36] All our previous custom Storms have had a good suffix. [03:36] That doesn't work either, am I doing it wrong? [03:36] StevenK: find(LibraryFileALias) [03:37] lifeless: What about 'setup.py egg_info -b-lp-r1234 sdist'? [03:37] wgrant: that worked, I'll use it [03:40] wgrant: Still ends up with AttributeError: 'NoneType' object has no attribute 'find' [03:40] StevenK: IStore(LibraryFileAlias)... [03:41] Ah, didn't bother to look further than the find() [03:41] StevenK: Store.of() only applies to instances that have either come from a store or been added to a store. [03:41] Store.of(someobject) [03:41] IStore(someclass) [03:42] Ahh [03:42] StevenK: this was the only thing wrong with your example I think [03:42] StevenK: also, when something doesn't work, show how :) [03:42] thumper: thanks [03:43] IStore(LibraryFileAlias).find(LibraryFileAlias).set(content=None) results in: [03:43] CompileError: Don't know how to compile type Reference of [03:44] StevenK: don't use reference columns [03:44] contentID [03:44] Huh, that should work. [03:45] * wgrant blames the SQLObject layer. [03:45] Trying contentID [03:45] reference columns are basically broken in storm and upstream are not receptive [03:45] wgrant: no, its not sqlobject layer [03:48] * wgrant gives up. [03:48] wgrant: Oh? [03:49] The ampoule thing. [03:49] * wgrant is testfixing. [03:50] Rargh, how can setting content == NULL for every LFA *still* have SPRs being processed! [03:51] clearly something doesn't do what you expect [03:51] I'm tempted to blindly ignore 'has no DSC' and continue [03:55] wgrant: is 681770 a dupe? [03:55] lifeless: Already done. [03:56] cool [04:00] wgrant: Any thoughts? [04:00] StevenK: Can you push up your latest changes? [04:03] wgrant: Done. [04:04] StevenK: https://code.launchpad.net/~wgrant/launchpad/testfix/+merge/52632 [04:04] Looking at yours. [04:05] Same [04:06] thumper: https://code.launchpad.net/~wgrant/launchpad/testfix/+merge/52632 [04:14] * StevenK nails jtv to the Internet [04:14] lifeless: Thanks. [04:14] It probably won't help, though. [04:15] StevenK: no, but at least you got some fun out of it [04:15] wth is this exposed TemporaryStorageManager:CollectionResource:#temporary_blobs [04:17] Possibly only so apport can upload to it. [04:17] I can't think why an API client would want to read the collection. [04:18] StevenK: Is it only test_hourly_script failing for you? [04:18] wgrant: Yes. [04:18] StevenK: Are you killing the LFAs there? [04:18] Ah, yes. [04:20] wgrant: and yet, they are [04:21] lifeless: Grep logs and strangle them? [04:24] StevenK: I wonder if LaunchpadScriptLayer might not use the right DB. [04:31] wgrant: Revision 12550 can not be deployed: needstesting [04:31] Preload BinaryPackageNames before listing successful copies' displaynames. [04:32] lifeless: Fixed. [04:35] wgrant: I wonder if using IMasterStore would make any difference. I suspect not. [04:36] sigh [04:36] overengineering [04:36] https://code.launchpad.net/~gmb/launchpad/processapportblobjob-api-bug-513191/+merge/20209 [04:36] StevenK: I doubt it. [04:37] lifeless: Ah, of course. That doesn't need a listable collection, though. [04:37] StevenK: Check the name of the DB that each uses. [04:37] wgrant: precisely. [04:38] wgrant: How can I do that? [04:38] StevenK: wgrant: tests that use IMasterStore need to use it consistently or they will break [04:38] you can't use IStore in any helper :) [04:38] ditto ISlaveStore [04:39] lifeless: This one runs a script. [04:39] wgrant: I also particularly love the 'last 50' statement which is a total lie. [04:39] lifeless: Ah, it's not actually a security hole, because the blobs don't have launchpad.View. [04:39] So the list is empty. [04:40] wgrant: but are filtered in the appserver [04:40] lifeless: Sure, so it's slow. But my main concern is that we aren't leaking them. [04:40] wgrant: sure, thats a concern too [04:40] just noting [04:40] this is basically utter crack [04:41] What happens if you remove the collection_default_content? [04:41] wgrant: look at the end of lib/canonical/launchpad/database/temporaryblobstorage.py [04:41] Or does export_webservice_collection require it? [04:41] wgrant: needs it AFAIK [04:41] I've a faster query [04:41] lifeless: Don't use it. [04:41] Return an empty list instead. [04:41] wgrant: wow, r12557 is >:( [04:42] mwhudson: YES. [04:42] did you annotate for great justice? [04:42] Which bit? [04:42] who added the flamingly incorrect comment [04:42] The circular import one? [04:43] That was added in the problematic revision. [04:43] ah ok [04:43] anyway, i have a bbq to get to, better than being frustrated by software [04:43] wgrant: you've checked you don't see the blobs [04:43] So, I spent a couple of hours trying to work out what was up, but I only ended up finding out that buildout, Twisted and Ampoule all need to DIE. [04:43] wgrant: right ? [04:43] lifeless: Yes. [04:43] wgrant: but - how does the 'is blob X processed' work then ? [04:44] lifeless: lazr.restful always checks for launchpad.View. [04:44] Regardless of what the security adapters say. [04:44] Anyone can view a blob, if they know its UUID. [04:44] wgrant: but does't htat also check for View ? [04:45] interface="canonical.launchpad.interfaces.temporaryblobstorage.ITemporaryBlobStorage" /> [04:45] So, no. [04:46] glue the dots together gfor me [04:46] lazr.restful always checks for launchpad.View. But the security declarations can make anything publicly available. [04:46] lazr.restful checks for launchpad.View before it shows an object in a collection representation, that is. [04:47] For returning a single entry resoruce it will respect the security proxies. [04:47] ah [04:47] so collections are spethial [04:47] Yeth. [04:49] * lifeless considers lp-landing this [04:49] * wgrant defers getBuildRecords until tomorrow, and instead fixes a couple of quick checkwatches OOPSes, since even checkwatches is likely to incite less violence than getBuildRecords and test_timeout. [04:49] lifeless: What have you changed? [04:50] wgrant: lp:~lifeless/launchpad/bug-731736 [04:50] Project devel build #519: STILL FAILING in 4 hr 49 min: https://hudson.wedontsleep.org/job/devel/519/ [04:51] https://code.launchpad.net/~lifeless/launchpad/bug-731736/+merge/52634 [04:52] lifeless: As long as nothing else uses that property, and all the blob webservice tests pass. doit. [04:52] wgrant: I've changed one test which psases and the default collection method which there are no other references to outside of the webservice definition and implementation [04:52] Right. [04:52] Just checked the diff in LH [04:52] and there are no other hits for the webservice collection name either [04:53] You have my codestar. [04:53] heh [04:53] I was just self reviewing :) - thanks though [04:54] That works too. [04:54] sounds like bsg (codestar) [04:54] That was the feel I was going for. [04:55] so top timoeuts 1, 2, 3, all have patches pending deploy [04:55] And 1 and 3 are actually fixed. [04:55] 2 maybe not. [04:56] time to look at 4 again [04:56] bah [04:56] no oops in the report [05:02] wgrant: Grabbing the DB name in garbo-hourly is launchpad-main-master [05:02] hah [05:02] they missed a status [05:02] field.status: [u'NEW', u'INCOMPLETE_WITH_RESPONSE', u'INCOMPLETE_WITHOUT_RESPONSE', u'INVALID', u'WONTFIX', u'EXPIRED', u'CONFIRMED', u'TRIAGED', u'INPROGRESS', u'FIXCOMMITTED', u'FIXRELEASED'] [05:02] StevenK: The postgres DB name is the interesting one. That's the store name. [05:03] lifeless: Just opinion missing? [05:03] wgrant: Did you miss my question of how to actually get it, then? [05:03] wgrant: yeah [05:03] wgrant: this is a /bugs/ search. [05:03] https://bugs.launchpad.net/launchpad/+bug/716774 [05:03] <_mup_> Bug #716774: Timeout on MaloneApplication:+bugs < https://launchpad.net/bugs/716774 > [05:03] StevenK: Well, you could check the postgres log. [05:04] Rather than adding debug prints everywhere. [05:04] /var/log/postgresql/postgresql-8.4-main.log is fairly useless [05:04] Ah, you don't have statement logging on? [05:05] Doubtful [05:05] log_statement='all' in postgresql.conf [05:05] It's very handy. [05:10] wgrant: If that logs into the main log, I can't see it [05:11] /var/log/postgresql/postgresql-8.4-main.log [05:16] wgrant: Doesn't seem to work for me. :-( [05:17] StevenK: You put it at the bottom of /etc/postgresql/8.4/main/postgresql.conf, and it doesn't have any other log_statement lines? [05:17] Rargh, there's two! [05:18] Heh. [05:21] Now to distill the log [05:22] Looks to use the correct DB name [05:22] Both of them? [05:23] wgrant: They all use launchpad_ftest_23325 [05:23] StevenK: sorry was at guitar lesson, thanks lifeless for approving [05:23] :( [05:23] Can you see the LFA UPDATES? [05:24] Yes [05:24] and you commit ? [05:24] Yes [05:24] There is a transaction.commit() [05:24] But can you see it in the log? [05:24] Some layers might not have the transaction manager configured properly. [05:24] But it still fails on LaunchpadZopelessLayer :/ [05:24] [2011-03-09 16:19:28 EST] launchpad_main@launchpad_ftest_23325 LOG: statement: UPDATE LibraryFileAlias SET content=NULL [05:24] [2011-03-09 16:19:28 EST] launchpad_main@launchpad_ftest_23325 LOG: statement: COMMIT [05:24] That seems pretty definitive. [05:25] The next bits are all garbo_hourly, so that's the script running [05:26] Oh. [05:26] Ha ha ha. [05:26] Ha ha ha ha ha. [05:26] I bet those SPRs have *no files at all*. [05:26] Fuck sampledata, seriously. [05:27] wgrant: 0 rows for id 17, for instance, so agreed [05:27] Looks like I need a sharper desk still. [05:27] I wonder if we can fix the query to ignore SPRs with no rows in SPRF [05:28] Difficult. Just set changelog=1 for all of the SPRs. [05:28] Much easier. [05:30] * StevenK tries that. [05:30] * StevenK attempts to not put "# Fuck sampledata, seriously." as the comment [05:35] wgrant: Thanks, changed pushed. [05:36] Great. [05:37] wgrant: Now approve it, damn it. :-( [05:46] lifeless: Could you mentor https://code.launchpad.net/~stevenk/launchpad/populate-spr-changelogs/+merge/52363? [05:50] wgrant: Sure, let me fix the comment. [05:50] StevenK: Thanks. [05:51] wgrant: http://pastebin.ubuntu.com/577696/ [05:52] StevenK: Say something about why we can't expire the LFAs. [05:52] That's the really confusing bit. [05:53] wgrant: http://pastebin.ubuntu.com/577697/ [05:54] StevenK: +1 [05:55] wgrant: Changes pushed, thanks. [06:47] Night people. [06:51] Night huwshimi. === StevenK changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews === almaisan-away is now known as al-maisan [08:41] I thought there was a way to do an ssh tunnel to get direct psql access to the staging db. I was hoping to find the instructions to see if I could do something similar for loganberry's tuolumne db. Anyone have a link? [08:41] my google fu is weak (and it may be private docs) [08:43] jam: TLs can access the staging DB from devpad. [08:44] But I doubt !IS has access to loganberry. [08:44] Given that it's a prod machine. === al-maisan is now known as almaisan-away === almaisan-away is now known as al-maisan === Ursinha is now known as Ursinha-afk [09:00] good morning [09:03] Hallo [09:07] mrevell: Hallo [09:07] Moin adeuring ;) [09:07] jam: It is just standard port forwarding a local port to port 5432 on the target machine. Connect to it locally with 'psql --port=55432 prod_db' [09:10] stub: right. I thought so, but I wanted to check that you have to have a valid ssh login on the target machine. [09:10] And I was curious why local psql is better than just running it on the target machine [09:11] since you have a valid login already [09:11] more-interactive typing ? [09:17] jam: Yes, you need an account on the target machine or machine that can get past ipfilter to port 5432 on the target machine [09:17] + ident or similar auth permissions [09:17] jam: Using local psql makes it interactive. Typing into remote shells from the other side of the planet sucks big time. [09:18] jam is right next to the DC :( [09:18] So no benefit whatsoever :) [09:18] stub: well, it confirms what I thought, thanks [09:19] i agree that when you have 200+ms latency, typing is rather cumbersome === adeuring1 is now known as adeuring [09:41] Yippie, build fixed! [09:41] Project devel build #520: FIXED in 4 hr 50 min: https://hudson.wedontsleep.org/job/devel/520/ === jtv changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: jtv | https://code.launchpad.net/launchpad-project/+activereviews [09:45] ye [09:45] gads [09:45] 4h 50m [09:48] 20 minutes of that is check-out [09:48] Which is just *orsum* [09:58] good morning Launchpadders. [09:58] jml: I forgot two things to chat about the other day [09:58] jml: do you have 15? [09:59] lifeless: not immediately. I'll need a few minutes. [09:59] jml: is that few ~=5 or few ~=30 ? [10:00] ~10 [10:00] ok, cool, I'll hang for that [10:09] lifeless: Hi ... I'm trying to ec2 test on a very small branch of mine and I'm getting an error in a test bzr annotate told me you wrote.Julian thinks it might be spurious (and it certainly looks like it when I look at the test) but advised me to ask you anyway. Would you take a look: [10:09] The whole log file http://dl.free.fr/pMlVoHAN6 [10:09] The only place where it seems there is a failure https://pastebin.canonical.com/44450/ [10:17] That one is know to be spurious. [10:17] If it was the only failure, the branch is fine. [10:17] rvba: ^^ [10:17] It shows up rarely enough that it's difficult to debug :/ [10:18] wgrant: ok [10:18] I'll launch ec2 land (again) then [10:18] thx [10:18] No point running it through ec2 again. [10:18] Just 'bzr lp-land' it. [10:18] That submits it directly to PQM. [10:18] ok [10:29] gnight all [10:57] lifeless: review? :) === al-maisan is now known as almaisan-away [11:43] Well, that's a new one: "TypeError: Result of expression 'protonode' [null] is not an object." [11:43] * gmb goes grepping [11:46] rvba: did you lp-land your branch ok? [11:47] bigjools: I relaunched the test suite to make sure I'll receive and email all right [11:47] s/and/an/g [11:47] rvba: fair enough [11:50] bigjools: I'm working on 727632. Reading though the schema change docs. [11:50] rvba: great [11:54] Hmm, odd. Launchpad appears to no longer be notifying me of recipe build failures [11:55] Or rather, it's not notifying me about recipe build failures due to depwait === henninge_ is now known as henninge [11:59] adeuring: http://people.canonical.com/~henninge/mockups/ [11:59] adeuring: see also my mail [11:59] * henninge lunces [11:59] lunches, even === henninge is now known as heninge-lunch [11:59] Hi deryck! [12:00] Morning, heninge-lunch [12:00] deryck: http://people.canonical.com/~henninge/mockups/ [12:00] deryck: see also my mail [12:00] heninge-lunch, ok, looking at it all now. Thanks! === almaisan-away is now known as al-maisan [12:43] deryck: is there an ACL for Fix Released like there is for wontfix etc? [12:44] jml, yes. Only bug supervisor, or the original reporter, IIRC. [12:44] I have a pending application to ~loggerhead-team, who should I talk to to get a yay or nay? [12:45] deryck: what does it take to set it up [12:45] deryck: or is it enabled by default? [12:48] jml, I think defining a bug supervisor is enough. I'd have to look at code to remember for sure. ;) [12:49] deryck: that's fine. [12:49] deryck: thanks very much. [12:51] jml, so I just looked to be sure, and it's just a check in canTransitionToStatus. So nothing required. [12:52] wanted to remember clearly anyway :-) [12:52] deryck: not even defining a bug supervisor? [12:53] jml, no, not required. === heninge-lunch is now known as henninge [13:16] I'm trying to qa bug #726985 but I'm unable to get any requests to succeed at "http://bazaar.qastaging.launchpad.net/" [13:16] <_mup_> Bug #726985: codebrowse OOPSes with GeneratorExit when connection closed early < https://launchpad.net/bugs/726985 > [13:17] When I go to: http://bazaar.qastaging.launchpad.net/~jameinel/+junk/foo/changes [13:17] It just issues a permanent redirect, *to the same URL* [13:21] henninge, adeuring -- let's spend the standup talking about these mockups and come to some conclusion about them. [13:22] sure [13:23] jelmer: I tried to approve your change, but you deleted the merge proposal [13:24] jam: It was an uncontroversial one-liner so I just submitted it. [13:24] jelmer: well, maybe I'll just take back my approval then :) [13:24] jam: heh [13:24] jam: Sorry for the noise :) [13:27] deryck: great idea [13:28] jam: qastaging codebrowse was never set up properly. [13:28] wgrant: good enough for me, I guess [13:28] I'm not really sure how to qa the "doesn't oops anymore" anyway [13:28] can we just set the bug to qa-ok? [13:29] jam: I QA'd the last one by poking around from some internal hosts, but for this I don't think it's worth it. [13:29] qa-untestable [13:29] fine by me [13:34] jtv: Any luck with QAing the DSD script? [13:34] wgrant: I filed an RT. I gather the losas are rather busy. [13:34] jtv: Can we qa-untestable it, given that it presumably won't be run unless you ask for it? [13:35] wgrant: yes, come to think of it that does make sense now [13:37] Done. [13:40] Thanks. === matsubara_ is now known as matsubara [13:57] adeuring, henninge -- let's delay the standup by 15 minutes, to give abentley time to see the mockups when he comes on. [13:57] ok [13:59] Running `make JSFLAGS="--filetype=debug"` seems to invoke the correct bin/jsbuild command line, but it still uses "min" files. Does anyone know how I get it to DTRT? [14:00] allenap, it should work for lp js code. but utilities/yui-deps.py hard codes the min version. [14:00] so yui code is still minified, but lp code is not. [14:03] allenap, also, I've been doing filetype=raw, too. not sure if that matters. [14:03] and you can save time doing "jsbuild", i.e. make jsbuild JSFLAGS='--filetype=raw' [14:05] deryck: Does this end up in lib/canonical/launchpad/icing/build/launchpad.js? [14:05] allenap, yes [14:07] deryck: It's still using the min files. I must be doing something stupid. [14:07] allenap, make clean_js ? maybe it's being dumb and doing nothing? [14:08] rvba: congratulations, your branch landed [14:09] henninge, we can standup when you're ready. [14:09] bigjools: well, one of them === jtv changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews [14:10] bigjools: the other one triggered an error sending the email [14:10] https://pastebin.canonical.com/44466/ [14:11] the strange thing is that the email conf should be the same for this branch and the one which landed [14:11] no idea then :/ [14:11] use bzr lp-land for now [14:11] bigjools: yes [14:15] deryck: It doesn't seem to want to play. [14:15] Any other ideas? [14:30] benji: yo [14:30] bigjools: yo [14:31] benji: the MP of mine that you approved the other day was targeted to devel instead of db-devel, can you do me a favour and tick off the newer MP please? https://code.launchpad.net/~julian-edwards/launchpad/publisher-config-db-schema/+merge/52530 [14:31] sure [14:31] benji: I added some code that you might want to look at, there were no security declarations in the old branch :) [14:31] k [14:37] bigjools: done [14:37] benji: cheers [14:38] benji: good catch with the zcml [14:48] deryck: Ah, I've found the culprit. utilities/lp-deps.py force minifies the lp code too. Btw, thank you for your help earlier. [14:54] allenap, cool. sorry on call now. I really thought it used to work for me. === abentley changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: abentley | https://code.launchpad.net/launchpad-project/+activereviews [15:17] abentley, hey. How about bottom of the hour for a chat? roughly 12-13 minutes from now? [15:18] deryck: sure. [15:18] abentley, ok, cool. meet you in mumble then. [15:24] jml, I'd like to book 15 minutes with you tomorrow, if possible. [15:24] jml, for some voice chat time about how/when to turn of this translations story for your review. [15:25] jml: thanks for triaging my bug, I didn't mean to be lazy but I am a forgetful bastard [15:26] bigjools: that's OK. I actually thought there was a dupe (there wasn't), and have been using this as an opportunity to make sure all the ec2test bugs are tagged up [15:26] found a couple that have already been fixed [15:26] inspired to go on a bug fixing rampage later on [15:26] in my copious free time [15:26] speaking of which... [15:26] deryck: that'd be great [15:27] deryck: just put something on my calendar [15:27] jml, ok, great. thanks! [15:30] jml: what is this free time of which you speak? [15:31] is it somehow associated with the weird bright glowing ball I see in the sky sometimes? [15:31] bigjools: I think the medical term is insomnia [15:32] (or, more honestly, being naughty and doing something I want to do instead of something I should be doing) [15:33] deryck: http://pastebin.ubuntu.com/577884/ [15:35] deryck: http://pastebin.ubuntu.com/577886/ === Ursinha-afk is now known as Ursinha [15:55] sinzui: I've started to work on bug 727632. I've worked on the first part of the bug we talked about yesterday: fixing distro's owner usage. [15:55] <_mup_> Bug #727632: distro and distro series pages do not specify their owner < https://launchpad.net/bugs/727632 > [15:55] sinzui: This is still in the works (no tests yet etc.) but I'd be happy if you could quickly review my branch and give me feedback (lp:~rvb/launchpad/distro-add-registrant). [15:55] rvba: okay. I will now [15:56] abentley, so here's a bit on why we do namespacing the way we do: https://dev.launchpad.net/JavaScriptReviewNotes#Naming%20Javascript%20Modules%20and%20Namespaces === salgado is now known as salgado-lunch [15:56] abentley, I think the "do this so you only have to change it in one place" comment is the best reason. some of the rest seems suspect to me. [15:58] abentley, YUI's way is to create the namespace and then address it directly: http://developer.yahoo.com/yui/3/yui/#yuiadd [15:59] deryck: are modules and namespaces orthagonal? [16:00] abentley, by that you mean that what I name it in the add constructor has nothing to do with initialziing the namespace in said module? [16:01] deryck: yes. (except that we have a convention connecting them) [16:02] abentley, yes. you could have a single module that creates two different namespaces, for example. [16:02] deryck: the UI docs you point at, the module is named 'mymodules-mod1' and the namespace is "Y.mynamespace". [16:02] s/UI/YUI [16:02] abentley, right. we only it do it by convention, as you noted. [16:02] abentley, i have an exciting branch for your review: https://code.launchpad.net/~leonardr/lazr.restful/must-specify-version/+merge/52705 [16:03] deryck: okay, that explains why we specify the same string twice, then. [16:03] leonardr: ack [16:19] sinzui: thx for the review. I'll go on with my branch then and fix the -almost- same problem for distro series. [16:19] okay [16:25] sinzui: one question though. When I 'make lint' I've got a warning about the fact that database/sampledata/lintdata.sql differs from database/sampledata/current.sql ... and indeed I had to modify current.sql ... [16:26] the warning print also a few shell commands ... that will take me to erase my modifications if I follow them :-) [16:26] rvba: we do not edit those files for schema changes, though I realsied you did [16:27] sinzui: oh I get it, they are supposed to be migrated I guess ... [16:27] rvba: after you` make schema`, run `make newsampledata`, then rename the new files to the old files [16:27] sinzui: ok I get it. thx [16:28] rvba: I am certain you will see more than your changes. Lp engineers rarely reconcile their schema changes to sampledata [16:28] sinzui: indeed, I saw a small difference. [16:33] leonardr: does zope.Cleanup do something that testtools.TestCase.addCleanup can't do? [16:38] leonardr: as_of is a nice improvement over current syntax, but did you consider allowing the default version to be 'devel'? === al-maisan is now known as almaisan-away [16:48] abentley: we'd still need as_of (since the existing syntax is ugly), it just wouldn't be required [16:48] leonardr: agreed. [16:49] i'm pretty sure we explored that possibility and rejected it, but i don't remember the reasoning [16:49] i will say that with this implementation it's a lot easier to patch our existing code [16:50] than with an implementation in which our existing code will change meaning (rather than fail) if we forget to patch something [16:50] leonardr: True, but we could generate before-and-after wadls to ensure the interface stayed the same. [16:52] abentley: i think there's not a whole lot of difference between these implementations, and this is the one lifeless prefers, so i'm going with it [16:52] leonardr: okay. Just seems like extra typing for no benefit. [16:53] leonardr: Now, about zope.Cleanup. Does that do something similar to testtools.addCleanup? [16:53] abentley: there's no net decrease in typing. if the default is devel, you're going to have to do the typing when you decide to cut a new release [16:53] i don't know what zope.Cleanup does. i'll check [16:54] leonardr: Oh, so that was from a contributor? [16:54] abentley: i didn't write that code, if that's what you're saying. i just refactored it [16:54] and i remember what the problem was. zope.Cleanup takes care of the current interaction [16:54] leonardr: There is a net increase in typing, because first you set export_as='devel', and then afterward you change export_as to '1.1'. [16:55] gmb: hi - qa plox - 12551 [16:55] fair enough. i'd say that's worth it because you can grep for 'devel', see everything that hasn't been changed, and make a decision based on that [16:56] if there is something exported with no version specified, there's no way to know whether it's in devel or whether someone just made a mistake === beuno is now known as beuno-lunch [16:57] leonardr: okay. That takes care of the real issues. [16:57] lifeless: done [16:59] i'm trying to use bzr pipeline, and i think i might have screwed something up. when i try to test a particular pipe via ec2 i get a NotABranch error. [16:59] anyone have any thoughts? [16:59] leonardr: you have some extra blank lines at 679 and 669. It would also be nice if you documented every test. [16:59] leonardr: But r=me. [16:59] ok === salgado-lunch is now known as salgado [17:09] sinzui: i am getting totally random test failures when i try to land the branch we worked on yesterday [17:09] InternalError: current transaction is aborted, commands ignored until end of transaction block [17:09] this has happened twice, so i doubt it's spurious [17:10] is it possible that adding the validation for duplicate bugtasks could cause that error? [17:11] oh, and i'm getting the error locally, so it's not an ec2 problem [17:13] sinzui: http://pastebin.ubuntu.com/577933/ [17:14] that's the source of the problem, but i don't know why it wouldn't have permission [17:14] leonardr: this looks like a db issue something related to security.cfg [17:15] is process_email running as a different database user? [17:15] leonardr: yes it is [17:16] leonardr: we just need to find the user and add the tables to the section. [17:16] I think we only need insert [17:16] i think we only need select, right? [17:17] oh, yes, select. you are right. [17:18] processmail user? [17:18] I think so [17:21] sinzui: the obvious thing doesn't help: http://pastebin.ubuntu.com/577935/ [17:21] any ideas? [17:22] perhaps that's the wrong user?? [17:22] abentley: trying to get as complete a deploy tonight as possible - can you qa Revision 12555 ? [17:22] leonardr: You had the identical error after making schema? [17:23] lifeless: in the middle of doing so. [17:23] abentley: cool! [17:23] henninge: ping [17:23] lifeless: pong [17:23] ;) [17:24] henninge: if you're still around, and can qa https://bugs.launchpad.net/launchpad/+bug/705176 we should be able to include it in the deploy tonight [17:24] <_mup_> Bug #705176: Improve sharing information on translation pages < https://launchpad.net/bugs/705176 > [17:24] lifeless: I was just looking at it. something might be wrong but it is behind a feature flag anyway. so qa-ok [17:25] henninge: nice! thanks [17:25] ah, make schema [17:25] the missing ingredient? [17:25] leonardr: yes, after after the schema is setup, security.cfg is parsed and the users are setup === deryck is now known as deryck[lunch] [17:28] * jml heading back home & thus offline [17:28] sinzui: unfortunately, yes, make schema doesn't stop the error [17:33] matsubara: hi [17:33] matsubara: you've probably got a tonne of mail [17:33] matsubara: but I've got a oops-tools branch you may not have seen [17:33] matsubara: which I'd love a hand with - test suite doesn't want to play for me [17:36] oh, wait, it's slightly different! binarypackage*name* [17:37] great, i just have to make schema over and over until i run out of errors. sinzui, is there a better way? [17:37] what is going wrong? [17:39] lifeless: i have a branch that adds some error checking to bugtask creation. the problem is that this requires bugtask creation to access database tables it formerly did not access [17:39] so when it happens, eg., over email, the database user doesn't have permission to run the checks [17:39] leonardr: I have not learned of a better way [17:39] ah checkwatches [17:39] security.py can update that [17:39] you need to point it at the ftest *template* db [17:39] lifeless, yep, saw that one. I'll review it today and investigate the test suite failure [17:40] matsubara: thank you! [17:40] matsubara: if you can take it over, that would be awesome. [17:41] lifeless: i'm intrigued. this is a substitute for 'make schema'? what's the name of the ftest template db? [17:42] launchpad_ftest_template [17:42] make schema builds that db [17:42] and as part of building it invokes security.py pointed at that template [17:43] that should speed up the process considerably, thanks [17:43] I don't know the magic runes to make that happen later, but it should be amenable to a little bit of spelunking in database/ [17:45] yes, this is making it go faster [17:47] it might be nice to have a make target to do this to the ftest template, as a convenience for other developers [17:49] gary_poster: my first patch to lp using 'with' has test failures, I'll be working through those today. [17:49] anyone else running LP in a VM rather than raw on their system? [17:49] I managed to get it all set up [17:49] but realized I'd really like to access it from the container [17:49] so have it serve in the VM's public address [17:50] not just on the loopback [17:50] gary_poster: one of them is in the subscription code - http://pastebin.com/bHJgS6DG - wondering why that is an exact check rather than a LessThan [17:50] jam: I am [17:50] lifeless: I see a broken link on qastaging that I don't see on production. [17:50] jam: https://dev.launchpad.net/Running/VirtualMachine [17:50] abentley: on what page? [17:51] lifeless: the "Set up sharing" on https://translations.qastaging.launchpad.net/bzrtools/trunk [17:51] lifeless: this was not introduced by my code. So far my code is qa-ok. [17:52] lifeless: right, I got that part working [17:52] abentley: I can't see +sharing-details on production either [17:52] I just want to be able to access it from the host [17:52] rather than eg having to run Firefox in the VM [17:52] lifeless: Yes, but the link isn't present on production. [17:52] abentley: ok [17:52] abentley: is it a feature flag hidden thing, or will everyone see it ? [17:53] lifeless: I believe everyone will see it. It looks like it was introduced in r12559 [17:53] abentley: translations.sharing_information.enabled is set on qastaging [17:54] abentley: in the template, I see 'tal:condition="features/translations.sharing_information.enabled' [17:54] lifeless: Okay. I probably misunderstood henninge. [17:54] abentley: so it won't show up on prod at all until that flag is enabled [17:56] s/it/the link that is broken will be hidden/ [17:57] jam: right, I thought I put notes on that on the wiki page [17:57] lifeless: there is a small link to an email thread, perhaps in there [17:59] apparently not [17:59] jam: so, copy the new stuff from /etc/hosts to your host os [18:03] I have a pending application for ~loggerhead-team, who should I talk to to get a yay or nay? [18:03] lifeless: qa-ok. [18:05] sinzui: good news is i've got the tests running again. bad news is we have more tests that try to create bad bugtasks [18:05] we suck [18:06] abentley: cool, thank you [18:06] leonardr: I favour deleting any test that possibly duplicates what is done in a lower level test. This is an opportunity to make the test suite faster === beuno-lunch is now known as beuno [18:07] sinzui: i like this plan but i don't trust my ability to quickly determine that one test duplicates another. let me get the big list of failures up and we can go through it [18:07] maxb: what do you need that for ? [18:07] leonardr: that is a good plan [18:07] maxb: or better phrased: what are you trying to do that you can't today, that ~loggerhead-team membership will let you do [18:08] I would like to help out with getting some of the changes moved to the experimental branch re-landed. One of the convenient ways to do that would be to re-open merge proposals for stuff that has been un-landed. [18:08] maxb: you don't need any special privilege to do that [18:08] I can't edit the status of merge proposals for other peoples landings on lp:loggerhead - being in ~loggerhead-team would enable this [18:09] maxb: oh, I see what you're thinking. That won't do the right thing *anyway* [18:09] it wouldn't? [18:09] sinzui: http://pastebin.ubuntu.com/577955/ is the full list, i'll trim it down to just the initial errors [18:09] I don't think so [18:10] Doesn't being in the team owning the target branch of a MP entitle you to edit it? [18:10] maxb: I think it would be better to make a branch containing a specific thing merged out of experimental - probably oldest-first is easy (can avoid cherrypicks) [18:11] maxb: the problem is the source branch: unless the mp is /perfect already/ it will need further changes [18:11] Right.... I'd hope to convince the original submitter to do them, then :-) [18:11] maxb: and you can't push to e.g. mkanat's branches [18:11] sinzui: http://pastebin.ubuntu.com/577957/ [18:11] maxb: so a number of the changes were done on contract to Canonical [18:12] not too bad, only 4 failures, and one of them is clearly my fault (somehow) [18:12] I have got the files open [18:12] maxb: and the contract is over. Its up to 'us' - folk interested in those changes - to pick them up and polish/revisit/land [18:13] sinzui: i'm looking at the first one. would you take a look at the other 3? [18:13] leonardr: 30-nominate-bug-for-distrorelease needs history like I added to another test. maybe... [18:13] i'll push my changes [18:13] alright - not all the MPs I was thinking of were mkanat's, but I could opt for emailing people asking them to reopen their own MPs [18:14] maxb: Personally, I would just make a new one [18:14] maxb: we took on the burden of re-reviewing and assessing and fixing those changes when we pivoted the trunks arounds [18:14] sinzui: lp:~leonardr/launchpad/bug-106338 is up to date [18:14] maxb: I don't think its all that fair to push back to folk whom we have told their change is done with. === deryck[lunch] is now known as deryck [18:15] ok [18:17] maxb: if you need bug triage permissions, or are going to get involved in code review & qa, I'd be delighted to talk loggerhead-team membership [18:17] it is however the project committers team, so I think the usual 'get involved, be involved, ok heres the membership' process should apply [18:18] alright, I'll re-raise at an appropriate time [18:27] leonardr: I think I have 4 fixed. 3 fails trying to show it will fail. The test is bad, but we might have a case where the use can oops the UI [18:27] no luck on 1 so far [18:28] sinzui: is there any way on e.g. https://launchpad.net/~loggerhead-team/+editproposedmembers to discuss with the applier why they are applying ? [18:29] No [18:29] That is a long requested feature [18:29] sinzui: is there a bug complaining about same? [18:34] lifeless: https://dev.launchpad.net/Running/RemoteAccess looks like it has what I was looking for [18:35] lifeless: bug 4976 [18:35] <_mup_> Bug #4976: When trying to join a team, user should be able to give comment < https://launchpad.net/bugs/4976 > [18:36] I added it to the page [18:36] sinzui: sigh, thats like 3 difference features rolled into one :( [18:37] sinzui: so many things from users are like that [18:40] leonardr: I been to build a pristine tree to test it will be a moment: this is what I have done: http://pastebin.ubuntu.com/577973/ [18:41] ok [18:50] sinzui: the problem with #1 is that the productseries bugtask created by the factory is not conjoined to the bugtask for that productseries' product [18:51] does that make sense? i'm not sure why it does happen [18:52] leonardr: it does if the productseries is not the product's development_focus [18:52] but it is [18:52] conjoined_bugtask = self.factory.makeBugTask(bug=bug, target=product.development_focus) [18:55] getConjoinedMaster has the right bugtask in its shortlist but for some reason decides that's not it... [18:56] sinzui: the bugtask (whose target is a ProductSeries) does not have either IDistroBugTask or IUpstreamBugTask [18:56] ie. doesn't provide [18:56] should it be providing IDistroBugTask? that doesn't seem right [18:57] but that's the only way it can have a conjoined master [18:57] leonardr: we are testing the IUpstreamBugTask.providedBy condition [18:58] ok, i get that now. any idea why this task doesn't provide that? [18:59] leonardr: it doesn't [18:59] i guess because its .product is none? it's got a productseries but no .product? [19:00] product==upstream there is even a bug report to rename IUpstreamBugTask to IProductBugTask [19:00] what! [19:00] that is F'd up [19:00] ok, probably a problem with createBugTask [19:01] or, maybe in the factory [19:01] is it I would have thought it was makeBugTask() which I know was making invalid series last year [19:01] thats normal [19:01] count [19:01] ------- [19:01] 7703 [19:01] (1 row [19:01] lifeless, pastebin you gave me doesn't work anymore. can look if you like [19:02] sinzui: launchpad_qastaging=> select count(*) from bugtask where product is null and productseries is not null; [19:02] -> 7703 [19:02] sinzui: product is accessed via productseries.product [19:02] leonardr: last year the factory was creating products without series, which is invalid. I fixed that. I think we just found the reverse is true [19:02] sinzui: the product and series both _exist_ [19:03] but, the bug task is created with a series and no product, and nobody says 'wait, that's wrong' [19:03] leonardr: thats how it should be [19:03] gary_poster: http://pastebin.com/21LHXw6D [19:03] lifeless: I think I need to put my hands over my ears and hum very loudly. I do not want to hear about how messed up production data is. It took me 4 months to clean up milestones without a series [19:04] sinzui: this is not messed up [19:04] sinzui: its /correct/ [19:04] WHEN product IS NOT NULL THEN productseries IS NULL AND distribution IS NULL AND distroseries IS NULL AND sourcepackagename IS NULL [19:04] sinzui: I think you have an invalid assumption about how it should be, and you're wrong. [19:05] How do I access a product series that has no product? [19:05] sinzui: the product series has a product [19:05] sinzui: thats not what leonardr is saying. [19:05] the *bug task* has a .productseries but does not have a .product [19:05] leonardr: thats normal. [19:05] and the check for conjoined master only looks at .product [19:05] leonardr: and thats also normal [19:06] leonardr: the conjoined master is the *nonseries* task [19:06] lifeless: we are looking at this [19:06] product = self.factory.makeProduct() [19:06] bug = self.factory.makeBug(product=product) [19:06] conjoined_bugtask = self.factory.makeBugTask( [19:06] bug=bug, target=product.development_focus) [19:07] ^ I think there should be a bugtask with .product and a bugtask with .productseries [19:07] lifeless no idea on the face of it. AFAIK I haven't/yellow hasn't touched that particular bit. I encountered something somewhat like that before and investigated to discover that the difference in query count was in fact indicative of a problem, but that's certainly not the ideal way to show it. ...I'm sorry I can't offer more. [19:07] sinzui: no, thats not possible. [19:07] gary_poster: no worries, thanks for peeking [19:07] sinzui: bugtask links to only one of (product, productseries, ...) [19:08] lifeless: my only goal in this is to create something that launchpad will treat as a conjoined bugtask, so that i can test its behavior. what do you recommend? [19:08] upstream or distro [19:08] lifeless that are 2 bug tasks. how would you setup a conjoined condition in a test. the are not examples in factory as far as I can see [19:09] lifeless: catch-up call? === fjlacoste is now known as flacoste [19:09] flacoste: yes, but give me 2 minutes to unblock sinzui and leonardr [19:09] leonardr: upstream or distro ? [19:10] lifeless: leonardr, I am mistaken, there is a test and it does what we are doing in the broken test [19:10] task = factory.makeBugTask() [19:11] conjoined = factory.makeBugTask(bug=task.bug, target=factory.makeProductSeries(product=task.product) [19:11] sinzui: ^ those two lines will make a conjoined master for upstream [19:12] erm, not quite [19:12] conjoined = factory.makeBugTask(bug=task.bug, target=task.product.devel_focus) [19:12] sinzui: ^ that will do it [19:12] I am looking at a test that does this: [19:12] self.factory.makeBugTask( [19:12] bug=bug, target=self.product.development_focus) [19:12] following the definition of 'a conjoined master is a series task on the development focus of a project' [19:13] what we should do is drop product bugs altogether. [19:13] which identical to: self.factory.makeBugTask( [19:13] bug=bug, target=product.development_focus) [19:13] sinzui: if your product is the same product [19:14] yes, we make the bug with the same product, I pasted the lines [19:14] product = self.factory.makeProduct() [19:14] bug = self.factory.makeBug(product=product) [19:14] conjoined_bugtask = self.factory.makeBugTask( [19:14] bug=bug, target=product.development_focus) [19:14] cool [19:14] we could [19:14] product = self.factory.makeProduct() [19:14] bug = self.factory.makeBug() [19:14] conjoined_bugtask = self.factory.makeBugTask( [19:14] bug=bug, target=product.development_focus) [19:14] ^ disregard that [19:14] so, the quest is [19:15] lifeless: but the issue is that the test fails [19:15] what is the default_bugtask [19:15] I think you should not call makeBug [19:15] but call makeBugTask twice, because you *do care* about the target. [19:16] that shouldn't affect the validity though [19:16] sinzui: have you looked at what ends up in the db ? [19:16] something I do in this sort of situation is put a import pdb;pdb.set_trace() call at the point of failure, and then go sniffing [19:17] sinzui: I'll chat to flacoste and come back to help you in a bit [19:17] that was what I was thinking. leonardr. we might need a IStore(conjoined_bugtas).flush() [19:17] sinzui: in createBugTask? [19:18] after the test created conjoined_bugtask, we can explicitly flush the state to the db for the query that is test a few lines later [19:18] i see [19:19] sinzui: does it change your suggestion to know that conjoined_bugtask.conjoined_master is None immediately after it's created? [19:20] no, that is a sql query [19:20] ok [19:20] i disagree--i don't think it gets to the sql, but i'll try it [19:23] sinzui: after the flush, conjoined_bugtask.conjoined_master is still None and I can still set that bugtask's status to Invalid without raising an exception === matsubara is now known as matsubara-lunch [19:24] leonardr: your line of code does not make sense. I think you are confused again. the series task is the master, the product/distro is the slave so conjoined_bugtask.conjoined_master should always be None [19:24] conjoined_bugtask.conjoined_slave == product [19:25] so i am editing the wrong task? [19:25] maybe product==slave, series==master [19:27] conjoined bugs are like X servers. The relationship is reversed. It is like the odd fact that seahorse males give birth, not femals [19:29] yes, that was the problem [19:29] man [19:29] leonardr: I just confirmed that 30-nominate-bug-for-distrorelease.txt is fixed by my change. I need to rethink 10-bug-requestdistrofix.txt. [19:29] ok, we're getting there [19:30] leonardr: I had to restore this line in sourcepackagerecipe.py to get the tests to run [19:30] from lp.registry.interfaces.pocket import PackagePublishingPocket [19:35] flacoste: grab devpad:~mthaddon/banana.html [19:39] leonardr: #3 is a duplicate of bugtask editing tests. I will remove the redundant parts and hope for a pass [19:44] flacoste: WHEN productseries IS NOT NULL THEN distribution IS NULL AND distroseries IS NULL AND sourcepackagename IS NULL [19:45] sinzui: ok, my side is committed and pushed [19:45] flacoste: https://lpstats.canonical.com/graphs/AppServerRequestLpnet/ [19:46] leonardr: did you apply my changes to 30-... from http://pastebin.ubuntu.com/577973/ [19:46] sinzui: no, doing that now [19:52] flacoste: http://www.mongodb.org/display/DOCS/Replication [19:57] sinzui: for some reason my bin/test is not finding 30-nominate-bug [19:57] but, i have applied your change [19:57] leonardr: the test runner does not let you run tests our of sequence [19:58] leonardr: you need to test the whole directory [19:58] we were smoking a lot of crack in 2005 and 2006 [19:58] ah, i see. i was wondering how that test was run earlier, but earlier i'd run the whole directory [20:00] ok, your test fixes it [20:00] i wonder how hard it would be to remove that sequential test feature [20:00] probably not hard, just very annoying [20:02] leonardr: my effort to fix 10-... broke 20-... so I am fixing that too :( [20:02] ok, don't be discouraged [20:05] sinzui: skipping our 1to1, based on how busy you seem to be? [20:05] jcsackett: yes, we can try in an hour [20:05] sinzui: sure. [20:06] lifeless: any chance you would be available to talk a bit about bug 716786? [20:06] <_mup_> Bug #716786: Product:+filebug-show-similar timeouts < https://launchpad.net/bugs/716786 > [20:06] sure [20:06] in a little bit [20:06] cool. [20:14] sinzui: argh, looking at the failure message more closely i see that i neglected failures in unit tests [20:14] :( === matsubara-lunch is now known as matsubara [20:34] leonardr: my branch that increments lazr.restful to 0.17.4 passed, but was bounced because we are in rc mode. I think my branch will land before yours. maybe you should say your branch requests the same version before you submit it again [20:35] sinzui: makes sense [20:39] leonardr: I got rid of the duplicate parts in the 10-* test. There is still an error. I believe that bugalsoaffect.BugTaskCreationStep is not validating before creating the bugtask! We need to fix this in this branch [20:40] sinzui: ok, give me a pastebin and i'll try to figure out what you mean [20:41] leonardr: I mutated by test, but you can see it in your own paste. #2 and #3 are the same error. The view assumes the selected target is sane: http://pastebin.ubuntu.com/577957/ [20:49] sinzui: what would it mean to validate before creating the bugtask? we would call validate_new_distrotask/valid_upstreamtask and catch the exception? [20:51] what would happen if createBugtask just threw a WidgetError? (that's what should happe nnow) [20:52] anyone know what happened to the builders? [20:52] they both seem to have failed mid test [20:52] with what looks like a missing database [20:55] leonardr: I think we are too far into the view to raise an error. The field value (a distro in the test I am reading) is invalid. I do not think we should have entered the method. I expect something to set fieldError() [20:57] sinzui: in that case... we have a lot of error checking code in createTask (determining the order of precedence). should we create a method that takes similar arguments to createTask and makes the check? then the view can catch the error and set fieldError [20:57] oh, leonardr: I think DistroBugTaskCreationStep.validateStep() is at fault [20:58] yeah, something like that. except that code doesn't know about the precedence order we decided on? is that hte problem? [21:00] jcsackett: hi [21:00] lifeless: hi. [21:00] i think there may be a conflict in times to talk, unless sinzui is still too busy for 1-to-1, or is good with doing it tomorrow. [21:01] jcsackett: we can talk tomorrow [21:01] * sinzui is free all dat [21:01] day [21:01] okay, lifeless, no conflict after all. :-) [21:01] leonardr: mumble ping [21:01] jcsackett: I can wait for you to talk with sinzui [21:01] k [21:02] lifeless: sinzui and i can chat tomorrow--it's not a pressing thing, just a regular checkin. [21:02] ok [21:02] so how can I help you [21:02] lifeless: leonardr and I want to land this branch and never speak of it again [21:02] * jcsackett wants them to land the branch as well. [21:03] so, lifeless, i'm looking at bug 716786 [21:03] <_mup_> Bug #716786: Product:+filebug-show-similar timeouts < https://launchpad.net/bugs/716786 > [21:03] the one about timeouts with insane fti strings. [21:03] right [21:03] jcsackett: actually you're in good shape, you just need the new version of lazr.restful, which will be installed anyway when _sinzui's_ branch lands [21:03] leonardr: oh, cool. [21:03] my problem is that i pulled on a thread that turned out to be the tail of a dragon [21:04] lifeless: my naive thought, based on a comment by stub on a related bug, is that maybe we just need to kick out any super long bug titles? [21:04] but a) i'm not sure that's best and b) i'm not sure what the cap should be if it is. [21:04] jcsackett: why does it do this search at all ? [21:05] show similar is using an fti search to find any bugs similar to the one you might be reporting. [21:05] so you can say "oh, yeah, that's the issue" rather than filing a new bug. [21:05] leonardr: I am uncertain what happened in the two examples. I see DistroBugTaskCreationStep.validateStep() and it does validate_new_distrotask. either we skipped that line, or multistep() never called validateStep(). [21:05] sinzui: on call, 1 min [21:06] jcsackett: oh, its not actually on the bug filing [21:06] its in the prepatory workflow ? [21:06] no, though bug 722787, which you filed against +filebug, is the from the same thing. [21:06] <_mup_> Bug #722787: Product:+filebug timeouts < https://launchpad.net/bugs/722787 > [21:06] so title=%5Barmel%5D%20mawk%20testsuite%20fails%20(-fif-conversion2%20problem) is the sesarch string [21:06] so title=%5Barmel%5D%20mawk%20testsuite%20fails%20(-fif-conversion2%20problem) is the sesarch string [21:07] jcsackett: that sample query runs in 800ms on qastaging [21:07] jcsackett: this may not need code changes [21:07] lifeless: i lost a bit there; accidentally closed the channel. [21:07] jcsackett: I repasted [21:07] ah. [21:08] so, the problem in fti is that whatever you search on, gets redone N ways, where N is number of tokens in your search string left over. [21:08] yes, I put that together as a compromise [21:08] we used to do some very expensive preprocessing to filter out common terms [21:08] * jcsackett nods. [21:09] so, you think this may not need code changes? [21:09] is our full text index just not up to snuff? [21:09] * jcsackett confesses fair amount of ignorance on tsearch2 and the like. [21:10] jcsackett: I think its db layer, stub bounced it as crazy, but I want to talk through it with him [21:10] fair. i'll mosey on to something else then. :-) [21:11] we may need to do a context-term document frequency index [21:11] to permit getting back what we had [21:11] -or- [21:11] we need to move ahead on the lucene thing [21:11] lucene is pretty hot. we used it at my last job. [21:11] we were using mysql full text prior, so *huge* improvement. [21:15] leonardr: I am still stepping through. We are validating, and I can see that we did a sane validation, so I now looking at the base class to see it if is creating the bugtask without the sourcepackage (which is what was validated) [21:16] k [21:16] jcsackett: may I humbly suggest bug 727023 [21:16] <_mup_> Bug #727023: Cve:+index timeouts < https://launchpad.net/bugs/727023 > [21:17] jcsackett: 20 timeouts a day [21:17] jcsackett: needs eager loading [21:17] lifeless: sure, i'll take a look at that. [21:19] sinzui: off the phone [21:19] sinzui: I'm getting google service problems [21:19] RuntimeError: Socket poll time exceeded. [21:19] starting the google service layer [21:19] WTF? [21:20] * thumper tries to rebuild [21:23] yeah, rebuild fixed it === salgado is now known as salgado-afk [21:25] thumper: is it because you branch still says it changed something in lp.services.googlesearch [21:25] sinzui: no, this is the other branch :) [21:27] thumper: you may need to do bin/buildout if you merged the change from from canonical or the rename from .search to .googlesearch [21:27] sinzui: yeah, the make fixed that [21:29] leonardr: the data passed to validateStep and main_action is different. We validated spn=alsa-utils, but the action is working with spn=mozilla-firefox [21:30] * sinzui now wonders if there is a very old and deep bug in the code [21:30] sinzui: remind me which test file you are in? [21:30] xx-duplicate-bugwatches.txt, the first test [21:31] leonardr: we are on mozilla-firefox, but we are adding alsa-utils [21:31] We validate alsa-utils, but the main_action thinks we working with mozilla-firefox [21:33] sinzui: ok, and which class has the main_action? [21:35] leonardr: It was DistroBugTaskCreationStep.main_action. I am stepping though it again and I see everything right so far [21:40] sinzui: leonardr: would you like me to look as well? if so whats the branch [21:40] lifeless: knock yourself out. lp:~leonardr/launchpad/bug-106338 [21:40] i'll forward you the failure message [21:40] we've fixed all but one error in the pagetests, so it's just the unit test failures after shis [21:41] leonardr: if its under control I'll leave it with you guys; if you need a hand I'll pull the branch and have a look [21:42] sinzui: how much longer can you spend on this? [21:44] leonardr: we get a LaunchpadValidationError creating a task for debian alsa-utils. This causes the view to attempt to recover (maybe by backing up a step) and it rebuilds the data from the existing context. [21:45] sinzui: so instead we should set a field error and let it go? [21:45] leonardr: so I need to see know why the call to validate passed, but the call to create failed [21:45] sinzui: probably because the call to validate was much simpler than the equivalent validation code in create [21:45] remember the complicated order-of-operations code i wrote yesterday? [21:46] that calls validate_new_distrotask in two places and calls valid_upstreamtask if neither of those was triggered? [21:46] i bet the validate() only calls valid_upstreamtask [21:47] well, we only call validate_new_distrotask [21:48] however, a casual glance shows that in this case, createTask should be running the same code as validateStep() [21:50] lifeless: I was having trouble working out the bug you said was in the temp directory handling, but first I wanted to get a pointer or two on fixtures, since I've not used them before. [21:51] StevenK: from fixtures import TempDir [21:51] with TempDir() as dir: [21:51] cwd = dir.path [21:51] ... [21:52] StevenK: fixtures implement the context manager protocol [21:52] lifeless: So, just replace the outside try: with that, and it will create the directory and remove it when it falls out of scope? [21:52] StevenK: the bug is that you make a directory and may not clean it up because you don't have a try: finally: [21:52] StevenK: yes. [21:53] lifeless: Er, I do have a try: finally:. I might not in the test, but I do in the code [21:54] StevenK: whats the mp again ? [21:54] sinzui: let me throw this out there. the problem is that validate_new_distrotask is called twice, once for the source package and once for the distribution [21:54] it should only be called for the source package [21:54] that's what i'm seeing, anyway [21:55] lifeless: https://code.launchpad.net/~stevenk/launchpad/populate-spr-changelogs/+merge/52363 [21:55] Do WIP MPs send mail still? [21:55] StevenK: ok, so your test is definitely buggy [21:56] StevenK: and your try:finally: is ok but would be improved by using the fixture I think [21:56] lifeless: Agreed. I'll look at them, thanks for the pointer and the help. [21:57] StevenK: anytime [21:58] leonardr: sorry, unity went belly up. validate_new_distrotas()k and bugtask.createTask() disagree about debian/alsa-utils [21:59] wallyworld: can you update your cards on the kanban board? [21:59] sinzui: i got it [22:00] the _reason_ it was trying again with firefox was that createTask was checking alsa-utils and then debia [22:00] it shouldn't have been checking debian [22:01] sinzui: see if this makes sense to you: http://pastebin.ubuntu.com/578052/ [22:03] * leonardr hopefully checks to see if that fixed other bugs, even though it's unlikely [22:04] leonardr: I think that may do the trick. I am in the condition that your paste is trying to stop [22:04] yeah, not really fixing other bugs, oh well [22:04] leonardr: does that fix xx-duplicate-bugwatches? [22:05] sinzui: yes [22:05] but not, apparently, anything else [22:06] leonardr: yes. I think the first chunk I remove from the the 10.* test was needed. I will try your changes with mine [22:06] ok, then we can spend a little time on the unit test failures [22:08] thumper: will do [22:09] i think these test failures need a call to factory.makeDistroSeries [22:17] sinzui: ok, i know what's going on for one of these tests, but i'm not sure what to do [22:18] * sinzui listens [22:18] the test is calling self.factory.makeBugTask(sourcepackage) [22:18] this code runs in makeBugTask [22:18] if ISourcePackage.providedBy(target): [22:18] # We can't have a series task without a distribution task. [22:18] prerequisite_target = target.distribution.getSourcePackage( [22:18] target.sourcepackagename) [22:18] that gives us a DistributionSourcePackage [22:19] then we create a task for that DistributionSourcePackage, and that raises an error [22:19] LaunchpadValidationError: u'Package generic-string927887 not published in Distribution927888' [22:19] leonardr: I reverted my changes to 10-*. bug-also-affects passed with your change. So I think the doctests are now addressed. [22:20] how can we get that error when prerequisite_target *is* the package generic-string... as published in Distribution...? [22:20] that's why i said maybe we need to call makeSourcePackagePublishingHistory [22:20] but i'm not sure how, or if that will really help [22:20] leonardr: makeSourcePackagePublishingHistory() will fix that [22:21] ok, 1) how do i call it, 2) what if there already is a publishing history? [22:21] makeSourcePackagePublishingHistory(series=series, sourcepackagename=dsp.sourcepackagename) [22:22] what is 'series' here? [22:22] target? [22:22] leonardr: a distroseries possibly the development_focus of the distro [22:23] leonardr: since sample data has bugger all for SPPH, there is little chance we can collide. since SPPH is a record of changes, adding publishing records jut means a new version was released [22:24] thumper: Do we send email for WIP MPs still? [22:24] wgrant: not on creation [22:24] wgrant: not when creaeted WIP IIRC. possibly not on changes either. [22:24] Great, thanks. [22:24] wgrant: there are a few nitty bits around commenting on WIP [22:24] if you change the description or commit message, it doesn't send email [22:25] jcsackett: why is bug 731841 critical? [22:25] <_mup_> Bug #731841: rosetta-admins team cannot change project translation settings < https://launchpad.net/bugs/731841 > [22:25] if you request reviews, it "shouldn't", I'm not sure if it odes [22:25] lifeless: i misread it earlier, thought they were getting an OOPS, not just a "you're not allowed here" [22:26] fixing [22:26] ok, that got rid of a lot of the errors [22:26] dig. [22:27] sinzui: http://pastebin.ubuntu.com/578065/ [22:28] leonardr: that looks good [22:28] ok, on to the next one [22:28] we have this code: [22:28] bug = self.factory.makeBug( [22:28] distribution=self.searchtarget.distribution) [22:28] bugtask = self.factory.makeBugTask( [22:28] bug=bug, target=self.searchtarget) [22:29] that gives this error, i think correctly: [22:29] This bug is already open on Distribution360034 with no package specified. You should fill in a package name for the existing bug. [22:30] leonardr: I think the test is bad. [22:30] we should provide a package or makeup a new distro [22:30] self.searchtarget is a DistributionSourcePackage [22:30] it has a .sourcepackagename [22:31] so maybe it's not a bad test? [22:34] sinzui: that error is given by validate_new_distrotask(bug, distribution, sourcepackagename) when sourcepackagename is not None [22:34] i would only expect it when sourcepackagename is None [22:35] ARGH [22:35] now i understand the error message [22:35] it's saying "you shouldn't be filing this bug" === matsubara is now known as matsubara-afk [22:35] leonardr: hi, how to I stop exporting an attribute in devel? [22:35] thumper: pass in ('devel', dict(exported=False)) right after the field object [22:36] leonardr: no need [22:36] k [22:36] leonardr: it is only exported in devel [22:36] not in the others [22:36] so I can just kill it [22:36] yup [22:36] sinzui: so, yes, i think the test is wrong. what would be a better test? [22:36] leonardr: yes, the test is wrong, not the code [22:36] i don't think "provide a package or make up a new distro" makes sense here, but i could be wrong [22:36] we can create a new dsp [22:37] sinzui: for context, this is test_bugtask_search.py line 327 [22:37] sinzui: I hear you... but I'm muted, and Unity is not showing Mumble's notification area icon. [22:38] sinzui: Any hints? [22:46] sinzui, i am eod and then some. i've pushed my changes. did i give you the list of unit tests that failed? [22:46] leonardr: no you did not. I have few hours left in my day [22:47] ok, let me give you the master list and you can chip away at it. i think there are only 2 or 3 distinct bugs, despite the huge number of failure [22:47] s [22:47] sinzui: http://pastebin.ubuntu.com/578071/ [23:09] ugh [23:09] did something break date formatting recently? [23:09] ---------------------------------------------------------------------- [23:09] File "lib/lp/registry/tests/../stories/webservice/xx-project-registry.txt", line 932, in xx-project-registry.txt [23:09] Failed example: [23:09] print milestone['date_targeted'] [23:09] Differences (ndiff with -expected +actual): [23:09] - 2005-06-06T00:00:00 [23:09] + 2005-06-06 [23:10] StevenK: wgrant: you guys watch CI like hawks - seen anything like that recently ? [23:11] lifeless: I can't recall anything [23:11] r12561 on Jenkins had no failures. [23:12] lifeless: I've never seen that before. [23:12] That field was changed a few months ago. [23:12] for milestone in firefox.milestones: [23:12] print '%-7s %s' % (milestone.name, milestone.dateexpected) [23:12] Differences (ndiff with -expected +actual): [23:12] - 1.0 2056-10-16 18:31:44.293448 [23:12] + 1.0 2056-10-16 [23:12] 1.0-rc1 2018-10-01 [23:12] Maybe lazr.restful has changed? [23:13] the changes to it haven't landed recently, and there weren't any changes like that... [23:13] lifeless: Where are you seeing this failure? [23:14] hi sinzui, quick JS test question? [23:14] I hope I know the answer [23:15] wgrant: my storm branch [23:15] wgrant: my with branch, I mean [23:15] Maybe Storm has started returning proper dates... [23:16] oh that would be just typical [23:16] 386. Merged datetime-in-datevariable [23:16] Last rev on lp:storm [23:16] yeah [23:17] I'll generate a storm tarball without it [23:17] Please also push up a branch with it backed out... [23:17] yes [23:17] thats what I'm doing [23:17] Great. [23:18] after I confirm it, of course [23:20] I've also got this weird thing with subscription tests [23:20] one less query than expected [23:20] Hah [23:21] Reduce the number of queries issued when retrieving an object with [23:21] Store.get() for which we have an existing invalidated Python object [23:21] available. [23:21] And that's a problem? [23:21] Oh, that is awesome. [23:21] Merge it merge it merge it. [23:21] StevenK: it is when the tests are written with an exact match [23:21] It certainly got wgrant excited [23:21] It's going to make query tests not suck. [23:22] yeah [23:25] lifeless: http://pastebin.ubuntu.com/578091/ [23:27] with TempDir as tmp_dir: [23:27] should be [23:27] with TempDir() as tmp_dir: [23:27] and [23:28] + tmp_dir, 'extracted')], [23:28] should be [23:28] + tmp_dir.path, 'extracted')], [23:28] ditto on its other uses [23:29] StevenK: the fixture isn't a path itself, its an object with the path on .path [23:29] Right [23:29] lifeless: Then http://pastebin.ubuntu.com/578092/ should be good [23:30] looks good [23:30] tests will tell you [23:30] Sure, I just wanted to hear your thoughts [23:31] sure :) just saying my built in interpreter is an imperfect oracle :) [23:31] as for my branch [23:31] down to just a checkwatches fail [23:32] wgrant: [23:32] - ...SELECT 1 FROM BugTracker WHERE BugTracker.id = ... [23:32] - ...Transaction completed, status: Active... [23:32] * StevenK waits for the car alarm to SHUT UP [23:33] wgrant: i don't see that subselect [23:33] and the last line of the timeline is [23:33] + 00016-00016@SQL-nostore Transaction completed, status: Committed [23:36] RARGH, need to run make schema before tests, HULK SMASH [23:39] wgrant: for future reference https://code.launchpad.net/~lifeless/storm/with-without-datetime [23:41] wgrant: lp:~lifeless/launchpad/bug-731679 is all go except this checkwatches change now. [23:43] wgrant: I'm nagging you cause the test looks like one you did :) [23:47] lifeless: Back, sorry. [23:47] lifeless: Do you have a full paste of that error? [23:47] can do [23:48] I think just dropping the SELECT 1 statement is probably best, but I'll check. [23:48] http://pastebin.com/MV3yQfrt [23:48] StevenK: Does loganberry have a memcache set up? [23:49] It might not. [23:49] Check the configs. [23:50] lifeless: Replace the "...SELECT 1 [...]" line with "...SELECT BugTracker...", I guess. That test will hopefully die next week, but we might as well keep it mildly useful until then. [23:50] what happened to the SELECT 1 [23:50] The Storm revision eliminates that. [23:51] righto [23:51] On an invalidated object it used to do a SELECT 1 to check its existence, then select its data when it was used. [23:51] Now it just grabs the data in the first query. [23:52] On a related matter, what is your opinion on LessThan vs Equals for query test? [23:52] +s [23:53] I think Equals is probably better, as it ensures we are never regressing. [23:53] depends on the test [23:53] so [23:54] it would be sad to have to change 5K tests when we fix traversal to be better [23:55] True. [23:57] ok, pqmed [23:57] wgrant: I think things that are really isolated and specific should be specific [23:57] Right. [23:57] wgrant: things that are not really isolated and depend on the behaviour of many subcomponets should be less sensitive [23:57] wgrant: while still providing a solid backstop [23:58] wgrant: Can you recall if there a bug for older SPRs not having .changelog? [23:58] StevenK: I don't think so, but I don't know for sure. [23:58] Meh, filing one