Privacy/Reviews/SnappySymbolicServer: Difference between revisions
(Created page with "= Document Overview = {| |'''Feature/Product:''' || Snappy Symbolic Server |- |'''Projected Feature Freeze Date:''' || <section begin='eta' />(tbd)<section end='eta' /> |- |'''P...") |
|||
| Line 28: | Line 28: | ||
= Architecture = | = Architecture = | ||
The Snappy Symbolication Server is a Web service for symbolicating Firefox call stacks using Breakpad symbols. It is intended to be used by the SPS profiler, the about:telemetry extension on profiling builds, and by perf-team staff for symbolicating chrome hang stacks reported to Telemetry by profiling builds. | |||
The Symbolication Server is written in Python and runs on the breakpad-symbolapi1.dmz.phx1 Linux VM. It reads the Breakpad .sym files from a mount in the VM and caches them in memory. The .sym files contain mappings of addresses to function names for Windows and Firefox libraries. The mounts also contain Flash and other plugin symbols but these files may be removed in the near future (bug 732485). | |||
The symbolication server will be publicly accessible. The symbolication requests and responses are made over HTTP in JSON format. The client HTTP requests do not carry any cookies or state. Each symbolication request consists of two fields: 1) a "stack" field with a list of stack PCs to symbolicate, and 2) a "memoryMap" field which contains information about the addresses of libraries in process memory, their PDB file name, PDB signature and PDB age. The PDB file information is used to located the corresponding .sym files on the symbol mount. The server responses contain the function names corresponding to PCs in the symbolication request. | |||
The only data stored are the server logs. Client IP addresses, requests and responses are never logged by the server unless the server is explicitly configured for debugging. | |||
''' Example communication between about:telemetry extension and Symbolicatoin Server ''' | |||
''' | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 66: | Line 46: | ||
|- | |- | ||
| ''In:'' | | ''In:'' | ||
| | | Symbolication request | ||
| | | [{"stack":["0x247E0"], "memoryMap":[[0, "mozjs.exe", 200000, 2, "3680D18BE79648BEB6FA92475B2636B9", "mozjs.pdb"]]}] | ||
| | | | ||
|- | |- | ||
| ''Out:'' | | ''Out:'' | ||
| | | Symbolication response | ||
| | | [["JS::Value::isPrimitive() in mozjs.exe"]] | ||
| | | | ||
|} | |} | ||
= User Data Risk Minimization = | = User Data Risk Minimization = | ||
Revision as of 23:01, 21 March 2012
Document Overview
| Feature/Product: | Snappy Symbolic Server |
| Projected Feature Freeze Date: | (tbd) |
| Product Champions: | Vladan Djeric |
| Privacy Champions: | (the privacy Friend you're working with) |
| Security Contact: | Curtis Koenig |
| Document State: | [NEW] |
Timeline:
| Architectural Overview: | (date TBD) |
| Recommendation Meeting: | (date TBD) |
| Review Complete ETA: | tbd |
Architecture
The Snappy Symbolication Server is a Web service for symbolicating Firefox call stacks using Breakpad symbols. It is intended to be used by the SPS profiler, the about:telemetry extension on profiling builds, and by perf-team staff for symbolicating chrome hang stacks reported to Telemetry by profiling builds.
The Symbolication Server is written in Python and runs on the breakpad-symbolapi1.dmz.phx1 Linux VM. It reads the Breakpad .sym files from a mount in the VM and caches them in memory. The .sym files contain mappings of addresses to function names for Windows and Firefox libraries. The mounts also contain Flash and other plugin symbols but these files may be removed in the near future (bug 732485).
The symbolication server will be publicly accessible. The symbolication requests and responses are made over HTTP in JSON format. The client HTTP requests do not carry any cookies or state. Each symbolication request consists of two fields: 1) a "stack" field with a list of stack PCs to symbolicate, and 2) a "memoryMap" field which contains information about the addresses of libraries in process memory, their PDB file name, PDB signature and PDB age. The PDB file information is used to located the corresponding .sym files on the symbol mount. The server responses contain the function names corresponding to PCs in the symbolication request.
The only data stored are the server logs. Client IP addresses, requests and responses are never logged by the server unless the server is explicitly configured for debugging.
Example communication between about:telemetry extension and Symbolicatoin Server
| Direction | Message | Data | Notes |
|---|---|---|---|
| In: | Symbolication request | [{"stack":["0x247E0"], "memoryMap":0, "mozjs.exe", 200000, 2, "3680D18BE79648BEB6FA92475B2636B9", "mozjs.pdb"}] | |
| Out: | Symbolication response | "JS::Value::isPrimitive() in mozjs.exe" |
User Data Risk Minimization
In this section, the privacy champion will identify areas of user data risk and recommendations for minimizing the risk.
Alignment with Privacy Operating Principles
In this section, the privacy champion will identify how the feature lines up with Mozilla's privacy operating principles.
See Also: Privacy/Roadmap_2011#Operating_Principles:
Principle: Transparency / No Surprises
(How the feature addresses this)
Recommendations: (what can be improved)
Principle: Real Choice
Recommendations:
Principle: Sensible Defaults
Recommendations:
Principle: Limited Data
Recommendations:
Follow-up Tasks and tracking
| What | Who | Bug | Details |
|---|---|---|---|
| [NEW] Initial Overview Discussion | ? | Meeting time TBD |