New issue
Advanced search Search tips

Issue 657528 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Feb 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug

Blocked on:
issue 616554



Sign in to add a comment

Potential race in getBufferSubDataAsync

Project Member Reported by kainino@chromium.org, Oct 19 2016

Issue description

In WebGL2RenderingContextBase.cpp [1]:

// TODO(kainino): What would happen if the DOM was suspended when the
// promise became resolved? Could another JS task happen between the memcpy
// and the promise resolution task, which would see the wrong data?

The answer to this question appears to be yes. We need to figure out a way to fix this.

AFAIK, it's an innocuous, safe race, so we could potentially change the spec to allow it.

[1] https://codereview.chromium.org/2379203002/
 

Comment 1 by kbr@chromium.org, Oct 19 2016

Labels: -Restrict-View-Google
I don't think this needs to be restricted view; agree that the race is completely safe.

It's possible to trigger this by using the debugger to pause get-buffer-sub-data-async-stress.html on line 94 (`Promise.all(promises)`...).
Labels: -Pri-2 Pri-3
Lowering to P3 because this entry point doesn't even exist right now.

Comment 4 by kbr@chromium.org, Jan 12 2017

Blocking: -616554

Comment 5 by kbr@chromium.org, Jan 12 2017

Blockedon: 616554
Status: WontFix (was: Available)
This entry point exists now as a draft extension, but based on a discussion I had a while ago, I'm pretty sure this race doesn't exist. Reproducing this error using the debugger isn't a real issue. (The debugger can cause otherwise-impossible task execution order.)

Sign in to add a comment