Sisyphus - Crash Automation - crashes should be automatically submitted to other workers

RESOLVED FIXED

Status

RESOLVED FIXED
9 years ago
9 years ago

People

(Reporter: bc, Assigned: bc)

Tracking

Trunk
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Assignee)

Description

9 years ago
Created attachment 437051 [details] [diff] [review]
patch v1

When a worker crashes, it should submit the crashing url to other workers to check if it is reproducible on other branches and operating systems.
Attachment #437051 - Flags: review?(ctalbert)

Comment 1

9 years ago
Comment on attachment 437051 [details] [diff] [review]
patch v1

>From: Bob Clary <bclary@bclary.com>
>
>diff --git a/tests/mozilla.org/crash-automation/crashworker.py b/tests/mozilla.org/crash-automation/crashworker.py
>--- a/tests/mozilla.org/crash-automation/crashworker.py
>+++ b/tests/mozilla.org/crash-automation/crashworker.py
>@@ -515,16 +515,60 @@ class CrashTestWorker(sisyphus.worker.Wo
>                     errorMessage = sisyphus.utils.formatException(exceptionType, exceptionValue, exceptionTraceback)
>+                for worker_doc in worker_rows:
>+                    # skip other workers who match us exactly.
Extend this comment with something to indicate that we intend to recreate a signature for ourselves to process the crash again and that is our desired behavior.
>+                    if (worker_doc['_id']        != self.document['_id'] and
>+                        worker_doc['os_name']    == self.document['os_name'] and
>+                        worker_doc['cpu_name']   == self.document['cpu_name'] and
>+                        worker_doc['os_version'] == self.document['os_version']):
>+                        continue
>+
>+                    for major_version in build_data:
>+
>+                        new_signature_doc = dict(self.signature_doc)
>+                        del new_signature_doc['_id']
>+                        del new_signature_doc['_rev']
>+
>+                        for field in 'os_name', 'cpu_name', 'os_version':
>+                            new_signature_doc[field] = worker_doc[field]
>+
>+                        new_signature_doc['major_version'] = major_version
>+                        new_signature_doc['priority']      = '0'
>+                        new_signature_doc['processed_by']  = {}
>+                        new_signature_doc['urls']          = [page]
Is this correct?  I'm not sure what 'page' is in this context.

Other than these two nits, everything looks fine.
Attachment #437051 - Flags: review?(ctalbert) → review+
(Assignee)

Comment 2

9 years ago
(In reply to comment #1)

> >+                    # skip other workers who match us exactly.
> Extend this comment with something to indicate that we intend to recreate a
> signature for ourselves to process the crash again and that is our desired
> behavior.

Ok.

> >+                        new_signature_doc['urls']          = [page]
> Is this correct?  I'm not sure what 'page' is in this context.

The original url passed into runTests may not be the url where the crash, assertion or valgrind message occurred. Earlier in the code:

match = reSpiderBegin.match(line)
if match:
    ....
    page = match.group(1).strip()

set page to be the last page loaded by the Spider.
(Assignee)

Comment 3

9 years ago
http://hg.mozilla.org/qa/sisyphus/rev/d6d4bd16876d
Status: ASSIGNED → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.