New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 666061 link

Starred by 4 users

Issue metadata

Status: Verified
Owner:
OOO until 2019-01-24
Closed: Dec 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug

Blocked on:
issue 537054

Blocking:
issue 596622
issue 670426
issue 671791



Sign in to add a comment

Flaky WebGL crashes in WebGLObject::deleteObject on multiple platforms

Project Member Reported by geoffl...@chromium.org, Nov 16 2016

Issue description

The Win7 x64 Release (NVIDIA) bot has failed the last few builds in a row with different failures in  the WebGL (1 and 2) conformance tests.  No obvious suspects.  There is one WebGL roll (https://codereview.chromium.org/2506863002) but I think it's unlikely to cause flakiness across all the tests.

The failures are all crashes with the same stack trace:
	blink::WebGLObject::deleteObject [0x000007FEEC271703+23]
	blink::WebGLObject::onDetached [0x000007FEEC2717AF+27]
	blink::WebGLProgram::deleteObjectImpl [0x000007FEEC270A68+52]
	blink::WebGLObject::deleteObject [0x000007FEEC27173F+83]
	blink::WebGLSharedObject::detachContextGroup [0x000007FEEC27875F+31]
	blink::WebGLContextGroup::detachAndRemoveAllObjects [0x000007FEEC272DE2+118]
	blink::WebGLContextGroup::loseContextGroup [0x000007FEEC27319D+33]
	blink::WebGLRenderingContextBase::forceLostContext [0x000007FEEC247FDC+84]
	blink::WebGLRenderingContextBase::stop [0x000007FEEC251696+34]
	blink::HTMLCanvasElement::contextDestroyed [0x000007FEEB9DAC81+25]
	blink::LifecycleNotifier<blink::ExecutionContext,blink::ContextLifecycleObserver>::notifyContextDestroyed [0x000007FEEB78EA0C+228]
	blink::ExecutionContext::notifyContextDestroyed [0x000007FEEB78EB41+245]
	blink::Document::shutdown [0x000007FEEB78779D+1221]
	blink::FrameLoader::prepareForCommit [0x000007FEEBCF4A77+491]
	blink::FrameLoader::commitProvisionalLoad [0x000007FEEBCF221B+279]
	blink::DocumentLoader::commitIfReady [0x000007FEEBCF8DD2+46]
	blink::DocumentLoader::processData [0x000007FEEBCFA2D5+81]
	blink::DocumentLoader::dataReceived [0x000007FEEBCF9185+457]
	blink::RawResource::appendData [0x000007FEECFE226E+94]
	content::WebURLLoaderImpl::Context::OnReceivedData [0x000007FEECDE66BA+258]
	content::WebURLLoaderImpl::RequestPeerImpl::OnReceivedData [0x000007FEECDE6763+43]
	content::ResourceDispatcher::OnReceivedData [0x000007FEEB28E90F+767]
	IPC::MessageT<ResourceMsg_DataReceived_Meta,std::tuple<int,int,int,int,int>,void>::Dispatch<content::ResourceDispatcher,content::ResourceDispatcher,void,void (__cdecl content::ResourceDispatcher::*)(int,int,int,int,int) __ptr64> [0x000007FEEB28C843+199]
	content::ResourceDispatcher::DispatchMessageW [0x000007FEEB28DD46+398]
	content::ResourceDispatcher::OnMessageReceived [0x000007FEEB28E437+323]
	content::ResourceSchedulingFilter::DispatchMessageW [0x000007FEEB29606E+62]
	base::internal::InvokeHelper<1,void>::MakeItSo<void (__cdecl content::WebMediaPlayerMS::*const & __ptr64)(scoped_refptr<media::VideoFrame> const & __ptr64) __ptr64,base::WeakPtr<content::WebMediaPlayerMS> const & __ptr64,scoped_refptr<media::VideoFrame> c [0x000007FEEC92B17A+94]
	base::debug::TaskAnnotator::RunTask [0x000007FEEA78BEC9+361]
	blink::scheduler::TaskQueueManager::ProcessTaskFromWorkQueue [0x000007FEEB37B698+976]
	blink::scheduler::TaskQueueManager::DoWork [0x000007FEEB37A83A+566]
	base::internal::InvokeHelper<1,void>::MakeItSo<void (__cdecl blink::scheduler::TaskQueueManager::*const & __ptr64)(base::TimeTicks,bool) __ptr64,base::WeakPtr<blink::scheduler::TaskQueueManager> const & __ptr64,base::TimeTicks const & __ptr64,bool const & [0x000007FEEB379115+105]
	base::debug::TaskAnnotator::RunTask [0x000007FEEA78BEC9+361]
	base::MessageLoop::RunTask [0x000007FEEA741F4E+1294]
	base::MessageLoop::DoWork [0x000007FEEA740C2A+394]
	base::MessagePumpDefault::Run [0x000007FEEA78E51F+431]
	base::RunLoop::Run [0x000007FEEA75331E+46]
	content::RendererMain [0x000007FEEC34B800+676]
	content::RunNamedProcessTypeMain [0x000007FEEA6DAD7F+423]
	content::ContentMainRunnerImpl::Run [0x000007FEEA6DAB7E+358]
	content::ContentMain [0x000007FEEA6D9E04+48]
	ChromeMain [0x000007FEE9A06A33+243]
	MainDllLoader::Launch [0x000000013F2B6294+868]
	wWinMain [0x000000013F2B2F6F+443]
	__scrt_common_main_seh [0x000000013F319A13+279] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253)
	BaseThreadInitThunk [0x00000000770C59CD+13]
	RtlUserThreadStart [0x00000000771FB891+33]

