Closed Bug 583022 Opened 15 years ago Closed 15 years ago

All calls to adb should be guarded against hanging

Categories

(Tamarin Graveyard :: Tools, defect)

All
Android
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED
Q3 11 - Serrano

People

(Reporter: brbaker, Assigned: brbaker)

Details

(Whiteboard: buildbot)

Attachments

(2 files)

We have seen a lot of 'adb' calls hang during the build testing process. All calls to execute the vm shell and abc files during acceptance running was addressed in bug# 576599, however we are occasionally seeing other 'adb shell' calls hang (mainly I have seen the 'adb shell chmod +x /data/app/avmshell' hang). All calls to adb should be called via a killableprocess (python) so that it can be stopped and recalled if necessary.
Flags: flashplayer-triage+
Flags: flashplayer-qrb?
Replace all naked calls to adb with adb_proxy which calls adb via a killableprocess. This will timeout after ADB_TIMEOUT (env var) and will retry ABD_MAX_ATTEMPTS (env var) number of times.
Attachment #461544 - Flags: review?(dschaffe)
Is there an android bug we can log regarding this intermittent behavior?
Attachment #461544 - Flags: review?(dschaffe) → review+
Comment on attachment 461544 [details] [diff] [review] replace all adb calls with adb_proxy.py calls patch pushed as 4960:b9cbe2950dee
Assignee: nobody → brbaker
Status: NEW → ASSIGNED
Flags: flashplayer-qrb? → in-testsuite-
Target Milestone: --- → flash10.2
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Status: RESOLVED → VERIFIED
We have seen the following error happen in the build system, so guard against this error and just treat like a timeout and retry the call: Traceback (most recent call last): File "platform/android/android_shell.py", line 85, in <module> stdout=adb_proxy.main(["%s push %s /data/app/%s" % (adbargs,arg,flatfile)]) File "platform/android/adb_proxy.py", line 76, in main p.wait(ADB_TIMEOUT) File "platform/android/killableprocess.py", line 220, in wait self.kill(group) File "platform/android/killableprocess.py", line 177, in kill os.killpg(self.pid, signal.SIGKILL) OSError: [Errno 3] No such process
Attachment #480892 - Flags: review?(cpeyer)
Attachment #480892 - Flags: review?(cpeyer) → review+
Comment on attachment 480892 [details] [diff] [review] guard against trying to kill a process that has already completed patch pushed as 5323:a837d40687b9
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: