<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [GTK] Crash of WebProcess on the last WebView disconnect"
   href="https://bugs.webkit.org/show_bug.cgi?id=161605">161605</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[GTK] Crash of WebProcess on the last WebView disconnect
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>WebKit Local Build
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>WebKit Gtk
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned&#64;lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>mcrha&#64;redhat.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>bugs-noreply&#64;webkitgtk.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>I'm running WebKitGTK+ 2.13.90 and the WebProcess crashes here when the last WebView &quot;disconnects&quot; from it. The console (terminal) doesn't show any messages.

Thread 1 &quot;WebKitWebProces&quot; received signal SIGSEGV, Segmentation fault.
0x00007fa103de78c6 in std::default_delete&lt;WebCore::GLContext&gt;::operator() (this=0x17d6e10, __ptr=0x7fa0781a68c0) at /usr/include/c++/6.0.0/bits/unique_ptr.h:76
76        delete __ptr;
(gdb) bt
#0  0x00007fa103de78c6 in std::default_delete&lt;WebCore::GLContext&gt;::operator()(WebCore::GLContext*) const (this=0x17d6e10, __ptr=0x7fa0781a68c0) at /usr/include/c++/6.0.0/bits/unique_ptr.h:76
#1  0x00007fa103de6867 in std::unique_ptr&lt;WebCore::GLContext, std::default_delete&lt;WebCore::GLContext&gt; &gt;::~unique_ptr() (this=0x17d6e10, __in_chrg=&lt;optimized out&gt;) at /usr/include/c++/6.0.0/bits/unique_ptr.h:236
#2  0x00007fa105603cf7 in WebCore::PlatformDisplay::~PlatformDisplay() (this=0x17d6df0, __in_chrg=&lt;optimized out&gt;) at /data/develop/local/webkitgtk-2.13.90/Source/WebCore/platform/graphics/PlatformDisplay.cpp:128
#3  0x00007fa1054e943c in WebCore::PlatformDisplayX11::~PlatformDisplayX11() (this=0x17d6df0, __in_chrg=&lt;optimized out&gt;) at /data/develop/local/webkitgtk-2.13.90/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:54
#4  0x00007fa1054e9458 in WebCore::PlatformDisplayX11::~PlatformDisplayX11() (this=0x17d6df0, __in_chrg=&lt;optimized out&gt;) at /data/develop/local/webkitgtk-2.13.90/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:58
#5  0x00007fa105604c5c in std::default_delete&lt;WebCore::PlatformDisplay&gt;::operator()(WebCore::PlatformDisplay*) const (this=0x7fa109b31d48 &lt;WebCore::PlatformDisplay::sharedDisplay()::display&gt;, __ptr=0x17d6df0)
    at /usr/include/c++/6.0.0/bits/unique_ptr.h:76
#6  0x00007fa1056046f1 in std::unique_ptr&lt;WebCore::PlatformDisplay, std::default_delete&lt;WebCore::PlatformDisplay&gt; &gt;::~unique_ptr() (this=0x7fa109b31d48 &lt;WebCore::PlatformDisplay::sharedDisplay()::display&gt;, __in_chrg=&lt;optimized out&gt;)
    at /usr/include/c++/6.0.0/bits/unique_ptr.h:236
