Comment 4 for bug 912035

Revision history for this message
Benjamin Gaignard (benjamin-gaignard) wrote :

The bug is systematic with skia_bench, I can reproduce it on snowball with and without libjpeg-turbo.

here is teh stack dump after segfault

F/libc ( 2189): Fatal signal 11 (SIGSEGV) at 0x20db15d4 (code=1)
I/DEBUG ( 1476): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 1476): Build fingerprint: 'snowball/snowball/snowball:4.0.1/ITL41D/eng.frq08944.20111125.113441:eng/test-keys'
I/DEBUG ( 1476): pid: 2189, tid: 2189 >>> skia_bench <<<
I/DEBUG ( 1476): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 20db15d4
I/DEBUG ( 1476): r0 00000000 r1 00033c50 r2 00000001 r3 00000004
I/DEBUG ( 1476): r4 00033c50 r5 20db15d0 r6 20d7d980 r7 401064a8
I/DEBUG ( 1476): r8 401064a8 r9 00000004 10 0000000a fp 00000001
I/DEBUG ( 1476): ip 40106474 sp be8bf868 lr 400d003c pc 400d34ca cpsr 80000030
I/DEBUG ( 1476): d0 65736d63203a3536 d1 393531203d20732e
I/DEBUG ( 1476): d2 000000055f397837 d3 6a2e3538515f3036
I/DEBUG ( 1476): d4 a2a2a2a2a2a2a2a2 d5 a2a2a2a2a2a2a2a2
I/DEBUG ( 1476): d6 3ce46314ccce76dc d7 00000003a1a1a0a0
I/DEBUG ( 1476): d8 0000000000000000 d9 000001aa3f000000
I/DEBUG ( 1476): d10 000000d500000140 d11 00000000000000a0
I/DEBUG ( 1476): d12 0000000000000000 d13 0000000000000000
I/DEBUG ( 1476): d14 0000000000000000 d15 0000000000000000
I/DEBUG ( 1476): d16 3fece81450f1a680 d17 3def1baf9d028a1d
I/DEBUG ( 1476): d18 3fe0000000000000 d19 3fe00000001f1bb0
I/DEBUG ( 1476): d20 a3a2a1a0a0a0a1a1 d21 a3a2a1a09fa0a0a1
I/DEBUG ( 1476): d22 a3a2a1a09fa0a0a1 d23 a2a2a09f9f9fa0a1
I/DEBUG ( 1476): d24 14091414142a143c d25 1474145a14341413
I/DEBUG ( 1476): d26 13fe1409141f1431 d27 1469144f14291408
I/DEBUG ( 1476): d28 13f714021418142a d29 1462144814221401
I/DEBUG ( 1476): d30 13f213fd14131425 d31 145d1443141d13fc
I/DEBUG ( 1476): scr 28000010
I/DEBUG ( 1476):
I/DEBUG ( 1476): #00 pc 000154ca /system/lib/libc.so (dlfree)
I/DEBUG ( 1476): #01 pc 00015ed8 /system/lib/libc.so (free)
I/DEBUG ( 1476): #02 pc 000009bc /system/lib/libstdc++.so (_ZdlPvRKSt9nothrow_t)
I/DEBUG ( 1476): #03 pc 0000cf98 /system/bin/skia_bench
I/DEBUG ( 1476): #04 pc 0000dcba /system/bin/skia_bench
I/DEBUG ( 1476):
I/DEBUG ( 1476): code around pc:
I/DEBUG ( 1476): 400d34a8 44781444 e7f54479 f003686b 2a030203
I/DEBUG ( 1476): 400d34b8 60bebf02 0301f023 d030606b f08042ac
I/DEBUG ( 1476): 400d34c8 686a81c7 f14007d1 f01281c3 f0400102
I/DEBUG ( 1476): 400d34d8 f8df8118 447b3414 42856998 68dad118
I/DEBUG ( 1476): 400d34e8 c408f8df 695a18b6 60de44fc f0464294
I/DEBUG ( 1476):
I/DEBUG ( 1476): code around lr:
I/DEBUG ( 1476): 400d001c e2166903 1a000018 e5945000 e1a02004
I/DEBUG ( 1476): 400d002c e2055a02 e1a00005 e3851001 ebffed43
I/DEBUG ( 1476): 400d003c e3500000 13856002 1a000001 ea000009
I/DEBUG ( 1476): 400d004c ebfffe87 e1a01004 e1a00006 ebffed43
I/DEBUG ( 1476): 400d005c e1a01005 e1a02006 e3a03000 e1550000
I/DEBUG ( 1476):
I/DEBUG ( 1476): stack:
I/DEBUG ( 1476): be8bf828 00000088
I/DEBUG ( 1476): be8bf82c 401064d0
I/DEBUG ( 1476): be8bf830 401064d0
I/DEBUG ( 1476): be8bf834 00000080
I/DEBUG ( 1476): be8bf838 00033f00
I/DEBUG ( 1476): be8bf83c 00033f68
I/DEBUG ( 1476): be8bf840 000150d8 /system/bin/skia_bench
I/DEBUG ( 1476): be8bf844 40106474
I/DEBUG ( 1476): be8bf848 be8bfac0
I/DEBUG ( 1476): be8bf84c 00033c68
I/DEBUG ( 1476): be8bf850 00000001
I/DEBUG ( 1476): be8bf854 00000001
I/DEBUG ( 1476): be8bf858 00033c68
I/DEBUG ( 1476): be8bf85c 0000000a
I/DEBUG ( 1476): be8bf860 df0027ad
I/DEBUG ( 1476): be8bf864 00000000
I/DEBUG ( 1476): #00 be8bf868 be8bfac0
I/DEBUG ( 1476): be8bf86c 00033c68
I/DEBUG ( 1476): be8bf870 00000001
I/DEBUG ( 1476): be8bf874 00000001
I/DEBUG ( 1476): be8bf878 000001e0
I/DEBUG ( 1476): be8bf87c 0000000a
I/DEBUG ( 1476): be8bf880 0000000a
I/DEBUG ( 1476): be8bf884 400d3edb /system/lib/libc.so
I/DEBUG ( 1476): #01 be8bf888 be8bfac0
I/DEBUG ( 1476): be8bf88c 401bf9bf /system/lib/libstdc++.so

with arm-linux-androideabi-addr2line tool we are to able to know from where segfault comes.
The command line is:
"prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-addr2line -C -f -e out/target/product/snowball/symbols/system/bin/skia_bench 0000cf98"
the error is located in file (:line) external/skia/bench/BenchTimer.cpp:32

it is the release of this->fGpuTimer

The error occur only at the end of skia_bench so all the performance tests are done the value could be retrieved in android log ($logcat -d)