Closed Bug 1768855 Opened 4 years ago Closed 4 years ago

is_garbage_collecting is the wrong type and kicks up errors in telemetry crashstorage

Categories

(Socorro :: Processor, defect, P2)

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: willkg, Assigned: willkg)

Details

Attachments

(1 file)

When the json schema reducer reduces a processed crash using the telemetry_socorro_crash.json schema to generate a crash document destined for Telemetry, it dies on the is_garbage_collecting value.

Sentry: https://sentry.prod.mozaws.net/operations/socorro-new-prod/issues/19480180/

Traceback:

InvalidDocumentError: invalid: .is_garbage_collecting: type not in ['string', 'null']
  File "socorro/external/crashstorage_base.py", line 478, in save_processed_crash
    a_store.save_processed_crash(raw_crash, processed_crash)
  File "socorro/external/crashstorage_base.py", line 639, in benchmarker
    return wrapped_attr(*args, **kwargs)
  File "socorro/external/boto/crashstorage.py", line 309, in save_processed_crash
    crash_report = schema_reduce(
  File "socorro/lib/libjson.py", line 241, in schema_reduce
    return reducer.traverse(schema_part=schema, document_part=document)
  File "socorro/lib/libjson.py", line 202, in traverse
    new_doc[name] = self.traverse(
  File "socorro/lib/libjson.py", line 140, in traverse
    raise InvalidDocumentError(

The value is a Python True which is a boolean. Seems like this field is either True or not there at all. The schema specifies valid types are [string, null].

We can't change the schema, so we're going to have to add a manual fix for historical reasons.

What are the values currently in telemetry.socorro_crash? I suspect it's saving str(value) which would be "True".

Once we figure that out, we can figure out how to change the type with the current system. Maybe converters are something we should build in because we might need more of them?

Assignee: nobody → willkg
Status: NEW → ASSIGNED

I was wrong--the crash ping data shows either is_garbage_collecting is not there (e.g. null) or it's the string "1" which is the value from the crash annotation.

Also, I already had this problem and worked out a solution and we have converters, so this is a one line change.

Summary: is_garbage_collecting is the wrong type → is_garbage_collecting is the wrong type and kicks up errors in telemetry crashstorage

I pushed this to prod just now in bug #1769264. I reprocessed the two crash reports. Marking as FIXED.

Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: