Forums - Galaxy S5 crash onPause

1 post / 0 new
Galaxy S5 crash onPause
muzzinb
Join Date: 10 Jan 13
Posts: 2
Posted: Fri, 2015-07-17 12:20

We have a report of a crash when our App is sent into the background, immediately after the onPause event. From the callstack, I would assume this is during the destruction of the context. The device is a Galaxy S5, Adreno 330 chip. The logcat output is as follows:

F/libc    (29341): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x14 in tid 29374 (GLThread 358701)
I/DEBUG   (15307): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   (15307): Build fingerprint: 'Verizon/kltevzw/kltevzw:5.0/LRX21T/G900VVRU1BOA8:user/release-keys'
I/DEBUG   (15307): Revision: '14'
I/DEBUG   (15307): ABI: 'arm'
I/DEBUG   (15307): pid: 29341, tid: 29374, name: GLThread 358701  >>> com.company.App <<<
I/DEBUG   (15307): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x14
I/DEBUG   (15307):     r0 ffffffff  r1 fffffff4  r2 00000001  r3 b6f51fc4
I/DEBUG   (15307):     r4 00000000  r5 ffffff28  r6 00000001  r7 b6f45fd8
I/DEBUG   (15307):     r8 0000000d  r9 0000000c  sl 00000000  fp a9fa2df1
I/DEBUG   (15307):     ip 9f8eede8  sp af3ff7a8  lr b6eefa35  pc b6f262ac  cpsr 20030030
I/DEBUG   (15307): 
I/DEBUG   (15307): backtrace:
I/DEBUG   (15307):     #00 pc 000462ac  /system/lib/libc.so (ifree+47)
I/DEBUG   (15307):     #01 pc 0000fa33  /system/lib/libc.so (free+10)
I/DEBUG   (15307):     #02 pc 0011d873  /system/vendor/lib/libsc-a3xx.so
I/DEBUG   (15307):     #03 pc 0010b3f5  /system/vendor/lib/libsc-a3xx.so
I/DEBUG   (15307):     #04 pc 000cd615  /system/vendor/lib/libsc-a3xx.so
I/DEBUG   (15307):     #05 pc 000cd625  /system/vendor/lib/libsc-a3xx.so
I/DEBUG   (15307):     #06 pc 000c477d  /system/vendor/lib/libsc-a3xx.so
I/DEBUG   (15307):     #07 pc 000fc1d1  /system/vendor/lib/libsc-a3xx.so (__free_shader_object+56)
I/DEBUG   (15307):     #08 pc 0006305b  /system/vendor/lib/egl/libGLESv2_adreno.so
I/DEBUG   (15307):     #09 pc 0006308f  /system/vendor/lib/egl/libGLESv2_adreno.so (delete_shader_object+22)
I/DEBUG   (15307):     #10 pc 0005f0f7  /system/vendor/lib/egl/libGLESv2_adreno.so (nobj_decrease_refcount+44)
I/DEBUG   (15307):     #11 pc 0005fe15  /system/vendor/lib/egl/libGLESv2_adreno.so (delete_program_object+36)
I/DEBUG   (15307):     #12 pc 0005f135  /system/vendor/lib/egl/libGLESv2_adreno.so (nobj_remove_list+58)
I/DEBUG   (15307):     #13 pc 0006043d  /system/vendor/lib/egl/libGLESv2_adreno.so (delete_program_objects+160)
I/DEBUG   (15307):     #14 pc 00052dbb  /system/vendor/lib/egl/libGLESv2_adreno.so (gl2_context_delete+1254)
I/DEBUG   (15307):     #15 pc 0001ae08  /system/vendor/lib/egl/libEGL_adreno.so (eglDestroyClientApiContext+60)
I/DEBUG   (15307):     #16 pc 0001ae68  /system/vendor/lib/egl/libEGL_adreno.so (eglFreeContext+36)
I/DEBUG   (15307):     #17 pc 0001baf0  /system/vendor/lib/egl/libEGL_adreno.so (eglContextReleaseRef+108)
I/DEBUG   (15307):     #18 pc 00011644  /system/vendor/lib/egl/libEGL_adreno.so (qeglDrvAPI_eglDestroyContext+348)
I/DEBUG   (15307):     #19 pc 000077d0  /system/vendor/lib/egl/libEGL_adreno.so (eglDestroyContext+16)
I/DEBUG   (15307):     #20 pc 000135ab  /system/lib/libEGL.so (eglDestroyContext+66)
I/DEBUG   (15307):     #21 pc 00062b5b  /system/lib/libandroid_runtime.so
I/DEBUG   (15307):     #22 pc 008dbce3  /system/framework/arm/boot.oat

We implement binary shaders in our App, saved from compiled runtime versions. Apparently this crash only happens when *not* using the binary shaders. Since we cache compiled binary shaders when the shaders are used for the first time, this generally only happens when backgrounding the App on the first launch. Subsequent launches load the binary shaders, and work just fine.

Is there some usage of the GLES API that would cause such a crash with this callstack? Perhaps there is some workaround we can implement?

Thanks,

Bart

  • Up0
  • Down0

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.