Skip to content

Instantly share code, notes, and snippets.

@adngdb
Last active June 6, 2016 15:56
Show Gist options
  • Save adngdb/0f59e66aa9a057b1beeda6508e5bcaa5 to your computer and use it in GitHub Desktop.
Save adngdb/0f59e66aa9a057b1beeda6508e5bcaa5 to your computer and use it in GitHub Desktop.
Socorro's Processed Crash Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"description": "schema of a processed crash from Socorro",
"definitions": {
"frames": {
"type": "object",
"properties": {
"frame": {
"type": "integer",
"description": "Index of the frame. "
},
"module": {
"type": "string",
"description": "If present, the basename of the code module containing the instruction in this frame. If missing, the instruction was not in any known module."
},
"function": {
"type": "string",
"description": "If present, the name of the function containing the instruction in this frame. If missing, either the instruction was not in any known function, or symbols were not available for this module."
},
"file": {
"type": "string",
"description": "If present, the source file containing `function` in this frame. If absent, source line information may not be available for the function. May be a filename or a string including VCS information in the form <vcs>:<repository>:<relative source path>:<changeset>."
},
"line": {
"type": "integer",
"description": "If present, the line in `file` corresponding to the instruction in this frame."
},
"offset": {
"type": "string",
"description": "The value of the instruction pointer in this frame."
},
"module_offset": {
"type": "string",
"description": "If present, the offset of the instruction pointer in this frame relative to the module base."
},
"function_offset": {
"type": "string",
"description": "If present, the offset of the instruction pointer in this frame relative to the function base."
}
}
}
},
"properties": {
"PluginFilename": {
"type": "string",
"description": "When a plugin process crashes, this is the name of the file of the plugin loaded into that process."
},
"PluginName": {
"type": "string",
"description": "When a plugin process crashes, this is the name of the plugin loaded into that process."
},
"PluginVersion": {
"type": "string",
"description": "When a plugin process crashes, this is the version of the plugin loaded into that process."
},
"Winsock_LSP": {
"type": "string",
"description": "On Windows, a string of data from the Windows OS about the list of installed LSPs (Layered Service Provider)."
},
"additional_minidumps": {
"type": "string",
"description": "List the prefixes of the additionnal minidumps, when there are dumps from multiple processes."
},
"addons": {
"type": "string",
"description": "A list of the addons currently enabled at the time of the crash. This takes the form of \"addonid:version,[addonid:version...]\". This value could be empty if the crash happens during startup before the addon manager is enabled, and on products/platforms which don't support addons."
},
"addons_checked": {
"type": "string",
"description": "@@ TODO (bsmedberg: I don't know; what is the name of the raw metadata field this maps to?) @@"
},
"address": {
"type": "string",
"description": "Hexadecimal address where the crash happened."
},
"app_notes": {
"type": "string",
"description": "Notes from the application that crashed. Mostly contains graphics-related annotations."
},
"build": {
"type": "integer",
"description": "Build identifier of the product."
},
"classifications": {
"type": "object",
"properties": {
"jit": {
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "JIT classification."
},
"category_return_code": {
"type": "string",
"description": "JIT classification."
}
}
},
"support": {
"type": "object",
"properties": {
"classification": {
"type": "string",
"description": "The support classification of this crash report, assigned by the processors."
},
"classification_data": {
"type": "string",
"description": "Data of the classification."
},
"classification_version": {
"type": "string",
"description": "Version of the classification."
}
}
},
"skunk_works": {
"type": "object",
"properties": {
"classification": {
"type": "string",
"description": "The skunk classification of this crash report, assigned by the processors."
},
"classification_data": {
"type": "string",
"description": "Data of the classification."
},
"classification_version": {
"type": "string",
"description": "Version of the classification."
}
}
}
}
},
"cpu_info": {
"type": "string",
"description": "Extended name of the CPU."
},
"cpu_name": {
"type": "string",
"description": "Architecture of the processor. Deprecated, use cpu_arch instead."
},
"crash_id": {
"type": "string",
"description": "Unique identifier of the crash report."
},
"date_processed": {
"type": "string",
"description": "Date at which the crash report was received by Socorro."
},
"flash_version": {
"type": "string",
"description": "Version of the Flash Player plugin."
},
"hang_type": {
"type": "string",
"description": "Tells if a report was caused by a crash or a hang. In the database, the value is `0` if the problem was a crash of the software, and `1` or `-1` if the problem was a hang of the software. \n\nNote: for querying, you should use `crash` or `hang`, since those are automatically transformed into the correct underlying values."
},
"install_age": {
"type": "integer",
"description": "Epoch time of the installation of the software. \n\nCommonly used as a unique identifier for software installations (since it is unlikely that two instances are installed at the very same second)."
},
"java_stack_trace": {
"type": "string",
"description": "The stack when Firefox for Android catches a Java exception."
},
"json_dump": {
"type": "object",
"description": "The dump as a JSON object.",
"properties": {
"crash_info": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Address of the crash."
},
"crashing_thread": {
"type": "integer",
"description": "Number of the crashing thread?"
},
"type": {
"type": "string",
"description": "Type of the crash."
}
}
},
"crashing_thread": {
"type": "object",
"properties": {
"threads_index": {
"type": "string",
"description": "Index of this thread in the list of threads?"
},
"total_frames": {
"type": "integer",
"description": "Total number of frames in the thread."
},
"frames": {
"type": "array",
"description": "Top frames of the crashing thread. Max 10 frames.",
"items": {
"$ref": "#/definitions/frames"
}
}
}
},
"largest_free_vm_block": {
"type": "string",
"description": "If present, the size of the largest free block of virtual memory in the crashing process as a hex string."
},
"main_module": {
"type": "integer",
"description": "Index into modules."
},
"main_module": {
"type": "array",
"description": "Index into modules."
},
"status": {
"type": "string",
"description": "Status of the output of the stackwalker. Can be \"OK\", \"ERROR_*\" or \"SYMBOL_SUPPLIER_INTERRUPTED\"."
},
"system_info": {
"type": "object",
"properties": {
"cpu_arch": {
"type": "string",
"description": "Architecture of the CPU."
},
"cpu_count": {
"type": "string",
"description": "Number of CPU cores."
},
"cpu_info": {
"type": "string",
"description": "Extended name of the CPU."
},
"os": {
"type": "string",
"description": "Operating System."
},
"os_ver": {
"type": "string",
"description": "Operating System Version."
}
}
},
"tiny_block_size": {
"type": "integer",
"description": "If present, the total size of all memory regions in the crashing process that are smaller than 1 MB."
},
"thread_count": {
"type": "integer",
"description": "Number of threads."
},
"threads": {
"type": "array",
"description": "All the threads.",
"items": {
"type": "object",
"properties": {
"frame_count": {
"type": "integer",
"description": "Number of frames in the thread."
},
"frames": {
"type": "array",
"description": "All frames of the thread.",
"items": {
"$ref": "#/definitions/frames"
}
}
}
}
},
"write_combine_size": {
"type": "integer",
"description": "If present, the total size of all committed memory regions in the crashing process marked with PAGE_WRITECOMBINE."
}
}
},
"last_crash": {
"type": "integer",
"description": "Number of seconds since the last crash of the software."
},
"os_name": {
"type": "string",
"description": "Basic name of the operating system. Can be \"Windows NT\", \"Mac OS X\" or \"Linux\". Use `platform_pretty_version` for a more precise OS name including version."
},
"os_pretty_version": {
"type": "string",
"description": "A better platform name, including version for Windows and Mac OS X."
},
"os_version": {
"type": "string",
"description": "Version of the operating system."
},
"process_type": {
"type": "string",
"description": "What type of process the crash happened in. When the main process crashes, this will not be present. But when a plugin or content process crashes, this will be \"plugin\" or \"content\"."
},
"processor_notes": {
"type": "string",
"description": "Notes of the Socorro processor, contains information about what changes were made to the report during processing."
},
"product": {
"type": "string",
"description": "Name of the software."
},
"productid": {
"type": "string",
"description": "Identifier of the software."
},
"proto_signature": {
"type": "string",
"description": "A concatenation of the signatures of all the frames of the crashing thread."
},
"reason": {
"type": "string",
"description": "Reason of the crash."
},
"release_channel": {
"type": "string",
"description": "The update channel that the user is on. Typically \"nightly\", \"aurora\", \"beta\", or \"release\", but this may also be other values like \"release-cck-partner\"."
},
"signature": {
"type": "string",
"description": "Signature of the crash, based on the crashing thread and various rules applied during processing."
},
"topmost_filenames": {
"type": "string",
"description": "Paths of the files at the top of the stack."
},
"uptime": {
"type": "integer",
"description": "Number of seconds since the software was launched."
},
"user_comments": {
"type": "string",
"description": "Comments entered by the user when they crashed."
},
"uuid": {
"type": "string",
"description": "Unique identifier of the report."
},
"version": {
"type": "string",
"description": "Version of the software."
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment