From 0234df55b0e8c886e213221dec9cd4093e713dff Mon Sep 17 00:00:00 2001 From: Mauro Doglio Date: Wed, 15 Mar 2017 15:35:00 +0000 Subject: [PATCH] Bug 1347283 - Catch submission deserialization exceptions --- moztelemetry/heka/message_parser.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/moztelemetry/heka/message_parser.py b/moztelemetry/heka/message_parser.py index 5e65071..f49094f 100644 --- a/moztelemetry/heka/message_parser.py +++ b/moztelemetry/heka/message_parser.py @@ -2,6 +2,7 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. import gzip +import logging import ssl import struct @@ -15,6 +16,8 @@ from .message import Message, Header +logger = logging.getLogger(__name__) + def parse_heka_message(message): try: for record, total_bytes in unpack(message): @@ -35,7 +38,10 @@ def _parse_heka_record(record): # because it contains null values for JSON fields that have been # split out. if field.name == 'submission': - payload = _parse_json(field.value_bytes[0].decode('utf-8')) + try: + payload = _parse_json(field.value_bytes[0].decode('utf-8')) + except UnicodeDecodeError: + logger.exception("Error parsing 'submission' field") break if payload is None: