4.2 is crashing due to missing hwcomposer apis

Bug #1081597 reported by vishal
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro Android
Fix Released
Critical
Bernhard Rosenkraenzer

Bug Description

Tracking panda 4.2 is crashing in hwcomposer. Logs at http://paste.ubuntu.com/1374640/

Tags: juice
vishal (vishalbhoj)
Changed in linaro-android:
importance: Undecided → Critical
Revision history for this message
Bernhard Rosenkraenzer (berolinux) wrote :

Looks like something is calling a NULL pointer here -- this may be caused by acquire() calling mHwc->blank() without checking that for NULL first. Same goes on in HWComposer::release.

Possible fix:

diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
index 31d731e..9d37816 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
@@ -679,14 +679,15 @@ status_t HWComposer::release(int disp) {
     LOG_FATAL_IF(disp >= HWC_NUM_DISPLAY_TYPES);
     if (mHwc) {
         eventControl(disp, HWC_EVENT_VSYNC, 0);
- return (status_t)mHwc->blank(mHwc, disp, 1);
+ if(mHwc->blank)
+ return (status_t)mHwc->blank(mHwc, disp, 1);
     }
     return NO_ERROR;
 }

 status_t HWComposer::acquire(int disp) {
     LOG_FATAL_IF(disp >= HWC_NUM_DISPLAY_TYPES);
- if (mHwc) {
+ if (mHwc && mHwc->blank) {
         return (status_t)mHwc->blank(mHwc, disp, 0);
     }
     return NO_ERROR;

Alexander Sack (asac)
tags: added: juice
Revision history for this message
Bernhard Rosenkraenzer (berolinux) wrote :
Download full text (16.6 KiB)

Multiple issues involved.

New error after fixing the mHwc->blank invocation:

W/gralloc ( 1242): FBIOPUT_VSCREENINFO failed, page flipping not supported
W/gralloc ( 1242): page flipping not supported (yres_virtual=1080, requested=2160)
I/gralloc ( 1242): using (fd=12)
I/gralloc ( 1242): id = omapdrm
I/gralloc ( 1242): xres = 1920 px
I/gralloc ( 1242): yres = 1080 px
I/gralloc ( 1242): xres_virtual = 1920 px
I/gralloc ( 1242): yres_virtual = 1080 px
I/gralloc ( 1242): bpp = 32
I/gralloc ( 1242): r = 16:8
I/gralloc ( 1242): g = 8:8
I/gralloc ( 1242): b = 0:8
I/gralloc ( 1242): width = 305 mm (159.895081 dpi)
I/gralloc ( 1242): height = 171 mm (160.421051 dpi)
I/gralloc ( 1242): refresh rate = 60.00 Hz
I/SurfaceFlinger( 1242): Using composer version 1.0
W/SurfaceFlinger( 1242): getting VSYNC period from fb HAL: 16666666
W/SurfaceFlinger( 1242): no suitable EGLConfig found, trying without EGL_FRAMEBUFFER_TARGET_ANDROID
W/SurfaceFlinger( 1242): no suitable EGLConfig found, trying without EGL_RECORDABLE_ANDROID
W/SurfaceFlinger( 1242): no suitable EGLConfig found, trying with 16-bit color allowed
E/SurfaceFlinger( 1242): no suitable EGLConfig found, giving up
E/Trace ( 1242): error opening trace file: Permission denied (13)
I/SurfaceFlinger( 1242): EGL informations:
I/SurfaceFlinger( 1242): vendor : Android
I/SurfaceFlinger( 1242): version : 1.4 Android META-EGL
I/SurfaceFlinger( 1242): extensions: EGL_KHR_image_base EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer
I/SurfaceFlinger( 1242): Client API: OpenGL_ES
I/SurfaceFlinger( 1242): EGLSurface: 5-6-5-0, config=0x0
I/SurfaceFlinger( 1242): OpenGL ES informations:
I/SurfaceFlinger( 1242): vendor : Android
I/SurfaceFlinger( 1242): renderer : Android PixelFlinger 1.4
I/SurfaceFlinger( 1242): version : OpenGL ES-CM 1.0
I/SurfaceFlinger( 1242): extensions: GL_EXT_debug_marker GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_single_precision GL_OES_read_format GL_OE
I/SurfaceFlinger( 1242): GL_MAX_TEXTURE_SIZE = 4096
I/SurfaceFlinger( 1242): GL_MAX_VIEWPORT_DIMS = 4096 x 4096
D/SurfaceFlinger( 1242): Screen acquired, type=0 flinger=0x41e9b318
F/libc ( 1242): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 1616 (EventThread)
I/DEBUG ( 1241): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 1241): Build fingerprint: 'pandaboard/pandaboard/pandaboard:4.2/JOP40C/eng.bero.20121121.145241:eng/test-keys'
I/DEBUG ( 1241): Revision: '0'
I/DEBUG ( 1241): pid: 1242, tid: 1616, name: EventThread >>> /system/bin/surfaceflinger <<<
I/DEBUG ( 1241): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
I/DEBUG ( 1241): r0 41e9b9a8 r1 00000000 r2 00000000 r3 00000001
I/DEBUG ( 1241): r4 00000001 r5 41e9b838 r6 41e9b7f0 r7 401389d4
I/DEBUG ( 1241): r8 00000001 r9 00000000 sl 41e9b8d8 fp 00000000
I/DEBUG ( 1241): ip 40138c94 sp 416ded60 lr 4012415b pc 00000000 cpsr 60070110
I/DEBUG ( 1241): d0 0000100000001000 d1 6573
[ 9.054656] init: untracked pid 1676 exited
736572706d6f
I/DEBUG ( 1241): d2 000000090000000...

Changed in linaro-android:
milestone: none → 12.11
Revision history for this message
Bernhard Rosenkraenzer (berolinux) wrote :
Changed in linaro-android:
assignee: nobody → Bernhard Rosenkraenzer (berolinux)
status: New → Fix Committed
vishal (vishalbhoj)
summary: - tracking panda 4.2 is crashing due to hwcomposer
+ 4.2 is crashing due to missing hwcomposer apis
Fathi Boudra (fboudra)
Changed in linaro-android:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.