Closed Bug 1015178 Opened 6 years ago Closed 6 years ago

B2G reftests don't killAndGetStack on timeout

Categories

(Testing :: Reftest, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
mozilla32

People

(Reporter: ahal, Assigned: ahal)

References

Details

Attachments

(1 file, 2 obsolete files)

We implemented kill and get stack for B2G in mozrunner, but reftests still use b2gautomation.py. Ideally we'd move them off b2gautomation.py and onto mozrunner, but the simple thing to do here is to just re-implement it.

http://mxr.mozilla.org/mozilla-central/source/testing/mozbase/mozrunner/mozrunner/remote.py#246
Should be all that's needed. Try run with the patch from bug 966646 to help reproduce timeouts: https://tbpl.mozilla.org/?tree=Try&rev=cfee277e40ae
Assignee: nobody → ahalberstadt
Status: NEW → ASSIGNED
Blocks: 1015200
So that somewhat worked, after the timeout the process was killed and checkForCrashes invoked.. but minidump_stackwalk failed with "header signature mismatch":
https://tbpl.mozilla.org/php/getParsedLog.php?id=40287378&tree=Try&full=1#error1

Ted, what does it mean when this happens?
Flags: needinfo?(ted)
We chatted on IRC, the current working theory is that maybe we're pulling the dump from the device too soon and it's not finished writing yet. ahal is going to try putting a sleep in there to test that theory.
Flags: needinfo?(ted)
Try run with sleep:
https://tbpl.mozilla.org/?tree=Try&rev=d90894750c8e

If this works, I'll modify it to poll the b2g process before committing.
Attached patch b2g_kill_and_get_stack (obsolete) — Splinter Review
Updated patch to wait for b2g process to stop existing.

New try run just to be sure it still works:
https://tbpl.mozilla.org/?tree=Try&rev=50e86a011121
Attachment #8427754 - Attachment is obsolete: true
Attachment #8429567 - Flags: review?(wlachance)
Comment on attachment 8429567 [details] [diff] [review]
b2g_kill_and_get_stack

Review of attachment 8429567 [details] [diff] [review]:
-----------------------------------------------------------------

Looks ok to me, one minor suggestion.

::: build/mobile/b2gautomation.py
@@ +155,5 @@
>                                self.lastTestSeen, int(timeout))
> +                self._devicemanager.killProcess('/system/b2g/b2g', sig=signal.SIGABRT)
> +
> +                timeout = 10 # seconds
> +                for i in range(0, timeout):

I think the marionette approach is somewhat more intuitive:

starttime = datetime.datetime.now()
while datetime.datetime.now() - starttime < datetime.timedelta(seconds=timeout):
Attachment #8429567 - Flags: review?(wlachance) → review+
(In reply to Andrew Halberstadt [:ahal] from comment #5)
> I think that worked:
> https://tbpl.mozilla.org/php/getParsedLog.
> php?id=40481364&tree=Try&full=1#error0

Yeah, that looks good. Good call!
Updated patch with suggestion. Carry r+ forward.
Attachment #8429567 - Attachment is obsolete: true
Attachment #8430019 - Flags: review+
https://hg.mozilla.org/mozilla-central/rev/33a2a8aaed24
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla32
You need to log in before you can comment on or make changes to this bug.