/srv/irclogs.ubuntu.com/2010/08/17/#launchpad-dev.txt

mbarnettbah, gdb not installed00:02
wgrantrofl00:03
mwhudsonwgrant: probably, but i suspect that it will be very boring, just twisted sitting in an select loop with no active sockets00:03
lifelessa clean shutdown *should* tell us about un-gc'd deferreds00:04
lifelessalso00:04
lifelesstriggering a gc from gdb should do that00:04
wgrantmwhudson: There should be lots of them, though...00:05
mwhudsonyeah00:05
lifelesslsof output too then00:05
wgrantAha.00:06
wgrantGot it.00:06
wgrantmbarnett: Can you check if there's a running PPA builder reset trigger?00:06
wgrantI'm not sure what it's called.00:06
wgrantvm_resume_command is the config key.00:07
poolielifeless: flacoste suggested i should also land the flags ui into lp devel00:07
pooliesince at the moment it seems to now be only in db-devel00:07
pooliebut its precondition db changes should now be in devel00:07
lifelesspoolie: yes, definitely00:07
mbarnettwgrant: i don't see one off hand00:08
wgrantHm, now it won't respond to SIGTERM.00:08
* wgrant is trying a few things locally.00:08
wgrantmbarnett: There really should be one running.00:10
lifelesswgrant: a hung one ?00:10
wgrantlifeless: Ideally.00:10
wgrantIt looks like it's an ssh process.00:10
wgrant./ftpmaster/launchpad-lazr.conf:vm_resume_command: ssh -i /home/lp_buildd/.ssh/ppa-reset-builder ppa@%(vm_host)s00:11
wgrantIt will hang if that does, but recovers if it dies, AFAICT.00:11
mbarnetthere is everything running as the lp_buildd user:  http://pastebin.ubuntu.com/479127/00:12
wgrantMmm. Zombies.00:13
wgrantSo, it will hang until the resume trigger exits after a communication failure, bypassing even the normal timeout. But I don't see why it would continue to hang if there's no process running.00:14
mbarnetthah, i think lamont came along and kicked the hung process.00:15
wgrantAh, yes, everything's running again.00:16
mbarnettyeah, now we are going00:16
wgrantSo that was probably it.00:16
mbarnettlamont> or a child ssh process killed.  /me did that, seems happier now00:17
wgrantPhew.00:17
thumperlifeless: ping00:18
mbarnettokay, i see the ssh process he killed00:18
mbarnettgood to know that will get things moving agian00:18
thumperlifeless: I've got the bzr failure down to two test files00:19
lifelessCOOL00:19
lifelessbah00:19
thumperlifeless: is it worthwhile trying to eliminate individual tests?00:19
lifelessCool00:19
lifelessthumper: it may well be00:19
thumperlifeless: ok00:19
mbarnettwell, all builders are now actually doing stuff, so that is good00:23
wgrantmbarnett: Bug #61895500:27
wgrantBug #618955?00:27
wgrant:(00:27
mbarnettthanks for filing that.  I have subscribed us losas00:29
thumperlifeless: gc.collect likely to screw things up?00:31
lifelessthumper: I wouldn't expect it too00:31
thumperlp.translations.scripts.tests.test_message_sharing_migration.TestSharingMigrationPerformance00:32
thumperlifeless: that test makes the other one fail00:32
thumperlifeless: I'm just seeing if it is either test in that test case, or a specific one00:32
lifelessprogress!00:32
thumperlifeless: either of the two tests in that testcase cause the failure00:34
thumperlifeless: calling TestSharingMigrationPerformance._listLoadedObjects triggers the error00:51
thumperwhich uses gc.get_objects00:51
thumperI'm guessing that is it00:52
lifelesszomg00:52
lifelessyes, a gc held reference to a lazy object is equivant to a bound alias00:52
lifelessdon't-do-that00:52
lifeless:)00:52
thumperadvice needed on how to fix this test00:53
lifelesshmm00:54
lifelesseasiest not to call that damn thing at all00:54
lifelessits a high cost function00:55
lifelessperhaps installing a Storm Tracer00:55
lifelessits also a poor surrogate for what I think they want to test00:56
thumperI don't really understand their test00:56
lifelessso00:56
lifelessI think what they want to say is00:56
lifeless'if there are 15 pomsgids in memory before you call this function, there are only those 15 in memory afterwards'00:57
lifelessand the implication is that no pomsgids were loaded in the interim00:57
lifelessthis only works if there is a non-weak cache installed (we have one) in the storm layer, and nothing resets it or otherwise invalidates it.00:57
lifelesstry this00:58
lifelessdo a gc.collect() at the top of _listLoadedObjects00:58
lifelessthis doesn't invalidate the test because:00:58
lifeless - gc collect can happen anytime00:58
lifelessthis should fix the problem because:00:58
lifeless - we don't have any references to the scope replacer00:59
thumpertrying00:59
lifelessbut also please file a tech debt bug - this is a very roundabout way to say that something didn't happen - its a surrogate for something we can measure directly with only a little more effort00:59
thumpernope00:59
thumperstill fails00:59
lifelessdarn00:59
lifelessoh01:00
lifelessby bad01:00
thumperwe have code for storm tracers01:00
lifelessso that isn't working because01:00
thumperif it will only take a little more to fix, I could do that now01:00
lifelessthere is a module in bzrlib that hasn't triggered its lazy load.01:00
lifelessand we go past it twice, or something01:01
lifelessthough I am a little surprised it didn't work. Does it blow up in that function, or in your test code?01:01
thumperwe have StormStatementRecorder01:02
thumperlifeless: it blows up in the following test01:02
lifelessI would cjec that there are no Selects that return a <type>01:02
lifeless*check*01:02
lifelessthat seems much more targeted, to me.01:02
thumperhmm...01:02
thumperthe statement recorder can't check that01:02
thumperit records the raw sql01:03
lifelessSELECT.*POSMSGSETID\..*FROM -> boom01:03
thumperI'm recording the statements now, with a pdb set01:05
thumperto look01:05
lifelesswell01:05
lifelesswe don't expect to see that, because the test 'passes' :)01:05
lifelessUrsinha: timeout bugs get high + triaged :)01:07
lifelesszero-oops-policy01:07
lifelessjust fyi01:07
thumperyou don't see POSMSGSETID.* in the SQL01:07
lifelessgood01:07
thumperit gets expanded to all columns01:07
thumperstorm expands the *01:07
lifelessright01:07
lifelessand it qualifies them01:07
lifelessposmsgsetid.foo01:07
thumperah, I see what you mean now01:07
lifelessis what you'd see when pomsgsetid's are looked up01:08
Ursinhalifeless, cool, should I triage them as such when filing them?01:08
lifelessUrsinha: where there is as clear a policy as the zero-oops-one, I absolutely think so01:08
Ursinhacool01:08
lifelessUrsinha: where its going to be team-determined, then no - or at least, I don't in those cases except01:08
Ursinhalifeless, what's the difference01:09
lifelesswhere I am putting my TA hat on and asking as a favour-to-the-TA to do something01:09
lifelessUrsinha: well a non-oops non-timeout bug doesn't have a predetermined importance01:09
thumperis any in python 2.5?01:09
Ursinhalifeless, ah, I was only talking about timeout bugs :)01:09
lifelessUrsinha: :)01:10
lifelessUrsinha: I was giving a general answer :)01:10
lifelesssorry for de confusion01:10
Ursinhalifeless, no problem, thanks for the information :)01:10
thumperlifeless: can you check out this? http://pastebin.ubuntu.com/479160/01:29
thumperlifeless: do you think it is testing enough of the same thing?01:29
lifeless+101:29
lifelessI certainly do01:30
lifelessshould be faster too01:30
thumperlifeless: I'll break it into a separate branch01:30
thumperlifeless: and no bad interaction01:32
mwhudsonlifeless: about performance tuesday, is the looking up of branch subscriptions because of the checking for launchpad.View ?01:33
mwhudsonlifeless: if so, have you seen how the branchlistings avoid this particular death by sql?01:33
* thumper files a bug on rosetta01:35
lifelessmwhudson: I don't know01:36
lifelessmwhudson: I'm trying to get a test that is precisely the same01:36
mwhudsonok01:36
lifelessmwhudson: for now, I have one that shows 'one more query as you add a private bug'01:37
lifelesslet me paste01:37
lifelessso, I can fix one cause of too many queries01:38
lifelessbut I know I'll be missing the particular one :(01:38
lifelesshttp://pastebin.com/wPNqcuzn is my test01:38
lifelessmwhudson: AIUI you retrieve too much and then do a custom security check01:39
mwhudsonlifeless: 'you'?01:39
lifeless'branhc listings'01:39
mwhudsonthat's the launchpad default usually, it's not what branch listings do01:39
lifelesshttps://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1689EB317001:40
lifelessis the oops I'm trying to duplicate01:40
mwhudsonbranch listings do a query to find the branches the user can see and then pre-populate the permission cache01:40
lifeless3286439196420launchpad-main-slaveSELECT BugSubscription.bug, BugSubscription.date_created ...01:40
lifelessblah01:40
mwhudsonso the security adapter doesn't do any queries01:40
lifeless328 6439 19 6420 launchpad-main-slaveSELECT BugSubscription.bug, BugSubscription.date_created, BugSubscription.id,01:40
lifelessis what I'm trying to make my test trigger01:40
lifelessbut I'm having trouble making it do it01:40
lifelesspossibly due to caching :)01:41
mwhudsonlifeless: also, another trick01:41
mwhudsonlifeless: do you know about LP_DEBUG_SQL_EXTRA ?01:41
lifelessdo01:41
lifelesswhat doth that do?01:41
mwhudsonmake run LP_DEBUG_SQL=101:41
thumpergives a metric shit-load of output01:41
mwhudsonprints all queries as the output01:41
thumperextra gives a stacktrace too01:41
mwhudsonLP_DEBUG_SQL_EXTRA gives tracebacks as well as the sql01:41
lifelessok01:42
thumpervery very handy01:42
mwhudsonas thumper says,. it's mounds of output01:42
thumperin optimisation work01:42
mwhudsonbut can be handy to figure out where that query is coming from01:42
thumperI had 70k lines of output for the branch index page01:42
lifelessI should capture that for these performance tests01:42
lifelesstoss it into kcachegrind01:42
thumperlifeless: https://code.edge.launchpad.net/~thumper/launchpad/fix-TestSharingMigrationPerformance/+merge/3282801:43
thumperlifeless: if you make the mark on that, I'll land the fix01:43
thumperlifeless: and that was pretty much the only thing blocking bzr 2.2 landing01:43
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
lifelessmwhudson: so the problem with reproducing the query is that I don't know how to do it *at all*, not just in-a-test, other than 'visit this page that oopses' :)01:49
mwhudsonlifeless: challenging01:50
lifelesseven sprinking store.invalidate()'s doesn't trigger it01:53
lifelessah well, so I'll fix the problem I *have* demonstrated.01:53
lifelessit would be nice to be able to say01:56
lifeless'now make run should give me this test environment'01:56
lifelessor something01:56
mwhudsonbarry had some terrible hacks for that iirc01:57
lifelesssync_to_demo()01:58
lifeless ?01:58
lifelessdo windmill tests hate everyone, or just me ?02:23
StevenKlifeless: It's everyone, and life itself02:26
lifelessdoes this mean anything to anyone ?02:31
lifeless======================================================================02:31
lifelessERROR: lp.registry.windmill.tests.test_person_picker.TesPersonPickerWidget.test_person_picker_widget02:31
lifeless----------------------------------------------------------------------02:31
lifeless_StringException: Text attachment: garbage02:31
lifeless------------02:31
lifeless[<Thread(Thread-657, started daemon 47266133427984)>]02:31
lifeless------------02:31
wgrantI see that most times I run that.02:33
wgrantSo I just sort of ignore it.02:33
wgrantWhile giving it a look of extreme disapproval.02:33
lifelessblocking landing is asad02:33
wgrantOh, it did that in EC2?02:34
lifelessyes02:34
wgrant:/02:34
lifelessyes02:34
lifeless><02:37
lifelessmy registry /participants fix works here02:37
lifelessbut there is an extra query on prod02:37
lifelesssorry02:37
lifelessec202:37
mwhudsonlifeless: for reasons i have (shamefully) never really dug into, i find that when i have a genuine failure in ec2, i get a windmill failure too02:38
mwhudsonwhen i fix the genuine failure, the branch lands ok02:38
mwhudsonmaybe this is just luck or maybe something else02:39
lifelesssigh02:39
lifelessa new SELECT Person.account, Person.creation_comment, Person.creation_rationale, Person.datecreated, Person.defaultmembershipperiod, Person.defaultrenewalperiod, Person.displayname, Person.hide_email_addresses, Person.homepage_content, Person.icon, Person.logo, Person.mailing_list_auto_subscribe_policy, Person.merged, Person.mugshot, Person.name, Person.personal_standing, Person.personal_standing_reason, Person.registrant, Person02:39
lifelessmwhudson: interesting02:39
lifelessI've sent cachedproperty off on its own with the registry branch fix02:40
lifelesswhile I try to figure out wtf I see an extra query even with devel merged in02:40
lifelessmaybe something landed in the last few hours02:40
lifelessoh wow02:57
lifelesswe trigger a DB lookup on every person lookup via this code path02:57
lifelessshudder02:57
lifelessyay storm bugs03:08
lifelessobject cache coherency, can you imagine it?03:08
mwhudsonit sounds fairly unlikely :-)03:12
lifelesshar har har03:15
lifelessthats twice in 1 month03:15
lifelesshttps://bugs.edge.launchpad.net/storm/+bug/61901703:15
lifelessI'm not trusting the layer much now, as a result03:15
lifelessI'd rather storm didn't have an object cache.03:16
lifelessit would make it much simpler03:16
lifelessand more focused03:16
lifelessmwhudson: or perhaps you were being sardonic ?03:19
mwhudsonlifeless: a touch, yes03:20
lifelessha!03:21
thumperpoolie: ping03:34
thumpermwhudson: know the simplest solution to this? http://pastebin.ubuntu.com/479196/03:35
mwhudsonthumper: :(03:36
thumpermwhudson: could trim the input on _show_lline03:36
thumpermwhudson: but we'd still have the |03:36
mwhudsonthumper: let me try to remember what the test is actually testing03:37
thumpermwhudson: most of the TestLoggingUIFactory tests fail03:37
thumperwith similar errors03:37
thumperI'm guessing the base class was updated in 2.203:37
mwhudsonthumper: yeah, looks like progress reporting changes in bzr03:38
mwhudsonthumper: possibly needs a code fix, as that's going to make the code import logs look rather lame i suspect03:38
thumper:-|03:38
thumperI wonder if the _render_bar was renamed03:40
mwhudsoni'm just updating my bzr branch03:40
mwhudson(i think it's fairly ancient)03:40
* thumper runs away again03:41
mwhudsonthumper: got a branch i can run tests in?03:44
mwhudsonI wonder if overriding _avail_width to always return None in LoggingTextProgressView will help03:45
lifelesspoolie:03:45
lifeless^03:45
mwhudsonalternatively def _render_line(self): return self._render_bar() will probably do it03:49
lifelessmwhudson: so03:55
lifeless  File "/home/robertc/launchpad/lp-branches/working/lib/canonical/launchpad/webapp/authorization.py", line 207, in checkPermission03:55
lifeless    principal.account)03:55
lifelessis that the code path you're talking about w.r.t. checking permissions doing db access ?03:56
mwhudsonprobably03:56
mwhudsonoh03:56
mwhudsonis the next call down in canonical.launchpad.security?03:56
mwhudsonlifeless: ^03:57
lifelesscheckAccountAuthenticated03:58
lifelessyes03:58
mwhudsonthen yes03:58
lifelessso the *menu* is generating this03:58
lifeless:/03:58
mwhudsonenabled_with_permission ?03:58
mwhudsonwhat's the context object being checked?03:58
lifelessdunno03:59
lifelessbut probably milestone/product03:59
mwhudsonmm03:59
mwhudsonlifeless: can you pastebin the whole traceback?04:00
lifelesssure04:00
lifelesshttp://pastebin.com/EkXrtUK604:01
thumpermwhudson: yeah, I do04:03
mwhudsonlifeless: wee, it's checking if the user can review the page04:04
mwhudsoner04:04
mwhudsonlifeless: wee, it's checking if the user can review the product04:04
thumpermwhudson: lp:~thumper/launchpad/new-bzr04:04
mwhudsonReviewByRegistryExpertsOrAdmins04:04
lifelessmwhudson: how did you figure that out ?04:04
thumperalthough I'm about to run out yet again04:04
mwhudsonlifeless: #04:05
mwhudson  File "/home/robertc/launchpad/lp-branches/working/lib/canonical/launchpad/security.py", line 232, in checkAuthenticated04:05
mwhudson#04:05
mwhudson    return user.in_admin or user.in_registry_experts04:05
mwhudson-> look at line 232 of security.py04:05
mwhudsonhi tech haxorring!04:05
lifelessoh04:05
lifelessI figured that would be generic. serves me right04:05
mwhudsonit's crummy, but it's a once per page check04:05
thumpermwhudson: found it04:06
mwhudsonthumper: oh?04:06
thumpermwhudson: we set _render_bar to return ''04:06
thumpermwhudson: the base _render_line method does bar_string = self._render_bar() first04:06
thumperthen04:06
thumperif (task_part or trans) and not bar_string:04:07
thumper            bar_string = '| '04:07
thumperfurther down04:07
lifelessmwhudson: then why do I see two of them ? :)04:07
mwhudsonaah04:07
thumper:(04:07
mwhudsonlifeless: both sides of the or execute a query i guess04:07
* lifeless facepalms04:07
mwhudsonlifeless: i guess i should have said "fixed number of queries per page"04:07
mwhudsonlifeless: ORMs r grate04:07
mwhudsonthumper: i guess overriding _render_line() is one fix04:08
thumpermwhudson: yeah04:09
thumperI'll look at it again when I get back04:10
lifelessmwhudson: want to have a rotation in 6 months or so, to work on a separated mapper approach ? :)04:11
mwhudsonlifeless: heh04:12
mwhudsonlifeless: we should rewrite launchpad in haskell and use meta-programming to compute the set of needed queries before we actually start executing code for the page!!04:13
lifelessmwhudson: funny you should say that04:13
lifelesswe do need something along those lines (the needed queries, not haskell)04:14
mwhudsonlifeless: given the pypy background, perhaps not so much04:14
lifelessmwhudson: :)04:14
mwhudsonit some sense, it would be fairly easy to do the page rendering twice, once to collect the queries and then again for real04:16
mwhudsonyou could even do the first bit ahead of time04:16
mwhudsonthe fun part is conditionals, of course04:16
ajmitchfsvo fun?04:17
mwhudsonyou _could_ abstractly interpret the code repeatedly, taking a different path and giving a different answer for each branch04:18
mwhudsonpypy does exactly this04:18
lifelesssee04:19
lifelesswhile this sounds extremely promising04:19
lifelessI'm actually ok with just putting a cap on the queries04:19
mwhudson:)04:19
lifelessand failing tests if the cap is exceeded04:19
pooliehi thumper, mwhudson04:30
pooliemwhudson: all ok now?04:32
lifelesshow can I tell if an Interface is exported via APIS ?04:33
james_wif it has export* decorators on it04:34
lifelessok04:35
lifelessso BugTaskSearchParams isn't exported04:35
lifeless\o/ I can mess with it04:35
mwhudsonpoolie: i think so, although it's really thumper who's worrying about this04:43
lifelesscan anyone explain what a 'non conjoined task' is ?05:00
wgrantlifeless: A task that isn't conjoined. Do you know what a conjoined task is?05:05
lifelessno05:09
StevenKlifeless: When you're done with wgrant, do you have time to mumble?05:09
lifelesssure05:09
lifelessI think I've *finally* found where this private check is kicking in05:09
lifelessStevenK: but skype please05:10
lifelessit works05:10
wgrantlifeless: If you have a task for a project and its development series, the project task is hidden, and becomes a conjoined slave to the development series task.05:10
wgrant(that's then you see "Status tracked in SomeSeries")05:10
lifelessok05:10
lifelessStevenK: rbtcollins05:10
wgrantSetting the status on the series task sets it on the project task too.05:10
* StevenK grumbles how lifeless hates freedom, and hides05:10
lifelessStevenK: do you have skype?05:11
StevenKlifeless: Yes05:12
lifelessand do you want to talk05:12
StevenKlifeless: Yes -- and I cope with mumble's lag every stand-up, so ... :-)05:12
StevenKlifeless: So I'm only teasing05:12
lifelessarch_tag in [%s]05:22
lifelesswhere the %s is05:22
lifelesssqlvalues(tags)05:22
lifelessor something05:22
lifelessyou need ,05:22
lifeless's05:23
lifelessso I guess ",".join(sqlvalues(*arch_tags))05:23
StevenK            include = "architecturetag IN (%s)" % sqlvalues(05:23
StevenK                ','.join(self.arches))05:23
lifelessonly05:23
lifelessinclude = "AND whatyou haveabove05:23
wgrantsqlvalues(list(self.arches))?05:24
lifelesswgrant: I guess05:25
lifelesswgrant: but why the list ?05:25
StevenKwgrant: But I can't just blat that into a string with %s?05:25
poolielifeless: so i am thinking of just using a textarea for editing the rules05:25
lifelessits a tuple already05:25
poolieat least to start with05:25
lifelesspoolie: +105:25
pooliesince it's a very nerd-oriented thing05:25
wgrantlifeless: Ah, not already a resultset?05:26
wgrants/already/just/05:26
StevenKwgrant: Damn it, it's my code. :-) It's a tuple05:26
thumperpoolie: hi05:26
wgrantJust sqlvalues(self.arches) should work, then.05:26
lifelesswgrant: does that return a iterable of strings ?05:26
pooliehi thumper05:26
thumperpoolie: I was discussing the issue we have with our code import bzr logger05:26
thumperpoolie: and that things changed05:26
thumperpoolie: http://pastebin.ubuntu.com/479196/05:26
thumperpoolie: is an example of the failure05:27
thumperpoolie: just working out what to change in our logger05:27
pooliehuh05:27
thumperwas thinking overriding _render_line05:27
pooliei would guess this is actually a uifactory problem05:27
poolieand that these tests want to test TestTextUI05:27
pooliebut they don't explicitly set it, they just assume it's the default05:27
pooliewhich it may not be in your context05:27
wgrant>>> 'foo IN %s' % sqlvalues([1, 2, 3])05:28
wgrant'foo IN (1, 2, 3)'05:28
wgrantlifeless, StevenK: ^^05:28
thumperpoolie: I'm actually guessing part of the issue is line 392 of bzrlib.ui.text.py05:28
thumperpoolie: as our logger has _render_bar defined to return ''05:29
thumperpoolie: FYI, this is the lp.codehosting.codeimport.uifactory.LoggingTextProgressView05:29
poolieoh this is your test, not mine05:30
thumperpoolie: yes05:30
StevenKLINE 5:             FROM DistroArchSeries WHERE distroseries = 3 ''05:30
pooliethumper: i guess what's broken it is that _render_line now does the whitespace filling, not repaint05:32
poolieor something like that05:32
thumperactually, I'm thinking line 391 should be:  if (task_part and trans) and not bar_string:05:32
thumperrather than  if (task_part or trans) and not bar_string:05:32
thumperyou only need the bar if there are both task_part and trans to separate them05:33
thumperperhaps?05:33
thumperoh, and the whitespace filling05:33
pooliethumper: you seem to have two problems, one being the whitespace padding and the other is the bar05:33
thumperyep05:33
thumperpoolie: I'm thinking it is easier just to override _render_line05:33
pooliei agree about the 'and' in that line05:34
thumperok05:34
thumperI could just change the _avail_width to return None05:34
thumperbut we'd still have the bar issue05:35
pooliebut if you want complete control you should probably just override _render_line05:35
poolieto me that is most consistent with the intention05:35
* thumper nods05:35
thumperack05:35
lifelessstorm/database.py +23605:38
thumperlifeless: whatcha doin?05:38
lifelesstalking about doing INSERT INTO in storm05:40
lifelesscompile(expr, State()05:44
lifeless)05:45
lifeless-> sql05:45
lifelessexpr - Select(table, And(x, y))05:45
lifelessstorm.expr.compile_insert05:46
lifelessStevenK: so I'm debugging https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1689EB317006:00
lifelessStevenK: do you have lpadmin account access in the dogfood environment ?06:01
lifeless(I need to be put in a group there, to trigger this)06:01
lifelessif you don't, don't worry, I'll get mthaddon later on staging.06:01
StevenKlifeless: Oh, you need a duck on dogfood?06:02
lifelessI need to be in the landscape team06:03
lifelessI am on prod, now06:03
lifelesshow that is arranged may need a duck06:03
wgrantUm, dogfood is really not a good place to test timeouts.06:03
lifelesswgrant: I don't want to test the timeout06:03
StevenKlifeless: And yes, I can ... force you into landscape06:04
lifelesswgrant: I want to get a definitive backtrace of the cause of the query06:04
lifelessStevenK: hold off for a bit06:04
lifelesslike I said just before our call, I think I'm onto the cause.06:04
lifelessbug.py 1561 looks like a clear culprit06:07
lifelessthough I still need to figure out WTF I can't trigger this in a test06:09
lifelesspossibly a non-proxied bug object ? surely not.06:09
lifelessI'm using userBrowser06:09
poolielifeless: you should try 'ssh launchpad-vm ./bin/test --subunit|tribunal-subunit -'06:12
lifelesspoolie: :)06:15
lifelessok, so userBrowser goes through publication06:16
lifelesswtf06:16
lifelesswtf06:16
lifelesswtf06:16
wgrantWhy wouldn't it?06:16
lifelessits good that it does06:17
lifelesswtf am I not seeing this security code popping up I mean06:17
lifeless\o/ cachedproperty branch passed ec206:22
pooliecan someone point me to a good example of non-doctest pagetesting?06:26
lifelessI pasted an ok example in last weeks perf tuesday thread06:28
poolieah test_archive_packages06:30
poolieok06:30
lifelessthey seem to generally live in browser/tests/*06:30
poolieyep i found some more06:31
poolieobvious really06:31
pooliethe ones that do exist seems pretty clean06:31
lifelessman, I hate debugging by printf06:43
pooliehas anyone ever tried running pgsql on a tmpfs, or with libeatmydata?06:45
lifelessyes06:46
lifelessnot a huge difference06:46
mwhudsonit helps if you have lots of ram and a slow hd06:46
pooliewhere was the build pydoctor stuff?06:52
mwhudsonpoolie: http://people.canonical.com/~mwh/canonicalapi/06:52
mwhudsonbut there's a good chance apidoc.launchpad.dev is more useful these days06:53
wgrantStevenK: Shouldn't your packageset thing be copying memberships too?07:07
wgrantAt the moment it's just copying empty sets.07:07
StevenKEmpty sets?07:08
StevenKwgrant: I'm about to head out for an hour or so, can you dump what you think I'm missing and how the tests could be extended in a PM?07:09
wgrantStevenK: I suspect that the new package sets will have nothing in them.07:09
StevenKThat can be tested trivially07:09
wgrantIt can be.07:10
wgrantIt needs to copy packageset<->packageset and packageset<->package relationships.07:10
lifeless\o/ reproduced the query in the test07:11
lifelessthat makes me so much happier07:17
lifelessI thought I was going nuts07:17
poolieyay, a pagetest passes07:17
lifeless\o/07:19
poolieok, might take a berak07:21
poolietests for merge of the existing flags code into devel are still running07:21
lifelesstime for a break for me too, that was a marathon head beating session to find out that userBrowser 'works' with the wrong password07:22
poolieoh, nice07:25
pooliebtw if i want to have /+features07:26
poolieis it reasonable to say that's a view of ILaunchpadRoot?07:26
pooliethat doesn't seem quite right but it does seem stadnard07:26
lifelessyes08:01
=== almaisan-away is now known as al-maisan
StevenKwgrant: Still here?08:17
wgrantStevenK: Indeed.08:20
StevenKwgrant: Just looking at the branch now08:24
lifelesswgrant: btw, registry branch has landed08:29
lifelesswgrant: your worst gears may come true next time edge updates08:29
StevenKWorst gears?08:31
StevenKFirst, second, third, fourth or fifth?08:31
StevenKDamn it, wgrant is right08:32
lifelessaboot?08:32
StevenKAlpha?08:32
wgrantYay.08:33
lifelessStevenK: about08:33
StevenKa = []08:33
StevenKb = [u'pmount']08:33
StevenKwgrant: ^08:33
lifelesswhat causes a security proxy to be wrapped around something08:44
lifelesssecuredutility... ah layers08:44
lifeless...nope08:45
lifelessdatabasefunctionallayer should have sec proxies around utilities, no?08:46
wgrantIt should, yes.08:47
lifelessis there an idiom for checking that?08:47
lifelessand it does08:48
lifelesshmm08:48
adeuringgood morning08:51
StevenKwgrant: So, which table includes the package names for packagesets?08:58
lifelessguess how many queries this takes:09:07
lifeless(in the assert call)09:07
lifelesstarget = self.makeBugTarget()09:07
lifelessperson = self.login()09:07
lifelessself.factory.makeBug(product=target, private=True, owner=person)09:07
lifelessself.factory.makeBug(product=target, private=True, owner=person)09:07
lifelesslogin_person(person)09:07
lifelesstasks =target.searchTasks(BugTaskSearchParams(person, omit_dupes=True,09:08
lifeless            orderby=['status', '-importance', 'id']))09:08
lifelessself.assertStatementCount(0, lambda:[task.getConjoinedMaster for task09:08
lifeless            in tasks])09:08
lifelessno takers?09:09
StevenKlifeless: 100?09:09
lifeless509:09
lifelesseach security check is 2 queries09:11
lifelesssanity check: if we'v edone a search limited by a users view, saving that user in the results as someone we know can see them is sane?09:12
mrevellYo09:16
bigjoolshey wgrant09:23
lifelessbigjools: btw, b-m had a hiccup midday, wgrant has the details09:24
bigjoolslifeless: I read the bug09:24
bigjoolslifeless: thankfully it's nothing to do with the recent changes09:25
lifelessphew09:31
lifelessok, down to 2 queries09:43
lifelesslets see if I can go for 109:43
lifeless\o/09:57
lifelessmilestone pages should be happier soon :)09:57
bigjoolswoot10:01
lifelessit may also help a bunch of other private bug related perf issues10:02
lifelessdue to cachedproperty.10:02
lifelesswhats the preferred way to spell 'adapt this'10:07
lifelesse.g.10:07
lifelessif I have a person_or_personroles10:07
lifelessis it10:07
lifelessperson = IPerson(person_or_personroles) ?10:07
thumperyes10:08
lifelesshmm, I think I'll add 'id' to IPersonRoles10:11
lifelessjml: like you, I can't write code without tests10:13
lifelessjml: but its ok, its a good place to be10:13
lifelessnow I have a weird situation10:13
lifelessthe second page load with more bugs takes less queries :)10:14
wgrantStevenK: Sorry, was travelling.10:14
wgrantStevenK: PackageSetInclusion and PackageSetSource, IIRC.10:14
wgrantThere's also PackageSetGroup, but I don't know if that's used for anything.10:14
wgrantbigjools: It isn't?10:14
wgrantbigjools: It looks like it's meant to be asynchronous...10:14
wgrantAnd given that the whole Deferred management thing changed last week...10:15
bigjoolswgrant: nothing changed in what is Deferred10:16
bigjoolsit just interleaves them more10:16
thumper\o/10:30
thumperbzr 2.2 upgrade in the pipe10:30
lifeless\o/10:31
lifeless lp.registry.browser.tests.test_milestone.TestMilestoneIndex.test_more_private_bugs_query_count_is_constant10:31
lifeless  Ran 1 tests with 0 failures and 0 errors in 2.864 seconds.10:31
lifelessignoring the pathetic sped10:32
lifeless-it works- muahahhaaha10:32
jmllifeless, \o/10:32
lifelesswin 6810:33
lifelessso10:33
lifelessI'm going to push10:33
lifelesspropose for merge10:33
lifelessand foff to relax10:33
lifeless@930pm10:33
lifelessoh yay, apt-get update ruined ca-cert10:39
* bigjools switches conversation to -dev10:46
bigjoolswgrant: I plan  on converting the rest of the sync stuff to async at some point anyway10:46
wgrantYeah, it needs it.10:46
jmlgood plan :)10:46
wgrantAlthough the next significant step is to remove the p-u invocations.10:47
* bigjools chuckles at jml10:47
wgrantThat should just about get it to an acceptable speed.10:47
bigjoolswgrant: jelmer has a branch that does that, it's on dogfood :)10:47
wgrantDoes it dump it into a directory with a daemon watching it?10:47
bigjoolscronjob for now, but yeah10:47
wgrantAh.10:47
wgrantHow does that interact with the build state? It sits FULLYBUILT without binaries for up to a minute?10:48
bigjoolssomething like that yeah, but it's still quicker than what we have right now10:48
wgrantProbably.10:49
bigjoolsdefinitely :)10:56
bigjoolswgrant: any comments on https://bugs.edge.launchpad.net/soyuz/+bug/61908810:57
wgrantbigjools: NMAF does it. I don't know why a-f wouldn't.11:01
bigjoolsit's a-f .... all bets are off11:01
wgrantTrue.11:01
wgrantEven Debian's trying to kill it now.11:02
lifelessok, have a good performance tuesday11:11
lifelessbigjools: I'll pull the performance tuesday topic-element off tomorrow morning - I'd like it to be up there for a full 24 if thats ok:)11:11
bigjoolslifeless: yeah, did I remove it last week?11:12
lifelessbigjools: yeah :)11:13
bigjoolslifeless: oops. sorry :)11:13
lifelessbigjools: de nada11:13
poolieis there an official way to make the right pqm command to land a branch i've already tested locally11:15
pooliei guess lp-land?11:15
bigjoolspoolie: I do it by hand11:15
bigjoolsold skool :)11:15
poolieecho blah|gpg|mail?11:15
bigjoolsyou need the pqm plugin for bzr11:15
bigjoolsthen I do "bzr pqm-submit -m ...."11:16
noodles775lp-land should work.11:16
bigjoolsyou can use your approach if you can remember the pqm commands I guess11:16
noodles775bigjools: you don't need to, lp-land gets them from the MP.11:17
bigjoolseven betterer, I've not used it11:17
poolieOAuth needs a "yeah, yeah" button11:17
noodles775heh11:17
jmlI have come up with the perfect solution for this ravenous hunger: Food!11:18
poolieyou can have a lamb, leek and mint stew11:18
poolieif you can get over here in time11:18
poolieurk11:19
poolie  File "/usr/lib/python2.6/dist-packages/lazr/restfulclient/resource.py", line 308, in __getattr__11:19
poolie    % (self.__class__.__name__, attr))11:19
poolieAttributeError: 'Entry' object has no attribute 'source_branch'11:19
pooliei know this indicates some internal error but i can't remember what11:19
lifelessit may mean Entry isn't an IMergeProposal11:21
pooliei've seen that happen when you call into lplib again after previously getting an exception11:21
lifelesspoolie: red dead redemption is kinda fun11:21
poolieyes it is11:21
pooliei guess a cache is corrupt11:21
jmlumm11:25
jmlpoolie, actually, it's because you are giving it a branch URL not a mp URL11:26
jmlI think11:26
lifelessthumper: btw11:26
lifelessthumper: CodeImportSchedulerApplication:CodeImportSchedulerAPI - https://devpad.canonical.com/~stub/ppr/lpnet/latest-daily-timeout-candidates.html - click on sort-by-total-queries11:26
lifelessthumper: thats doing a _lot_ of db work11:26
lifelessonly three per hit on avg, but boy - a huge number of hits. Or something like that11:27
lifelesswgrant: Distribution:+archivemirrors11:27
lifelesswgrant: if you're going to look at perf - that looks to be a classic death-by-sql11:28
lifeless94 hits11:28
lifeless69715 queries11:28
pooliehm i got a "failed to verify gpg signature"11:29
pooliei might not actually be allowed to submit?11:29
lifelesshah, thats possible11:29
lifelesslosa should be able to fix that fr you11:29
poolieok11:29
wgrantlifeless: Is that a typo?11:29
lifelesswgrant: is what a typo?11:30
wgrantlifeless: 6971511:30
lifelessno11:30
wgrantqueries.11:30
wgrantThat is insane.11:30
lifelessyes11:30
lifeless700 per hit11:30
lifelessand you wonder why its timing out :)11:30
poolielifeless: i'll ask tomorrow; could you send https://code.edge.launchpad.net/~mbp/launchpad/flags-webapp/+merge/32833 for me now to reduce latency?11:30
wgrantOh.11:30
lifelesswgrant: its still about 100 times too many queries11:30
pooliei may put up the edit ui tomorrow, depending11:30
wgrantlifeless: I wonder how much we can cut the base query count.11:31
lifelesspoolie: please specify a commit message11:31
lifelesspoolie: sounds great on the edit ui11:32
pooliedone11:32
lifelesswgrant: I think you could get it to 811:32
lifelesswgrant: 4 for oauth & other auth cruft, 3 for cookies and session11:32
lifeless1 for the content.11:32
jpdslifeless/wgrant: Not timing out here; you two should move to LDN.11:32
lifelessjpds: whttps://devpad.canonical.com/~stub/ppr/lpnet/latest-daily-timeout-candidates.html11:32
lifeless1% of hits are timing out11:33
lifeless40% are over 10 seconds long11:33
jpdsYeah; the freshness stuff needs fixing.11:33
lifelessjpds: its doing *an average* of 700 queries per page load :)11:35
lifelessjpds: thats very much 'needs fixing' :)11:35
lifelesspoolie: ok I think i've told it the magic nuts n bolts to make it do stuff11:43
lifelessgnight11:50
lifelesstag, somebody is it; make things better11:50
deryckMorning, all.12:01
jmlderyck, good morning12:01
stubDo people look at the old patch-???.sql files for examples, or can I just trash them when they are no longer needed? Its about 85 files.12:05
wgrantI use them as examples sometimes, but only because I'm lazy.12:07
wgrantFor everything else, there's VCS history.12:07
stubJust wondering if people want them left around for laziness, or trashed for performance.12:14
StevenKwgrant: I can't see anything in packagesetinclusion, but I'm about to did through .addSource() code12:14
wgrantStevenK: I'm pretty sure it's used for packageset inheritance.12:16
StevenKI was afraid of that12:16
StevenKI'm already having to write one horrible SQL transform, what's two more :-(12:16
wgrantStevenK: What about packagesetgroup?12:17
StevenKwgrant: Although, the code for .addSource() only touches packagesetsources, so perhaps packagesetinclusion is done by trigger?12:17
StevenKwgrant: I don't touch it at all, currently12:18
wgrantStevenK: packagesetinclusion is for packageset inheritance. It doesn't touch sources.12:18
StevenKSigh.12:19
jmlstub, I vote trashing for performance12:19
wgrantAnd packagesetgroup seems to be to group them across series? Not entirely sure.12:19
StevenKwgrant: I'm not either12:19
jtvdanilos, henninge: about setCurrentTranslation, submitSuggestion & approve…  ISTM we'll be calling setCurrentTranslation only from tests and from the new approval method.  (Doing it this way even for imports would probably simplify the conflict checks as well).  If that is right, that would mean we could handle things like karma in submitSuggestion and approveSuggestion, completely outside of setCurrentTranslation.12:33
jtvOh, and from other scripts perhaps where we most likely don't _want_ karma involved.12:34
=== mrevell is now known as mrevell-lunch
=== matsubara-afk is now known as matsubara
jmlhmm.13:50
jmlwhy doesn't Mismatch just take some descriptions and details?13:50
marsjml, to reduce coupling between Matcher and Mismatch?13:57
jmlthey are pretty tightly coupled anyway13:58
marswell, off the top of my head, lets say you had two matchers13:58
marsthey each create an instance of the same mismatch class13:59
marsif you pass in the error message or change the detail handling, then both matchers are affected13:59
marsunder the current design only changes to the mismatch constructor API will cause callers to change14:00
jmloh, sorry, I wasn't being clear.14:02
jmlI'm not proposing removing describe() or get_details(), just changing the base Mismatch to take optional parameters for description and details so every single Matcher doesn't need to make its own Mismatch subclass.14:02
jml(alternatively, make a SimpleMismatch that does that)14:03
marsah, I was thinking of a similar idea, but using a factory function that returns some Mismatch template class instance14:03
marssame diff14:03
marsso yes, something like that would be nice for convenience14:04
marsjml, looking through testtools.matchers - it might be convenient, but there would be a real temptation to eliminate all the mismatch classes, or for developers to not create new ones.  It would be very easy (too easy?) to just pull the mismatch-specific code (often one line) up into the matcher.14:09
=== fjlacoste is now known as flacoste
=== mrevell-lunch is now known as mrevell
jmlmars, you mean less code that does the same thing and preserves the current API?14:10
marswell, it does the same thing, but in a different form (no more well-named Mismatch subclasses)14:11
marsnot saying that's a bad thing, just pointing out one consequence of the convenience14:12
jmlmars, is that such a loss?14:12
jmlright14:12
jmlwell, the patch is up14:14
gmbsinzui, I've just filed https://bugs.edge.launchpad.net/malone/+bug/619218 against malone, but I'm wondering if it should be a registry task instead.14:17
gmbWhat do you think?14:17
sinzuiI think it is bugs since not all projects use bugs14:17
sinzuigmb: is this a feature we are considering?14:18
gmbsinzui, No, just something that I've seen mentioned twice in as many days.14:19
gmbI'll leave it on bugs.14:19
gmbThanks.14:19
sinzuiEdwinGrubbs, gmb: I landed a fix to count only open bugs on a dsp for https://edge.launchpad.net/ubuntu/maverick/+needs-packaging Do I need to wait for a daily proc to run that updated bug heat on dsps (max_bug_heat bug_heat_count)?15:27
EdwinGrubbssinzui: I believe that it runs whenever a bugtask is added or removed on a sourcepackage, so they won't all get updated at once.15:31
sinzuiThanks EdwinGrubbs15:32
EdwinGrubbsmatsubara: ping16:00
matsubarahi EdwinGrubbs16:01
EdwinGrubbsmatsubara: to make it easier to debug errors where mailman sends an email to launchpad for moderation via xmlrpc, I want to add the full text of the email to the oops. I've looked at how oops-tools parses it, and I want to discuss the various possible solutions.16:03
barry/join #ubuntu+116:05
barry 16:05
matsubaraEdwinGrubbs, sure, here or mumble? (IRC is easier for me as I'm in the middle of something)16:06
EdwinGrubbsmatsubara: we can do it on irc. Before I start listing off the possibilities, do you have any thoughts on how you would like this to be solved?16:07
gary_postersinzui: hey.  does registry do gpg stuff usually (https://bugs.launchpad.net/bugs/618347) or is this a foundations thing?  foundations hasn't done much of any gpg stuff on my watch.16:09
sinzuigary_poster, That is registry. I believe it is the last piece of code that uses logintoken16:11
jcsackettlifeless, ping?16:11
gary_posterok thank you sinzui16:11
EdwinGrubbsmatsubara: ok, I'll start then. Option 1) Just add a delimiter at the end of the traceback to add a single section.16:12
EdwinGrubbsmatsubara: Option 2) Use the python multifile module to add mulltiple delimited sections after the traceback.16:13
matsubaraEdwinGrubbs, sorry, I'm looking for an oops as an example. I think one idea is to make like the codehosting oopses and add the email as part of the request variables16:13
matsubarakinda hackish though16:13
matsubaraEdwinGrubbs, option 1 is interesting16:13
EdwinGrubbsmatsubara: but aren't the request variables limited to one line normally. Even if the oops-tools can parse a single req var that is multiple lines, it would probably look really bad when browsing oops files on devpad.16:15
matsubaraI just talked to the ISD guys and they want to have a way to parse oopses like this: https://admin.isd.canonical.com/oops/?oopsid=1607carambola1 and render the extra data info as html. perhaps extra_data should be a section after the traceback16:15
jmljames_w, are your html matchers available for use in Launchpad (sorry, I've asked you before)16:15
james_wjml: I don't think so16:16
jmljames_w, where could I find them?16:16
james_wlp:soupmatchers16:17
EdwinGrubbsmatsubara: Option 3) expand on the email formatting idea. Add a header to indicate a new oops format, and turn it into a multipart/mixed mime email. This has the added benefit of providing name/value pairs for each part and unlimited number of sections.16:17
jmljames_w, thanks.16:17
matsubaraEdwinGrubbs, option 3 sounds interesting16:18
EdwinGrubbsmatsubara: my one concern about rendering html in an oops is that the html might contain javascript attacks.16:19
matsubaraEdwinGrubbs, yep, I'm aware of that. one of the things I'd like to discuss with the ISD guys before they implement that option16:20
EdwinGrubbsmatsubara: so, should I wait until we can get more info from ISD, or can one of the solutions be started on. Technically, the oops-tool can just format extra data as text now and be updated to not escape the html later when the security concerns are addressed. The mime solution would be the handiest for that, since we would be able to add a content type to each section.16:23
matsubaraEdwinGrubbs, I think we can start and then adapt the work to address ISD's needs in the future.16:25
matsubaraEdwinGrubbs, once you get the changes needed on the LP side could you ping me so I can update oops-tools to understand this new format?16:25
EdwinGrubbsmatsubara: well, I was planning on updating oops-tools at the same time for testing purposes. Do you want me to go with Option 3?16:29
=== salgado is now known as salgado-lunch
EdwinGrubbsmatsubara: the main drawback to option 3 is that oops-tools has to be updated before launchpad starts producing oopses in that format.16:31
EdwinGrubbsjust appending to the end of the traceback is sorta backwards compatible.16:31
matsubaraEdwinGrubbs, right. I'd rather go with option 3 given that we will need this work in the future anyway16:33
EdwinGrubbsok16:37
jcsackettwhat time does lifeless usually get active on IRC?17:07
leonardri have a question for anyone who might know17:07
leonardri have a test that's suddenly started failing on ec217:07
leonardrand the failures would be explained if the AppServerLayer used to make Launchpad available at "launchpad.dev", but recently it was changed to be available at "launchpad.dev:8085"17:08
leonardrdid anything like that happen, or has the test launchpad always been available at launchpad.dev:8085?17:08
leonardri know for some test layers it's been at :8085, but maybe it was formerly inconsistent and the inconsistency was fixed recently?17:08
=== Ursinha is now known as Ursinha-lunch
leonardranother possibility is that the tests used to be run with a sitename of 'testrunner' and now they're run as 'development'17:19
=== jcsackett is now known as jcsackett|afk
jmljcsackett|afk, early NZ time.17:23
jmlleonardr, sorry, I don't know of any recent changes along those lines.17:24
jmlleonardr, I'd be very surprised if the latter possibility were true.17:24
=== matsubara is now known as matsubara-lunch
leonardrwell, damn17:28
jmlleonardr, does the test fail locally?17:30
leonardrjml: no17:31
leonardrjml, more specifics about the test17:31
jmlleonardr, even if you merge in the latest devel? it's possible that something broken landed recently.17:31
leonardrjml, i think i know why it doesn't fail locally, let me explain17:32
jmlleonardr, please do.17:32
leonardrwhen you run 'make' in launchpad, it generates some wadl for your instance17:32
=== salgado-lunch is now known as salgado
leonardrthe wadl defines the root url of the wadl as being http://api.launchpad.dev/17:32
leonardrs/of the wadl/of the web service/17:33
leonardrin local usage (and i'll test this to make sure), when you run a test, launchpad starts up as launchpad.dev, and the launchpadlib test makes requests to http://api.launchpad.dev/, and gets wadl that tells it to make more requests to http://api.launchpad.dev/...17:33
leonardron EC2, when you run a test, launchpad starts up as launchpad.dev:808517:34
leonardrthe launchpadlib test makes a request to https://api.launchpad.dev:8085/17:34
leonardrand gets wadl that tells it to make requests to https://api.launchpad.dev/17:34
leonardrbut there's no such host, and the test fails17:34
jmlI see.17:35
jmlI'd be disappointed if ec2 tests were running with a different configuration to the local test runner.17:35
=== benji is now known as benji-lunch
leonardrgary, jml: i have 100% confirmed that ec2 environment differs _somehow_ from up-to-date local environment18:01
leonardrsuch that the WADL served by ec2 sends you to api.launchpad.dev, but the WADL served by a local instance keeps you on api.launchpad.dev:808518:02
jmlleonardr, I guess moving from fear to unpleasant certainty is an incremental improvement.18:02
leonardri'm also fairly certain that the cached WADL is not contributing to the problem, because the problem persists even when i move the cached wadl out of the way on ec218:04
jmlleonardr, do you know if this difference exists on up-to-date stable?18:04
leonardrjml: no, i don't18:04
leonardrideally i would be able to watch the wadl being generated on ec2, but i can't, because the problem only shows up during the launchpadlib tests. and a breakpoint in launchpad, triggered by the launchpadlib tests, will just hang, since launchpad is running in the background18:06
jmlyeah. interprocess bugs suck.18:08
leonardrtesting another hypothesis...18:08
leonardrok, even disabling the wadl cache altogether on ec2 doesn't get rid of the problem. so there is one specific request that goes to api.launchpad.dev:8085, and launchpad thinks "ok, what is my hostname? aha! it's api.launchpad.dev!" and generates the wadl accordingly18:15
=== matsubara-lunch is now known as matsubara
jmlmars, you might be interested in reviewing: https://code.edge.launchpad.net/~jml/launchpad/different-ec2-mail/+merge/3290518:30
jmlmars, it's the first deliverable chunk of work from the branch we started at the epic18:30
=== Ursinha-lunch is now known as Ursinha
Green00000hi18:38
=== benji-lunch is now known as benji
Green00000i have a problem with deleting my launchpad-account ...... can anybody answer??18:41
benjiGreen00000: what's the problem?18:43
Green00000hi.18:43
Green00000i loged in first.18:45
Green00000then i deactivated the account.18:45
Green00000wait.18:47
Green00000okay.18:49
Green00000once again.18:49
Green00000.18:49
Green00000.18:49
Green00000.18:49
Green00000i log in launchpad.18:49
Green00000then the point "change details"18:50
Green00000down on the site18:51
Green00000"Deactivate your account"18:51
jmlGreen00000, https://answers.edge.launchpad.net/launchpad/+faq/968 might be helpful.18:52
Green00000the message "Your account has been deactivated."18:52
Green00000but it's just possible to login.18:53
Green00000okay.18:54
Green00000read.18:54
Green00000but18:54
Green00000....18:54
Green00000why can i log in any more??????18:55
jmlGreen00000, you mean, you can still log in even after deactivating?18:56
Green00000(btw -- thx to jml.)18:56
Green00000yes.18:56
jmlGreen00000, I don't know why that's the case. It probably has something to do with Launchpad using the Ubuntu One account service.18:56
Green00000i loged out and delete all cookies.18:58
Green00000but the log in with my emailadress and the password is still working.18:59
leonardrgary, jml: it's official. i get exactly the same error when i run launchpadlib on an unaltered 'stable' on ec219:23
gary_posterhuh19:23
gary_posterwell, my ec2 instance is *almost* ready to go...19:23
jcsackett|afkmars, ping19:24
=== jcsackett|afk is now known as jcsackett
leonardrso the other question is, why is it possible for anyone to land anything?19:24
marshi jcsackett19:24
jcsackettmars: you're oncall reviewer today, correct?19:25
gary_posteryeah, that question occurred to me19:25
marsjcsackett, why yes, I am :)19:25
* mars does not like that question19:26
jcsackettmars: awesome! i've got two mps that sinzui may be getting to, but indicated he didn't mind getting beaten to the punch, and i just realized the mp notices went out long enough go they may have been lost. https://code.edge.launchpad.net/~jcsackett/+activereviews19:26
mars(about the ec2 landings)19:26
jcsackettmars: don't hate me. :-)19:26
marsjcsackett, my bad, crossed messages19:26
jcsackettmars: cool.19:26
sinzuijcsackett, I started https://code.edge.launchpad.net/~jcsackett/launchpad/unsubscription/+merge/32680 a few minutes ago19:27
sinzuiyou will hate my nitpicks19:27
jcsackettsinzui: cool.19:27
jcsackettso, mars: only one mp. :-)19:27
marsjcsackett, sure, I can review those.  Head on over to #launchpad-reviews and add what you have to the queue19:27
jcsackettsinzui: i never hate your nitpicks. :-)19:27
marsjcsackett, depends if I or sinzui gets to them first19:27
leonardrgary: i have a hypothesis why other people have been landing things. if you run the full test suite it hangs, and after about 6 hours the ec2 instance silently shuts down. if someone is using the --merge option (or whatever it is, i don't use it), maybe the ec2 script interprets this silence as success?19:28
gary_posterI hope not leonardr.  mars, any evidence to the contrary? ^^^19:29
leonardrand we don't have the problem in production because production servers don't have the :8085 trickery19:30
marsergh - lost with that.  leonardr, your branch fails on stable ec2?  Or just plain old stable ec2?19:30
leonardrmars: plain old stable ec219:30
leonardrthere are test failures and a hang when running the launchpadlib tests19:31
marsthat is weird19:31
marsleonardr, how about when you run just the one test?19:31
leonardrmars: same thing19:31
marsec2 test -o '-t introduction.txt'19:31
leonardroh, start up a new ec2 instance just to run the one test?19:31
leonardri can try that19:31
marsleonardr, it is introduction.txt that it hangs on so far?19:32
leonardrmars: yes, there are test failures in other launchpadlib tests, but introduction.txt causes the hang19:32
marsleonardr, two tests then: first, just introduction.txt.   Next, the suite that introduction.txt is contained in.19:33
leonardrok19:33
marsleonardr, don't bother with the second if introduction.txt alone hangs19:34
leonardrmars: i'll test with stable?19:34
marsleonardr, you don't have to19:34
marsstable and devel don't drift that far19:34
leonardrok, but i'll test with the basic code instead of the code with my changes in it19:35
marsand there is only moderate risk of you stepping on someone else's accident while trying this19:35
marsright19:35
marsleonardr, run with --attached if you want to get a better idea when the test finishes19:35
marsinstead of busy-waiting on your INBOX for the failure mail19:36
leonardrok19:36
leonardri predict there won't be a failure mail--i never got one before19:36
marswell, if you run just that one test, it should be pretty obvious when it is hung :)19:36
mars... kind of.  (I hope output buffering doesn't bite us here)19:37
=== al-maisan is now known as almaisan-away
gary_posterleonardr: ok, I think I have duped.  I ran ./bin/test -vvt launchpadlib and launchpadlib/docs/introduction.txt has been sitting for about a minute.19:41
leonardrgary, did you get any other failures?19:41
gary_posterno leonardr19:41
leonardrgary: control-c and paste me the traceback19:41
leonardri kind of suspect there are 2 problems19:42
gary_posterleonardr: http://pastebin.ubuntu.com/479533/19:42
gary_posterthat doesn't look very wadllib-y19:43
leonardrgary: run bin/test -vvt hosted-files.txt and see if that works19:43
gary_posterk19:43
salgadorockstar, I've used lp-submit and the m-p was created but I was redirected to the wrong url (https://code.edge.launchpad.net/1.0/~salgado/launchpad/upload-policy-utility/+merge/32911).  it has a leading '1.0'19:44
salgadois that a known bug?19:44
rockstarsalgado, probably not a known bug, but I see why it would do that.19:46
gary_posterleonardr: it passed19:46
gary_posterthis is with your branches, btw, leonardr19:46
leonardrgary: yes! that's the problem i originally had on thursday (and, like you, i didn't have the wadl problem)19:46
salgadorockstar, should I report it against bzr or is this a plugin?19:46
leonardrand i think that is because of the new launchpadlib--the test launchpad thinks it's launching a web browser19:47
gary_posterso I should try to dig into that bug, leonardr?19:47
leonardrbut there could be any number of causes, and it could even be caused by an inaccurate wadl file19:47
leonardrgary: yes, please. put a breakpoint in the TestableLaunchpad constructor. coming up with more specific advice now19:48
gary_posterok19:48
jamhey all, what is the correct way to run a subset of the lp test suite? Is it just 'bin/test -m lp.module' ?19:49
gary_posterjam, use -t19:49
gary_poster(my suggestion)19:49
jamgary_poster: in what way?19:49
jam(can you give an actual invocation)19:49
dobeyhow does one set the status on a bug_task via launchpadlib? task.setStatus() doesn't seem to exist, and task.status = status gives me a HTTP 401 :(19:50
gary_poster./bin/test -t launcpadlib19:50
gary_posterjam, I suggest searching for -t TEST in the ./bin/test --help output19:50
leonardrdobey: how did you set up your Launchpad object?19:51
rockstarsalgado, bzr-pipes has an implementation of it.19:51
jamgary_poster: you guys really need to play with the bzr selftest suite... this is rather, uh, clunky. :)19:51
rockstarsalgado, it might be a bzr bug, but let abentley sort that out.19:51
gary_posterjam, k :-)19:51
dobeyleonardr: launchpad.Launchpad(creds, EDGE_SERVICE_ROOT, cachedir)19:51
jamso far, I'm sitting at a couple of minutes, and I don't think I've actually seen tests being run yet19:52
leonardrdobey: how did you get the creds? if they don't have write permission, then attempting to change the dataset will give you 40119:52
jamtime bzr selftest -s bt.test__chk ... ran 50 tests in 1.4s19:52
leonardrgary: ok, the section 'authorizing the request token' in launchpadlib.txt deserves to fail. at the very least, it prints out stuff like 'come back here and press enter', which isn't there anymore19:53
leonardrgary: but i bet it's hanging there instead of printing stuff out19:53
jamalso not sure why there are 3 200MB instances of python running19:53
marsjam, three instances when running bin/test?19:53
jammars: yes19:53
marsmight be the servers from different layers19:53
dobeyleonardr: is task.status = status the correct way to do it?19:54
leonardrdobey: yes19:54
leonardrtask.status = status; task.lp_save()19:54
gary_posterthat's what I was thinking, mars, but not sure this is particularly productive.  old ground.19:54
jammars: one is the librarian it seems19:54
salgadorockstar, are you suggesting that I file it against bzr-pipes?  that seems weird -- the help for that command says "From:     plugin "launchpad""19:54
marsgary_poster, yep19:54
jammars: two of them are 'python bin/test'19:54
dobeyleonardr: ok, thanks19:55
marsjam, ah, that is because the zope testrunner fires up subprocesses of itself while testing19:55
rockstarsalgado, that means you should file the bug on bzr then.19:55
jammars: it also seems to be doing stuff like 'branch-distro.py'19:56
rockstarsalgado, there are two implementations, one in bzr and one in bzr-pipes19:56
jamis this all setup stuff?19:56
jamDoes it run on every test suite run?19:56
marsjam, what test command did you run?19:56
jammars: bin/test -t lp.codehosting19:56
gary_posterleonardr: going to launchpad-foundations19:56
leonardrok19:56
jamI'd *like* to just run the 1 test I just wrote19:57
jambut I'm still sorting out how to ever run the test suite19:57
jamI'm also seeing it say:19:57
jamhttps://lists.ubuntu.com/archives/bazaar/2010q3/069549.html19:57
marsjam, what was the file name of the test you just wrote?19:57
jamsorry bad paste19:57
jamlib/lp/codehosting/tests/test_lpserve.py19:57
jamI also see my invocation saying it is running the 'canonical.testing.layers.BaseLayer' tests19:58
jamwhich seems like they should be skipped by '-t'19:58
lifelessmoin19:58
salgadorockstar, I think in my case it's the one in bzr because I don't seem to have bzr-pipes installed. thanks for the help19:58
jamdid I type something wrong?19:58
jamhi lifeless19:58
jamlifeless: thank you very much for making 'bzr selftest' what it is today :)19:58
lifelessjam: my pleasure19:58
rockstarsalgado, no prob.19:59
marsjam, 'bin/test -t test_lpserve'  or just 'bin/test -t lpserve'19:59
jammars: any idea how I can stop it gracefully?19:59
mars^C19:59
marsand wait19:59
jamseems to need waiting for a *long* time19:59
marsyep20:00
jamit did eventually stop, though20:01
salgadoI don't wait; I press ^C multiple times20:01
salgadobut it's either that or wait20:01
jamany ideas why 'lp.codehosting' is running canonical.* tests?20:01
jamI guess 19s to run the one test file isn't too bad20:02
jamthough 19s real time to 'Ran 4 tests ... in 7.3s' is a bit high20:02
jam(the problem with -t is I'm guessing it has to load all possible tests, and then filter them, which is why bzr switched to '-s' for prefix matching, and only loading tests that could possibly match the pattern)20:03
jamanyway, thanks mars and gary_poster I at least have it running20:03
marsjam, np.  You are right about the -t thing, discovery takes a while.  IIRC discovery parses every doctest it finds, too20:04
marsnot optimal20:04
marsI looked into fixing that, found the code, but no solution jumped out at me.20:06
jammars: so bzr went the route of using a custom TestLoader and modules that expose 'load_tests' (which is also added to python 2.7 and unittest2)20:06
jamso it loads the root, which knows about loading children, and all check against the pattern to see if any of these children should be evaluated20:07
lifelesssinzui: jc sackett pinged me, do you know what about ?20:07
sinzuiI think it was about the review of his branch20:08
marsjam, makes sense, some adaptation of that may work for our pagetests too.20:09
marsHowever, I don't know if our testrunner makes a distinction between load versus find20:09
marsI know that for our pagetest suites our code does not make that distinction20:10
jcsackettlifeless: i just wanted to make sure i had answered your questions re: plus-participation.20:10
lifelessjcsackett: ok, let me look up the response now20:11
lifelessjcsackett: I tried to tab complete your name here, before but failed - sorry! (Thats why I asked sinzui :P)20:11
jcsackettlifeless: it's all good.20:11
lifelessok20:19
lifelessso, I've put forward a possible algorithm to do this in two queries20:19
lifelessif you liked the previous UI20:20
=== lifeless changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 1 of 10.09 | PQM is OPEN | firefighting: - | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in irc://irc.freenode.net/#launchpad-reviews
jcsackettlifeless, was that to me?20:22
lifelessjcsackett: yes20:22
lifelessjcsackett: just now, in the MP20:22
lifelesspoolie: webapp flags is in devel now20:22
lifelessgmb: ^20:22
jcsackettlifeless: i think i like that, but the graph part goes by a little quickly (or may in fact go over my head).20:24
lifelessoh, I missed a step, darn20:25
jcsackettsinzui: i've pushed up the changes on my subscription mp.20:26
sinzuithanks20:26
jcsackettlifeless: that makes me feel a bit better.20:26
lifelessupdating in a sec20:32
lifelessupdated20:36
lifelessflacoste: thank you20:37
flacostebac, sinzui: so official_codehosting where EXISTS (SELECT 1 FROM Branch JOIN ProductSeries ON (Branch.id = ProductSeries.branch) JOIN Product ON (ProductSeries.id = Product.development_focus) WHERE BranchType = HOSTED AND ProductId = <product_id>)?20:48
flacostei mean it becomes20:48
flacosteor can we consider a MIRRORED or REMOTE branch has officially codehosting?20:48
sinzuiflacoste, HOSTED only20:49
flacostesinzui: ack20:49
lifelessjcsackett: does it make more sense now ?20:57
jcsackettlifeless: i think so; graph theory isn't my forte, so i'm sort of mulling it over in a terminal to get a handle on it.20:58
lifelessok20:58
lifelessplease do ping me20:58
lifelessif you want to chat about it20:58
jcsackettlifeless: will do. probably shortly. :-P20:58
flacostesinzui: that actually gives us about ~2000 more official_codehosting projects :-)20:58
flacostesinzui: make that 4000!20:59
flacostesinzui: about the same number than we have projects officially using Launchpad for Bugs20:59
sinzuiyes. as back suspected when he learned we were counting it. He was pretty sure that users could not set the value over the last year20:59
sinzuis/as back/as bac/21:00
flacostesinzui: looking at https://lpstats.canonical.com/graphs/ProductsFlaggedOfficial/, I'd say they can't flag it since May21:01
sinzuiI would have though March, but May is close enough21:02
flacostethumper will be happy21:02
sinzuiflacoste, lets add a constraint product.active = TRUE21:04
flacostesinzui: ok21:04
flacostesinzui: 2000 less projects21:04
sinzuiWe had a lot of project try launchpad.21:05
jcsackettlifeless: you want me to PM you about this or just carry on the conversation for all to see?21:05
lifelessjcsackett: more eyes, more thoughts21:06
sinzuiI saw a few hundred projects with empty branches in my review of all projects. There never was code for a lot of projects21:06
jcsackettlifeless, works for me.21:06
jcsackettokay, lifeless, if i understand you right, you suggest we pull all teams at once, then pull all the relationships for those teams, and out of the resulting query sets map out the relationships.21:07
jcsackettso if we pull user in a, b, and c, and then pull that a is in b and c, and then that b is in c, we can build out the link from that.21:08
lifelessright21:09
lifelessuser in a,b,c is one query21:09
lifelessa in b,c    and b in c    is one query21:09
lifelessbut - the second query would be direct memberships only so it would look like21:10
lifelessuser in a,b,c21:10
lifelessuser in c           c in b              b in a21:10
sinzuiflacoste, I think the ProductsFlaggedOfficial graph is suspicious. Blueprints is not used as much as it is claimed to be used21:10
lifelessas the two resultsets21:10
jcsackettwouldn't a in b,c and b in c be two queries? or are you thinking (in pseudo sql) something like "select team_participant, team, where team_participant is in [list_of_teams]"21:11
lifelesswell it won't be the team participation exploded table21:14
lifelessit will be the direct table21:14
lifelessuhm, looking21:14
lifelessand yes, 'in' is operator21:14
lifelesswe want all the rows that directly list any of (user, a, b, c) as the member of a team21:15
lifelessmemberships = store.find(TeamMembership, TeamMembership.person in (user, a, b, c))21:15
lifelessprint list(memberships)21:16
lifeless[(user, c), (c, b), (b, a)]21:16
lifeless# thats fiction, but pretty darn close to reality21:16
lifelesswe can actually do all of this in one query21:17
lifelessI've been describing two to show the algorith,21:17
lifelessmwhudson: you were right about the windmill error being bogus21:23
jcsackettso, lifeless, basically once we have that final dict you suggest walking through it to find the paths from user to indirect teams? seems like that could get expensive computationally in these pathalogical cases.21:27
lifelesswalk in the other direction21:28
lifelessyou have all the terminal points21:28
lifelessthey all walk directly to the user21:28
lifelessbam21:28
lifelessthe api you have - 'find path to ' is a wonky api21:28
lifelesswe can just iterate this graph and spit out all in a tabular form all the paths we want to render21:29
lifelessthen in the template just loop on the paths rendering them21:29
mwhudsonlifeless: it's very strange that21:29
lifelessmwhudson: eparse21:30
mwhudsonlifeless: the windmill error thing is very strange21:30
lifelessyes, yes indeed21:30
lifelessjcsackett: if we start at the user, and for every team they are in (direct connections in that graph), we start a path - [user, teamx], and then for each path we repeat that expansion - [[user, teamx], teamy] and so on21:37
lifelessjcsackett: that will be fast - we don't permit cycles AIUI in the db21:37
lifelessthere may be multiple paths, but thats ok. when we're done we just tabulate and discard any duplicate terminal nodes21:38
lifelessso we'll have21:38
jcsackettlifeless: AIUI == ?21:38
lifeless[user, teamx]21:38
lifelessAs I Understand It21:38
jcsackettah.21:38
lifeless[user, teamx]21:38
lifeless[user, teamx, teamy]21:38
lifelessetc21:38
lifelesslen(path) !=2 => indirect path21:39
jcsackettlifeless: okay, i think i've got it.21:39
lifelessoh final tweak I think - prefer the shortest paths when trimming -21:39
lifeless[user, teamy] should win over [user, teamx, teamy] in the discard stage21:39
jcsackettlifeless: yeah, i sort of assumed that when you mentioned discards.21:39
jcsackettlifeless: i do think i like that better; it's worth a shot at least before basically killing the UI.21:40
lifelesscool21:40
lifelessI think for nearly all of LP perf problems we can do something like this21:40
lifelessits been the experience [for most] issues in bzr anyhow21:41
lifelessand bzr has a harder problem in many ways : no persistent database with hot disk caches :)21:41
jcsackettthat does seem like a much harder issue. :-)21:43
=== salgado is now known as salgado-afk
lifelesslosa ping22:11
lifelessI want to know what our current ssl session lifetime is set to22:11
lifelessand also the SSLSessionCache setting22:12
mbarnettlifeless: SSLSessionCache        shmcb:/var/run/apache2/ssl_scache(512000)22:15
mbarnettSSLSessionCacheTimeout  30022:15
lifelessthanks22:18
lifelessrt'd22:18
mbarnettwelcome22:18
lifelessflacoste: rt 4091822:18
flacostelifeless: bumped up22:29
lifelessso what makes in_admin etc work22:30
lifelessmy new branch made a change that looked fine and works some of the time but not always22:30
lifelessshould one adapt to IPersonRoles?22:31
thumperlifeless: do you realise that it takes 30 minutes for a trivial branch to land on devel using PQM?22:36
thumperAFAICS much of that time is cleaning the working directory22:36
lifelessyes22:36
thumperwhy does it take so long?22:36
lifelesswould like to fix22:36
lifelessthumper: its doing a heavyweight branch22:37
lifelessbecause we have calls that look at the bzr history but need to run in the chroot22:37
lifelessif we do a lightweight checkout of the http readonly branch url, they would work22:37
lifelessand we could bzr switch to do the commit22:37
jelmer'evening lifeless, thumper22:38
lifelesshi jelmer22:39
mwhudsongary_poster: hi, can i ask you a couple of questions about buildout?22:42
=== matsubara is now known as matsubara-afk
lifelessSegmentation fault in cron mail worries me22:44
lifelesson pear22:44
jelmerpear.. that's one of the importds isn't it?22:45
mwhudsonyes22:45
* rstat1 pokes salgado22:46
mwhudsongary_poster: nm, afk22:48
jamanyone know where you get "zope.preferences.interfaces.IPreferenceGroup" from ?22:56
jamI just did 'apt-get update' and now I can't run the test suite anymore without tracking down stuff like this22:56
wgrantjam: Run 'make'22:57
wgrantIt's an egg that was added a few weeks ago.22:57
wgrantYou might also need to update-sourcecode, if you're really out of date.22:57
jamwgrant: to give a fuller description, I ran apt-get update, which broke bzr-builder because it imported something bzr-builddeb didn't like, when I updated bzr-builder it broke my source code. when I merged devel, it broke because it was missing interfaces22:58
jamwgrant: is this par for the course?22:58
flacostethumper: https://lpstats.canonical.com/graphs/BuilddLagProductionSupportedArch/22:58
jam(of doing development on launchpad)22:58
lifelessjam: sometimes22:59
lifelessjam: bzr 2.2 just landed in devel22:59
lifelessjam: so you need to do ./utilities/update-sourcecode22:59
lifelessjam: and I'd like to fix this up, move to totally deb dependencies, that sort of thing; however this isn't [yet] a widely held view.22:59
lifelessjam: I think its stockholm syndrome.22:59
flacostethumper: https://lpstats.canonical.com/graphs/BuilddLagPPASupportedArch/23:00
jamlifeless: I think you need 1 dependency structure23:00
jamI'm not sure that it has to be debs, since I don't really want apt-get update to break my dev environment each time23:00
lifelessjam: I'm not sure why it would break your dev environment23:00
lifelessbut yes23:00
jam(I need the latest firefox patch, and oh, my test suite won't run anymore)23:00
jamlifeless: see above. It seems that we use the system bzr-builddeb? but the source tree bzr-builder?23:00
lifelessjam: well, given we use windmill, we do have dependencies on firefox23:01
lifelessjam: its a little magic, we'll use one if its available or an egg if its not.23:01
rstat1s23:02
rstat1whoops23:02
jamlifeless: If the answer is "don't update your system until your current patch has been landed" I guess that would be a different answer23:02
jamI realize it is a significantly more complex project.23:02
lifelessjam: I get the impression thats what folk do. IMBW23:02
jambut stuff like this is really pretty bad23:02
lifelessjam: its got many more dependencies, code base isn't that different in size23:02
wgrantI rarely find that an update breaks it.23:03
wgrantExcept on a dev series.23:03
wgrantAnd even then it's normally the autosync that kills things.23:03
flacostethumper: https://lpstats.canonical.com/graphs/CodeRecipeBaseTypeCounts/20090818/20100818/23:04
jamlifeless: as an outsider, it isn't like I can change things. But I do find it strange that it is the current status quo23:04
jamas you say, stockholm syndrome :)23:04
lifelessjam: right23:04
lifelessjam: we're improving the dev process at the moment via the release-features-when-done project23:05
jam*sigh* and after all the update-sourcecode, etc. it is still broken23:05
lifelessjam: once that is bedded in, other bits of friction will be bubbling to the top23:05
lifelessjam: ok, current issue ?23:05
jam"DeprecationWarning: please use 'debian' instead of 'debian_bundle'23:05
lifelesscheck in aptitude that you have updated the lp deps23:06
jamfrom bzrlib.plugins.builder import RecipeParser imports something from bzr-builddeb and builddeb complains23:06
lifelessapt held-back that update for me for some reason23:06
lifelesspoolie: are you successfully running concurrent vm tests ?23:21
pooliein multiple vms? yes23:22
lifeless\o/23:22
lifelessyou might like to write that up23:22
poolieiwbn to automatically CoW-fork them23:22
poolieso i can have as many as i like23:22
lifelessas well as your please-use-flags mail :)23:22
pooliebut i haven't got there yet23:22
lifelessflags is in devel how23:22
lifeless*now*23:22
flacostethumper: https://devpad.canonical.com/~stub/ppr/lpnet/latest-daily-timeout-candidates.html23:22
pooliemm i have a draft of that but wanted it to actually be landed first23:22
pooliethanks for that23:22
lifelessanytime23:23
jmlI have a big hairy patch to ec2test/remote.py that I would love to have reviewed.23:25
rstat1and I have an issue with openid if anyone is interested :)23:26
wgrantrstat1: What's the problem?23:28
lifelessrstat1: you probably need to describe the issue23:28
rstat1https://answers.edge.launchpad.net/launchpad-foundations/+question/120150 << This explains it quite well.23:28
jmlhttps://code.edge.launchpad.net/~jml/launchpad/different-ec2-mail/+merge/3290523:29
flacostebac, sinzui: https://code.edge.launchpad.net/~flacoste/tuolumne-lp-configs/fixup-officical_codehosting23:30
rstat1the jist of the matter is: authenication on a lp.dev instance i have on a Lucid VM is impossible. I get an oops. "DiscoveryFailure: No usable openid services found for https://testopenid.dev23:30
wgrantIt sounds like an Apache config issue.23:30
rstat1Thats's what I'm thinking...https://testopenid.dev redirects to lp.dev and https://testopenid.dev/+openid coughs up a 50323:31
rstat1BUT my config for apache comes straight from the lp repos...save for a modifcation to only use one ip address.23:32
lifelessjml: I saw it23:32
lifelessjml: I think its great but a pain to review :(23:32
wgrantrstat1: What't the 503? Just a normal Apache one?23:34
bacflacoste: that branch looks good.  i am not allowed to review it, though.23:34
wgrantWhat does the Apache error log say?23:34
bacflacoste: and thanks for doing it!23:34
rstat1Yea its a normal 503...I'll go dig up the log.23:34
flacostebac, a losa need to review and deploy it23:34
bacflacoste: right.  i didn't know if you pasted just a FYI or wanted a review.23:35
rstat1My apache log doesn't appear to have anything useful in it...just a bunch of debug crap from OpenSSL23:39
=== rstat1 is now known as rstat1-brb
jmllifeless, yeah, I'm sorry about that.23:43
jmllifeless, I'm not sure I could stand the pain of breaking it up into multiple patches though.23:44
lifelessman, some of these failures are nuts23:52
rockstarHm, sourcepackagerecipebuild views don't really have unit tests, just leaky sourcepackagerecipe view tests.23:56
lifelessoh23:59
* lifeless hates on prejoins23:59

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