开发app过程中发现每次第二天来上班的时候,app已经挂了,设备的以太网也自己关闭了,纳闷是怎么回事,导出了一下log发现
01-11 22:00:03.066 E/Fence ( 153): Throttling EGL Production: fence 85 didn't signal in 3000 ms
01-11 22:00:55.567 E/OpenGLRenderer(25946): GL error: Out of memory!
01-11 22:00:55.568 F/OpenGLRenderer(25946): GL errors! frameworks/base/libs/hwui/renderthread/CanvasContext.cpp:550
01-11 22:00:55.569 F/libc (25946): Fatal signal 6 (SIGABRT), code -6 in tid 25973 (RenderThread)
01-11 22:00:55.570 W/ ( 180): debuggerd: handling request: pid=25946 uid=10044 gid=10044 tid=25973
01-11 22:00:55.669 F/DEBUG (26129): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-11 22:00:55.670 F/DEBUG (26129): Build fingerprint: 'Android/rk3128_box/rk3128_box:7.1.2/NHG47K/linlin08311438:userdebug/test-keys'
01-11 22:00:55.670 F/DEBUG (26129): Revision: '0'
01-11 22:00:55.671 F/DEBUG (26129): ABI: 'arm'
01-11 22:00:55.672 F/DEBUG (26129): pid: 25946, tid: 25973, name: RenderThread >>> cn.cleartv.intercom <<<
01-11 22:00:55.672 F/DEBUG (26129): signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
01-11 22:00:55.691 F/DEBUG (26129): Abort message: 'GL errors! frameworks/base/libs/hwui/renderthread/CanvasContext.cpp:550'
01-11 22:00:55.692 F/DEBUG (26129): r0 00000000 r1 00006575 r2 00000006 r3 00000008
01-11 22:00:55.692 F/DEBUG (26129): r4 925ff978 r5 00000006 r6 925ff920 r7 0000010c
01-11 22:00:55.692 F/DEBUG (26129): r8 9266c7c0 r9 00000000 sl aa96123c fp aa961238
01-11 22:00:55.692 F/DEBUG (26129): ip 00000002 sp 925fef38 lr aacd6267 pc aacd8ac4 cpsr 20070010
01-11 22:00:55.729 F/DEBUG (26129):
01-11 22:00:55.729 F/DEBUG (26129): backtrace:
01-11 22:00:55.729 F/DEBUG (26129): #00 pc 00049ac4 /system/lib/libc.so (tgkill+12)
01-11 22:00:55.729 F/DEBUG (26129): #01 pc 00047263 /system/lib/libc.so (pthread_kill+34)
01-11 22:00:55.730 F/DEBUG (26129): #02 pc 0001d515 /system/lib/libc.so (raise+10)
01-11 22:00:55.730 F/DEBUG (26129): #03 pc 00019061 /system/lib/libc.so (__libc_android_abort+34)
01-11 22:00:55.730 F/DEBUG (26129): #04 pc 00017024 /system/lib/libc.so (abort+4)
01-11 22:00:55.730 F/DEBUG (26129): #05 pc 0000c3c9 /system/lib/libcutils.so (__android_log_assert+112)
01-11 22:00:55.730 F/DEBUG (26129): #06 pc 000240d7 /system/lib/libhwui.so
01-11 22:00:55.731 F/DEBUG (26129): #07 pc 00025ad3 /system/lib/libhwui.so
01-11 22:00:55.731 F/DEBUG (26129): #08 pc 00029095 /system/lib/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+80)
01-11 22:00:55.731 F/DEBUG (26129): #09 pc 0000e345 /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+140)
01-11 22:00:55.731 F/DEBUG (26129): #10 pc 00066685 /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+80)
01-11 22:00:55.732 F/DEBUG (26129): #11 pc 00046d33 /system/lib/libc.so (_ZL15__pthread_startPv+22)
01-11 22:00:55.732 F/DEBUG (26129): #12 pc 00019aad /system/lib/libc.so (__start_thread+6)
以为是内存泄漏了,直接挂profiler放了一晚上,最后图像是这样的:
看起来内存是没什么问题的,突然就死掉了
不过重点不是app自己死了,他引发了各种系统服务ANR,watchDog打了个日志直接把系统重启了
这个现象大概有如下特点:
帮忙测试的同事跟我反馈,不装我们app就不会有问题,挂了几天都没事,所以觉得应该还是我这app做错了什么事。
百度发现有人也遇到过类似情况,不过他是文件句柄fd泄露了,我这边也测试了一下并没有什么问题。
这阵子我在尝试把代码一部分一部分注释掉看看是哪里引发的问题。有没有人见过这种情况,可能是什么导致的?
内存溢出
使用leakcanary分析一下app是不是存在内存泄漏。