Problem
During the CoreCLRTrimmable investigation in #11091, a native crash in the test app caused am instrument to silently stop producing output. The Android MSBuild task kept waiting until the pipeline hit the 30-minute stage timeout, at which point CI reported "timeout" rather than "instrumentation crashed". This:
- Burns ~30 min of pipeline time per failed run.
- Obscures the real cause — the user has to manually dig through logcat to find the FATAL signal that happened minutes earlier.
- Makes triage extremely slow because the first-line error message is misleading.
Proposal
While am instrument is running, tail adb logcat in parallel and watch for:
FATAL EXCEPTION lines
tombstone written notifications
signal 6/signal 11 aborts in the test process
- The test process PID disappearing from
adb shell ps -A
When any of these are observed, fail the RunTestApp MSBuild task immediately with:
- The fatal signal / exception excerpt from logcat
- A pointer to the tombstone file on the device
- The abbreviated native stack if available
Acceptance criteria
Discovered during
PR #11091 — adding the CoreCLRTrimmable CI lane. Specific session where 30-min timeouts masked an instant crash in the trimmable typemap generator output.
Problem
During the CoreCLRTrimmable investigation in #11091, a native crash in the test app caused
am instrumentto silently stop producing output. The Android MSBuild task kept waiting until the pipeline hit the 30-minute stage timeout, at which point CI reported "timeout" rather than "instrumentation crashed". This:Proposal
While
am instrumentis running, tailadb logcatin parallel and watch for:FATAL EXCEPTIONlinestombstonewritten notificationssignal 6/signal 11aborts in the test processadb shell ps -AWhen any of these are observed, fail the
RunTestAppMSBuild task immediately with:Acceptance criteria
Discovered during
PR #11091 — adding the CoreCLRTrimmable CI lane. Specific session where 30-min timeouts masked an instant crash in the trimmable typemap generator output.