Obsolete
Status Update
Comments
an...@google.com <an...@google.com>
ma...@google.com <ma...@google.com>
ps...@gmail.com <ps...@gmail.com> #3
tai
Description
When using Android v4.4 KitKat with the new ART runtime, JNIEnv::NewGlobalRef() doesn't return NULL when given a JNI handle returned from JNIEnv::NewWeakGlobalRef() which has been collected.
In pseudo-code:
gref = env->NewGlobalRef (value);
wref = env->NewWeakGlobalRef (gref);
env->DeleteGlobalRef (gref);
# Perform a GC
gref = env->NewGlobalRef (wref);
If `value` and `gref` were collected by the GC, then `env->NewGlobalRef(wref)` should return NULL. This is the case under Dalvik; it is NOT the case under ART, wherein a non-NULL value is returned. This is against the JNI spec:
Please see the attached art-wref-test.zip testcase, which is a JNI/C sample which demonstrates the problem. Build, install, run, and it crashes (see crash log at end; discussion follows).
The application also produces additional log output with the "*wref-test*" tag. From it we can see that GREF 0x10043e is created, wrapped by WREF 0x2f70001d, a GC is performed, and then the WREF is used with JNIEnv::NewGlobalRef(), which returns 0x200426, which (coincidentally) is also the value that ART complains about: "accessed deleted global reference 0x00200426".
Of possible interest: this bug impacts every Xamarin.Android app, as a "transit" from global references to weak global references and back is performed as part of the GC process. JNIEnv::NewGlobalRef() returning NULL is properly handled; JNIEnv::NewGlobalRef() returning a non-NULL value for a collected instance is _not_ handled, and results in Xamarin.Android believing that the object is still alive when it, in fact, is not still alive.
`adb logcat` output:
I/art ( 6658): CheckJNI enabled: not enabling JNI app bug workarounds.
I/*wref-test*( 6658): +g+ h=0x50d00021/L[8] -> n=0x10042a/G[266]
I/*wref-test*( 6658): +g+ h=0x50f00021/L[8] -> n=0x10042e/G[267]
I/*wref-test*( 6658): +g+ h=0x51100021/L[8] -> n=0x100432/G[268]
I/*wref-test*( 6658): # begin
I/*wref-test*( 6658): +g+ h=0x2f70001d/L[7] -> n=0x10043e/G[271]
I/*wref-test*( 6658): +w+ h=0x10043e/G[271] -> n=0x100003/W[0]
I/*wref-test*( 6658): -g- h=0x10043e/G[271]
I/*wref-test*( 6658): # GC!
I/*wref-test*( 6658): +g+ h=0x100003/W[0] -> n=0x200426/G[265]
I/*wref-test*( 6658): -w- h=0x100003/W[0]
I/*wref-test*( 6658): # Using uncollected value: 0x200426
E/art ( 6658): JNI ERROR (app bug): accessed deleted global reference 0x00200426
I/art ( 6658): 0x418d7948 SpaceTypeImageSpacebegin=0x60000000,end=0x60a9bdb0,size=10MB,name="/data/dalvik-cache/system@framework@boot.art"]
I/art ( 6658): 0x418d7918 imagespace /data/dalvik-cache/system@framework@boot.art live-bitmap 0[begin=0x60000000,end=0x60a9be00]
I/art ( 6658): 0x418d7918 imagespace /data/dalvik-cache/system@framework@boot.art live-bitmap 0[begin=0x60000000,end=0x60a9be00]
I/art ( 6658): 0x418d7e00 SpaceTypeZygoteSpace begin=0x64633000,end=0x65525000,size=14MB,capacity=14MB,name="zygote space"]
I/art ( 6658): 0x418d7ec0 allocspace zygote space live-bitmap 0[begin=0x64633000,end=0x65525000]
I/art ( 6658): 0x418d7f20 allocspace zygote space mark-bitmap 0[begin=0x64633000,end=0x65525000]
I/art ( 6658): 0x4730ebd0 SpaceTypeAllocSpace begin=0x65525000,end=0x65545000,size=128KB,capacity=177MB,name="alloc space"]
I/art ( 6658): 0x418e40d0 allocspace alloc space live-bitmap 1[begin=0x65525000,end=0x70633000]
I/art ( 6658): 0x418d55f8 allocspace alloc space mark-bitmap 1[begin=0x65525000,end=0x70633000]
I/art ( 6658): 0x418d7f50 large object space:GcRetentionPolicyAlwaysCollect
F/art ( 6658): art/runtime/check_jni.cc:64] JNI DETECTED ERROR IN APPLICATION: native code passing in reference to invalid global reference: 0x200426
F/art ( 6658): art/runtime/check_jni.cc:64] in call to CallObjectMethod
F/art ( 6658): art/runtime/check_jni.cc:64] from java.lang.String com.example.hellojni.HelloJni.update(java.lang.String)
F/art ( 6658): art/runtime/check_jni.cc:64] "main" prio=5 tid=1 Runnable
F/art ( 6658): art/runtime/check_jni.cc:64] | group="main" sCount=0 dsCount=0 obj=0x64638ac8 self=0x418e3700
F/art ( 6658): art/runtime/check_jni.cc:64] | sysTid=6658 nice=0 cgrp=apps sched=0/0 handle=0x400ad154
F/art ( 6658): art/runtime/check_jni.cc:64] | state=R schedstat=( 44425886 29912186 110 ) utm=0 stm=4 core=2 HZ=100
F/art ( 6658): art/runtime/check_jni.cc:64] | stack=0xbe426000-0xbe42a000 stackSize=8MB
F/art ( 6658): art/runtime/check_jni.cc:64] native: art::Thread::DumpStack(std::ostream&) const+87 [0x41686edc] (libart.so)
F/art ( 6658): art/runtime/check_jni.cc:64] native: ??? [0x4153483e] (libart.so)
F/art ( 6658): art/runtime/check_jni.cc:64] native: art::JniAbortF(char const*, char const*, ...)+51 [0x415351f4] (libart.so)
F/art ( 6658): art/runtime/check_jni.cc:64] native: ??? [0x415378e4] (libart.so)
F/art ( 6658): art/runtime/check_jni.cc:64] native: ??? [0x41538762] (libart.so)
F/art ( 6658): art/runtime/check_jni.cc:64] native: ??? [0x4153b310] (libart.so)
F/art ( 6658): art/runtime/check_jni.cc:64] native: Java_com_example_hellojni_HelloJni_update+220 [0x4417947c] (libhello-jni.so)
F/art ( 6658): art/runtime/check_jni.cc:64] at com.example.hellojni.HelloJni.update(Native method)
F/art ( 6658): art/runtime/check_jni.cc:64] at com.example.hellojni.HelloJni.onCreate(HelloJni.java:33)
F/art ( 6658): art/runtime/check_jni.cc:64] at android.app.Activity.performCreate(Activity.java:5231)
F/art ( 6658): art/runtime/check_jni.cc:64] at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
F/art ( 6658): art/runtime/check_jni.cc:64] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
F/art ( 6658): art/runtime/check_jni.cc:64] at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
F/art ( 6658): art/runtime/check_jni.cc:64] at android.app.ActivityThread.access$800(ActivityThread.java:135)
F/art ( 6658): art/runtime/check_jni.cc:64] at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
F/art ( 6658): art/runtime/check_jni.cc:64] at android.os.Handler.dispatchMessage(Handler.java:102)
F/art ( 6658): art/runtime/check_jni.cc:64] at android.os.Looper.loop(Looper.java:136)
F/art ( 6658): art/runtime/check_jni.cc:64] at android.app.ActivityThread.main(ActivityThread.java:5017)
F/art ( 6658): art/runtime/check_jni.cc:64] at java.lang.reflect.Method.invoke(Native method)
F/art ( 6658): art/runtime/check_jni.cc:64] at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
F/art ( 6658): art/runtime/check_jni.cc:64] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
F/art ( 6658): art/runtime/check_jni.cc:64]
F/art ( 6658): art/runtime/runtime.cc:203] Runtime aborting...
F/art ( 6658): art/runtime/runtime.cc:203] Aborting thread:
F/art ( 6658): art/runtime/runtime.cc:203] "main" prio=5 tid=1 Runnable
F/art ( 6658): art/runtime/runtime.cc:203] | group="main" sCount=0 dsCount=0 obj=0x64638ac8 self=0x418e3700
F/art ( 6658): art/runtime/runtime.cc:203] | sysTid=6658 nice=0 cgrp=apps sched=0/0 handle=0x400ad154
F/art ( 6658): art/runtime/runtime.cc:203] | state=R schedstat=( 62205469 29951561 112 ) utm=1 stm=5 core=2 HZ=100
F/art ( 6658): art/runtime/runtime.cc:203] | stack=0xbe426000-0xbe42a000 stackSize=8MB
F/art ( 6658): art/runtime/runtime.cc:203] native: art::Thread::DumpStack(std::ostream&) const+87 [0x41686edc] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x4167f06c] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: art::Runtime::Abort()+79 [0x4167f5fc] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: art::LogMessage::~LogMessage()+505 [0x4152c93a] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x41534a5c] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: art::JniAbortF(char const*, char const*, ...)+51 [0x415351f4] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x415378e4] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x41538762] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x4153b310] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: Java_com_example_hellojni_HelloJni_update+220 [0x4417947c] (libhello-jni.so)
F/art ( 6658): art/runtime/runtime.cc:203] at com.example.hellojni.HelloJni.update(Native method)
F/art ( 6658): art/runtime/runtime.cc:203] at com.example.hellojni.HelloJni.onCreate(HelloJni.java:33)
F/art ( 6658): art/runtime/runtime.cc:203] at android.app.Activity.performCreate(Activity.java:5231)
F/art ( 6658): art/runtime/runtime.cc:203] at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
F/art ( 6658): art/runtime/runtime.cc:203] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
F/art ( 6658): art/runtime/runtime.cc:203] at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
F/art ( 6658): art/runtime/runtime.cc:203] at android.app.ActivityThread.access$800(ActivityThread.java:135)
F/art ( 6658): art/runtime/runtime.cc:203] at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
F/art ( 6658): art/runtime/runtime.cc:203] at android.os.Handler.dispatchMessage(Handler.java:102)
F/art ( 6658): art/runtime/runtime.cc:203] at android.os.Looper.loop(Looper.java:136)
F/art ( 6658): art/runtime/runtime.cc:203] at android.app.ActivityThread.main(ActivityThread.java:5017)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.reflect.Method.invoke(Native method)
F/art ( 6658): art/runtime/runtime.cc:203] at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
F/art ( 6658): art/runtime/runtime.cc:203] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
F/art ( 6658): art/runtime/runtime.cc:203] Dumping all threads without appropriate locks held: thread list lock mutator lock
F/art ( 6658): art/runtime/runtime.cc:203] All threads:
F/art ( 6658): art/runtime/runtime.cc:203] DALVIK THREADS (13):
F/art ( 6658): art/runtime/runtime.cc:203] "main" prio=5 tid=1 Native
F/art ( 6658): art/runtime/runtime.cc:203] | group="main" sCount=0 dsCount=0 obj=0x64638ac8 self=0x418e3700
F/art ( 6658): art/runtime/runtime.cc:203] | sysTid=6658 nice=0 cgrp=apps sched=0/0 handle=0x400ad154
F/art ( 6658): art/runtime/runtime.cc:203] | state=R schedstat=( 75131094 30051197 114 ) utm=1 stm=6 core=2 HZ=100
F/art ( 6658): art/runtime/runtime.cc:203] | stack=0xbe426000-0xbe42a000 stackSize=8MB
F/art ( 6658): art/runtime/runtime.cc:203] native: art::Thread::DumpStack(std::ostream&) const+87 [0x41686edc] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: art::ThreadList::DumpLocked(std::ostream&)+67 [0x41691e4c] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x4167f11e] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: art::Runtime::Abort()+79 [0x4167f5fc] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: art::LogMessage::~LogMessage()+505 [0x4152c93a] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x41534a5c] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: art::JniAbortF(char const*, char const*, ...)+51 [0x415351f4] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x415378e4] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x41538762] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x4153b310] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: Java_com_example_hellojni_HelloJni_update+220 [0x4417947c] (libhello-jni.so)
F/art ( 6658): art/runtime/runtime.cc:203] at com.example.hellojni.HelloJni.update(Native method)
F/art ( 6658): art/runtime/runtime.cc:203] at com.example.hellojni.HelloJni.onCreate(HelloJni.java:33)
F/art ( 6658): art/runtime/runtime.cc:203] at android.app.Activity.performCreate(Activity.java:5231)
F/art ( 6658): art/runtime/runtime.cc:203] at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
F/art ( 6658): art/runtime/runtime.cc:203] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
F/art ( 6658): art/runtime/runtime.cc:203] at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
F/art ( 6658): art/runtime/runtime.cc:203] at android.app.ActivityThread.access$800(ActivityThread.java:135)
F/art ( 6658): art/runtime/runtime.cc:203] at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
F/art ( 6658): art/runtime/runtime.cc:203] at android.os.Handler.dispatchMessage(Handler.java:102)
F/art ( 6658): art/runtime/runtime.cc:203] at android.os.Looper.loop(Looper.java:136)
F/art ( 6658): art/runtime/runtime.cc:203] at android.app.ActivityThread.main(ActivityThread.java:5017)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.reflect.Method.invoke(Native method)
F/art ( 6658): art/runtime/runtime.cc:203] at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
F/art ( 6658): art/runtime/runtime.cc:203] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
F/art ( 6658): art/runtime/runtime.cc:203]
F/art ( 6658): art/runtime/runtime.cc:203] "Thread pool worker 1" prio=5 tid=2 Native (still starting up)
F/art ( 6658): art/runtime/runtime.cc:203] | group="" sCount=0 dsCount=0 obj=0x00000000 self=0x441bdc60
F/art ( 6658): art/runtime/runtime.cc:203] | sysTid=6665 nice=0 cgrp=apps sched=0/0 handle=0x441bc7f0
F/art ( 6658): art/runtime/runtime.cc:203] | state=S schedstat=( 395001 91405 7 ) utm=0 stm=0 core=2 HZ=100
F/art ( 6658): art/runtime/runtime.cc:203] | stack=0x44066000-0x4406a000 stackSize=1024KB
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x4731451c] ([anon:libc_malloc])
F/art ( 6658): art/runtime/runtime.cc:203] (no managed stack frames)
F/art ( 6658): art/runtime/runtime.cc:203]
F/art ( 6658): art/runtime/runtime.cc:203] "Thread pool worker 2" prio=5 tid=3 Native (still starting up)
F/art ( 6658): art/runtime/runtime.cc:203] | group="" sCount=0 dsCount=0 obj=0x00000000 self=0x4730e368
F/art ( 6658): art/runtime/runtime.cc:203] | sysTid=6666 nice=0 cgrp=apps sched=0/0 handle=0x441bca38
F/art ( 6658): art/runtime/runtime.cc:203] | state=S schedstat=( 401616 277759 6 ) utm=0 stm=0 core=1 HZ=100
F/art ( 6658): art/runtime/runtime.cc:203] | stack=0x47788000-0x4778c000 stackSize=1024KB
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x4731451c] ([anon:libc_malloc])
F/art ( 6658): art/runtime/runtime.cc:203] (no managed stack frames)
F/art ( 6658): art/runtime/runtime.cc:203]
F/art ( 6658): art/runtime/runtime.cc:203] "Thread pool worker 0" prio=5 tid=4 Native (still starting up)
F/art ( 6658): art/runtime/runtime.cc:203] | group="" sCount=0 dsCount=0 obj=0x00000000 self=0x441bdfe8
F/art ( 6658): art/runtime/runtime.cc:203] | sysTid=6663 nice=0 cgrp=apps sched=0/0 handle=0x441bc5a8
F/art ( 6658): art/runtime/runtime.cc:203] | state=S schedstat=( 166042 390885 9 ) utm=0 stm=0 core=2 HZ=100
F/art ( 6658): art/runtime/runtime.cc:203] | stack=0x417a0000-0x417a4000 stackSize=1024KB
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x4731451c] ([anon:libc_malloc])
F/art ( 6658): art/runtime/runtime.cc:203] (no managed stack frames)
F/art ( 6658): art/runtime/runtime.cc:203]
F/art ( 6658): art/runtime/runtime.cc:203] "Signal Catcher" daemon prio=5 tid=5 WaitingInMainSignalCatcherLoop
F/art ( 6658): art/runtime/runtime.cc:203] | group="system" sCount=0 dsCount=0 obj=0x6552a518 self=0x47313f40
F/art ( 6658): art/runtime/runtime.cc:203] | sysTid=6667 nice=0 cgrp=apps sched=0/0 handle=0x441be268
F/art ( 6658): art/runtime/runtime.cc:203] | state=S schedstat=( 434896 100990 3 ) utm=0 stm=0 core=0 HZ=100
F/art ( 6658): art/runtime/runtime.cc:203] | stack=0x47888000-0x4788c000 stackSize=1016KB
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x4168306b] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: art::SignalCatcher::WaitForSignal(art::Thread*, art::SignalSet&)+46 [0x416833d7] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: art::SignalCatcher::Run(void*)+176 [0x4168494d] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: __thread_entry+72 [0x400cf170] (libc.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: pthread_create+240 [0x400cf308] (libc.so)
F/art ( 6658): art/runtime/runtime.cc:203] (no managed stack frames)
F/art ( 6658): art/runtime/runtime.cc:203]
F/art ( 6658): art/runtime/runtime.cc:203] "JDWP" daemon prio=5 tid=6 WaitingInMainDebuggerLoop
F/art ( 6658): art/runtime/runtime.cc:203] | group="system" sCount=0 dsCount=0 obj=0x6552a5e0 self=0x473128f0
F/art ( 6658): art/runtime/runtime.cc:203] | sysTid=6668 nice=0 cgrp=apps sched=0/0 handle=0x473126a8
F/art ( 6658): art/runtime/runtime.cc:203] | state=S schedstat=( 193959 256302 3 ) utm=0 stm=0 core=0 HZ=100
F/art ( 6658): art/runtime/runtime.cc:203] | stack=0x47986000-0x4798a000 stackSize=1016KB
F/art ( 6658): art/runtime/runtime.cc:203] native: art::JDWP::JdwpAdbState::Accept()+100 [0x416c0599] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: art::JDWP::JdwpState::Run()+282 [0x415d5597] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x415d6873] (libart.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: __thread_entry+72 [0x400cf170] (libc.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: pthread_create+240 [0x400cf308] (libc.so)
F/art ( 6658): art/runtime/runtime.cc:203] (no managed stack frames)
F/art ( 6658): art/runtime/runtime.cc:203]
F/art ( 6658): art/runtime/runtime.cc:203] "ReferenceQueueDaemon" daemon prio=5 tid=7 Waiting
F/art ( 6658): art/runtime/runtime.cc:203] | group="system" sCount=0 dsCount=0 obj=0x6552a680 self=0x47312c78
F/art ( 6658): art/runtime/runtime.cc:203] | sysTid=6669 nice=0 cgrp=apps sched=0/0 handle=0x47316f10
F/art ( 6658): art/runtime/runtime.cc:203] | state=S schedstat=( 152396 63125 2 ) utm=0 stm=0 core=0 HZ=100
F/art ( 6658): art/runtime/runtime.cc:203] | stack=0x47a84000-0x47a88000 stackSize=1040KB
F/art ( 6658): art/runtime/runtime.cc:203] native: (no native stack frames for thread 6669)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Object.wait(Native method)
F/art ( 6658): art/runtime/runtime.cc:203] - waiting on <0x600c2148> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:133)
F/art ( 6658): art/runtime/runtime.cc:203] - locked <0x600c2148> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Thread.run(Thread.java:811)
F/art ( 6658): art/runtime/runtime.cc:203]
F/art ( 6658): art/runtime/runtime.cc:203] "FinalizerDaemon" daemon prio=5 tid=8 Waiting
F/art ( 6658): art/runtime/runtime.cc:203] | group="system" sCount=0 dsCount=0 obj=0x65525378 self=0x473177d8
F/art ( 6658): art/runtime/runtime.cc:203] | sysTid=6670 nice=0 cgrp=apps sched=0/0 handle=0x47317ad8
F/art ( 6658): art/runtime/runtime.cc:203] | state=S schedstat=( 253073 115104 2 ) utm=0 stm=0 core=0 HZ=100
F/art ( 6658): art/runtime/runtime.cc:203] | stack=0x47b88000-0x47b8c000 stackSize=1040KB
F/art ( 6658): art/runtime/runtime.cc:203] native: (no native stack frames for thread 6670)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Object.wait(Native method)
F/art ( 6658): art/runtime/runtime.cc:203] - waiting on <0x60a73360> (a java.lang.ref.ReferenceQueue)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Object.wait(Object.java:411)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
F/art ( 6658): art/runtime/runtime.cc:203] - locked <0x60a73360> (a java.lang.ref.ReferenceQueue)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:173)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Thread.run(Thread.java:811)
F/art ( 6658): art/runtime/runtime.cc:203]
F/art ( 6658): art/runtime/runtime.cc:203] "FinalizerWatchdogDaemon" daemon prio=5 tid=9 Waiting
F/art ( 6658): art/runtime/runtime.cc:203] | group="system" sCount=0 dsCount=0 obj=0x65526558 self=0x473183a0
F/art ( 6658): art/runtime/runtime.cc:203] | sysTid=6671 nice=0 cgrp=apps sched=0/0 handle=0x473186a0
F/art ( 6658): art/runtime/runtime.cc:203] | state=S schedstat=( 74896 170052 2 ) utm=0 stm=0 core=0 HZ=100
F/art ( 6658): art/runtime/runtime.cc:203] | stack=0x47c8c000-0x47c90000 stackSize=1040KB
F/art ( 6658): art/runtime/runtime.cc:203] native: (no native stack frames for thread 6671)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Object.wait(Native method)
F/art ( 6658): art/runtime/runtime.cc:203] - waiting on <0x60a7ad58> (a java.lang.Daemons$FinalizerWatchdogDaemon)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Daemons$FinalizerWatchdogDaemon.waitForObject(Daemons.java:233)
F/art ( 6658): art/runtime/runtime.cc:203] - locked <0x60a7ad58> (a java.lang.Daemons$FinalizerWatchdogDaemon)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:210)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Thread.run(Thread.java:811)
F/art ( 6658): art/runtime/runtime.cc:203]
F/art ( 6658): art/runtime/runtime.cc:203] "HeapTrimmerDaemon" daemon prio=5 tid=10 Waiting
F/art ( 6658): art/runtime/runtime.cc:203] | group="system" sCount=0 dsCount=0 obj=0x65527708 self=0x47318f68
F/art ( 6658): art/runtime/runtime.cc:203] | sysTid=6672 nice=0 cgrp=apps sched=0/0 handle=0x47319268
F/art ( 6658): art/runtime/runtime.cc:203] | state=S schedstat=( 50468 0 1 ) utm=0 stm=0 core=0 HZ=100
F/art ( 6658): art/runtime/runtime.cc:203] | stack=0x47d90000-0x47d94000 stackSize=1040KB
F/art ( 6658): art/runtime/runtime.cc:203] native: (no native stack frames for thread 6672)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Object.wait(Native method)
F/art ( 6658): art/runtime/runtime.cc:203] - waiting on <0x60a7ad18> (a java.lang.Daemons$HeapTrimmerDaemon)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Daemons$HeapTrimmerDaemon.run(Daemons.java:299)
F/art ( 6658): art/runtime/runtime.cc:203] - locked <0x60a7ad18> (a java.lang.Daemons$HeapTrimmerDaemon)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Thread.run(Thread.java:811)
F/art ( 6658): art/runtime/runtime.cc:203]
F/art ( 6658): art/runtime/runtime.cc:203] "GCDaemon" daemon prio=5 tid=11 Waiting
F/art ( 6658): art/runtime/runtime.cc:203] | group="system" sCount=0 dsCount=0 obj=0x65528910 self=0x47319b30
F/art ( 6658): art/runtime/runtime.cc:203] | sysTid=6673 nice=0 cgrp=apps sched=0/0 handle=0x47319e30
F/art ( 6658): art/runtime/runtime.cc:203] | state=S schedstat=( 65990 51302 1 ) utm=0 stm=0 core=0 HZ=100
F/art ( 6658): art/runtime/runtime.cc:203] | stack=0x47e94000-0x47e98000 stackSize=1040KB
F/art ( 6658): art/runtime/runtime.cc:203] native: (no native stack frames for thread 6673)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Object.wait(Native method)
F/art ( 6658): art/runtime/runtime.cc:203] - waiting on <0x60a7ad08> (a java.lang.Daemons$GCDaemon)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Daemons$GCDaemon.run(Daemons.java:330)
F/art ( 6658): art/runtime/runtime.cc:203] - locked <0x60a7ad08> (a java.lang.Daemons$GCDaemon)
F/art ( 6658): art/runtime/runtime.cc:203] at java.lang.Thread.run(Thread.java:811)
F/art ( 6658): art/runtime/runtime.cc:203]
F/art ( 6658): art/runtime/runtime.cc:203] "Binder_1" prio=5 tid=12 Native
F/art ( 6658): art/runtime/runtime.cc:203] | group="main" sCount=0 dsCount=0 obj=0x655301e8 self=0x4731aaa8
F/art ( 6658): art/runtime/runtime.cc:203] | sysTid=6674 nice=0 cgrp=apps sched=0/0 handle=0x4731a860
F/art ( 6658): art/runtime/runtime.cc:203] | state=S schedstat=( 885676 4462654 5 ) utm=0 stm=0 core=0 HZ=100
F/art ( 6658): art/runtime/runtime.cc:203] | stack=0x48096000-0x4809a000 stackSize=1016KB
F/art ( 6658): art/runtime/runtime.cc:203] native: android::IPCThreadState::talkWithDriver(bool)+140 [0x40179375] (libbinder.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: android::IPCThreadState::getAndExecuteCommand()+6 [0x40179a7f] (libbinder.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: android::IPCThreadState::joinThreadPool(bool)+48 [0x40179b15] (libbinder.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x4017d921] (libbinder.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: android::Thread::_threadLoop(void*)+216 [0x40148a5d] (libutils.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: android::AndroidRuntime::javaThreadShell(void*)+68 [0x401d5d81] (libandroid_runtime.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x4014858f] (libutils.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: __thread_entry+72 [0x400cf170] (libc.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: pthread_create+240 [0x400cf308] (libc.so)
F/art ( 6658): art/runtime/runtime.cc:203] (no managed stack frames)
F/art ( 6658): art/runtime/runtime.cc:203]
F/art ( 6658): art/runtime/runtime.cc:203] "Binder_2" prio=5 tid=13 Native
F/art ( 6658): art/runtime/runtime.cc:203] | group="main" sCount=0 dsCount=0 obj=0x65536910 self=0x4731b9c8
F/art ( 6658): art/runtime/runtime.cc:203] | sysTid=6675 nice=0 cgrp=apps sched=0/0 handle=0x4731b780
F/art ( 6658): art/runtime/runtime.cc:203] | state=S schedstat=( 1466303 5714114 6 ) utm=0 stm=0 core=1 HZ=100
F/art ( 6658): art/runtime/runtime.cc:203] | stack=0x48194000-0x48198000 stackSize=1016KB
F/art ( 6658): art/runtime/runtime.cc:203] native: android::IPCThreadState::talkWithDriver(bool)+140 [0x40179375] (libbinder.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: android::IPCThreadState::getAndExecuteCommand()+6 [0x40179a7f] (libbinder.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: android::IPCThreadState::joinThreadPool(bool)+48 [0x40179b15] (libbinder.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x4017d921] (libbinder.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: android::Thread::_threadLoop(void*)+216 [0x40148a5d] (libutils.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: android::AndroidRuntime::javaThreadShell(void*)+68 [0x401d5d81] (libandroid_runtime.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: ??? [0x4014858f] (libutils.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: __thread_entry+72 [0x400cf170] (libc.so)
F/art ( 6658): art/runtime/runtime.cc:203] native: pthread_create+240 [0x400cf308] (libc.so)
F/art ( 6658): art/runtime/runtime.cc:203] (no managed stack frames)
F/art ( 6658): art/runtime/runtime.cc:203]
F/art ( 6658): art/runtime/runtime.cc:203]
F/libc ( 6658): Fatal signal 6 I/DEBUG ( 174): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***