bot: https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20x64%20Release%20%28NVIDIA%29

first failed build: https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20x64%20Release%20%28NVIDIA%29/builds/7973

 
Labels: -Pri-3 Pri-2
Starting to see the same issue on the Mac 10.10 Release (Intel) bot: https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%2010.10%20Release%20%28Intel%29

Are we aware of any changes in the WebGL context deletion code in the blink layer?
Cc: piman@chromium.org

Comment 3 by piman@chromium.org, Nov 17 2016

Cc: xidac...@chromium.org
There's https://codereview.chromium.org/2490443002/ which touched WebGLRenderingContextBase.cpp a bit. It's not obvious that it is the cause though.

Comment 4 by piman@chromium.org, Nov 17 2016

The mac one could be different though, it looks like a timeout.
My change here: https://codereview.chromium.org/2490443002/, should not affect any existing behavior. I will try to see if I can repro locally.

Comment 6 by kbr@chromium.org, Nov 17 2016

Cc: mlippautz@chromium.org haraken@chromium.org
Components: Blink>MemoryAllocator>GarbageCollection Blink>JavaScript
I heard from hpayer@ that incremental wrapper tracing for V8's GC was turned on and then off again recently. Not sure what the current status is or whether that might have had an effect. Are there other changes to Blink's Oilpan collector?

