<?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>209431</bug_id>
          
          <creation_ts>2020-03-23 11:39:00 -0700</creation_ts>
          <short_desc>[GTK] [2.28.0] The Yelp build crashes if DISPLAY is not set</short_desc>
          <delta_ts>2020-04-27 04:52:17 -0700</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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alberto Garcia">berto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1632950</commentid>
    <comment_count>0</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2020-03-23 11:39:00 -0700</bug_when>
    <thetext>It seems that it&apos;s impossible to build Yelp (which links against WebKitGTK) if DISPLAY is unset:

Gtk-CRITICAL **: 18:22:42.130: gtk_icon_theme_get_for_screen: assertion &apos;GDK_IS_SCREEN (screen)&apos; failed
WARNING **: 18:22:42.132: Unable to connect to dbus: Cannot autolaunch D-Bus without X11 $DISPLAY
Unable to init server: Could not connect: Connection refused

I don&apos;t have a full backtrace with all symbols but this one already points at the problem:

Thread 1 &quot;libyelp-scan&quot; received signal SIGABRT, Aborted.
0x00007ffff7c56761 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007ffff7c56761 in raise () at /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff7c4055b in abort () at /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007ffff4ba02ed in  () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37
#3  0x00007ffff507079b in WebKit::HardwareAccelerationManager::HardwareAccelerationManager() () at ../Source/WebKit/UIProcess/gtk/HardwareAccelerationManager.cpp:55
#4  0x00007ffff507081c in WTF::NeverDestroyed&lt;WebKit::HardwareAccelerationManager&gt;::NeverDestroyed&lt;&gt;() () at DerivedSources/ForwardingHeaders/wtf/NeverDestroyed.h:52
#5  WebKit::HardwareAccelerationManager::singleton() () at ../Source/WebKit/UIProcess/gtk/HardwareAccelerationManager.cpp:36
#6  0x00007ffff50786d9 in WebKit::WebPreferences::platformInitializeStore() () at ../Source/WebKit/UIProcess/gtk/WebPreferencesGtk.cpp:42
#7  0x00007ffff4eea222 in WebKit::WebPreferences::create(WTF::String const&amp;, WTF::String const&amp;, WTF::String const&amp;) () at ../Source/WebKit/UIProcess/WebPreferences.cpp:45
#8  0x00007ffff4fbb101 in _WebKitSettingsPrivate::_WebKitSettingsPrivate() () at ../Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:59
#9  0x00007ffff7fa8e6d in g_type_create_instance () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x00007ffff7f886dd in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007ffff7f8a5e9 in g_object_new_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007ffff4fb5588 in webkit_settings_new_with_settings() () at ../Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:1577
#13 0x00007ffff7e32726 in yelp_view_get_global_settings () at libyelp/yelp-view.c:153
#14 0x00007ffff7e3274d in settings_show_text_cursor (settings=settings@entry=0x5555555b8150) at libyelp/yelp-view.c:2094
#15 0x00007ffff7e327e3 in yelp_view_class_init (klass=0x5555555b6520) at libyelp/yelp-view.c:465
#16 yelp_view_class_intern_init (klass=0x5555555b6520) at libyelp/yelp-view.c:144
#17 0x00007ffff7fa6ef1 in g_type_class_ref () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00005555555565bc in get_object_types () at libyelp-scan.c:62
#19 main () at libyelp-scan.c:113

That&apos;s here:

    if (!AcceleratedBackingStore::checkRequirements()) {
        m_canUseHardwareAcceleration = false;
        return;
    }

See also bug 156972 for a related problem already fixed 4 years ago.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632988</commentid>
    <comment_count>1</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2020-03-23 13:01:19 -0700</bug_when>
    <thetext>Ok, so we&apos;re hitting the RELEASE_ASSERT_NOT_REACHED() in
