{"id":9,"date":"2009-02-09T15:21:35","date_gmt":"2009-02-09T15:21:35","guid":{"rendered":"http:\/\/blogs.terrorware.com\/testament\/?p=9"},"modified":"2009-02-09T15:21:35","modified_gmt":"2009-02-09T15:21:35","slug":"traceback-e-mails","status":"publish","type":"post","link":"http:\/\/blogs.terrorware.com\/testament\/2009\/02\/09\/traceback-e-mails\/","title":{"rendered":"Traceback e-mails"},"content":{"rendered":"<p>Andrew just modified the Testament service to eliminate unsightly errors and immediately e-mail the service developers when an unexpected error occurs.<\/p>\n<p>At some point, most Testament users will probably have encountered an uncaught exception (in non-programmer-speak, that&#8217;s an error that we haven&#8217;t anticipated and don&#8217;t handle gracefully) with a confusing looking error and traceback (a way for programmers to tell which sequence of events in the program caused the problem) that looks something like this:<\/p>\n<blockquote><p>Request Method: GET<br \/>\nRequest URL: <a rel=\"nofollow\" href=\"http:\/\/btptestament.com\/log-package\/2\/\">http:\/\/btptestament.com\/log-package\/2\/<\/a><br \/>\nDjango Version: 0.97-pre-SVN-7554<br \/>\nPython Version: 2.5.2<br \/>\nInstalled Applications:<br \/>\n[&#8216;django.contrib.auth&#8217;,<br \/>\n&#8216;django.contrib.contenttypes&#8217;,<br \/>\n&#8216;django.contrib.sessions&#8217;,<br \/>\n&#8216;django.contrib.sites&#8217;,<br \/>\n&#8216;django.contrib.admin&#8217;,<br \/>\n&#8216;btp.core&#8217;]<br \/>\nInstalled Middleware:<br \/>\n(&#8216;django.middleware.common.CommonMiddleware&#8217;,<br \/>\n&#8216;django.contrib.sessions.middleware.SessionMiddleware&#8217;,<br \/>\n&#8216;django.contrib.auth.middleware.AuthenticationMiddleware&#8217;,<br \/>\n&#8216;django.middleware.doc.XViewMiddleware&#8217;,<br \/>\n&#8216;btp.core.middleware.RequireLoginMiddleware&#8217;)<\/p>\n<p>Traceback:<br \/>\nFile &#8220;\/usr\/lib\/python2.5\/site-packages\/django\/core\/handlers\/base.py&#8221; in get_response<br \/>\n82.                 response = callback(request, *callback_args, **callback_kwargs)<br \/>\nFile &#8220;\/var\/www\/testament\/testament_trunk\/btp\/core\/views.py&#8221; in package_address<br \/>\n205.     add_infobox_context(request, context)<br \/>\nFile &#8220;\/var\/www\/testament\/testament_trunk\/btp\/core\/helpers.py&#8221; in add_infobox_context<br \/>\n66.         if i.number == NULL_INMATE_NUMBER:<\/p>\n<p>Exception Type: UnboundLocalError at \/log-package\/2\/<br \/>\nException Value: local variable &#8216;i&#8217; referenced before assignment<\/p><\/blockquote>\n<p>Now you won&#8217;t see this mess and we&#8217;ll get e-mailed when it happens so we can get the problem identified and fixed ASAP.<\/p>\n<p>As always, if you want to report a bug, submit a feature request, or ask a question, please use the <a href=\"http:\/\/getsatisfaction.com\/midwestpagestoprisoners\/products\/midwestpagestoprisoners_testament\">Testament Get Satisfaction Page<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Andrew just modified the Testament service to eliminate unsightly errors and immediately e-mail the service developers when an unexpected error occurs. At some point, most Testament users will probably have encountered an uncaught exception (in non-programmer-speak, that&#8217;s an error that &hellip; <a href=\"http:\/\/blogs.terrorware.com\/testament\/2009\/02\/09\/traceback-e-mails\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[696],"tags":[37,673,697,699,698],"class_list":["post-9","post","type-post","status-publish","format-standard","hentry","category-new-feature","tag-email","tag-error","tag-exception","tag-feature","tag-notification"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/blogs.terrorware.com\/testament\/wp-json\/wp\/v2\/posts\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blogs.terrorware.com\/testament\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blogs.terrorware.com\/testament\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blogs.terrorware.com\/testament\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/blogs.terrorware.com\/testament\/wp-json\/wp\/v2\/comments?post=9"}],"version-history":[{"count":1,"href":"http:\/\/blogs.terrorware.com\/testament\/wp-json\/wp\/v2\/posts\/9\/revisions"}],"predecessor-version":[{"id":10,"href":"http:\/\/blogs.terrorware.com\/testament\/wp-json\/wp\/v2\/posts\/9\/revisions\/10"}],"wp:attachment":[{"href":"http:\/\/blogs.terrorware.com\/testament\/wp-json\/wp\/v2\/media?parent=9"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blogs.terrorware.com\/testament\/wp-json\/wp\/v2\/categories?post=9"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blogs.terrorware.com\/testament\/wp-json\/wp\/v2\/tags?post=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}