The mac failure is the same but the stack trace is a bit lower in the results:
Operating system: Mac OS X
	                  10.10.5 14F1808
	CPU: amd64
	     family 6 model 69 stepping 1
	     4 CPUs
	
	GPU: UNKNOWN
	
	Crash reason:  EXC_BAD_ACCESS / EXC_I386_GPFLT
	Crash address: 0x1118bee14
	Process uptime: 145 seconds
	
	Thread 0 (crashed)
	 0  Chromium Framework!__ZN5blink11WebGLObject12deleteObjectEPN3gpu5gles214GLES2InterfaceE + 0x14
	    rax = 0x2c2c2c2c2c2c2c2c   rdx = 0x0000000000000000
	    rcx = 0x0000000000040000   rbx = 0x00000b97a1d64398
	    rsi = 0x00007fe7332aa600   rdi = 0x00000b97a1d64398
	    rbp = 0x00007fff55619ed0   rsp = 0x00007fff55619ec0
	     r8 = 0x00007fff55619a50    r9 = 0x00007fe733900000
	    r10 = 0x0000000000000110   r11 = 0x00007fe733900000
	    r12 = 0x000020a355207f08   r13 = 0x0000244947caaa50
	    r14 = 0x00007fe7332aa600   r15 = 0x0000000000000003
	    rip = 0x00000001118bee14
	    Found by: given as instruction pointer in context
	 1  Chromium Framework!__ZN5blink12WebGLProgram16deleteObjectImplEPN3gpu5gles214GLES2InterfaceE + 0x34
	    rbp = 0x00007fff55619ef0   rsp = 0x00007fff55619ee0
	    rip = 0x00000001118bf184
	    Found by: previous frame's frame pointer
	 2  Chromium Framework!__ZN5blink11WebGLObject12deleteObjectEPN3gpu5gles214GLES2InterfaceE + 0x50
	    rbp = 0x00007fff55619f10   rsp = 0x00007fff55619f00
	    rip = 0x00000001118bee50
	    Found by: previous frame's frame pointer
	 3  Chromium Framework!__ZN5blink17WebGLSharedObject18detachContextGroupEv + 0x1f
	    rbp = 0x00007fff55619f30   rsp = 0x00007fff55619f20
	    rip = 0x00000001118fc9df
	    Found by: previous frame's frame pointer
	 4  Chromium Framework!__ZN5blink17WebGLContextGroup25detachAndRemoveAllObjectsEv + 0x18
	    rbp = 0x00007fff55619f50   rsp = 0x00007fff55619f40
	    rip = 0x00000001118b7c98
	    Found by: previous frame's frame pointer
	 5  Chromium Framework!__ZN5blink17WebGLContextGroup16loseContextGroupENS_22CanvasRenderingContext15LostContextModeENS_25WebGLRenderingContextBase18AutoRecoveryMethodE + 0x1c
	    rbp = 0x00007fff55619f90   rsp = 0x00007fff55619f60
	    rip = 0x00000001118b802c
	    Found by: previous frame's frame pointer
	 6  Chromium Framework!__ZN5blink17LifecycleNotifierINS_16ExecutionContextENS_24ContextLifecycleObserverEE22notifyContextDestroyedEv + 0x165
	    rbp = 0x00007fff5561a150   rsp = 0x00007fff55619fa0
	    rip = 0x0000000110c3c2c5
	    Found by: previous frame's frame pointer
	 7  Chromium Framework!__ZN5blink16ExecutionContext22notifyContextDestroyedEv + 0xcb
	    rbp = 0x00007fff5561a1a0   rsp = 0x00007fff5561a160
	    rip = 0x00000001108510cb
	    Found by: previous frame's frame pointer
kbr: The flag was enabled between Monday (7db18648678acf332a4cb7c91b831dd231e26d62 r431951) and Tuesday (22b4f9c583ca8a3ef6aeae1903adb6445ebc9600 r432169), which meant it was on one Canary.

We reverted, because I needed to enable another code path in V8, which without the flag was not exercised in production. I didn't want to take the risk of a roll blocker.

Note, that I planned to reland after the branch cut. So, if you have any objections just let me know.

We didn't land any changes to Oilpan wrt. to wrapper tracing throughout the last weeks. 

Comment 9 by piman@chromium.org, Nov 17 2016

@mlippautz thanks for the info, it seems unrelated then - failures are for builds outside that range.
kbr@, piman@:

Do you think these are related:
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20x64%20Release%20%28NVIDIA%29/builds/7991
https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%2010.10%20Release%20%28Intel%29/builds/19274

There is a whole bunch of image_bitmap tests that fails. I don't think there is any major change in ImageBitmap recently. The tests are all timing out. I am not sure what is happening there.
The error message for the timeout tests:

[3568:1720:1117/094508:INFO:CONSOLE(59)] "Uncaught (in promise) TypeError: Failed to execute 'createImageBitmap' on 'Window': Illegal invocation", source: http://127.0.0.1:49278/third_party/webgl/src/sdk/tests/js/tests/tex-image-and-sub-image-2d-with-image-bitmap-from-image-bitmap.js (59)

Note that the tests has not been changed for at least 3 months.

Comment 12 by kbr@chromium.org, Nov 17 2016

Xida: it looks like those failures were caused by https://codereview.chromium.org/2513573003/ . I don't know how that landed. Don't worry about them, since that V8 roll's been reverted.

Comment 13 by piman@chromium.org, Nov 17 2016

