Bug 149561

Summary: [GTK] Another crash in cairo_surface_set_device_scale
Product: WebKit Reporter: Michael Catanzaro <mcatanzaro>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: bugs-noreply, cgarcia, marciosr10, mcatanzaro, mrobinson, yoon, zan
Priority: P2    
Version: Other   
Hardware: PC   
OS: Linux   
See Also: https://bugzilla.redhat.com/show_bug.cgi?id=1266514
https://bugzilla.redhat.com/show_bug.cgi?id=1266417
https://bugzilla.redhat.com/show_bug.cgi?id=1251364
https://bugzilla.redhat.com/show_bug.cgi?id=1257081
https://bugzilla.redhat.com/show_bug.cgi?id=1255634
https://bugzilla.redhat.com/show_bug.cgi?id=1272050

Description Michael Catanzaro 2015-09-25 13:35:37 PDT
From the downstream report:

"Right-click new tab on a bugzilla.redhat.com bug.

From now on, starting epiphany (which remembers which tabs are open) crashes it immediately."

I couldn't reproduce with my development build. Full backtrace downstream.

Truncated backtrace:
Thread no. 1 (10 frames)
 #0 cairo_surface_set_device_scale
 #1 WebCore::cairoSurfaceSetDeviceScale(_cairo_surface*, double, double) at /usr/src/debug/webkitgtk-2.10.0/Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp:292
 #2 WebKit::BackingStore::createBackend() at /usr/src/debug/webkitgtk-2.10.0/Source/WebKit2/UIProcess/cairo/BackingStoreCairo.cpp:72
 #3 WebKit::BackingStore::incorporateUpdate(WebKit::ShareableBitmap*, WebKit::UpdateInfo const&) at /usr/src/debug/webkitgtk-2.10.0/Source/WebKit2/UIProcess/cairo/BackingStoreCairo.cpp:89
 #4 WebKit::BackingStore::incorporateUpdate(WebKit::UpdateInfo const&) at /usr/src/debug/webkitgtk-2.10.0/Source/WebKit2/UIProcess/BackingStore.cpp:62
 #5 WebKit::DrawingAreaProxyImpl::incorporateUpdate(WebKit::UpdateInfo const&) at /usr/src/debug/webkitgtk-2.10.0/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp:221
 #6 WebKit::DrawingAreaProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&) at /usr/src/debug/webkitgtk-2.10.0/Source/WebKit2/Platform/IPC/HandleMessage.h:16
 #10 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::MessageDecoder&) at /usr/src/debug/webkitgtk-2.10.0/Source/WebKit2/Platform/IPC/MessageReceiverMap.cpp:102
 #11 WebKit::ChildProcessProxy::dispatchMessage(IPC::Connection&, IPC::MessageDecoder&) at /usr/src/debug/webkitgtk-2.10.0/Source/WebKit2/Shared/ChildProcessProxy.cpp:130
 #12 WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&) at /usr/src/debug/webkitgtk-2.10.0/Source/WebKit2/UIProcess/WebProcessProxy.cpp:478
Comment 1 Michael Catanzaro 2015-09-25 14:11:34 PDT
*** Bug 149560 has been marked as a duplicate of this bug. ***
Comment 2 Michael Catanzaro 2015-09-25 14:12:27 PDT
Apparently this can be reproduced by visiting extensions.gnome.org (so a site that attempts to load a NPAPI plugin) in Wayland.
Comment 3 Michael Catanzaro 2015-09-25 14:13:47 PDT
Another user reports: "Started epiphany, tried to reload failed tab."

Yoon, this is the bug you looked at in Gothenburg.
Comment 4 Gwang Yoon Hwang 2015-09-30 01:30:52 PDT
(In reply to comment #2)
> Apparently this can be reproduced by visiting extensions.gnome.org (so a
> site that attempts to load a NPAPI plugin) in Wayland.

I could not reproduce this crash in my environment.
I launched the minibrowser in the Weston compositor and visit there,
but it loads the page without crash with a warning message: "we cannot detect a running copy of GNOME..".
Not sure how I can reproduce it.

btw, I changed my distro to fedora as you suggested. :)
Comment 5 Michael Catanzaro 2015-09-30 06:08:18 PDT
(In reply to comment #4)
> I could not reproduce this crash in my environment.
> I launched the minibrowser in the Weston compositor and visit there,
> but it loads the page without crash with a warning message: "we cannot
> detect a running copy of GNOME..".
> Not sure how I can reproduce it.

Not sure either, but when you looked at it last time, you said it was a very simple problem. I was quite tired at the time and not paying too much attention; maybe you were too. :p

> btw, I changed my distro to fedora as you suggested. :)

