Closed Bug 557236 Opened 14 years ago Closed 14 years ago

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

Categories

(Testing Graveyard :: Sisyphus, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bc, Assigned: bc)

References

Details

Attachments

(1 file)

Attached patch patch v1Splinter Review
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 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+
(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.
http://hg.mozilla.org/qa/sisyphus/rev/d6d4bd16876d
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Product: Testing → Testing Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: