Index: trunk/packages/sipb-xen-www/code/main.py
===================================================================
--- trunk/packages/sipb-xen-www/code/main.py	(revision 601)
+++ trunk/packages/sipb-xen-www/code/main.py	(revision 602)
@@ -119,5 +119,5 @@
 
 def error(op, username, fields, err, emsg, traceback):
-    """Print an error page when a CodeError occurs"""
+    """Print an error page when an exception occurs"""
     d = dict(op=op, user=username, fields=fields,
              errorMessage=str(err), stderr=emsg, traceback=traceback)
@@ -585,5 +585,5 @@
 def throwError(_, __, ___):
     """Throw an error, to test the error-tracing mechanisms."""
-    raise CodeError("test of the emergency broadcast system")
+    raise RuntimeError("test of the emergency broadcast system")
 
 mapping = dict(list=listVms,
@@ -677,13 +677,5 @@
             checkpoint.checkpoint('output as a string')
         except Exception, err:
-            import traceback
             if not fields.has_key('js'):
-                if isinstance(err, CodeError):
-                    self.start('500 Internal Server Error', [('Content-Type', 'text/html')])
-                    e = revertStandardError()
-                    s = error(operation, self.username, fields,
-                              err, e, traceback.format_exc())
-                    yield str(s)
-                    return
                 if isinstance(err, InvalidInput):
                     self.start('200 OK', [('Content-Type', 'text/html')])
@@ -691,19 +683,12 @@
                     yield str(invalidInput(operation, self.username, fields, err, e))
                     return
-            self.start('500 Internal Server Error', [('Content-Type', 'text/plain')])
-            send_error_mail('xvm error: %s' % (err,),
-                            '%s\n' % (traceback.format_exc(),))
-            yield '''Uh-oh!  We experienced an error.
-Sorry about that.  We've gotten mail about it.
-
-Feel free to poke us at xvm@mit.edu if this bug is
-consistently biting you and we don't seem to be fixing it.
-
-In case you're curious, the gory details are here.
-----
-%s
-----
-%s
-----''' % (str(err), traceback.format_exc())
+            import traceback
+            self.start('500 Internal Server Error',
+                       [('Content-Type', 'text/html')])
+            e = revertStandardError()
+            s = error(operation, self.username, fields,
+                           err, e, traceback.format_exc())
+            yield str(s)
+            return
         status = headers.setdefault('Status', '200 OK')
         del headers['Status']
Index: trunk/packages/sipb-xen-www/code/templates/error_raw.tmpl
===================================================================
--- trunk/packages/sipb-xen-www/code/templates/error_raw.tmpl	(revision 601)
+++ trunk/packages/sipb-xen-www/code/templates/error_raw.tmpl	(revision 602)
@@ -10,4 +10,3 @@
 ---- end error output
 
-Traceback:
 $traceback
