[Webkit-unassigned] [Bug 161605] New: [GTK] Crash of WebProcess on the last WebView disconnect

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Sep 5 08:09:25 PDT 2016


https://bugs.webkit.org/show_bug.cgi?id=161605

            Bug ID: 161605
           Summary: [GTK] Crash of WebProcess on the last WebView
                    disconnect
    Classification: Unclassified
           Product: WebKit
           Version: WebKit Local Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKit Gtk
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: mcrha at redhat.com
                CC: bugs-noreply at webkitgtk.org

I'm running WebKitGTK+ 2.13.90 and the WebProcess crashes here when the last WebView "disconnects" from it. The console (terminal) doesn't show any messages.

Thread 1 "WebKitWebProces" received signal SIGSEGV, Segmentation fault.
0x00007fa103de78c6 in std::default_delete<WebCore::GLContext>::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<WebCore::GLContext>::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<WebCore::GLContext, std::default_delete<WebCore::GLContext> >::~unique_ptr() (this=0x17d6e10, __in_chrg=<optimized out>) at /usr/include/c++/6.0.0/bits/unique_ptr.h:236
#2  0x00007fa105603cf7 in WebCore::PlatformDisplay::~PlatformDisplay() (this=0x17d6df0, __in_chrg=<optimized out>) 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=<optimized out>) 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=<optimized out>) at /data/develop/local/webkitgtk-2.13.90/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:58
#5  0x00007fa105604c5c in std::default_delete<WebCore::PlatformDisplay>::operator()(WebCore::PlatformDisplay*) const (this=0x7fa109b31d48 <WebCore::PlatformDisplay::sharedDisplay()::display>, __ptr=0x17d6df0)
    at /usr/include/c++/6.0.0/bits/unique_ptr.h:76
#6  0x00007fa1056046f1 in std::unique_ptr<WebCore::PlatformDisplay, std::default_delete<WebCore::PlatformDisplay> >::~unique_ptr() (this=0x7fa109b31d48 <WebCore::PlatformDisplay::sharedDisplay()::display>, __in_chrg=<optimized out>)
    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<IPC::Encoder, std::default_delete<IPC::Encoder> >, std::chrono::duration<long, std::ratio<1l, 1000l> >, WTF::OptionSet<IPC::SendSyncOption>) (this=0x15d6af0, syncRequestID=6, encoder=std::unique_ptr<IPC::Encoder> 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<Messages::WebProcessProxy::ShouldTerminate>(Messages::WebProcessProxy::ShouldTerminate&&, Messages::WebProcessProxy::ShouldTerminate::Reply&&, unsigned long, std::chrono::duration<long, std::ratio<1l, 1000l> >, WTF::OptionSet<IPC::SendSyncOption>) (this=0x15d6af0, message=<unknown type in /build/local/lib/libwebkit2gtk-4.0.so.37, CU 0x57ceb6a, DIE 0x59c3244>, reply=<unknown type in /build/local/lib/libwebkit2gtk-4.0.so.37, CU 0x57ceb6a, DIE 0x59c3250>, 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&) (this=0x15d4ce0) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/WebProcess/WebProcess.cpp:674
#18 0x00007fa103804c72 in IPC::Connection::<lambda()>::operator()(void) (__closure=0x7fa09c005a78) at /data/develop/local/webkitgtk-2.13.90/Source/WebKit2/Platform/IPC/Connection.cpp:735
#19 0x00007fa10380a504 in WTF::Function<void()>::CallableWrapper<IPC::Connection::connectionDidClose()::<lambda()> >::call(void) (this=0x7fa09c005a70) at /data/develop/local/webkitgtk-2.13.90/Source/WTF/wtf/Function.h:101
#20 0x00007fa0ffabc2e3 in WTF::Function<void ()>::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::<lambda(gpointer)>::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::<lambda(gpointer)>::_FUN(gpointer) () at /data/develop/local/webkitgtk-2.13.90/Source/WTF/wtf/glib/RunLoopGLib.cpp:68
#24 0x00007fa0ffb12138 in WTF::<lambda(GSource*, GSourceFunc, gpointer)>::operator()(GSource *, GSourceFunc, gpointer) const (__closure=0x0, source=0x15d4c00, callback=0x7fa0ffb1219f <WTF::RunLoop::<lambda(gpointer)>::_FUN(gpointer)>, userData=0x15d4aa0) at /data/develop/local/webkitgtk-2.13.90/Source/WTF/wtf/glib/RunLoopGLib.cpp:44
#25 0x00007fa0ffb12167 in WTF::<lambda(GSource*, GSourceFunc, gpointer)>::_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<WebKit::WebProcess, WebKit::WebProcessMain>(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=<optimized out>) 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=<optimized out>) 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 = {<WebCore::PlatformDisplay> = {_vptr.PlatformDisplay = 0x7fa109a503c0 <vtable for WebCore::PlatformDisplay+16>, m_eglDisplay = 0x0, m_eglDisplayInitialized = false, m_eglMajorVersion = 0, m_eglMinorVersion = 0, 
    m_sharingGLContext = std::unique_ptr<WebCore::GLContext> containing 0x7fa0781a68c0}, m_display = 0x1580960, m_ownedDisplay = false, m_supportsXComposite = {m_isEngaged = false, m_value = {__data = "\001", 
      __align = {<No data fields>}}}, m_supportsXDamage = {m_isEngaged = false, m_value = {__data = "", __align = {<No data fields>}}}, m_damageEventBase = {m_isEngaged = false, m_value = {__data = "\000\000\000", 
      __align = {<No data fields>}}}}
(gdb) f 4
#4  0x00007fa1054e9458 in WebCore::PlatformDisplayX11::~PlatformDisplayX11 (this=0x17d6df0, __in_chrg=<optimized out>) 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 = {<WebCore::PlatformDisplay> = {_vptr.PlatformDisplay = 0x7fa109a503c0 <vtable for WebCore::PlatformDisplay+16>, m_eglDisplay = 0x0, m_eglDisplayInitialized = false, m_eglMajorVersion = 0, m_eglMinorVersion = 0, 
    m_sharingGLContext = std::unique_ptr<WebCore::GLContext> containing 0x7fa0781a68c0}, m_display = 0x1580960, m_ownedDisplay = false, m_supportsXComposite = {m_isEngaged = false, m_value = {__data = "\001", 
      __align = {<No data fields>}}}, m_supportsXDamage = {m_isEngaged = false, m_value = {__data = "", __align = {<No data fields>}}}, m_damageEventBase = {m_isEngaged = false, m_value = {__data = "\000\000\000", 
      __align = {<No data fields>}}}}
(gdb) f 5
#5  0x00007fa105604c5c in std::default_delete<WebCore::PlatformDisplay>::operator() (this=0x7fa109b31d48 <WebCore::PlatformDisplay::sharedDisplay()::display>, __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<Decoder> incomingMessage)
818    {

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20160905/862b1f6f/attachment-0001.html>


More information about the webkit-unassigned mailing list