My running theory is that the WebGLProgram and its WebGLShaders become unreachable, and it so happens that the WebGLShaders get finalized (i.e. destroyed) but the WebGLProgram has not yet, and so it is still visible from the WebGLContextGroup through the m_groupObjects UntracedMember map. If WebGLContextGroup::detachAndRemoveAllObjects is then called before the WebGLProgram gets finalized, it is called into a bad state (its m_*Shader members point to finalized objects) and badness ensues.

I suspect we may be able to fix this by doing the deletion/unregistration in a pre-finalizer, though documentation suggests this is bad for GC performance if we have many of those objects (which we would in a large WebGL app). Another option might be EAGERLY_FINALIZE, though documentation is sparse, so I don't know if it would give enough guarantees.
Cc: -xidac...@chromium.org sigbjo...@opera.com
Sigbjorn might have some idea.

EAGERLY_FINALIZE is low overhead. Destructors of eargerly-finalized objects are allowed to touch not-eargerly-finalized objects.

Comment 15 by piman@chromium.org, Nov 18 2016

Owner: kbr@chromium.org
Ken said he'll take this. We can probably get rid of the map altogether and make the WebGLObjects EAGERLY_FINALIZE - see  crbug.com/537054  for context

Comment 16 by kbr@chromium.org, Nov 18 2016

Blockedon: 537054

Comment 17 by kbr@chromium.org, Nov 18 2016

Status: Assigned (was: Untriaged)

Comment 18 by kbr@chromium.org, Nov 21 2016

Per  Issue 537054  this is showing up frequently on the tryservers, in particular mac_chromium_rel_ng. Working on this with high priority.

Comment 19 by kbr@chromium.org, Nov 21 2016

Labels: -Pri-2 Pri-1
This is a major source of flakiness in GPU.FYI waterfall:

https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20%28NVIDIA%29/builds/28539
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20%28NVIDIA%29/builds/28536
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20%28NVIDIA%29/builds/28512
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20%28NVIDIA%29/builds/28443
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20%28NVIDIA%29/builds/28401

https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Debug%20%28NVIDIA%29/builds/19263

https://build.chromium.org/p/chromium.gpu.fyi/builders/Win8%20Release%20%28NVIDIA%29/builds/25441
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win8%20Release%20%28NVIDIA%29/builds/25434
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win8%20Release%20%28NVIDIA%29/builds/25409
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win8%20Release%20%28NVIDIA%29/builds/25376

https://build.chromium.org/p/chromium.gpu.fyi/builders/Win8%20Debug%20%28NVIDIA%29/builds/16377
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win8%20Debug%20%28NVIDIA%29/builds/16368

https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20%28NVIDIA%20GeForce%20730%29/builds/2543

https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20x64%20Release%20%28NVIDIA%29/builds/8201
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20x64%20Release%20%28NVIDIA%29/builds/8167
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20x64%20Release%20%28NVIDIA%29/builds/8137
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20x64%20Release%20%28NVIDIA%29/builds/8117
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20x64%20Release%20%28NVIDIA%29/builds/8088
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20x64%20Release%20%28NVIDIA%29/builds/8083

https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20x64%20Debug%20%28NVIDIA%29/builds/6219

Interestingly, I've only seen it affect NVIDIA boards so far (I've looked only at Windows bots), maybe it will give a hint to why this is happening?
All Intel WebGL tests are marked as flaky already on Windows, and old AMD. New AMD I think is not.

Comment 23 by kbr@chromium.org, Dec 2 2016

Blockedon: 670426

Comment 25 by kbr@chromium.org, Dec 2 2016

Labels: -OS-Windows -OS-Mac OS-All
Summary: Flaky WebGL crashes in WebGLObject::deleteObject on multiple platforms (was: WebGL flakiness on Win7 x64 Release (NVIDIA))
This looks like the top cause of flakiness on the GPU waterfall right now.

Flakes reported on  Issue 596622  point to this bug.

Only one example from https://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/341912 :

