<?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>246459</bug_id>
          
          <creation_ts>2022-10-13 07:02:52 -0700</creation_ts>
          <short_desc>[GTK] Crash in webkitWebViewBaseSnapshot when opening link from external application while Ephy Tech Preview is closed</short_desc>
          <delta_ts>2022-12-01 14:18:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>247463</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>210100</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1905333</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-10-13 07:02:52 -0700</bug_when>
    <thetext>Make sure Ephy Tech Preview is closed and is your default browser. Also make sure it is GTK 4 (we have switched it from GTK 3 to GTK 4 again for testing purposes). Click on a link in any application (mail client, feed reader, whatever). For me, Epiphany will crash on startup. Unfortunately, Exalm cannot reproduce this bug, so maybe it&apos;s only me. Looks to be related to accelerated compositing mode.

The backtrace:

#0  0x00007fa7f387e8ba in webkitWebViewBaseSnapshot (snapshot=&lt;optimized out&gt;, widget=&lt;optimized out&gt;)
    at /usr/lib/debug/source/sdk/webkit2gtk-5.0.bst/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:742
#1  webkitWebViewBaseSnapshot(GtkWidget*, GtkSnapshot*) (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at /usr/lib/debug/source/sdk/webkit2gtk-5.0.bst/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:726
#2  0x00007fa7f75ef598 in gtk_widget_create_render_node (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:11606
#3  0x00007fa7f75f231c in gtk_widget_do_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:11646
#4  0x00007fa7f75ff232 in gtk_widget_snapshot_child
    (widget=&lt;optimized out&gt;, child=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:12067
#5  0x00007fa7f74e3d6b in gtk_overlay_snapshot_child
    (snapshot=&lt;optimized out&gt;, child=&lt;optimized out&gt;, overlay=&lt;optimized out&gt;) at ../gtk/gtkoverlay.c:201
#6  gtk_overlay_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkoverlay.c:224
BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libadwaita-1.so.0.debug: No such file or directory

BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libadwaita-1.so.0.debug: No such file or directory

BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libadwaita-1.so.0.debug: No such file or directory

warning: Can&apos;t read data for section &apos;.debug_loclists&apos; in file &apos;/usr/lib/debug/usr/lib/x86_64-linux-gnu/libadwaita-1.so.0.debug&apos;
#7  0x00007fa7f75ef18b in gtk_widget_create_render_node (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:11611
#8  0x00007fa7f75f231c in gtk_widget_do_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:11646
#9  0x00007fa7f75ff232 in gtk_widget_snapshot_child
    (widget=&lt;optimized out&gt;, child=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:12067
#10 0x00007fa7f75ff2de in gtk_widget_real_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:762
#11 0x00007fa7f75ef18b in gtk_widget_create_render_node (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:11611
#12 0x00007fa7f75f231c in gtk_widget_do_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:11646
#13 0x00007fa7f75ff232 in gtk_widget_snapshot_child
    (widget=&lt;optimized out&gt;, child=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:12067
#14 0x00007fa7f75ff2de in gtk_widget_real_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:762
#15 0x00007fa7f75ef18b in gtk_widget_create_render_node (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:11611
#16 0x00007fa7f75f231c in gtk_widget_do_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:11646
#17 0x00007fa7f75ff232 in gtk_widget_snapshot_child
    (widget=&lt;optimized out&gt;, child=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:12067
#18 0x00007fa7f6c321fc in adw_tab_view_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../src/adw-tab-view.c:1987
#19 0x00007fa7f75ef18b in gtk_widget_create_render_node (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:11611
#20 0x00007fa7f75f231c in gtk_widget_do_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:11646
#21 0x00007fa7f75ff232 in gtk_widget_snapshot_child
    (widget=&lt;optimized out&gt;, child=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:12067
#22 0x00007fa7f75ff2de in gtk_widget_real_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:762
#23 0x00007fa7f75ef18b in gtk_widget_create_render_node (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:11611
#24 0x00007fa7f75f231c in gtk_widget_do_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
    at ../gtk/gtkwidget.c:11646
#25 0x00007fa7f75ff232 in gtk_widget_snapshot_child
    (widget=&lt;optimized out&gt;, child=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:12067
#26 0x00007fa7f75ff2de in gtk_widget_real_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;)
--Type &lt;RET&gt; for more, q to quit, c to continue without paging--c
    at ../gtk/gtkwidget.c:762
#27 0x00007fa7f75ef18b in gtk_widget_create_render_node (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:11611
#28 0x00007fa7f75f231c in gtk_widget_do_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:11646
#29 0x00007fa7f75ff232 in gtk_widget_snapshot_child (widget=&lt;optimized out&gt;, child=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:12067
#30 0x00007fa7f6c04a90 in adw_flap_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../src/adw-flap.c:1066
#31 0x00007fa7f75ef598 in gtk_widget_create_render_node (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:11606
#32 0x00007fa7f75f231c in gtk_widget_do_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:11646
#33 0x00007fa7f75ff232 in gtk_widget_snapshot_child (widget=&lt;optimized out&gt;, child=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:12067
#34 0x00007fa7f75ff2de in gtk_widget_real_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:762
#35 0x00007fa7f75ef18b in gtk_widget_create_render_node (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:11611
#36 0x00007fa7f75f231c in gtk_widget_do_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:11646
#37 0x00007fa7f75ff232 in gtk_widget_snapshot_child (widget=&lt;optimized out&gt;, child=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:12067
#38 0x00007fa7f75ff2de in gtk_widget_real_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:762
#39 0x00007fa7f75ef598 in gtk_widget_create_render_node (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:11606
#40 0x00007fa7f75f231c in gtk_widget_do_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:11646
#41 0x00007fa7f75ff232 in gtk_widget_snapshot_child (widget=&lt;optimized out&gt;, child=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:12067
BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.7400.1.debug: No such file or directory

BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.7400.1.debug: No such file or directory

BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.7400.1.debug: No such file or directory

warning: Can&apos;t read data for section &apos;.debug_loclists&apos; in file &apos;/usr/lib/debug/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.7400.1.debug&apos;
#42 0x00007fa7f75ff2de in gtk_widget_real_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:762
#43 0x00007fa7f75ef18b in gtk_widget_create_render_node (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:11611
#44 0x00007fa7f75f231c in gtk_widget_do_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:11646
#45 0x00007fa7f75ff232 in gtk_widget_snapshot_child (widget=&lt;optimized out&gt;, child=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:12067
#46 0x00007fa7f75ff2de in gtk_widget_real_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:762
#47 0x00007fa7f75ef598 in gtk_widget_create_render_node (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:11606
#48 0x00007fa7f75f231c in gtk_widget_do_snapshot (widget=&lt;optimized out&gt;, snapshot=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:11646
#49 0x00007fa7f75fe96c in gtk_widget_snapshot (snapshot=&lt;optimized out&gt;, widget=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:11668
#50 gtk_widget_render (widget=&lt;optimized out&gt;, surface=&lt;optimized out&gt;, region=&lt;optimized out&gt;) at ../gtk/gtkwidget.c:11700
#51 0x00007fa7f7606379 in surface_render (surface=&lt;optimized out&gt;, region=&lt;optimized out&gt;, widget=&lt;optimized out&gt;) at ../gtk/gtkwindow.c:4689
BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.1.debug: No such file or directory

BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.1.debug: No such file or directory

BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.1.debug: No such file or directory

warning: Can&apos;t read data for section &apos;.debug_loclists&apos; in file &apos;/usr/lib/debug/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.1.debug&apos;
#52 0x00007fa7f770f787 in _gdk_marshal_BOOLEAN__BOXEDv (closure=&lt;optimized out&gt;, return_value=&lt;optimized out&gt;, instance=&lt;optimized out&gt;, args=&lt;optimized out&gt;, marshal_data=&lt;optimized out&gt;, n_params=&lt;optimized out&gt;, param_types=&lt;optimized out&gt;) at gdk/gdkmarshalers.c:130
#53 0x00007fa7f7e706fa in _g_closure_invoke_va (closure=&lt;optimized out&gt;, return_value=&lt;optimized out&gt;, instance=&lt;optimized out&gt;, args=&lt;optimized out&gt;, n_params=&lt;optimized out&gt;, param_types=&lt;optimized out&gt;) at ../gobject/gclosure.c:895
#54 0x00007fa7f7e8b52e in g_signal_emit_valist (instance=&lt;optimized out&gt;, signal_id=&lt;optimized out&gt;, detail=&lt;optimized out&gt;, var_args=&lt;optimized out&gt;) at ../gobject/gsignal.c:3456
#55 0x00007fa7f7e8c2f3 in g_signal_emit (instance=&lt;optimized out&gt;, signal_id=&lt;optimized out&gt;, detail=&lt;optimized out&gt;) at ../gobject/gsignal.c:3606
#56 0x00007fa7f773cce2 in gdk_surface_process_updates_internal (surface=&lt;optimized out&gt;) at ../gdk/gdksurface.c:1334
BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.7400.1.debug: No such file or directory

BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.7400.1.debug: No such file or directory

BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.7400.1.debug: No such file or directory

warning: Can&apos;t read data for section &apos;.debug_loclists&apos; in file &apos;/usr/lib/debug/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.7400.1.debug&apos;
#57 gdk_surface_paint_on_clock (clock=&lt;optimized out&gt;, data=&lt;optimized out&gt;) at ../gdk/gdksurface.c:1422
#58 0x00007fa7f7e706fa in _g_closure_invoke_va (closure=&lt;optimized out&gt;, return_value=&lt;optimized out&gt;, instance=&lt;optimized out&gt;, args=&lt;optimized out&gt;, n_params=&lt;optimized out&gt;, param_types=&lt;optimized out&gt;) at ../gobject/gclosure.c:895
BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libc.so.6.debug: No such file or directory

BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libc.so.6.debug: No such file or directory

BFD: reopening /usr/lib/debug/usr/lib/x86_64-linux-gnu/libc.so.6.debug: No such file or directory

warning: Can&apos;t read data for section &apos;.debug_loclists&apos; in file &apos;/usr/lib/debug/usr/lib/x86_64-linux-gnu/libc.so.6.debug&apos;
#59 0x00007fa7f7e8c0ef in g_signal_emit_valist (instance=&lt;optimized out&gt;, signal_id=&lt;optimized out&gt;, detail=&lt;optimized out&gt;, var_args=&lt;optimized out&gt;) at ../gobject/gsignal.c:3456
#60 0x00007fa7f7e8c2f3 in g_signal_emit (instance=&lt;optimized out&gt;, signal_id=&lt;optimized out&gt;, detail=&lt;optimized out&gt;) at ../gobject/gsignal.c:3606
#61 0x00007fa7f772bc6d in _gdk_frame_clock_emit_paint (frame_clock=&lt;optimized out&gt;) at ../gdk/gdkframeclock.c:708
#62 0x00007fa7f772c94e in gdk_frame_clock_paint_idle (data=&lt;optimized out&gt;) at ../gdk/gdkframeclockidle.c:609
#63 0x00007fa7f7d7435f in g_timeout_dispatch (source=&lt;optimized out&gt;, callback=&lt;optimized out&gt;, user_data=&lt;optimized out&gt;) at ../glib/gmain.c:5007
#64 0x00007fa7f7d73661 in g_main_dispatch (context=&lt;optimized out&gt;) at ../glib/gmain.c:3444
#65 g_main_context_dispatch (context=&lt;optimized out&gt;) at ../glib/gmain.c:4162
#66 0x00007fa7f7d73bb8 in g_main_context_iterate (context=&lt;optimized out&gt;, block=&lt;optimized out&gt;, dispatch=&lt;optimized out&gt;, self=&lt;optimized out&gt;) at ../

The problem is here:

    auto* pageSnapshot = gtk_snapshot_new();
    if (!webViewBase-&gt;priv-&gt;isBlank) {
        ASSERT(drawingArea-&gt;isInAcceleratedCompositingMode());
        webViewBase-&gt;priv-&gt;acceleratedBackingStore-&gt;snapshot(pageSnapshot); &lt;-- this is line 742 for 2.38.0
    }

Shame that&apos;s not a release assert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1908236</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-10-25 14:10:24 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 238343 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1916068</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-12-01 14:18:23 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 247463 ***</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>