Closed Bug 1127942 Opened 9 years ago Closed 6 years ago

devicemanagerADB fails to retry on timeout and fails silently

Categories

(Testing :: Mozbase, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: gbrown, Assigned: gbrown)

References

Details

See http://hg.mozilla.org/mozilla-central/annotate/4fab18f1ff55/testing/mozbase/mozdevice/mozdevice/devicemanagerADB.py#l601.

devicemanagerADB._checkCmd uses mozprocess.ProcessHandler to execute adb and wait for its completion. If the wait returns None, then _checkCmd retries the command; if none of the retries succeeds, we raise a DMError, "Timeout exceeded for _checkCmd call after %d retries."

In bug 1127082, on the Android 4.4 emulator on aws, pushDir() frequently exceeds its timeout, mozprocess kills adb (I think), and then proc.wait() returns -9; since that is not None, no retries are triggered, no DMError is thrown, _checkCmd returns -9, but that triggers no error handling in pushDir, and the failure is silently ignored.

I think the intention in the existing code is to retry on timeout, and that's not working. I am not sure that retrying on timeout is a great idea, but maybe that is useful sometimes? Certainly the silent failure is a bad thing. Should _checkCmd test for a 0 return code?
No need to try - this is documentation only.
Keywords: checkin-needed
Oups wrong bug, sorry.
Keywords: checkin-needed
See Also: → 1173120
Much better now.
Assignee: nobody → gbrown
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.