#7  0x00007fa102de6c08 in __run_exit_handlers () at /lib64/libc.so.6
#8  0x00007fa102de6c55 in  () at /lib64/libc.so.6
#9  0x00007fa1038054ef in IPC::Connection::didFailToSendSyncMessage() (this=0x15d6af0) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/Platform/IPC/Connection.cpp:814
#10 0x00007fa103803395 in IPC::Connection::sendSyncMessage(unsigned long, std::unique_ptr&lt;IPC::Encoder, std::default_delete&lt;IPC::Encoder&gt; &gt;, std::chrono::duration&lt;long, std::ratio&lt;1l, 1000l&gt; &gt;, WTF::OptionSet&lt;IPC::SendSyncOption&gt;) (this=0x15d6af0, syncRequestID=6, encoder=std::unique_ptr&lt;IPC::Encoder&gt; containing 0x1946c40, timeout=..., sendSyncOptions=...) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/Platform/IPC/Connection.cpp:466
#11 0x00007fa103a978e6 in IPC::Connection::sendSync&lt;Messages::WebProcessProxy::ShouldTerminate&gt;(Messages::WebProcessProxy::ShouldTerminate&amp;&amp;, Messages::WebProcessProxy::ShouldTerminate::Reply&amp;&amp;, unsigned long, std::chrono::duration&lt;long, std::ratio&lt;1l, 1000l&gt; &gt;, WTF::OptionSet&lt;IPC::SendSyncOption&gt;) (this=0x15d6af0, message=&lt;unknown type in /build/local/lib/libwebkit2gtk-4.0.so.37, CU 0x57ceb6a, DIE 0x59c3244&gt;, reply=&lt;unknown type in /build/local/lib/libwebkit2gtk-4.0.so.37, CU 0x57ceb6a, DIE 0x59c3250&gt;, destinationID=0, timeout=..., sendSyncOptions=...) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/Platform/IPC/Connection.h:353
#12 0x00007fa103a8e2c2 in WebKit::WebProcess::shouldTerminate() (this=0x15d4ce0) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/WebProcess/WebProcess.cpp:616
#13 0x00007fa103836865 in WebKit::ChildProcess::terminationTimerFired() (this=0x15d4ce0) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/Shared/ChildProcess.cpp:160
#14 0x00007fa1038367e0 in WebKit::ChildProcess::enableTermination() (this=0x15d4ce0) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/Shared/ChildProcess.cpp:141
#15 0x00007fa103a8e1fe in WebKit::WebProcess::removeWebPage(unsigned long) (this=0x15d4ce0, pageID=2) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/WebProcess/WebProcess.cpp:607
#16 0x00007fa103bfd19e in WebKit::WebPage::close() (this=0x15fd2b0) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1113
#17 0x00007fa103a8e68c in WebKit::WebProcess::didClose(IPC::Connection&amp;) (this=0x15d4ce0) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/WebProcess/WebProcess.cpp:674
#18 0x00007fa103804c72 in IPC::Connection::&lt;lambda()&gt;::operator()(void) (__closure=0x7fa09c005a78) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/Platform/IPC/Connection.cpp:735
#19 0x00007fa10380a504 in WTF::Function&lt;void()&gt;::CallableWrapper&lt;IPC::Connection::connectionDidClose()::&lt;lambda()&gt; &gt;::call(void) (this=0x7fa09c005a70) at /data/develop/local/webkitgtk-2.13.90/Source/WTF/wtf/Function.h:101
#20 0x00007fa0ffabc2e3 in WTF::Function&lt;void ()&gt;::operator()() const (this=0x7ffeb8f7f7b0) at /data/develop/local/webkitgtk-2.13.90/Source/WTF/wtf/Function.h:50
#21 0x00007fa0ffacf50e in WTF::RunLoop::performWork() (this=0x15d4aa0) at /data/develop/local/webkitgtk-2.13.90/Source/WTF/wtf/RunLoop.cpp:105
#22 0x00007fa0ffb12198 in WTF::RunLoop::&lt;lambda(gpointer)&gt;::operator()(gpointer) const (__closure=0x0, userData=0x15d4aa0) at /data/develop/local/webkitgtk-2.13.90/Source/WTF/wtf/glib/RunLoopGLib.cpp:66
#23 0x00007fa0ffb121bc in WTF::RunLoop::&lt;lambda(gpointer)&gt;::_FUN(gpointer) () at /data/develop/local/webkitgtk-2.13.90/Source/WTF/wtf/glib/RunLoopGLib.cpp:68
#24 0x00007fa0ffb12138 in WTF::&lt;lambda(GSource*, GSourceFunc, gpointer)&gt;::operator()(GSource *, GSourceFunc, gpointer) const (__closure=0x0, source=0x15d4c00, callback=0x7fa0ffb1219f &lt;WTF::RunLoop::&lt;lambda(gpointer)&gt;::_FUN(gpointer)&gt;, userData=0x15d4aa0) at /data/develop/local/webkitgtk-2.13.90/Source/WTF/wtf/glib/RunLoopGLib.cpp:44
#25 0x00007fa0ffb12167 in WTF::&lt;lambda(GSource*, GSourceFunc, gpointer)&gt;::_FUN(GSource *, GSourceFunc, gpointer) () at /data/develop/local/webkitgtk-2.13.90/Source/WTF/wtf/glib/RunLoopGLib.cpp:45
#26 0x00007fa100d94803 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#27 0x00007fa100d94bb0 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#28 0x00007fa100d94ed2 in g_main_loop_run () at /lib64/libglib-2.0.so.0
#29 0x00007fa0ffb12718 in WTF::RunLoop::run() () at /data/develop/local/webkitgtk-2.13.90/Source/WTF/wtf/glib/RunLoopGLib.cpp:94
#30 0x00007fa103db8e33 in WebKit::ChildProcessMain&lt;WebKit::WebProcess, WebKit::WebProcessMain&gt;(int, char**) (argc=2, argv=0x7ffeb8f7fbb8) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/Shared/unix/ChildProcessMain.h:61
#31 0x00007fa103db8ce6 in WebKit::WebProcessMainUnix(int, char**) (argc=2, argv=0x7ffeb8f7fbb8) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp:69
#32 0x000000000040089a in main(int, char**) (argc=2, argv=0x7ffeb8f7fbb8) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp:44
(gdb) f 2
#2  0x00007fa105603cf7 in WebCore::PlatformDisplay::~PlatformDisplay (this=0x17d6df0, __in_chrg=&lt;optimized out&gt;) at /data/develop/local/webkitgtk-2.13.90/Source/WebCore/platform/graphics/PlatformDisplay.cpp:128
128    PlatformDisplay::~PlatformDisplay()
(gdb) l
123        : m_eglDisplay(EGL_NO_DISPLAY)
124    #endif
125    {
126    }
127    
128    PlatformDisplay::~PlatformDisplay()
129    {
130    #if USE(EGL)
131        ASSERT(m_eglDisplay == EGL_NO_DISPLAY);
132    #endif
(gdb) 
133    }
134    
135    #if !PLATFORM(EFL)
136    GLContext* PlatformDisplay::sharingGLContext()
137    {
138        if (!m_sharingGLContext)
139            m_sharingGLContext = GLContext::createSharingContext(*this);
140        return m_sharingGLContext.get();
141    }
142    #endif
(gdb) f 3
#3  0x00007fa1054e943c in WebCore::PlatformDisplayX11::~PlatformDisplayX11 (this=0x17d6df0, __in_chrg=&lt;optimized out&gt;) at /data/develop/local/webkitgtk-2.13.90/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:54
54    PlatformDisplayX11::~PlatformDisplayX11()
(gdb) l
49        : m_display(display)
50        , m_ownedDisplay(false)
51    {
52    }
53    
54    PlatformDisplayX11::~PlatformDisplayX11()
55    {
56        if (m_ownedDisplay)
57            XCloseDisplay(m_display);
58    }
(gdb) p this
$1 = (WebCore::PlatformDisplayX11 * const) 0x17d6df0
(gdb) p *this
$2 = {&lt;WebCore::PlatformDisplay&gt; = {_vptr.PlatformDisplay = 0x7fa109a503c0 &lt;vtable for WebCore::PlatformDisplay+16&gt;, m_eglDisplay = 0x0, m_eglDisplayInitialized = false, m_eglMajorVersion = 0, m_eglMinorVersion = 0, 
    m_sharingGLContext = std::unique_ptr&lt;WebCore::GLContext&gt; containing 0x7fa0781a68c0}, m_display = 0x1580960, m_ownedDisplay = false, m_supportsXComposite = {m_isEngaged = false, m_value = {__data = &quot;\001&quot;, 
      __align = {&lt;No data fields&gt;}}}, m_supportsXDamage = {m_isEngaged = false, m_value = {__data = &quot;&quot;, __align = {&lt;No data fields&gt;}}}, m_damageEventBase = {m_isEngaged = false, m_value = {__data = &quot;\000\000\000&quot;, 
      __align = {&lt;No data fields&gt;}}}}