WebglConformance_conformance_ogles_GL_swizzlers_swizzlers_089_to_096 (gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest) ... Backtrace:
	blink::WebGLObject::deleteObject [0x65CC274F+12]
	blink::WebGLProgram::deleteObjectImpl [0x65CC241A+40]
	blink::WebGLObject::deleteObject [0x65CC2781+62]
	blink::WebGLSharedObject::detachContextGroup [0x65CC77C0+23]
	blink::WebGLContextGroup::detachAndRemoveAllObjects [0x65CC3676+62]
	blink::WebGLContextGroup::loseContextGroup [0x65CC3919+16]
	blink::WebGLRenderingContextBase::forceLostContext [0x65CA5600+55]
	blink::WebGLRenderingContextBase::stop [0x65CAC9C0+23]
	blink::LifecycleNotifier<blink::ExecutionContext,blink::ContextLifecycleObserver>::notifyContextDestroyed [0x6552C67C+189]
	blink::Document::shutdown [0x65518A82+822]
	blink::FrameLoader::prepareForCommit [0x658E8713+394]
	blink::FrameLoader::commitProvisionalLoad [0x658E68D8+195]
	blink::DocumentLoader::processData [0x658EC7E0+63]
	blink::DocumentLoader::dataReceived [0x658EBA8D+405]
	blink::RawResource::appendData [0x666B4B83+51]
	blink::ResourceLoader::didReceiveData [0x6564A5EE+121]
	content::WebURLLoaderImpl::Context::OnReceivedData [0x6653EC98+174]
	content::WebURLLoaderImpl::RequestPeerImpl::OnReceivedData [0x6653ECF4+30]
	content::ResourceDispatcher::OnReceivedData [0x65190120+535]
	IPC::MessageT<ResourceMsg_DataReceived_Meta,std::tuple<int,int,int,int>,void>::Dispatch<content::ResourceDispatcher,content::ResourceDispatcher,void,void (__thiscall content::ResourceDispatcher::*)(int,int,int,int)> [0x6518E9AA+133]
	content::ResourceDispatcher::DispatchMessageW [0x6518F9BC+582]
	content::ResourceDispatcher::OnMessageReceived [0x6518FD8A+270]
	base::internal::InvokeHelper<1,void>::MakeItSo<void (__thiscall media::VideoRendererImpl::*const &)(media::PipelineStatistics const &),base::WeakPtr<media::VideoRendererImpl> const &,media::PipelineStatistics const &> [0x6574267A+41]
	base::internal::Invoker<base::internal::BindState<void (__thiscall content::ResourceSchedulingFilter::*)(IPC::Message const &),base::WeakPtr<content::ResourceSchedulingFilter>,IPC::Message>,void __cdecl(void)>::Run [0x65194864+23]
	base::debug::TaskAnnotator::RunTask [0x64894A7E+286]
	blink::scheduler::TaskQueueManager::ProcessTaskFromWorkQueue [0x6523DCCF+720]
	blink::scheduler::TaskQueueManager::DoWork [0x6523D237+462]
	base::internal::FunctorTraits<void (__thiscall blink::scheduler::TaskQueueManager::*)(base::TimeTicks,bool),void>::Invoke<base::WeakPtr<blink::scheduler::TaskQueueManager> const &,base::TimeTicks const &,bool const &> [0x6523C678+34]


Comment 26 by kbr@chromium.org, Dec 2 2016

Blocking: 596622

Comment 27 by kbr@chromium.org, Dec 2 2016

Blockedon: -670426

Comment 28 by kbr@chromium.org, Dec 2 2016

Blocking: 670426

Comment 29 by kbr@chromium.org, Dec 2 2016

Status: Started (was: Assigned)
Fix underway: https://codereview.chromium.org/2547813002

Project Member

Comment 30 by bugdroid1@chromium.org, Dec 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f5e91b15573820ff14396b6be246c54ca6755a13

commit f5e91b15573820ff14396b6be246c54ca6755a13
Author: kbr <kbr@chromium.org>
Date: Fri Dec 02 23:46:02 2016

Remove WebGLObject maps from WebGLRenderingContextBase and WebGLContextGroup.

There are two high-level goals for the handling of WebGLObjects:

1) When they are GC'd, the underlying graphics resource is deleted
promptly.

2) When the context is destroyed, all of the underlying graphics
resources are reclaimed.

The WebGLContextObject and WebGLSharedObject maps were an attempt to
implement (2) before WebGL contexts were in their own client-side
share group, separate from the compositor. Unfortunately, with the
introduction of Oilpan, it's become clear that there are longstanding
bugs in the lifetime management of WebGLObjects. These bugs recently
began manifesting frequently on the bots.

