Summary: | Lots of Crashes when using Canvex (Canvas Technology Demo) | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Elliott Sprehn <esprehn> | ||||||||||||||
Component: | New Bugs | Assignee: | 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
Elliott Sprehn
2007-04-29 02:02:04 PDT
Created attachment 14258 [details]
Crash Log Sample 1
Created attachment 14259 [details]
Crash Log Sample 2
Created attachment 14260 [details]
Crash Log Sample 3
Created attachment 14261 [details]
Crash Log Sample 4
Created attachment 14262 [details]
Crash Log Sample 5
Created attachment 14263 [details]
Crash Log Sample 6
I did get a crash, but only after playing with the demo for several minutes. 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. No 2 of these crash logs look related. I can reproduce these crashes, though. (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. 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. 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. I believe other changes to canvas have now fixed this problem. |