<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>214241</bug_id>
          
          <creation_ts>2020-07-12 14:20:08 -0700</creation_ts>
          <short_desc>[WinCairo] ANGLE D3D renderer can crash when PlatformDisplayWin is destructed in IPC thread</short_desc>
          <delta_ts>2020-07-28 13:23:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>don.olmstead</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1670918</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-07-12 14:20:08 -0700</bug_when>
    <thetext>[WinCairo] Crashed while destructing GLContextEGL

I observed a crash after browsing some sites and closing the MiniBroser.
I don&apos;t know how to reproduce this crash.
I was using WinCairo WK2 release r263953,

Callstack:

&gt; atidxx64.dll!00007ffabcddfa03()	Unknown
&gt; atiuxp64.dll!00007ffabde0c89e()	Unknown
&gt; d3d11.dll!CResource&lt;ID3D11Buffer&gt;::CLS::FinalRelease()	Unknown
&gt; d3d11.dll!TCLSWrappers&lt;class CBuffer&gt;::CLSDestroy(struct CBuffer::CLS *,class CContext *)	Unknown
&gt; d3d11.dll!CLayeredObjectWithCLS&lt;class CBuffer&gt;::~CLayeredObjectWithCLS&lt;class CBuffer&gt;(void)	Unknown
&gt; d3d11.dll!CLayeredObjectWithCLS&lt;class CBuffer&gt;::Release(void)	Unknown
&gt; d3d11.dll!NDXGI::CDeviceChild&lt;struct IDXGIResource1,struct IDXGISwapChainInternal&gt;::FinalRelease(void)	Unknown
&gt; d3d11.dll!CLayeredObject&lt;NDXGI::CResource&gt;::Release()	Unknown
&gt; d3d11.dll!CUseCountedObject&lt;NOutermost::CDeviceChild&gt;::`scalar deleting destructor&apos;()	Unknown
&gt; d3d11.dll!CUseCountedObject&lt;class NOutermost::CDeviceChild&gt;::UCDestroy(void)	Unknown
&gt; d3d11.dll!CUseCountedObject&lt;class NOutermost::CDeviceChild&gt;::Release(void)	Unknown
&gt; [Inline Frame] libGLESv2.dll!rx::TypedData&lt;ID3D11Buffer&gt;::~TypedData() Line 362	C++
&gt; [Inline Frame] libGLESv2.dll!std::default_delete&lt;rx::TypedData&lt;ID3D11Buffer&gt;&gt;::operator()(rx::TypedData&lt;ID3D11Buffer&gt; * _Ptr) Line 1758	C++
&gt; [Inline Frame] libGLESv2.dll!std::unique_ptr&lt;rx::TypedData&lt;ID3D11Buffer&gt;,std::default_delete&lt;rx::TypedData&lt;ID3D11Buffer&gt;&gt;&gt;::reset(rx::TypedData&lt;ID3D11Buffer&gt; * _Ptr) Line 1908	C++
&gt; libGLESv2.dll!rx::Resource11Base&lt;ID3D11Buffer,UniquePtr,rx::TypedData&lt;ID3D11Buffer&gt;&gt;::~Resource11Base() Line 225	C++
&gt; libGLESv2.dll!rx::Buffer11::NativeStorage::~NativeStorage() Line 1130	C++
&gt; [Inline Frame] libGLESv2.dll!SafeDelete(rx::Buffer11::BufferStorage * &amp; resource) Line 100	C++
&gt; libGLESv2.dll!rx::Buffer11::~Buffer11() Line 360	C++
&gt; libGLESv2.dll!rx::Buffer11::~Buffer11() Line 357	C++
&gt; [Inline Frame] libGLESv2.dll!SafeDelete(rx::BufferImpl * &amp; resource) Line 100	C++
&gt; libGLESv2.dll!gl::Buffer::~Buffer() Line 51	C++
&gt; libGLESv2.dll!gl::Buffer::~Buffer() Line 50	C++
&gt; [Inline Frame] libGLESv2.dll!angle::RefCountObject&lt;gl::Context,angle::Result&gt;::release(const gl::Context * context) Line 46	C++
&gt; [Inline Frame] libGLESv2.dll!gl::ProgramPipelineManager::DeleteObject(const gl::Context * context, gl::ProgramPipeline * pipeline) Line 409	C++
&gt; libGLESv2.dll!gl::TypedResourceManager&lt;gl::ProgramPipeline,gl::HandleAllocator,gl::ProgramPipelineManager,gl::ProgramPipelineID&gt;::reset(const gl::Context * context) Line 74	C++
&gt; libGLESv2.dll!gl::ResourceManagerBase&lt;gl::HandleAllocator&gt;::release(const gl::Context * context) Line 59	C++
&gt; libGLESv2.dll!gl::Context::onDestroy(const egl::Display * display) Line 571	C++
&gt; libGLESv2.dll!egl::Display::destroyContext(const egl::Thread * thread, gl::Context * context) Line 1219	C++
&gt; libGLESv2.dll!EGL_DestroyContext(void * dpy, void * ctx) Line 409	C++
&gt; WebKit2.dll!WebCore::GLContextEGL::~GLContextEGL() Line 359	C++
&gt; WebKit2.dll!WebCore::GLContextEGL::~GLContextEGL() Line 346	C++
&gt; [Inline Frame] WebKit2.dll!std::default_delete&lt;WebCore::GLContext&gt;::operator()(WebCore::GLContext * _Ptr) Line 1758	C++
&gt; [Inline Frame] WebKit2.dll!std::unique_ptr&lt;WebCore::GLContext,std::default_delete&lt;WebCore::GLContext&gt;&gt;::~unique_ptr() Line 1873	C++
&gt; [Inline Frame] WebKit2.dll!WebCore::PlatformDisplay::~PlatformDisplay() Line 166	C++
&gt; WebKit2.dll!WebCore::PlatformDisplayWin::~PlatformDisplayWin() Line 42	C++
&gt; [External Code]	
&gt; WebKit2.dll!WebKit::AuxiliaryProcess::didClose(IPC::Connection &amp;) Line 60	C++
&gt; WebKit2.dll!IPC::Connection::connectionDidClose() Line 856	C++
&gt; WebKit2.dll!IPC::Connection::readEventHandler() Line 155	C++
&gt; [Inline Frame] WTF.dll!WTF::Function&lt;void ()&gt;::operator()() Line 84	C++
&gt; WTF.dll!WTF::RunLoop::performWork() Line 140	C++
&gt; [Inline Frame] WTF.dll!WTF::RunLoop::wndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 56	C++
&gt; WTF.dll!WTF::RunLoop::RunLoopWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 39	C++
&gt; [External Code]	
&gt; WTF.dll!WTF::RunLoop::run() Line 73	C++
&gt; [Inline Frame] WTF.dll!WTF::Function&lt;void ()&gt;::operator()() Line 84	C++
&gt; WTF.dll!WTF::Thread::entryPoint(WTF::Thread::NewThreadContext * newThreadContext) Line 168	C++
&gt; WTF.dll!WTF::wtfThreadEntryPoint(void * data) Line 153	C++
&gt; [External Code]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675152</commentid>
    <comment_count>1</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-07-26 18:21:57 -0700</bug_when>
    <thetext>ANGLE D3D renderer isn&apos;t thread-safe.
PlatformDisplay was destructed in IPC thread.
This is not expected for WinCairo.

WinCairo shouldn&apos;t destruct PlatformDisplay because it can cause crash (Bug 170331).

PlatformDisplay::sharedDisplay has 
static variable of std::unique_ptr&lt;PlatformDisplay&gt;.
This triggers PlatformDisplay dtor.
This is not expected for WinCairo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675482</commentid>
    <comment_count>2</comment_count>
      <attachid>405333</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-07-27 17:51:22 -0700</bug_when>
    <thetext>Created attachment 405333
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675736</commentid>
    <comment_count>3</comment_count>
      <attachid>405333</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-07-28 12:32:48 -0700</bug_when>
    <thetext>Comment on attachment 405333
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=405333&amp;action=review

r=me with nit about name

&gt; Source/WebCore/ChangeLog:3
&gt; +        [WinCairo] ANGLE D3D renderer rarely crashes while destructing PlatformDisplayWin in IPC thread

Maybe a better bug name would be something like this?

[WinCairo] ANGLE D3D renderer can crash when PlatformDisplayWin is destructed in IPC thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675760</commentid>
    <comment_count>4</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-07-28 13:22:18 -0700</bug_when>
    <thetext>Committed r265003: &lt;https://trac.webkit.org/changeset/265003&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675762</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-28 13:23:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/66234135&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405333</attachid>
            <date>2020-07-27 17:51:22 -0700</date>
            <delta_ts>2020-07-28 12:32:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214241-20200728095121.patch</filename>
            <type>text/plain</type>
            <size>2284</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0OTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFmNDI1MDI1OTY5NzE3
ZDM0OWE3YzY5NjI3OTMwNmM1ZTNiMmQ4MS4uMzg0Y2I0MThlMDc4MWY4ZGZiM2ZhZWRkOGZmZmJh
M2E1NGY2ZGU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA3LTI3ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5DYWly
b10gQU5HTEUgRDNEIHJlbmRlcmVyIHJhcmVseSBjcmFzaGVzIHdoaWxlIGRlc3RydWN0aW5nIFBs
YXRmb3JtRGlzcGxheVdpbiBpbiBJUEMgdGhyZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgcHJvY2VzcyBjYWxscyBfZXhpdCgpIGluIElQQyB0
aHJlYWQgd2hlbiB0aGUgSVBDIGNvbm5lY3Rpb24gaXMKKyAgICAgICAgY2xvc2VkLiBQbGF0Zm9y
bURpc3BsYXk6OnNoYXJlZERpc3BsYXkgaGFzIGEgc3RhdGljIHZhcmlhYmxlIG9mCisgICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IHRvIGVuc3VyZSBpdCB3aWxsIGJlIGRl
c3RydWN0ZWQKKyAgICAgICAgb24gdGhlIHByb2Nlc3MgdGVybWluYXRpb24uIFRoaXMgcmFyZWx5
IGNhdXNlcyBjcmFzaGVzIGluIEFOR0xFCisgICAgICAgIGJlY2F1c2UgQU5HTEUgRDNEIHJlbmRl
cmVyIGlzbid0IHRocmVhZC1zYWZlIGF0IHRoZSBtb21lbnQuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KTogRG9uJ3QgZGVzdHJ1Y3QKKyAgICAgICAgUGxhdGZv
cm1EaXNwbGF5LiBVc2UgdW5pcXVlX3B0cjo6cmVsZWFzZSB0byBsZWFrIGl0LgorCiAyMDIwLTA3
LTI1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNj
cm9sbCBTbmFwIGJyb2tlbiB3aGVuIHVzaW5nIFJUTCBsYXlvdXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCmluZGV4IDAwMjM0
OTZmMzQwNTg4NTMyYTcwYWI4NjhhZDM5ZTAzZWJiYjhhNjAuLmQ5ODY2NmI1NGVhMmM1NWQ5YzBm
Njg4YWY3Yjc4ODAxODk4ODc2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcApAQCAtMTI2LDYgKzEyNiwxMiBAQCBzdGQ6
OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9ybURpc3BsYXk6OmNyZWF0ZVBsYXRm
b3JtRGlzcGxheSgpCiAKIFBsYXRmb3JtRGlzcGxheSYgUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWRE
aXNwbGF5KCkKIHsKKyNpZiBQTEFURk9STShXSU4pCisgICAgLy8gQU5HTEUgRDNEIHJlbmRlcmVy
IGlzbid0IHRocmVhZC1zYWZlLiBEb24ndCBkZXN0cnVjdCBpdCBvbiBub24tbWFpbiB0aHJlYWRz
IHdoaWNoIGNhbGxzIF9leGl0KCkuCisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBz
dGF0aWMgUGxhdGZvcm1EaXNwbGF5KiBkaXNwbGF5ID0gY3JlYXRlUGxhdGZvcm1EaXNwbGF5KCku
cmVsZWFzZSgpOworICAgIHJldHVybiAqZGlzcGxheTsKKyNlbHNlCiAgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIElHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigiZXhp
dC10aW1lLWRlc3RydWN0b3JzIikKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3Jt
RGlzcGxheT4gZGlzcGxheTsKQEAgLTEzNCw2ICsxNDAsNyBAQCBQbGF0Zm9ybURpc3BsYXkmIFBs
YXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpCiAgICAgICAgIGRpc3BsYXkgPSBjcmVhdGVQ
bGF0Zm9ybURpc3BsYXkoKTsKICAgICB9KTsKICAgICByZXR1cm4gKmRpc3BsYXk7CisjZW5kaWYK
IH0KIAogc3RhdGljIFBsYXRmb3JtRGlzcGxheSogc19zaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRp
bmc7Cg==
</data>
<flag name="review"
          id="420732"
          type_id="1"
          status="+"
          setter="don.olmstead"
    />
          </attachment>
      

    </bug>

</bugzilla>