To fix these bugs, WebGLObjects are now eagerly finalized, rather than
the WebGLRenderingContextBase. WebGLObjects maintain a strong
reference either to their context or share group, depending on whether
they're per-context or shared objects. WebGLContextGroup becomes an
Oilpan object which maintains weak references to all of its contexts
(currently, just one). WebGLRenderingContextBase maintains a strong
reference to its context group.

Because WebGLObjects can no longer be enumerated, their invalidation
during context loss needs to be rewritten. This is handled by tracking
the number of context losses on a per-share-group basis, and comparing
this with a cached version in each WebGLObject instance during its
validation.

As a consequence of this change, most of the work in
WebGLRenderingContextBase's destructor, as well as in the destructors
of corollary types like WebGLExtension, becomes useless, and it has
been removed. The destructors of the WebGLObject subclasses have been
made more uniform to prevent errors.

More fixes around wrapper tracing are probably both needed and enabled
by this CL, but they can follow this necessary fix.

BUG= 537054 ,  666061 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
TBR=zmo@chromium.org

Review-Url: https://codereview.chromium.org/2547813002
Cr-Commit-Position: refs/heads/master@{#436080}

[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/ANGLEInstancedArrays.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/ANGLEInstancedArrays.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTBlendMinMax.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTBlendMinMax.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTColorBufferFloat.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTColorBufferFloat.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTDisjointTimerQuery.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTDisjointTimerQuery.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTDisjointTimerQueryWebGL2.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTDisjointTimerQueryWebGL2.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTFragDepth.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTFragDepth.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTShaderTextureLOD.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTShaderTextureLOD.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTTextureFilterAnisotropic.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTTextureFilterAnisotropic.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTsRGB.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/EXTsRGB.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/OESElementIndexUint.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/OESElementIndexUint.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/OESStandardDerivatives.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/OESStandardDerivatives.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/OESTextureFloat.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/OESTextureFloat.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/OESTextureFloatLinear.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/OESTextureFloatLinear.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/OESTextureHalfFloat.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/OESTextureHalfFloat.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/OESTextureHalfFloatLinear.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/OESTextureHalfFloatLinear.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/OESVertexArrayObject.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/OESVertexArrayObject.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContext.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContext.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLBuffer.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLCompressedTextureASTC.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLCompressedTextureASTC.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLCompressedTextureATC.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLCompressedTextureATC.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLCompressedTextureETC.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLCompressedTextureETC.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLCompressedTextureETC1.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLCompressedTextureETC1.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLCompressedTexturePVRTC.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLCompressedTexturePVRTC.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLCompressedTextureS3TC.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLCompressedTextureS3TC.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLCompressedTextureS3TCsRGB.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLCompressedTextureS3TCsRGB.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLContextGroup.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLContextGroup.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLContextObject.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLContextObject.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLDebugRendererInfo.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLDebugRendererInfo.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLDebugShaders.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLDebugShaders.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLDepthTexture.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLDepthTexture.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLDrawBuffers.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLDrawBuffers.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLExtension.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLExtension.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLFenceSync.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLFenceSync.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLFramebuffer.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLFramebuffer.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLLoseContext.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLLoseContext.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLObject.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLObject.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLProgram.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLQuery.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLRenderbuffer.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLRenderingContext.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLRenderingContext.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLSampler.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLShader.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLSharedObject.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLSharedObject.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLSharedPlatform3DObject.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLSharedPlatform3DObject.h
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLSync.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLTexture.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLTimerQueryEXT.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLTransformFeedback.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLVertexArrayObjectBase.cpp
[modify] https://crrev.com/f5e91b15573820ff14396b6be246c54ca6755a13/third_party/WebKit/Source/modules/webgl/WebGLVertexArrayObjectBase.h

Comment 31 by kbr@chromium.org, Dec 3 2016

I'm confident that f5e91b15573820ff14396b6be246c54ca6755a13 will fix this issue. I'll monitor the bots and close this next Monday if the problem appears to be resolved.

Comment 32 by kbr@chromium.org, Dec 3 2016

There's one remaining assertion failure as seen here. Rather than revert the above I'm going to fix the logic in WebGLContextGroup::getAGLInterface().

https://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/347298

WebglConformance_conformance_context_premultiplyalpha_test (gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest) ... ASSERTION FAILED: !m_contexts.isEmpty()
../../third_party/WebKit/Source/modules/webgl/WebGLContextGroup.cpp(33) : gpu::gles2::GLES2Interface *blink::WebGLContextGroup::getAGLInterface()
1 0x10a40cafa blink::WebGLObject::deleteObject(gpu::gles2::GLES2Interface*)
2 0x10a40cbec blink::WebGLObject::runDestructor()
3 0x10a40ce38 blink::WebGLProgram::~WebGLProgram()
4 0x1048f905a blink::NormalPage::sweep()
5 0x1048f5748 blink::BaseArena::completeSweep()
6 0x104905dcc blink::ThreadState::eagerSweep()
7 0x104905813 blink::ThreadState::preSweep()
8 0x1049012c5 blink::ThreadState::collectGarbage(blink::BlinkGC::StackState, blink::BlinkGC::GCType, blink::BlinkGC::GCReason)
9 0x108c8704f blink::V8GCController::gcEpilogue(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)
10 0x1037af812 v8::internal::Heap::CallGCEpilogueCallbacks(v8::GCType, v8::GCCallbackFlags)
11 0x1037b1552 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags)
12 0x1037affd3 v8::internal::Heap::CollectGarbage(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*, v8::GCCallbackFlags)
13 0x1037aeb05 v8::internal::Heap::HandleGCRequest()
14 0x103754c9e v8::internal::StackGuard::HandleInterrupts()
15 0x103a95ddc v8::internal::__RT_impl_Runtime_StackGuard(v8::internal::Arguments, v8::internal::Isolate*)
16 0x2b1db348426e
17 0x2b1db36b0900
18 0x2b1db36af894

Project Member

Comment 33 by bugdroid1@chromium.org, Dec 4 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f9370828c4ec76881000f95d39f1360e1beeb983

commit f9370828c4ec76881000f95d39f1360e1beeb983
Author: kbr <kbr@chromium.org>
Date: Sun Dec 04 00:18:02 2016

Remove now-incorrect assert in WebGLContextGroup.

BUG= 537054 ,  666061 
TBR=zmo@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2548153002
Cr-Commit-Position: refs/heads/master@{#436180}

[modify] https://crrev.com/f9370828c4ec76881000f95d39f1360e1beeb983/third_party/WebKit/Source/modules/webgl/WebGLContextGroup.cpp

Project Member

Comment 34 by bugdroid1@chromium.org, Dec 5 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/344f19bd27857cd931e41f09fd81573323ede110

commit 344f19bd27857cd931e41f09fd81573323ede110
Author: kbr <kbr@chromium.org>
Date: Mon Dec 05 11:14:59 2016

Addressed haraken's feedback on the removal of WebGLObject maps.

BUG= 537054 ,  666061 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2548273002
Cr-Commit-Position: refs/heads/master@{#436259}

[modify] https://crrev.com/344f19bd27857cd931e41f09fd81573323ede110/third_party/WebKit/Source/modules/webgl/WebGLContextGroup.cpp
[modify] https://crrev.com/344f19bd27857cd931e41f09fd81573323ede110/third_party/WebKit/Source/modules/webgl/WebGLObject.h
[modify] https://crrev.com/344f19bd27857cd931e41f09fd81573323ede110/third_party/WebKit/Source/modules/webgl/WebGLSharedObject.cpp

Comment 35 by kbr@chromium.org, Dec 5 2016

Status: Verified (was: Started)
There are no instances of this flake today on chromium-try-flakes per https://chromium-try-flakes.appspot.com/all_flake_occurrences?key=ahVzfmNocm9taXVtLXRyeS1mbGFrZXNyLwsSBUZsYWtlIiR3ZWJnbF9jb25mb3JtYW5jZV90ZXN0cyAod2l0aCBwYXRjaCkM . Closing as Verified.

Comment 36 by kbr@chromium.org, Dec 8 2016

Blocking: 671791

Comment 37 by kbr@chromium.org, Dec 20 2016

Cc: keishi@chromium.org
 Issue 670426  has been merged into this issue.
Components: -Internals>GPU>WebGL Blink>WebGL

Sign in to add a comment