(gdb) f 4
#4  0x00007fa1054e9458 in WebCore::PlatformDisplayX11::~PlatformDisplayX11 (this=0x17d6df0, __in_chrg=&lt;optimized out&gt;) at /data/develop/local/webkitgtk-2.13.90/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:58
58    }
(gdb) l
53    
54    PlatformDisplayX11::~PlatformDisplayX11()
55    {
56        if (m_ownedDisplay)
57            XCloseDisplay(m_display);
58    }
59    
60    #if USE(EGL)
61    void PlatformDisplayX11::initializeEGLDisplay()
62    {
(gdb) p this
$3 = (WebCore::PlatformDisplayX11 * const) 0x17d6df0
(gdb) p *this
$4 = {&lt;WebCore::PlatformDisplay&gt; = {_vptr.PlatformDisplay = 0x7fa109a503c0 &lt;vtable for WebCore::PlatformDisplay+16&gt;, m_eglDisplay = 0x0, m_eglDisplayInitialized = false, m_eglMajorVersion = 0, m_eglMinorVersion = 0, 
    m_sharingGLContext = std::unique_ptr&lt;WebCore::GLContext&gt; containing 0x7fa0781a68c0}, m_display = 0x1580960, m_ownedDisplay = false, m_supportsXComposite = {m_isEngaged = false, m_value = {__data = &quot;\001&quot;, 
      __align = {&lt;No data fields&gt;}}}, m_supportsXDamage = {m_isEngaged = false, m_value = {__data = &quot;&quot;, __align = {&lt;No data fields&gt;}}}, m_damageEventBase = {m_isEngaged = false, m_value = {__data = &quot;\000\000\000&quot;, 
      __align = {&lt;No data fields&gt;}}}}
(gdb) f 5
#5  0x00007fa105604c5c in std::default_delete&lt;WebCore::PlatformDisplay&gt;::operator() (this=0x7fa109b31d48 &lt;WebCore::PlatformDisplay::sharedDisplay()::display&gt;, __ptr=0x17d6df0) at /usr/include/c++/6.0.0/bits/unique_ptr.h:76
76        delete __ptr;
(gdb) f 9
#9  0x00007fa1038054ef in IPC::Connection::didFailToSendSyncMessage (this=0x15d6af0) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/Platform/IPC/Connection.cpp:814
814        exit(0);
(gdb) l
809    void Connection::didFailToSendSyncMessage()
810    {
811        if (!m_shouldExitOnSyncMessageSendFailure)
812            return;
813    
814        exit(0);
815    }
816    
817    void Connection::enqueueIncomingMessage(std::unique_ptr&lt;Decoder&gt; incomingMessage)
818    {</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>