templates/file_crash_bug_description.md.jinja (74 lines of code) (raw):

{# Part of this template was extracted from Socorro's repository: https://github.com/mozilla-services/socorro/blob/ff8f5d6b41689e34a6b800577d8ffe383e1e62eb/webapp/crashstats/crashstats/jinja2/crashstats/bug_comment.txt https://github.com/mozilla-services/socorro/blob/ff8f5d6b41689e34a6b800577d8ffe383e1e62eb/webapp/crashstats/signature/jinja2/signature/signature_summary.html#L7-L41 #} Crash report: https://crash-stats.mozilla.org/report/index/{{ uuid }} {% if java_stack_trace %} Java stack trace: ``` {{ java_stack_trace|truncate(5000, True)|safe }} ``` {% elif frames %} {% if moz_crash_reason %} MOZ_CRASH Reason: ```{{ moz_crash_reason|safe }}``` {% elif reason %} Reason: ```{{ reason|safe }}``` {% endif %} {% if crashing_thread is none %} No crashing thread identified; using thread 0. {% endif %} Top {{ frames|length }} frames of crashing thread: ``` {% for frame in frames -%} {{ frame.frame|safe}} {{ frame.module|safe }} {{ frame.signature|safe }} {{ frame.source|safe }} {% endfor -%} ``` {% endif %} By querying {{ signature_details_channel }} crashes reported within the last {{ signature_details_delta }}, here are some insights about the signature: - **First crash report:** {{ signature.first_crash_date_ymd }} - **Process type:** {{ signature.process_type_summary }} - **Is startup crash:** {{ "Yes - " if signature.is_startup_related_crash else "No" }} {%- if signature.is_startup_crash -%} all crashes happened during startup {%- elif signature.is_potential_startup_crash -%} {{ signature.num_startup_crashes }} out of {{ signature.num_crashes }} crashes happened during startup {%- elif signature.is_startup_window_crash -%} more than half of the crashes happened during the first minute after launch {%- endif %} - **Has user comments:** {% if signature.has_user_comments -%} [Yes]({{ signature.user_comments_page_url }}) {%- else -%} No {%- endif %} - **Is null crash:** {{ "Yes - " if signature.is_near_null_related_crash else "No" }} {%- if signature.is_near_null_crash -%} all crashes happened on null or near null memory address {%- elif signature.is_potential_near_null_crash -%} {{ signature.num_near_null_crashes }} out of {{ signature.num_crashes }} crashes happened on null or near null memory address {%- endif %} {% if signature.is_near_allocator_related_crash -%} - **Is use after free crash:** {{ "Yes - " if signature.is_near_allocator_related_crash else "No" }} {%- if signature.is_near_allocator_crash -%} all crashes happened on or near an allocator poison value {%- elif signature.is_potential_near_allocator_crash -%} {{ signature.num_near_allocator_crashes }} out of {{ signature.num_crashes }} crashes happened on or near an allocator poison value {%- endif %} {%- endif %} {% if signature.is_potential_phc_crash -%} - **Is PHC crash:** {{ "Yes - " if signature.is_potential_phc_crash else "No" }} {%- if signature.is_phc_crash -%} all crashes have PHC allocation stack trace {%- elif signature.is_potential_phc_crash -%} {{ signature.num_phc_crashes }} out of {{ signature.num_crashes }} crashes have PHC allocation stack trace {%- endif %} {%- endif %} {% if signature.regressed_by %} By analyzing the backtrace, the regression may have been introduced by a {{ "patch [1]" if signature.regressed_by_patch else "patch"}} to fix Bug {{ signature.regressed_by }}. {% if signature.regressed_by_patch %} [1] https://hg.mozilla.org/mozilla-central/rev?node={{ signature.regressed_by_patch }} {%- endif %} {% endif %} {% if needinfo_regression_author %} :{{ signature.regressed_by_author["nick"] }}, since you are the author of the potential regressor, could you please take a look? {% endif %}