Bug 212065

Summary: [WinCairo] ASSERT(m_eglDisplay == EGL_NO_DISPLAY) fails in ~PlatformDisplay()
Product: WebKit Reporter: Fujii Hironori <Hironori.Fujii>
Component: PlatformAssignee: Fujii Hironori <Hironori.Fujii>
Status: RESOLVED FIXED    
Severity: Normal CC: don.olmstead, pvollan, ross.kirsling, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=170331
Attachments:
Description Flags
Patch none

Description Fujii Hironori 2020-05-19 00:43:30 PDT
[WinCairo] ASSERT(m_eglDisplay == EGL_NO_DISPLAY) fails in ~PlatformDisplay()

1. Start WinCairo Debug buid WK2 MiniBrowser
2. Go to WebGL page (for example https://get.webgl.org/)
3. Close MiniBrowser window
4. The assertion fails

Callstack:

> WTF.dll!WTFCrash() Line 303	C++
> WebKit2.dll!WTFCrashWithInfo(int __formal=162, const char * __formal=0x00007ffd388adf70, const char * __formal=0x00007ffd388adf40, int __formal=261) Line 672	C++
> WebKit2.dll!WebCore::PlatformDisplay::~PlatformDisplay() Line 162	C++
> WebKit2.dll!WebCore::PlatformDisplayWin::~PlatformDisplayWin() Line 51	C++
> [External Code]	
> WebKit2.dll!WebKit::callExit(IPC::Connection * __formal=0x0000018fda960de0) Line 203	C++
> WebKit2.dll!IPC::Connection::connectionDidClose() Line 856	C++
> WebKit2.dll!IPC::Connection::readEventHandler() Line 156	C++
> WebKit2.dll!IPC::Connection::invokeReadEventHandler::__l2::<lambda>() Line 235	C++
> WebKit2.dll!WTF::Detail::CallableWrapper<void <lambda>(void),void>::call() Line 52	C++
> WTF.dll!WTF::Function<void __cdecl(void)>::operator()() Line 85	C++
> WTF.dll!WTF::WorkQueue::dispatch::__l2::<lambda>() Line 62	C++
> WTF.dll!WTF::Detail::CallableWrapper<void <lambda>(void),void>::call() Line 52	C++
> WTF.dll!WTF::Function<void __cdecl(void)>::operator()() Line 85	C++
> WTF.dll!WTF::RunLoop::performWork() Line 120	C++
> WTF.dll!WTF::RunLoop::wndProc(HWND__ * hWnd=0x0000000000190728, unsigned int message=1025, unsigned __int64 wParam=1717359019392, __int64 lParam=0) Line 57	C++
> WTF.dll!WTF::RunLoop::RunLoopWndProc(HWND__ * hWnd=0x0000000000190728, unsigned int message=1025, unsigned __int64 wParam=1717359019392, __int64 lParam=0) Line 39	C++
> [External Code]	
> WTF.dll!WTF::RunLoop::run() Line 74	C++
> WTF.dll!WTF::WorkQueue::platformInitialize::__l2::<lambda>() Line 42	C++
> WTF.dll!WTF::Detail::CallableWrapper<void <lambda>(void),void>::call() Line 52	C++
> WTF.dll!WTF::Function<void __cdecl(void)>::operator()() Line 85	C++
> WTF.dll!WTF::Thread::entryPoint(WTF::Thread::NewThreadContext * newThreadContext=0x0000018fda9394f0) Line 168	C++
> WTF.dll!WTF::wtfThreadEntryPoint(void * data=0x0000018fda9394f0) Line 153	C++
> [External Code]	

The same issue of WinCairo WK1 was fixed in Bug 170331 by calling PlatformDisplay::shutDownEglDisplays() in shutDownWebKit().
Comment 1 Fujii Hironori 2020-05-19 13:35:13 PDT
Created attachment 399766 [details]
Patch
Comment 2 Fujii Hironori 2020-05-19 21:18:37 PDT
Comment on attachment 399766 [details]
Patch

Clearing flags on attachment: 399766

Committed r261905: <https://trac.webkit.org/changeset/261905>
Comment 3 Fujii Hironori 2020-05-19 21:18:40 PDT
All reviewed patches have been landed.  Closing bug.
Comment 4 Radar WebKit Bug Importer 2020-05-19 21:19:15 PDT
<rdar://problem/63429994>