AcceleratedBackingStore::checkRequirements(), and the reason is that
the PlatformDisplay type is neither Wayland nor X11, but WPE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636433</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-01 02:33:43 -0700</bug_when>
    <thetext>(In reply to Alberto Garcia from comment #1)
&gt; Ok, so we&apos;re hitting the RELEASE_ASSERT_NOT_REACHED() in
&gt; AcceleratedBackingStore::checkRequirements(), and the reason is that
&gt; the PlatformDisplay type is neither Wayland nor X11, but WPE.

I think we can just remove that assert</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636436</commentid>
    <comment_count>3</comment_count>
      <attachid>395152</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-01 02:46:40 -0700</bug_when>
    <thetext>Created attachment 395152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636830</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-02 01:45:42 -0700</bug_when>
    <thetext>Committed r259380: &lt;https://trac.webkit.org/changeset/259380&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645774</commentid>
    <comment_count>5</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2020-04-26 07:28:25 -0700</bug_when>
    <thetext>It looks like the Yelp build still crashes, different backtrace this time:

(process:35799): Gtk-CRITICAL **: 13:40:20.270: gtk_icon_theme_get_for_screen: assertion &apos;GDK_IS_SCREEN (screen)&apos; failed

** (process:35799): WARNING **: 13:40:20.271: Unable to connect to dbus: Cannot autolaunch D-Bus without X11 $DISPLAY
Unable to init server: Could not connect: Connection refused
Segmentation fault

Thread 1 &quot;libyelp-scan&quot; received signal SIGSEGV, Segmentation fault.
0x00007ffff335cbd4 in wpe_renderer_backend_egl_destroy (backend=0x0) at ./src/renderer-backend-egl.c:54
54          backend-&gt;base.interface-&gt;destroy(backend-&gt;base.interface_data);
(gdb) bt
#0  0x00007ffff335cbd4 in wpe_renderer_backend_egl_destroy (backend=0x0) at ./src/renderer-backend-egl.c:54
#1  0x00007ffff63bc8bb in WebCore::PlatformDisplayLibWPE::~PlatformDisplayLibWPE() ()
    at ../Source/WebCore/platform/graphics/libwpe/PlatformDisplayLibWPE.cpp:66
#2  0x00007ffff63bc8d9 in WebCore::PlatformDisplayLibWPE::~PlatformDisplayLibWPE() ()
    at ../Source/WebCore/platform/graphics/libwpe/PlatformDisplayLibWPE.cpp:67
#3  0x00007ffff7c59e27 in __run_exit_handlers
    (status=0, listp=0x7ffff7dd8718 &lt;__exit_funcs&gt;, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true)
    at exit.c:108
#4  0x00007ffff7c59fda in __GI_exit (status=&lt;optimized out&gt;) at exit.c:139
#5  0x00007ffff7c42e12 in __libc_start_main (main=
    0x555555556480 &lt;main&gt;, argc=1, argv=0x7fffffffdd78, init=&lt;optimized out&gt;, fini=&lt;optimized out&gt;, rtld_fini=&lt;optimized out&gt;, stack_end=0x7fffffffdd68) at ../csu/libc-start.c:342
#6  0x0000555555557b7a in _start () at libyelp-scan.c:1025

So it seems that m_backend is null in the PlatformDisplayLibWPE destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645780</commentid>
    <comment_count>6</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2020-04-26 08:19:31 -0700</bug_when>
    <thetext>I confirm that checking for null in wpe_renderer_backend_egl_destroy() is enough to avoid the crash and fix the Yelp build, but perhaps the change should be in WebKit ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645911</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-27 00:27:21 -0700</bug_when>
    <thetext>I don&apos;t think we should create a PlatformDisplayLibWPE as fallback. We could fix it in PlatformDisplay::createPlatformDisplay()

either:

#if USE(WPE_RENDERER) -&gt; #if USE(LIBWPE)

or just move the block:

#if USE(WPE_RENDERER)
    return PlatformDisplayLibWPE::create();
#elif PLATFORM(WIN)
    return PlatformDisplayWin::create();
#endif

at the end of the function, right before the RELEASE_ASSERT_NOT_REACHED()

Could you try any of these solutions, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645953</commentid>
    <comment_count>8</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2020-04-27 03:25:26 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #7)
&gt; or just move the block:
&gt; 
&gt; #if USE(WPE_RENDERER)
&gt;     return PlatformDisplayLibWPE::create();
&gt; #elif PLATFORM(WIN)
&gt;     return PlatformDisplayWin::create();
&gt; #endif
&gt; 
&gt; at the end of the function, right before the RELEASE_ASSERT_NOT_REACHED()

I confirm that this one works and fixes the problem.

Do you want me to try the other one, or to prepare a patch with this one, or what?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645956</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-27 03:54:09 -0700</bug_when>
    <thetext>Yes, please, just submit a patch with any of the solutions if you don&apos;t mind :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645958</commentid>
    <comment_count>10</comment_count>
      <attachid>397668</attachid>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2020-04-27 04:06:29 -0700</bug_when>
    <thetext>Created attachment 397668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645963</commentid>
    <comment_count>11</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2020-04-27 04:52:17 -0700</bug_when>
    <thetext>Committed r260750: &lt;https://trac.webkit.org/changeset/260750&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395152</attachid>
            <date>2020-04-01 02:46:40 -0700</date>
            <delta_ts>2020-04-01 12:45:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-no-display.diff</filename>
            <type>text/plain</type>
            <size>1247</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNGQ1YWU2Y2Y4ZGU0Li5hMzhjZThmZDU0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMjAtMDQtMDEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdIFsyLjI4LjBdIFRoZSBZZWxwIGJ1aWxkIGNyYXNoZXMg
