1、dvm aborts for acceesing stale referencedvm aborts for acceesing stale reference本文主要描述Android下由于线程同步问题引起的dvm访问已经销毁的对象的Issue.文末, 会给出bug定位和参考解决方案.可以做为MIB 系统BUG定位和分析参考资料. Log标志E dalvikvm: JNI ERROR (app bug): accessed stale global reference 0x%p (index %d in a table of size %d)E dalvikvm: VM aborting详细
2、LOG和分析如下.Log:09-08 08:28:48.979 28320 28332 W MediaMetadataRetriever: MediaMetadataRetriever server died!09-08 08:28:48.979 28169 28180 W IMediaDeathNotifier: media server died09-08 08:28:48.979 28169 28180 W MediaMetadataRetriever: MediaMetadataRetriever server died!09-08 08:28:48.979 28169 28180 W
3、 Camera : Camera server died!09-08 08:28:48.979 27992 28003 W IMediaDeathNotifier: media server died09-08 08:28:48.979 27992 28003 E MediaPlayer: error (100, 0)09-08 08:28:48.979 27992 28003 E MediaPlayer: Mediaserver died in 8 state09-08 08:28:48.979 868 1521 W IMediaDeathNotifier: media server die
4、d09-08 08:28:48.979 354 1539 W IMediaDeathNotifier: media server died09-08 08:28:48.989 28396 28408 W IMediaDeathNotifier: media server died09-08 08:28:48.999 354 917 I WindowManager: hardware key case09-08 08:28:48.999 25720 25731 W AudioSystem: AudioFlinger server died!09-08 08:28:48.999 868 2532
5、W AudioSystem: AudioFlinger server died!09-08 08:28:48.999 28169 28333 W AudioSystem: AudioFlinger server died!09-08 08:28:49.009 25720 25733 W AudioSystem: AudioPolicyService server died!09-08 08:28:49.009 868 1521 W AudioSystem: AudioPolicyService server died!09-08 08:28:49.009 354 365 W AudioEffe
6、ct: IEffect died09-08 08:28:49.009 27992 28004 W AudioSystem: AudioFlinger server died!09-08 08:28:49.009 354 1103 W AudioSystem: AudioFlinger server died!09-08 08:28:49.009 354 1103 E AudioEffectService: binderDied : AudioFlinger is dead.09-08 08:28:49.009 354 1539 W AudioSystem: AudioPolicyService
7、 server died!09-08 08:28:49.009 354 365 W AudioEffects-JNI: EVENT_ERROR09-08 08:28:49.009 354 365 E dalvikvm: JNI ERROR (app bug): accessed stale global reference 0x17010a (index 49218 in a table of size 1638)09-08 08:28:49.009 354 365 E dalvikvm: VM aborting09-08 08:28:49.009 354 365 F libc : Fatal
8、 signal 11 (SIGSEGV) at 0xdeadd00d (code=1)09-08 08:28:49.019 28396 28410 W AudioSystem: AudioFlinger server died!09-08 08:28:49.039 123 251 E msm7627a.hwcomposer: isValidDestination: destination out of bound params09-08 08:28:49.429 30394 30394 I DEBUG : * * * * * * * * * * * * * * * *09-08 08:28:4
9、9.429 30394 30394 I DEBUG : Build fingerprint: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx:userdebug/release-keys09-08 08:28:49.429 30394 30394 I DEBUG : pid: 354, tid: 365 system_server 09-08 08:28:49.429 30394 30394 I DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadd00d09-08 08:28:49.429 30394
10、 30394 I DEBUG : r0 00000000 r1 01468428 r2 00000000 r3 0000000009-08 08:28:49.429 30394 30394 I DEBUG : r4 deadd00d r5 408e2f68 r6 0000020c r7 51811d0009-08 08:28:49.429 30394 30394 I DEBUG : r8 00000001 r9 4d27ebbe 10 49041fb0 fp 51811c9009-08 08:28:49.429 30394 30394 I DEBUG : ip 00000000 sp 5181
11、1a48 lr 4087e37b pc 4087e37a cpsr 6000003009-08 08:28:49.429 30394 30394 I DEBUG : d0 74726f6261204d56 d1 000000000000006e09-08 08:28:49.429 30394 30394 I DEBUG : d2 0000000000000075 d3 000000000000006c09-08 08:28:49.429 30394 30394 I DEBUG : d4 00650074006e0069 d5 006c0061006e007209-08 08:28:49.429
12、 30394 30394 I DEBUG : d6 006500690076002e d7 00490049002e007709-08 08:28:49.429 30394 30394 I DEBUG : d8 0000000000000000 d9 000000000000000009-08 08:28:49.429 30394 30394 I DEBUG : d10 0000000000000000 d11 000000000000000009-08 08:28:49.429 30394 30394 I DEBUG : d12 0000000000000000 d13 0000000000
13、00000009-08 08:28:49.429 30394 30394 I DEBUG : d14 0000000000000000 d15 000000000000000009-08 08:28:49.429 30394 30394 I DEBUG : d16 4b09a5c200000001 d17 006800740065004d09-08 08:28:49.429 30394 30394 I DEBUG : d18 000000000064006f d19 0000017f73622a8509-08 08:28:49.429 30394 30394 I DEBUG : d20 000
14、0000000000000 d21 000000000000000109-08 08:28:49.429 30394 30394 I DEBUG : d22 ffffffff00000000 d23 ffffffff0000000109-08 08:28:49.429 30394 30394 I DEBUG : d24 0000000000000000 d25 3ff00cccc000000009-08 08:28:49.429 30394 30394 I DEBUG : d26 c064200000000000 d27 3ff011112000000009-08 08:28:49.429 3
15、0394 30394 I DEBUG : d28 c0013f2a99247550 d29 bfc3748ac84f4e4709-08 08:28:49.429 30394 30394 I DEBUG : d30 bc57a6b66a32bbb3 d31 be57e7d32380000009-08 08:28:49.429 30394 30394 I DEBUG : scr 6000001209-08 08:28:49.429 30394 30394 I DEBUG :09-08 08:28:49.739 30571 30571 E AudioHardwareMSM76XXA: failed
16、to open AUTO_VOLUME_CONTROL /system/etc/AutoVolumeControl.txt: No such file or directory (2)09-08 08:28:49.769 30571 30571 E QualcommCamera: Qint android:get_number_of_cameras(): E09-08 08:28:49.969 30394 30394 I DEBUG : #00 pc 0005137a /system/lib/libdvm.so (dvmAbort)09-08 08:28:49.969 30394 30394
17、I DEBUG : #01 pc 00033238 /system/lib/libdvm.so (_ZNK16IndirectRefTable3getEPv)09-08 08:28:49.969 30394 30394 I DEBUG : #02 pc 00055e3e /system/lib/libdvm.so (_Z20dvmDecodeIndirectRefP6ThreadP8_jobject)09-08 08:28:49.969 30394 30394 I DEBUG : #03 pc 0006bdb0 /system/lib/libdvm.so (_Z14dvmCallMethodV
18、P6ThreadPK6MethodP6ObjectbP6JValueSt9_va_list)09-08 08:28:49.969 30394 30394 I DEBUG : #04 pc 00055782 /system/lib/libdvm.so09-08 08:28:49.969 30394 30394 I DEBUG : #05 pc 00001496 /system/lib/libaudioeffect_jni.so09-08 08:28:49.969 30394 30394 I DEBUG : #06 pc 00001892 /system/lib/libaudioeffect_jn
19、i.so09-08 08:28:49.969 30394 30394 I DEBUG : #07 pc 0004e16e /system/lib/libmedia.so (_ZN7android11AudioEffect10binderDiedEv)09-08 08:28:49.969 30394 30394 I DEBUG : #08 pc 0004e190 /system/lib/libmedia.so09-08 08:28:49.969 30394 30394 I DEBUG : #09 pc 00018116 /system/lib/libbinder.so (_ZN7android8
20、BpBinder14reportOneDeathERKNS0_8ObituaryE)09-08 08:28:49.969 30394 30394 I DEBUG : #10 pc 00018186 /system/lib/libbinder.so (_ZN7android8BpBinder12sendObituaryEv)09-08 08:28:49.979 30394 30394 I DEBUG : #11 pc 0001b200 /system/lib/libbinder.so (_ZN7android14IPCThreadState14executeCommandEi)09-08 08:
21、28:49.979 30394 30394 I DEBUG : #12 pc 0001b36e /system/lib/libbinder.so (_ZN7android14IPCThreadState14joinThreadPoolEb)09-08 08:28:49.979 30394 30394 I DEBUG : #13 pc 000204bc /system/lib/libbinder.so09-08 08:28:49.979 30394 30394 I DEBUG : #14 pc 0002331e /system/lib/libutils.so (_ZN7android6Threa
22、d11_threadLoopEPv)09-08 08:28:49.979 30394 30394 I DEBUG : #15 pc 000462ac /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv)09-08 08:28:49.979 30394 30394 I DEBUG : #16 pc 00023964 /system/lib/libutils.so09-08 08:28:49.979 30394 30394 I DEBUG : #17 pc 00012e14 /syst
23、em/lib/libc.so (_thread_entry)09-08 08:28:49.979 30394 30394 I DEBUG : #18 pc 00012968 /system/lib/libc.so (pthread_create)09-08 08:28:49.979 30394 30394 I DEBUG :09-08 08:28:49.979 30394 30394 I DEBUG : code around pc:09-08 08:28:49.979 30394 30394 I DEBUG : 4087e358 34bcf8d3 efacf7cd 26001e73 2f01
24、f813 .4.s.&./09-08 08:28:49.979 30394 30394 I DEBUG : 4087e368 42abb152 d0074416 4798e7f8 f7ff4c0a R.B.D.G.L.09-08 08:28:49.979 30394 30394 I DEBUG : 4087e378 7026ffa7 efa2f7cd 2006490c 44794a0c .&p.I. .JyD09-08 08:28:49.979 30394 30394 I DEBUG : 4087e388 f7cd447a 2000ee5e ef1af7cd 58e54b05 zD. .K.X
25、09-08 08:28:49.979 30394 30394 I DEBUG : 4087e398 2b006c6b e7e9d1e9 deadd00d 0005fc88 kl.+.09-08 08:28:49.979 30394 30394 I DEBUG :09-08 08:28:49.979 30394 30394 I DEBUG : code around lr:09-08 08:28:49.979 30394 30394 I DEBUG : 4087e358 34bcf8d3 efacf7cd 26001e73 2f01f813 .4.s.&./09-08 08:28:49.979
26、30394 30394 I DEBUG : 4087e368 42abb152 d0074416 4798e7f8 f7ff4c0a R.B.D.G.L.09-08 08:28:49.979 30394 30394 I DEBUG : 4087e378 7026ffa7 efa2f7cd 2006490c 44794a0c .&p.I. .JyD09-08 08:28:49.979 30394 30394 I DEBUG : 4087e388 f7cd447a 2000ee5e ef1af7cd 58e54b05 zD. .K.X09-08 08:28:49.979 30394 30394 I
27、 DEBUG : 4087e398 2b006c6b e7e9d1e9 deadd00d 0005fc88 kl.+.09-08 08:28:49.979 30394 30394 I DEBUG :09-08 08:28:49.979 30394 30394 I DEBUG : memory map around addr deadd00d:09-08 08:28:49.979 30394 30394 I DEBUG : be942000-be963000 stack09-08 08:28:49.979 30394 30394 I DEBUG : (no map for address)09-
28、08 08:28:49.979 30394 30394 I DEBUG : ffff0000-ffff1000 vectors09-08 08:28:49.989 30394 30394 I DEBUG :09-08 08:28:49.989 30394 30394 I DEBUG : stack:09-08 08:28:49.989 30394 30394 I DEBUG : 51811a08 00000000 09-08 08:28:49.989 30394 30394 I DEBUG : 51811a0c 40091f89 /system/lib/libc.so09-08 08:28:4
29、9.989 30394 30394 I DEBUG : 51811a10 400bb74c /system/lib/libc.so09-08 08:28:49.989 30394 30394 I DEBUG : 51811a14 400c0878 09-08 08:28:49.989 30394 30394 I DEBUG : 51811a18 00000000 09-08 08:28:49.989 30394 30394 I DEBUG : 51811a1c 40093191 /system/lib/libc.so09-08 08:28:49.989 30394 30394 I DEBUG
30、: 51811a20 400bb580 /system/lib/libc.so09-08 08:28:49.989 30394 30394 I DEBUG : 51811a24 00000000 09-08 08:28:49.989 30394 30394 I DEBUG : 51811a28 0000020c 09-08 08:28:49.989 30394 30394 I DEBUG : 51811a2c 51811d00 09-08 08:28:49.989 30394 30394 I DEBUG : 51811a30 00000001 09-08 08:28:49.989 30394
31、30394 I DEBUG : 51811a34 40091fa7 /system/lib/libc.so09-08 08:28:49.989 30394 30394 I DEBUG : 51811a38 408ddfb8 /system/lib/libdvm.so09-08 08:28:49.989 30394 30394 I DEBUG : 51811a3c 51811c4b 09-08 08:28:49.989 30394 30394 I DEBUG : 51811a40 df0027ad 09-08 08:28:49.989 30394 30394 I DEBUG : 51811a44
32、 00000000 09-08 08:28:49.989 30394 30394 I DEBUG : #00 51811a48 56900001 /dev/ashmem/AudioFlinger:Client (deleted)09-08 08:28:49.989 30394 30394 I DEBUG : 51811a4c 6c756e28 09-08 08:28:49.989 30394 30394 I DEBUG : 51811a50 0000296c 09-08 08:28:49.989 30394 30394 I DEBUG : 51811a54 00000000 09-08 08:28:49.989 30394 3039