Bug 132783 - [iOS WebKit2] REGRESSION (r168493): Canvasmark 2013 benchmark always hits the RELEASE_ASSERT in RemoteLayerTreeDrawingArea::flushLayers()
Summary: [iOS WebKit2] REGRESSION (r168493): Canvasmark 2013 benchmark always hits the...
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit2 (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Tim Horton
Keywords: InRadar
Depends on:
Reported: 2014-05-10 14:20 PDT by Tim Horton
Modified: 2014-05-10 17:54 PDT (History)
5 users (show)

See Also:

patch (2.06 KB, patch)
2014-05-10 14:30 PDT, Tim Horton
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tim Horton 2014-05-10 14:20:29 PDT
Threading is hard (for me).

This page: http://www.kevs3d.co.uk/dev/canvasmark/ always hits the RELEASE_ASSERT added in r168493 when running the benchmark.

However! It's a total lie; we're getting didUpdate back from the UI process on the Web process's main thread while the Web process's CommitQueue is *in between* sendMessage() and setting m_hasFlushed.

So, we assert.

I'm going to move resetting m_hasFlushed *before* sendMessage(), because we really only care about asserting if we start flushing again before we have flushed the contexts; sendMessage() doesn't really have any bearing on flushing correctness.
Comment 1 Radar WebKit Bug Importer 2014-05-10 14:21:46 PDT
Comment 2 Tim Horton 2014-05-10 14:30:08 PDT
Created attachment 231235 [details]
Comment 3 WebKit Commit Bot 2014-05-10 17:54:00 PDT
Comment on attachment 231235 [details]

Clearing flags on attachment: 231235

Committed r168589: <http://trac.webkit.org/changeset/168589>
Comment 4 WebKit Commit Bot 2014-05-10 17:54:03 PDT
All reviewed patches have been landed.  Closing bug.