diff options
author | Igor Murashkin <iam@google.com> | 2017-05-02 15:58:02 -0700 |
---|---|---|
committer | Igor Murashkin <iam@google.com> | 2017-05-02 15:58:02 -0700 |
commit | 8275fbaccc012072948a16f537844a552db9be84 (patch) | |
tree | 7c46c5736547bc514fa8d0a0304cbe2e2697703f /compiler/optimizing/graph_visualizer.cc | |
parent | a57c334075b193de9690fff97acf6c1b1d1283fc (diff) |
runtime: Properly unload partially loaded image spaces
When one of the (non-app) image space successfully loads,
it sets up runtime callee-save methods.
If it is later unloaded, callee-save methods are now pointing to memory
that is no longer valid (viewed as all 0s in the debugger).
Runtime::Init skips creating its own runtime methods if it already sees
that the runtime methods were set to non-null, thus dangling runtime
methods.
This crash would nominally manifest itself in unwinding the first time, or as a DCHECK
failure in the interpreter bridge invocation during aborting if debugging was enabled.
To get into this state:
* Fill up the /data partition (but perhaps leave a little bit of room
for one image, but not all images)
* Reboot the device or run zygote manually.
Test: adb shell dd if=/dev/zero of=/data/local/tmp/tempFiller.deleteMe bs=1024 count=50g ; adb reboot
Bug: 36033084
Change-Id: I728c1058b003fcf5e98dc2746d53e44b688c4605
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
0 files changed, 0 insertions, 0 deletions