Bug 13539

Summary: Lots of Crashes when using Canvex (Canvas Technology Demo)
Product: WebKit Reporter: Elliott Sprehn <esprehn>
Component: New BugsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: darin
Priority: P1 Keywords: InRadar, NeedsReduction
Version: 523.x (Safari 3)   
Hardware: Mac   
OS: OS X 10.4   
URL: http://canvex.lazyilluminati.com/83/play.xhtml
Attachments:
Description Flags
Crash Log Sample 1
none
Crash Log Sample 2
none
Crash Log Sample 3
none
Crash Log Sample 4
none
Crash Log Sample 5
none
Crash Log Sample 6 none

Description Elliott Sprehn 2007-04-29 02:02:04 PDT
The Canvex page causes frequent crashes when moving around the game world and resizing the game window.

No reproducible steps yet, though its quite common after corrupting the game world (ref: <http://bugs.webkit.org/show_bug.cgi?id=13537>) and then rezising the game window. This may need to be repeated several times.

Occurs in latest nightly (Sun Apr 29 3:44:55 GMT 2007).
Comment 1 Elliott Sprehn 2007-04-29 02:03:16 PDT
Created attachment 14258 [details]
Crash Log Sample 1
Comment 2 Elliott Sprehn 2007-04-29 02:03:31 PDT
Created attachment 14259 [details]
Crash Log Sample 2
Comment 3 Elliott Sprehn 2007-04-29 02:03:47 PDT
Created attachment 14260 [details]
Crash Log Sample 3
Comment 4 Elliott Sprehn 2007-04-29 02:03:58 PDT
Created attachment 14261 [details]
Crash Log Sample 4
Comment 5 Elliott Sprehn 2007-04-29 02:04:38 PDT
Created attachment 14262 [details]
Crash Log Sample 5
Comment 6 Elliott Sprehn 2007-04-29 02:04:48 PDT
Created attachment 14263 [details]
Crash Log Sample 6
Comment 7 Alexey Proskuryakov 2007-05-01 03:33:20 PDT
I did get a crash, but only after playing with the demo for several minutes.
Comment 8 Eric Seidel (no email) 2007-05-04 00:10:13 PDT
I didn't see it crash.  There seems to be at least one bug with the page though.  It doesn't seem to be calling event.stopDispatch() on the keyboard events to prevent scrolling.
Comment 9 Darin Adler 2007-05-04 19:44:32 PDT
No 2 of these crash logs look related.
Comment 10 Darin Adler 2007-05-04 19:54:38 PDT
I can reproduce these crashes, though.
Comment 11 Elliott Sprehn 2007-05-04 20:04:41 PDT
(In reply to comment #9)
> No 2 of these crash logs look related.
> 

I know. I wasn't sure how to describe them so they were bundled into a single ticket. 

Maciej commented it looked like memory trashing too.
Comment 12 Darin Adler 2007-05-04 21:45:09 PDT
I believe the crashes have something to do with the fact that we keep doing save() operations without matching restore() operations. The rendering context doesn't attempt to do anything to limit how deep that nesting can go. I believe the reason this is happening is that Canvex doesn't expect to get an exception from drawImage, but it gets one.
Comment 13 Darin Adler 2007-05-04 22:12:13 PDT
I don't understand exactly why these crahes are happening, but I suspect that limiting the level of save() stack that the 2D graphics context will allow might solve the problem. Perhaps we can reproduce this by just calling save() a lot in a loop.
Comment 14 Darin Adler 2007-05-04 22:18:39 PDT
<rdar://problem/5183688>
Comment 15 Darin Adler 2007-07-09 10:26:12 PDT
I believe other changes to canvas have now fixed this problem.