Closed
Bug 1172174
Opened 10 years ago
Closed 9 years ago
Android 4.3 DMError: Timeout exceeded for shell call
Categories
(Testing :: General, defect)
Testing
General
Tracking
(firefox41 fixed)
RESOLVED
FIXED
mozilla41
Tracking | Status | |
---|---|---|
firefox41 | --- | fixed |
People
(Reporter: gbrown, Assigned: gbrown)
References
Details
Attachments
(1 file)
(deleted),
patch
|
armenzg
:
review+
|
Details | Diff | Splinter Review |
Bug 1051908 collects intermittent Android failures with "2400 seconds without output running <mozharness script>". There are several different scenarios causing those failures. Many of the recent failures show "DMError: Timeout exceeded for shell call" just before the 2400 second timeout.
log: https://treeherder.mozilla.org/logviewer.html#?repo=mozilla-inbound&job_id=10488715
repository: mozilla-inbound
start_time: 2015-06-05T08:40:15
who: rvandermeulen[at]mozilla[dot]com
machine: tst-linux64-spot-025
buildname: Android 4.3 armv7 API 11+ mozilla-inbound opt test mochitest-13
revision: ab595285aa97
DMError: Timeout exceeded for shell call
command timed out: 2400 seconds without output running ['/tools/buildbot/bin/python', 'scripts/scripts/android_emulator_unittest.py', '--cfg', 'android/androidarm_4_3.py', '--test-suite', 'mochitest-13', '--blob-upload-branch', 'mozilla-inbound', '--download-symbols', 'ondemand'], attempting to kill
Assignee | ||
Comment 1•10 years ago
|
||
From the log in comment 0...
09:03:39 INFO - 269 INFO TEST-START | dom/workers/test/test_errorPropagation.html
09:03:39 INFO - 270 INFO TEST-OK | dom/workers/test/test_errorPropagation.html | took 6271ms
09:03:39 INFO - 271 INFO TEST-START | dom/workers/test/test_errorwarning.html
09:09:43 INFO - Exception in thread ProcessReader:
09:09:43 INFO - Traceback (most recent call last):
09:09:43 INFO - File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
09:09:43 INFO - self.run()
09:09:43 INFO - File "/usr/lib/python2.7/threading.py", line 504, in run
09:09:43 INFO - self.__target(*self.__args, **self.__kwargs)
09:09:43 INFO - File "/builds/slave/test/build/venv/local/lib/python2.7/site-packages/mozprocess/processhandler.py", line 929, in _read
09:09:43 INFO - self.timeout_callback()
09:09:43 INFO - File "/builds/slave/test/build/venv/local/lib/python2.7/site-packages/mozprocess/processhandler.py", line 840, in __call__
09:09:43 INFO - e(*args, **kwargs)
09:09:43 INFO - File "/builds/slave/test/build/tests/mochitest/devicemanagerADB.py", line 138, in _raise
09:09:43 INFO - raise DMError("Timeout exceeded for shell call")
09:09:43 INFO - DMError: Timeout exceeded for shell call
command timed out: 2400 seconds without output running ['/tools/buildbot/bin/python', 'scripts/scripts/android_emulator_unittest.py', '--cfg', 'android/androidarm_4_3.py', '--test-suite', 'mochitest-13', '--blob-upload-branch', 'mozilla-inbound', '--download-symbols', 'ondemand'], attempting to kill
process killed by signal 9
program finished with exit code -1
elapsedTime=4148.761227
========= Finished '/tools/buildbot/bin/python scripts/scripts/android_emulator_unittest.py ...' failed (results: 2, elapsed: 1 hrs, 9 mins, 8 secs) (at 2015-06-05 09:49:43.243137) =========
Assignee | ||
Comment 2•10 years ago
|
||
android_emulator_unittest.py is running the mochitest harness runtestsremote.py. It looks like runtestsremote.py is using adb to periodically poll the device to retrieve logs and check whether the fennec activity is still running. One of those adb commands times out, calling:
http://hg.mozilla.org/mozilla-central/annotate/b0315d00af9e/testing/mozbase/mozdevice/mozdevice/devicemanagerADB.py#l137
Note that the DMError is raised in the ProcessReader thread. I don't think that is intended. I suspect that kills a ProcessHandler thread and causes the devicemanagerADB.py call to proc.wait() to hang, subsequently causing the 2400 second buildbot timeout - yuck!
Instead of raising in _raise, perhaps we could just log a warning?
Armen - thoughts?
Flags: needinfo?(armenzg)
Comment 3•10 years ago
|
||
That works for me!
My apologies if this has been causing so much pain.
Flags: needinfo?(armenzg)
Assignee | ||
Comment 4•9 years ago
|
||
I don't think this is really causing pain...this is more about improving our logging when adb hangs.
I changed the raise to an error log; I used error over warning mostly because warnings are not logged by default, and I think timeouts are a fairly serious condition.
Testing locally, I forced a timeout by hijacking adb calls:
mozdevice ERROR | Timeout exceeded for shell call 'adb shell ps; echo $?'
Traceback (most recent call last):
File "/home/gbrown/src/test_bug1172174.py", line 4, in <module>
dm.shellCheckOutput(["ps"])
File "/home/gbrown/src/testing/mozbase/mozdevice/mozdevice/devicemanager.py", line 399, in shellCheckOutput
raise DMError("Non-zero return code for command: %s (output: '%s', retval: '%s')" % (cmd, output, retval))
mozdevice.devicemanager.DMError: Non-zero return code for command: ['ps'] (output: '', retval: 'None')
I liked this result, so applied the same logic to _checkCmd().
_runCmd() might profit from the same sort of logging, but that's more complicated -- I filed bug 1173120 instead.
Attachment #8617616 -
Flags: review?(armenzg)
Updated•9 years ago
|
Attachment #8617616 -
Flags: review?(armenzg) → review+
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla41
Assignee | ||
Updated•9 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•