aWYgRElTUExBWSBpcyBub3Qgc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDk0MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW1vdmUgdGhlIGFzc2VydCB3aGVuIGRpc3BsYXkgaXMgbm90IFgxMSBu
b3IgV2F5bGFuZCwgYW5kIHNpbXBseSByZXR1cm4gZmFsc2UgdG8gZW5zdXJlIGFjY2VsZXJhdGlv
biBpcyBub3QgdXNlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNr
aW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZTo6
Y2hlY2tSZXF1aXJlbWVudHMpOgorCiAyMDIwLTA0LTAxICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IHJlc29sdXRpb24gb2YgSVB2NiBTVFVOL1RV
Uk4gYWRkcmVzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNj
ZWxlcmF0ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0Fj
Y2VsZXJhdGVkQmFja2luZ1N0b3JlLmNwcAppbmRleCAzOTA5YWE0MmZmMDguLmQxNGRkZDk5MzM1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFj
a2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0
ZWRCYWNraW5nU3RvcmUuY3BwCkBAIC01Myw3ICs1Myw2IEBAIGJvb2wgQWNjZWxlcmF0ZWRCYWNr
aW5nU3RvcmU6OmNoZWNrUmVxdWlyZW1lbnRzKCkKICAgICAgICAgcmV0dXJuIEFjY2VsZXJhdGVk
QmFja2luZ1N0b3JlWDExOjpjaGVja1JlcXVpcmVtZW50cygpOwogI2VuZGlmCiAKLSAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAo=
</data>
<flag name="review"
          id="410564"
          type_id="1"
          status="+"
          setter="clopez"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397668</attachid>
            <date>2020-04-27 04:06:29 -0700</date>
            <delta_ts>2020-04-27 04:48:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>209431.diff</filename>
            <type>text/plain</type>
            <size>1711</size>
            <attacher name="Alberto Garcia">berto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhNWFjMjgwYzdmM2EuLmY3YTM2MTY2NDJkNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIwLTA0LTI3ICBBbGJlcnRvIEdhcmNpYSAgPGJlcnRvQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0dUS10gWzIuMjguMF0gVGhlIFllbHAgYnVpbGQgY3Jhc2hlcyBpZiBE
SVNQTEFZIGlzIG5vdCBzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwOTQzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIERvbid0IGNyZWF0ZSBhIFBsYXRmb3JtRGlzcGxheUxpYldQRSBhcyBhIGZhbGxi
YWNrIHdoZW4gdXNpbmcKKyAgICAgICAgV2F5bGFuZCBvciBYMTEuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1EaXNwbGF5OjpjcmVhdGVQbGF0Zm9ybURpc3BsYXkpOgorCiAyMDIwLTA0LTI3ICBDbGF1
ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBjb21waWxlLXdhcm5pbmcgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKaW5kZXggOGJiNDdjYTJiNzdhLi5mOTU0N2Iz
YWY2OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtRGlzcGxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1EaXNwbGF5LmNwcApAQCAtOTgsMTIgKzk4LDYgQEAgc3RkOjp1bmlxdWVfcHRyPFBsYXRm
b3JtRGlzcGxheT4gUGxhdGZvcm1EaXNwbGF5OjpjcmVhdGVQbGF0Zm9ybURpc3BsYXkoKQogICAg
IH0KICNlbmRpZiAvLyBQTEFURk9STShHVEspCiAKLSNpZiBVU0UoV1BFX1JFTkRFUkVSKQotICAg
IHJldHVybiBQbGF0Zm9ybURpc3BsYXlMaWJXUEU6OmNyZWF0ZSgpOwotI2VsaWYgUExBVEZPUk0o
V0lOKQotICAgIHJldHVybiBQbGF0Zm9ybURpc3BsYXlXaW46OmNyZWF0ZSgpOwotI2VuZGlmCi0K
ICNpZiBQTEFURk9STShXQVlMQU5EKQogICAgIGlmIChhdXRvIHBsYXRmb3JtRGlzcGxheSA9IFBs
YXRmb3JtRGlzcGxheVdheWxhbmQ6OmNyZWF0ZSgpKQogICAgICAgICByZXR1cm4gcGxhdGZvcm1E
aXNwbGF5OwpAQCAtMTIxLDYgKzExNSwxMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNw
bGF5PiBQbGF0Zm9ybURpc3BsYXk6OmNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpCiAgICAgcmV0dXJu
IFBsYXRmb3JtRGlzcGxheVgxMTo6Y3JlYXRlKG51bGxwdHIpOwogI2VuZGlmCiAKKyNpZiBVU0Uo
V1BFX1JFTkRFUkVSKQorICAgIHJldHVybiBQbGF0Zm9ybURpc3BsYXlMaWJXUEU6OmNyZWF0ZSgp
OworI2VsaWYgUExBVEZPUk0oV0lOKQorICAgIHJldHVybiBQbGF0Zm9ybURpc3BsYXlXaW46OmNy
ZWF0ZSgpOworI2VuZGlmCisKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQog
Cg==
</data>
<flag name="review"
          id="413061"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>