Well you did keep complaining about your previous distro. :)
Comment 6 Márcio 2015-10-17 13:32:38 PDT
I had a similar problem with epiphany 3.18.0 at app start.

Terminal output: 

Gdk-CRITICAL **: gdk_window_create_similar_surface: assertion 'GDK_IS_WINDOW (window)' failed

GDB backtrace:


Starting program: /usr/bin/epiphany 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7fffe1bff700 (LWP 2717)]
[New Thread 0x7fffe13fe700 (LWP 2718)]
[New Thread 0x7fffe0bfd700 (LWP 2719)]
[New Thread 0x7fff92b92700 (LWP 2720)]
[New Thread 0x7fff92391700 (LWP 2721)]
[New Thread 0x7fff91b90700 (LWP 2722)]
[New Thread 0x7fff9138f700 (LWP 2725)]
[New Thread 0x7fff90b8e700 (LWP 2726)]
[New Thread 0x7fff83fff700 (LWP 2727)]
[New Thread 0x7fff82782700 (LWP 2740)]
[New Thread 0x7fff81f81700 (LWP 2741)]
[New Thread 0x7fff8110c700 (LWP 2761)]
[New Thread 0x7fff8090b700 (LWP 2764)]
[New Thread 0x7fff6ffff700 (LWP 2773)]
[New Thread 0x7fff6f7fe700 (LWP 2774)]
[New Thread 0x7fff6effd700 (LWP 2775)]

(epiphany:2708): Gdk-CRITICAL **: gdk_window_create_similar_surface: assertion 'GDK_IS_WINDOW (window)' failed

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff1fc0190 in cairo_surface_set_device_scale ()
   from /usr/lib/libcairo.so.2
(gdb) dt
Undefined command: "dt".  Try "help".
(gdb) bt
#0  0x00007ffff1fc0190 in cairo_surface_set_device_scale ()
   from /usr/lib/libcairo.so.2
#1  0x00007ffff526d276 in ?? () from /usr/lib/libwebkit2gtk-4.0.so.37
#2  0x00007ffff526d507 in ?? () from /usr/lib/libwebkit2gtk-4.0.so.37
#3  0x00007ffff521a556 in ?? () from /usr/lib/libwebkit2gtk-4.0.so.37
#4  0x00007ffff521ab3f in ?? () from /usr/lib/libwebkit2gtk-4.0.so.37
#5  0x00007ffff52a046d in ?? () from /usr/lib/libwebkit2gtk-4.0.so.37
#6  0x00007ffff4fef239 in ?? () from /usr/lib/libwebkit2gtk-4.0.so.37
#7  0x00007ffff50af882 in ?? () from /usr/lib/libwebkit2gtk-4.0.so.37
#8  0x00007ffff4feb45b in ?? () from /usr/lib/libwebkit2gtk-4.0.so.37
#9  0x00007ffff4febe7b in ?? () from /usr/lib/libwebkit2gtk-4.0.so.37
#10 0x00007ffff66d10bf in ?? () from /usr/lib/libwebkit2gtk-4.0.so.37
#11 0x00007ffff4997c6c in WTF::GMainLoopSource::voidCallback() ()
   from /usr/lib/libjavascriptcoregtk-4.0.so.18
#12 0x00007ffff499660a in WTF::GMainLoopSource::voidSourceCallback(WTF::GMainLoopSource*) () from /usr/lib/libjavascriptcoregtk-4.0.so.18
#13 0x00007ffff11f2c7a in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#14 0x00007ffff11f3020 in ?? () from /usr/lib/libglib-2.0.so.0
#15 0x00007ffff11f30cc in g_main_context_iteration ()
   from /usr/lib/libglib-2.0.so.0
Comment 7 Márcio 2015-10-17 16:01:08 PDT
Using epiphany on wayland.