Thanks for replying!

I've tried HW acceleration both ON and OFF, but unfortunately neither 
stopped the crashing.  I also just tried lowering android:targetSdkVersion 
to 11, but that didn't help either =(

There's some interplay with other parts of the app that I just have to 
find.  For the record the HTML5 doesn't hang in the S3 web browser, so I 
know that the system isn't intrinsically incapable of this ;^^

On Friday, October 12, 2012 7:39:04 PM UTC+8, Anthony Prieur wrote:
>
> Try HW acceleration ON or OFF, ICS Webview has troubles with some CSS/CSS3 
> + HW acceleration. Also try to lower android:targetSdkVersion to 11 for 
> example.
>
>
> Le jeudi 11 octobre 2012 08:09:54 UTC+2, Johnabre a écrit :
>>
>> I have a complex, interactive HTML5 in an Android WebView - and it works 
>> fine on basically all platforms except Galaxy S3.  On Galaxy S3 (Android 
>> 4.0.4), once out of every 5 times or so, just after the load completes, 
>> /system/lib/libwebcore.so tries to access invalid memory and a Fatal signal 
>> 11 (SIGSEGV) at [various addresses] (code=1) is thrown.
>>
>> The HTML5 is a tiny battle where enemies appear and the user slashes them 
>> to proceed.  In between battles are normal html pages: normal page -> HTML5 
>> battle -> normal page -> HTML5 battle -> normal page -> HTML5 battle.  The 
>> HTML5 doesn't do anything particularly out-of-the-box - there's a lot of 
>> -webkit-animation calls...
>>
>>     .enemy {
>>     position:absolute;
>>     opacity:0;
>>     -webkit-animation:enemyAnim 0.6s linear 0.2s;
>>     }
>>
>> …that reference a lot of -webkit-keyframes...
>>
>>     @-webkit-keyframes enemyAnim {
>>     from {
>>      -webkit-transform: matrix(1, 0, 0, 1, 144.25, 150.25) scale(1, 1);
>>      opacity:1;
>>     }
>>     8.33% {
>>      -webkit-transform: matrix(1, 0, 0, 1, 189.406, 102.206) 
>> scale(1.3066, 1.3066);
>>      opacity:1;
>>     }
>>     16.66% {
>>      -webkit-transform: matrix(1, 0, 0, 1, 200.424, 82.649) scale(1.414, 
>> 1.414);
>>      opacity:1;
>>     }
>>     /*…*/
>>
>> And a fairly complex div tree, but nothing particularly experimental. 
>>  There's some level of Javascript, but the hangs appear to occur even with 
>> all Javascript turned off.
>>
>> Has anyone ever had a problem with a Galaxy S3 being…different?  No 
>> Android 2.x devices have this problem, and even a Galaxy Nexus running 
>> 4.1.1 doesn't seem to have any particular problem.  I've never been tempted 
>> to write to Stack Overflow before, but this is really vexing me...
>>
>> Searching on "Android WebView sigsegv crash" & "4.0.4 WebView sigsegv 
>> crash" gives several issues, but:
>>
>> - webview.clearCache()/webView.destroyDrawingCache() don't seem to have 
>> an effect (though this hang is clearly a memory issue, adding/removing 
>> System.gc()s in various places had no great result)
>> http://stackoverflow.com/questions/4973310/signal-11-sigsegv-crash-android
>>
>> - There's no use of canvas as in
>>
>> http://stackoverflow.com/questions/10989120/very-strange-crash-drawing-on-canvas-on-android-4-0-3-a-libc-fatal-signal-11
>> (Yes I know - calling this page HTML5 is a bit of a stretch)
>>
>> - There's no use of clearView() as in
>>
>> http://stackoverflow.com/questions/12261523/execute-webview-loadurl-after-webview-clearview-multitimes-will-cause-crash
>>
>> - There's no use of preserve-3d as in
>> http://code.google.com/p/android/issues/detail?id=16563
>>
>> - I looked at the changelist for android webkit looking for suspicious 
>> fixes after 4.0.4, and thought I had something with the below, but rooting 
>> the S3 and taking it to 4.1.1 didn't fix the issue:
>>
>> https://github.com/teamgummy/android_external_webkit/commit/61e0d189f2b74650bf72a6a2820f66a8b17c3d06
>>
>> Since some of the crashes are occuring during memory free()s, I know that 
>> things are being free'd around the time of the crash and my gut feeling is 
>> that some things are being freed mid-render that shouldn't be.  It's 
>> frustrating because SIGSEGVs should be physically impossible with pure 
>> HTML, JS, & CSS =/
>>
>> Below is a sample crash report.  Note that the crash location is not 
>> limited to the below; crash reports don't seem to be wildly different but 
>> there seems to be some variation in location.
>>
>>     10-08 17:34:06.605: I/DEBUG(524): *** *** *** *** *** *** *** *** *** 
>> *** *** *** *** *** *** ***
>>     10-08 17:34:06.605: I/DEBUG(524): Build fingerprint: 
>> 'samsung/m0xx/m0:4.0.4/IMM76D/I9300XXBLH1:user/release-keys'
>>     10-08 17:34:06.605: I/DEBUG(524): pid: 7443, tid: 7443  >>> 
>> cool.tiny.rpg.battle <<<
>>     10-08 17:34:06.605: I/DEBUG(524): signal 11 (SIGSEGV), code 1 
>> (SEGV_MAPERR), fault addr deadbaad
>>     10-08 17:34:06.605: I/DEBUG(524):  r0 deadbaad  r1 00000001  r2 
>> 40000000  r3 00000000
>>     10-08 17:34:06.605: I/DEBUG(524):  r4 00000000  r5 00000027  r6 
>> 400d8540  r7 400e74f4
>>     10-08 17:34:06.605: I/DEBUG(524):  r8 01fa7160  r9 00000000  10 
>> bed6a584  fp 41d79970
>>     10-08 17:34:06.605: I/DEBUG(524):  ip ffffffff  sp bed6a2b0  lr 
>> 400b9639  pc 400b59c8  cpsr 68000030
>>     10-08 17:34:06.605: I/DEBUG(524):  d0  0000000000000000  d1 
>>  4343000000000000
>>     10-08 17:34:06.605: I/DEBUG(524):  d2  43b6800041a00000  d3 
>>  41a8000043020000
>>     10-08 17:34:06.610: I/DEBUG(524):  d4  8000000000000000  d5 
>>  43aa00003f800000
>>     10-08 17:34:06.610: I/DEBUG(524):  d6  43a4000043430000  d7 
>>  43cb000041a00000
>>     10-08 17:34:06.610: I/DEBUG(524):  d8  4082f00000000000  d9 
>>  4082f4000000025e
>>     10-08 17:34:06.610: I/DEBUG(524):  d10 4460400000000500  d11 
>> 0000000000000000
>>     10-08 17:34:06.610: I/DEBUG(524):  d12 0000000000000000  d13 
>> 0000000000000000
>>     10-08 17:34:06.610: I/DEBUG(524):  d14 0000000000000000  d15 
>> 0000000000000000
>>     10-08 17:34:06.610: I/DEBUG(524):  d16 4076800000000000  d17 
>> 7e37e43c8800759c
>>     10-08 17:34:06.610: I/DEBUG(524):  d18 0000000000000000  d19 
>> 0000000000000000
>>     10-08 17:34:06.610: I/DEBUG(524):  d20 3ff0000000000000  d21 
>> 8000000000000000
>>     10-08 17:34:06.610: I/DEBUG(524):  d22 0000000000000000  d23 
>> 0000000000000000
>>     10-08 17:34:06.610: I/DEBUG(524):  d24 0000000000000000  d25 
>> 3ff0000000000000
>>     10-08 17:34:06.610: I/DEBUG(524):  d26 4034000000000000  d27 
>> 3ff0000000000000
>>     10-08 17:34:06.610: I/DEBUG(524):  d28 0000000000000000  d29 
>> 3ff0000000000000
>>     10-08 17:34:06.610: I/DEBUG(524):  d30 0000000000000000  d31 
>> 3ff0000000000000
>>     10-08 17:34:06.610: I/DEBUG(524):  scr 60000010
>>     10-08 17:34:06.750: I/DEBUG(524):          #00  pc 000179c8 
>>  /system/lib/libc.so
>>     10-08 17:34:06.750: I/DEBUG(524):          #01  pc 00013852 
>>  /system/lib/libc.so
>>     10-08 17:34:06.750: I/DEBUG(524):          #02  pc 00015b90 
>>  /system/lib/libc.so (dlfree)
>>     10-08 17:34:06.750: I/DEBUG(524):          #03  pc 00016208 
>>  /system/lib/libc.so (free)
>>     10-08 17:34:06.750: I/DEBUG(524):          #04  pc 0010f79c 
>>  /system/lib/libwebcore.so (_Z6yyfreePvS_)
>>     10-08 17:34:06.750: I/DEBUG(524):          #05  pc 0010ef70 
>>  /system/lib/libwebcore.so
>>     10-08 17:34:06.750: I/DEBUG(524):          #06  pc 003ee8ec 
>>  /system/lib/libwebcore.so
>>     10-08 17:34:06.755: I/DEBUG(524):          #07  pc 003eef44 
>>  /system/lib/libwebcore.so (_ZN7WebCore12LayerAndroidD1Ev)
>>     10-08 17:34:06.755: I/DEBUG(524):          #08  pc 003eef84 
>>  /system/lib/libwebcore.so (_ZN7WebCore12LayerAndroidD0Ev)
>>     10-08 17:34:06.755: I/DEBUG(524):          #09  pc 0019b2ca 
>>  /system/lib/libwebcore.so
>>     10-08 17:34:06.755: I/DEBUG(524):          #10  pc 003ec6a0 
>>  /system/lib/libwebcore.so (_ZN5Layer14removeChildrenEv)
>>     10-08 17:34:06.755: I/DEBUG(524):          #11  pc 003ec782 
>>  /system/lib/libwebcore.so (_ZN5LayerD2Ev)
>>     10-08 17:34:06.760: I/DEBUG(524):          #12  pc 003eef70 
>>  /system/lib/libwebcore.so (_ZN7WebCore12LayerAndroidD1Ev)
>>     10-08 17:34:06.760: I/DEBUG(524):          #13  pc 003eef84 
>>  /system/lib/libwebcore.so (_ZN7WebCore12LayerAndroidD0Ev)
>>     10-08 17:34:06.760: I/DEBUG(524):          #14  pc 0019b2ca 
>>  /system/lib/libwebcore.so
>>     10-08 17:34:06.760: I/DEBUG(524):          #15  pc 003ec6a0 
>>  /system/lib/libwebcore.so (_ZN5Layer14removeChildrenEv)
>>     10-08 17:34:06.760: I/DEBUG(524):          #16  pc 003ec782 
>>  /system/lib/libwebcore.so (_ZN5LayerD2Ev)
>>     10-08 17:34:06.760: I/DEBUG(524):          #17  pc 003eef70 
>>  /system/lib/libwebcore.so (_ZN7WebCore12LayerAndroidD1Ev)
>>     10-08 17:34:06.760: I/DEBUG(524):          #18  pc 003eef84 
>>  /system/lib/libwebcore.so (_ZN7WebCore12LayerAndroidD0Ev)
>>     10-08 17:34:06.760: I/DEBUG(524):          #19  pc 0019b2ca 
>>  /system/lib/libwebcore.so
>>     10-08 17:34:06.760: I/DEBUG(524):          #20  pc 003ec6a0 
>>  /system/lib/libwebcore.so (_ZN5Layer14removeChildrenEv)
>>     10-08 17:34:06.765: I/DEBUG(524):          #21  pc 003ec782 
>>  /system/lib/libwebcore.so (_ZN5LayerD2Ev)
>>     10-08 17:34:06.765: I/DEBUG(524):          #22  pc 003eef70 
>>  /system/lib/libwebcore.so (_ZN7WebCore12LayerAndroidD1Ev)
>>     10-08 17:34:06.765: I/DEBUG(524):          #23  pc 003eef84 
>>  /system/lib/libwebcore.so (_ZN7WebCore12LayerAndroidD0Ev)
>>     10-08 17:34:06.765: I/DEBUG(524):          #24  pc 0019b2ca 
>>  /system/lib/libwebcore.so
>>     10-08 17:34:06.765: I/DEBUG(524):          #25  pc 003ec6a0 
>>  /system/lib/libwebcore.so (_ZN5Layer14removeChildrenEv)
>>     10-08 17:34:06.765: I/DEBUG(524):          #26  pc 003ec782 
>>  /system/lib/libwebcore.so (_ZN5LayerD2Ev)
>>     10-08 17:34:06.765: I/DEBUG(524):          #27  pc 003eef70 
>>  /system/lib/libwebcore.so (_ZN7WebCore12LayerAndroidD1Ev)
>>     10-08 17:34:06.765: I/DEBUG(524):          #28  pc 003eef84 
>>  /system/lib/libwebcore.so (_ZN7WebCore12LayerAndroidD0Ev)
>>     10-08 17:34:06.770: I/DEBUG(524):          #29  pc 0019b2ca 
>>  /system/lib/libwebcore.so
>>     10-08 17:34:06.770: I/DEBUG(524):          #30  pc 003ec6a0 
>>  /system/lib/libwebcore.so (_ZN5Layer14removeChildrenEv)
>>     10-08 17:34:06.770: I/DEBUG(524):          #31  pc 003ec782 
>>  /system/lib/libwebcore.so (_ZN5LayerD2Ev)
>>     10-08 17:34:06.770: I/DEBUG(524): memory map around addr deadbaad:
>>     10-08 17:34:06.770: I/DEBUG(524): bed4a000-bed6b000 [stack]
>>     10-08 17:34:06.770: I/DEBUG(524): (no map for address)
>>     10-08 17:34:06.770: I/DEBUG(524): ffff0000-ffff1000 [vectors]
>>     10-08 17:34:06.770: I/DEBUG(524): stack:
>>     10-08 17:34:06.770: I/DEBUG(524):     bed6a270  00000001  
>>     10-08 17:34:06.770: I/DEBUG(524):     bed6a274  bed6a2b0  [stack]
>>     10-08 17:34:06.770: I/DEBUG(524):     bed6a278  400e2800 
>>  /system/lib/libc.so
>>     10-08 17:34:06.770: I/DEBUG(524):     bed6a27c  0000000c  
>>     10-08 17:34:06.770: I/DEBUG(524):     bed6a280  400e2794 
>>  /system/lib/libc.so
>>     10-08 17:34:06.770: I/DEBUG(524):     bed6a284  400e7888  
>>     10-08 17:34:06.770: I/DEBUG(524):     bed6a288  00000000  
>>     10-08 17:34:06.770: I/DEBUG(524):     bed6a28c  400b9639 
>>  /system/lib/libc.so
>>     10-08 17:34:06.770: I/DEBUG(524):     bed6a290  00000000  
>>     10-08 17:34:06.770: I/DEBUG(524):     bed6a294  bed6a2c4  [stack]
>>     10-08 17:34:06.770: I/DEBUG(524):     bed6a298  400d8540 
>>  /system/lib/libc.so
>>     10-08 17:34:06.770: I/DEBUG(524):     bed6a29c  400e74f4  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2a0  01fa7160  [heap]
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2a4  400b87a5 
>>  /system/lib/libc.so
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2a8  df0027ad  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2ac  00000000  
>>     10-08 17:34:06.775: I/DEBUG(524): #00 bed6a2b0  bed6a2ac  [stack]
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2b4  00000001  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2b8  400d8524 
>>  /system/lib/libc.so
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2bc  00000005  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2c0  bed6a2dc  [stack]
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2c4  fffffbdf  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2c8  bed6a2dc  [stack]
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2cc  bed6a2dc  [stack]
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2d0  400dbaac 
>>  /system/lib/libc.so
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2d4  400b1857 
>>  /system/lib/libc.so
>>     10-08 17:34:06.775: I/DEBUG(524): #01 bed6a2d8  00000130  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2dc  20404040  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2e0  524f4241 
>>  /dev/ashmem/dalvik-mark-stack (deleted)
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2e4  474e4954 
>>  /dev/ashmem/dalvik-heap (deleted)
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2e8  4e49203a 
>>  /dev/ashmem/dalvik-heap (deleted)
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2ec  494c4156 
>>  /dev/ashmem/dalvik-heap (deleted)
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2f0  45482044 
>>  /dev/ashmem/dalvik-heap (deleted)
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2f4  41205041 
>>  /dev/ashmem/dalvik-heap (deleted)
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2f8  45524444 
>>  /dev/ashmem/dalvik-heap (deleted)
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a2fc  49205353 
>>  /dev/ashmem/dalvik-heap (deleted)
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a300  6c64204e  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a304  65657266  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a308  01f86700  [heap]
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a30c  406f6a2c 
>>  /system/lib/libskia.so
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a310  406c4ecc 
>>  /system/lib/libskia.so
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a314  3ff00000  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a318  00000000  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a31c  00000000  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a320  00000000  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a324  00000000  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a328  00000000  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a32c  01c9aa08  [heap]
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a330  00000000  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a334  00000000  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a338  00000000  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a33c  3ff00000  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a340  60d00000  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a344  60e42ff0  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a348  014bb000  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a34c  400e74f4  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a350  01bc24b0  [heap]
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a354  400e7550  
>>     10-08 17:34:06.775: I/DEBUG(524):     bed6a358  01f74458  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a35c  400e7528  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a360  00000010  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a364  400e74f4  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a368  01f74460  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a36c  00000000  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a370  bed6a584  [stack]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a374  400b3ba9 
>>  /system/lib/libc.so
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a378  0211c9a0  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a37c  020d499c  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a380  000097a0 
>>  /system/bin/app_process
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a384  00004000  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a388  01d087b8  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a38c  400e7560  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a390  01dc6ef8  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a394  400e7528  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a398  01fd5378  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a39c  400e7580  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3a0  01ddafa8  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3a4  01ddb008  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3a8  01ed4568  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3ac  400e7580  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3b0  00000068  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3b4  400e74f4  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3b8  01ed4570  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3bc  00000014  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3c0  00000000  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3c4  400b3ba9 
>>  /system/lib/libc.so
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3c8  00000000  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3cc  01ae77d8  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3d0  01fa7160  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3d4  01fd7d2c  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3d8  00000009  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3dc  4dfa26b2 
>>  /dev/ashmem/dalvik-heap (deleted)
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3e0  01fa7158  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3e4  01fd7d2c  [heap]
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3e8  00000009  
>>     10-08 17:34:06.780: I/DEBUG(524):     bed6a3ec  400b3b95 
>>  /system/lib/libc.so
>>
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to