TBPL only shows:
> PROCESS-CRASH | automation.py | application crashed (minidump found)
> Thread 4 (crashed)
Since the log contains:
REFTEST TEST-START | http://10.250.48.212:30104/tests/layout/reftests/font-inflation/threshold-select-combobox-contents-under-2.html | 1607 / 2542 (63%)
INFO | automation.py | Application ran for: 0:04:31.654848
INFO | automation.py | Reading PID log: /tmp/tmp41NaDUpidlog
getting files in '/mnt/sdcard/tests/reftest/profile/minidumps/'
Downloading symbols from: http://ftp.mozilla.org/pub/mozilla.org/mobile/tinderbox-builds/fx-team-android-xul/1337770945/fennec-15.0a1.en-US.android-arm.crashreporter-symbols.zip
PROCESS-CRASH | automation.py | application crashed (minidump found)
More useful would be something in the log similar to:
> PROCESS-CRASH | http://10.250.48.212:30104/tests/layout/reftests/font-inflation/threshold-select-combobox-contents-under-2.html | application crashed (minidump found)
Ok, so the "PROCESS-CRASH | automation.py | application crashed (minidump found)" comes from:
...rather than automation.py.in (shows how little I know about the test harnesses lol), so I'm presuming is just the fallback when automation.py has failed miserably to output the crash message with testname.
Either way, having this fixed would make people much more likely to pay attention to Android crashes and actually star them.
You were close! The testName that gets passed into that method comes from lastTestSeen in automation.py:
I suspect this just isn't implemented in remoteautomation.py.
That doesn't seem to ever get set in remoteautomation.py.
Thank you for the guidance Ted :-)
(Also seems to affect b2gautomation.py)
Created attachment 677768 [details] [diff] [review]
Part 1: Cleanup
* Makes waitForFinish()'s parameter names consistent with those in automation.py.in & b2gautomation.py
* Moves the final |print proc.stdout| to RProcess::Wait so it reads more clearly (On my first read through of waitForFinish() I didn't realise we incrementally output stdout in RProcess::Wait as well, so thought that final print was the only print, which changed the required solution somewhat. This hopefully avoids anyone else having the same misunderstanding)
* Other hopefully self-explanatory changes.
Created attachment 677790 [details] [diff] [review]
Part 2: Set lastTestSeen
Since the new log content chunks can be fairly large (eg one of the ones I looked at was ~10,000 lines) I also tried a different variation on the regex to see how it compared:
> re1 = re.compile(r".*TEST-START \| ([^\s]*)", re.DOTALL)
...but this one was about 7% slower.
Try run (with extra debugging output to confirm correct value of lastTestSeen):
Comment on attachment 677768 [details] [diff] [review]
Part 1: Cleanup
Review of attachment 677768 [details] [diff] [review]:
I would want good try server coverage on this (reftest/mochitest/robocop) before calling this good. From the changes here, I don't see any big problems.
@@ +207,5 @@
> if (timer > timeout):
> + # Flush anything added to stdout during the sleep
> + print self.stdout
self.stdout or proc.stdout?
> I would want good try server coverage on this (reftest/mochitest/robocop)
> before calling this good.
Yeah agree, will send to try once I have the b2gautomation.py part done :-)
> > + # Flush anything added to stdout during the sleep
> > + print self.stdout
> self.stdout or proc.stdout?
The 8 lines of context in this patch unfortunately doesn't show this clearly, but the lines being added are inside RProcess's wait(), so we need self.stdout.
Comment on attachment 677790 [details] [diff] [review]
Part 2: Set lastTestSeen
Review of attachment 677790 [details] [diff] [review]:
Created attachment 677815 [details] [diff] [review]
Part 3: B2G - Cleanup
* Removes didTimeout, since it is never used (carry-over from automation.py.in).
* s/done/responseDueBy/g to make its purpose clearer.
Created attachment 677817 [details] [diff] [review]
Part 4: B2G - Set lastTestSeen
Same intent as the part 2 patch, but for b2gautomation.py.
Landed parts 1+2 for now, to ease the sheriffing pain:
(In reply to Ed Morley [:edmorley UTC+0] from comment #15)
> Parts 3+4:
Second URL should be: