RESOLVED WORKSFORME 25055
Maximum sized canvas hangs/crashes Safari
https://bugs.webkit.org/show_bug.cgi?id=25055
Summary Maximum sized canvas hangs/crashes Safari
Eric Seidel (no email)
Reported 2009-04-06 01:15:54 PDT
Maximum sized canvas hangs/crashes Safari I was trying to create a test case for bug 23212 and in doing so, I ended up finding a related bug in our handling of large canvas sizes. When running the attached test case, the following in spewed to the console: Mon Apr 6 01:05:51 DumpRenderTree[2296] <Error>: CGBitmapContextCreateImage: failed to allocate 1073741824 bytes. Mon Apr 6 01:05:51 DumpRenderTree[2296] <Error>: CGImageCreate: invalid image provider: NULL. Mon Apr 6 01:05:51 DumpRenderTree[2296] <Error>: CGImageSourceGetStatusAtIndex image source parameter is nil Mon Apr 6 01:05:51 DumpRenderTree[2296] <Error>: CGImageSourceGetStatusAtIndex image source parameter is nil Mostly from under the BitmapImage::paint() method call. Safari then hangs at 100% CPU (indefinitely, as far as I can tell) under: 940 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] 940 -[NSView _drawRect:clip:] 940 -[NSScroller drawRect:] 940 -[NSScroller drawKnobSlotInRect:highlight:] 940 -[NSScroller _old_drawKnobSlotInRect:highlight:] 940 Draw3PartImage 940 _NSTileImageWithOperation 940 NSRectFillUsingOperation 940 CGContextFillRect 940 CGContextFillRects 940 ripc_DrawRects 940 ripc_Render 940 ripc_GetColor 940 ripl_Create 940 __spin_lock 940 __spin_lock Probably CG has just been made unhappy at that point. ;) P1 because this seems to be a reproducible hang/crash.
Attachments
hang report (6.11 KB, text/plain)
2009-04-06 01:18 PDT, Eric Seidel (no email)
no flags
max-canvas-size test, which causes hang (1.51 KB, text/html)
2009-04-06 01:19 PDT, Eric Seidel (no email)
no flags
Eric Seidel (no email)
Comment 1 2009-04-06 01:18:01 PDT
Created attachment 29270 [details] hang report
Eric Seidel (no email)
Comment 2 2009-04-06 01:19:02 PDT
Created attachment 29271 [details] max-canvas-size test, which causes hang
Note You need to log in before you can comment on or make changes to this bug.