Thanks for the review. I started a thread about the overheads on launchpad-dev - I measured 0.2seconds for recording, stringifying, and shoving in a list, 1000 tracebacks in a 60 deep stack frame.For a well behaved page with < 100 callouts (SQL, memcache etc) thats an overhead of 20ms, which isn't free, but isn't huge either. For a great page doing 20-30 callouts, thats 4-7ms, totally tolerable. So bad pages may be noticable, on good pages will be fine. This app doesn't do the recording of course; thats done by the oops producer, which doesn't do template rendering - it just puts the capture strings into a bson document if an OOPS is recorded.
On the html/pre side, I'm not a django expert. I'll do a quick manual test to make sure that the django template engine does handle a malicious backtrace.
Thanks for the review. I started a thread about the overheads on launchpad-dev - I measured 0.2seconds for recording, stringifying, and shoving in a list, 1000 tracebacks in a 60 deep stack frame.For a well behaved page with < 100 callouts (SQL, memcache etc) thats an overhead of 20ms, which isn't free, but isn't huge either. For a great page doing 20-30 callouts, thats 4-7ms, totally tolerable. So bad pages may be noticable, on good pages will be fine. This app doesn't do the recording of course; thats done by the oops producer, which doesn't do template rendering - it just puts the capture strings into a bson document if an OOPS is recorded.
On the html/pre side, I'm not a django expert. I'll do a quick manual test to make sure that the django template engine does handle a malicious backtrace.