Compress exception report

This commit is contained in:
Ivan Kravets
2017-12-15 01:39:10 +02:00
parent 7b6ecf4e45
commit 75774ad9fa

View File

@ -15,9 +15,11 @@
import atexit import atexit
import platform import platform
import Queue import Queue
import re
import threading import threading
from collections import deque from collections import deque
from os import getenv from os import getenv, sep
from os.path import join
from time import sleep, time from time import sleep, time
from traceback import format_exc from traceback import format_exc
@ -313,6 +315,17 @@ def on_event(category, action, label=None, value=None, screen_name=None):
def on_exception(e): def on_exception(e):
def _cleanup_description(text):
text = text.replace("Traceback (most recent call last):", "")
text = re.sub(
r'File "([^"]+)"',
lambda m: join(*m.group(1).split(sep)[-2:]),
text,
flags=re.M)
text = re.sub(r"\s+", " ", text, flags=re.M)
return text.strip()
skip_conditions = [ skip_conditions = [
isinstance(e, cls) isinstance(e, cls)
for cls in (IOError, exception.ReturnErrorCode, for cls in (IOError, exception.ReturnErrorCode,
@ -332,8 +345,8 @@ def on_exception(e):
"Error" in e.__class__.__name__ "Error" in e.__class__.__name__
]) ])
mp = MeasurementProtocol() mp = MeasurementProtocol()
mp['exd'] = ("%s: %s" % (type(e).__name__, format_exc() description = _cleanup_description(format_exc() if is_crash else str(e))
if is_crash else e))[:2048] mp['exd'] = ("%s: %s" % (type(e).__name__, description))[:2048]
mp['exf'] = 1 if is_crash else 0 mp['exf'] = 1 if is_crash else 0
mp.send("exception") mp.send("exception")