nwjs/nw.js

Linux/X11: crash on 0.85.0+ when trying to show a tooltip from `title` attributes ("GPU process exited unexpectedly: exit_code=133")

bastimeyer opened this issue · 6 comments

Issue Type

Before opening an issue, please search and see if it has already been raised.

  • Bug Report

  • Feature Request

  • Successfully reproduced against the latest version of NW.js?

Please use our mailing list or Gitter chatroom to ask questions. The issue tracker is only for bugs and feature requests, in English only. Please note that issues without a repro or code snippet are less likely to be resolved.

Issue

Reproduction: https://github.com/bastimeyer/nwjs-tooltip-crash
Related: streamlink/streamlink-twitch-gui#1005

When using NW.js 0.85.0+, including the latest version 0.87.0 with Chromium 124, the GPU process crashes when the application tries to render a tooltip from any title attribute in the DOM tree. This is not the case on 0.84.0 and below.

The GPU process crash seems only to happen when using Chromium's X11 ozone platform implementation. This is still the default on Wayland without the --ozone-platform=wayland arg being set explicitly (unfortunately).

Apparently, the issue also does only occur when using an Intel or Nvidia GPU. I couldn't manage to reproduce this on my main system using the AMDGPU kernel driver and latest mesa. In the issue report on my application, only reports from users with Intel or Nvidia GPUs have been made so far.

Here's an error log from my notebook running KDE Plasma on Wayland using an integrated Intel GPU (i915 kernel driver + latest mesa). As said, the issue does only occur on X11 / XWayland.

~/nwjs-0.87.0-sdk/nw --ozone-platform=x11 .
[16694:16694:0505/191045.026995:ERROR:object_proxy.cc(576)] Failed to call method: org.kde.KWallet.isEnabled: object_path= /modules/kwalletd6: org.freedesktop.DBus.Error.NoReply: Remote peer disconnected
[16694:16694:0505/191045.027068:ERROR:kwallet_dbus.cc(112)] Error contacting kwalletd6 (isEnabled)
[16694:16694:0505/191045.027442:ERROR:object_proxy.cc(576)] Failed to call method: org.kde.KLauncher.start_service_by_desktop_name: object_path= /KLauncher: org.freedesktop.DBus.Error.ServiceUnknown: The name is not activatable
[16694:16694:0505/191045.027458:ERROR:kwallet_dbus.cc(81)] Error contacting klauncher to start kwalletd6
[16694:16694:0505/191045.238732:ERROR:object_proxy.cc(576)] Failed to call method: org.kde.KWallet.close: object_path= /modules/kwalletd6: org.freedesktop.DBus.Error.NoReply: Remote peer disconnected
[16694:16694:0505/191045.238778:ERROR:kwallet_dbus.cc(502)] Error contacting kwalletd6 (close)
[16694:16694:0505/191045.239586:ERROR:chrome_browser_cloud_management_controller.cc(161)] Cloud management controller initialization aborted as CBCM is not enabled. Please use the `--enable-chrome-browser-cloud-management` command line flag to enable it if you are not using the official Google Chrome build.
[0505/191045.305872:ERROR:elf_dynamic_array_reader.h(64)] tag not found

(nw:16694): Gtk-WARNING **: 19:10:45.749: compose file /home/basti/.config/gtk-3.0/Compose does not include any keys besides keys in en-us compose file
[16722:16765:0505/191048.888497:FATAL:resource_bundle.cc(362)] Check failed: g_shared_instance_ != nullptr. 
#0 0x7fba2f2e0523 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6ce0522)
#1 0x7fba2f23d1e7 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6c3d1e6)
#2 0x7fba2f23d0cd (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6c3d0cc)
#3 0x7fba2f227070 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6c2706f)
#4 0x7fba2f2270ce (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6c270cd)
#5 0x7fba2f226e33 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6c26e32)
#6 0x7fba3088991a (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x8289919)
#7 0x7fba30878b76 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x8278b75)
#8 0x7fba3093e8a0 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x833e89f)
#9 0x7fba3094035a (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x8340359)
#10 0x7fba30949d95 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x8349d94)
#11 0x7fba30949c7c (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x8349c7b)
#12 0x7fba34f3efdd (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0xc93efdc)
#13 0x7fba34f06a7c (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0xc906a7b)
#14 0x7fba34edb2a1 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0xc8db2a0)
#15 0x7fba34eea853 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0xc8ea852)
#16 0x7fba34ee9ac6 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0xc8e9ac5)
#17 0x7fba2aae44fb (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x24e44fa)
#18 0x7fba2f2c7b19 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6cc7b18)
#19 0x7fba2f28940f (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6c8940e)
#20 0x7fba2f2a16b9 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6ca16b8)
#21 0x7fba2f2a1132 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6ca1131)
#22 0x7fba2f2a1af5 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6ca1af4)
#23 0x7fba2f30471c (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6d0471b)
#24 0x7fba2f2a1e87 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6ca1e86)
#25 0x7fba2f26b17f (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6c6b17e)
#26 0x7fba2f2c2b68 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6cc2b67)
#27 0x7fba2f2c2cb9 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6cc2cb8)
#28 0x7fba2f2d53cf (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x6cd53ce)
#29 0x7fba284aa1cf (/usr/lib/libc.so.6+0x8e1ce)
#30 0x7fba2852b6ec (/usr/lib/libc.so.6+0x10f6eb)
Task trace:
#0 0x7fba34eeb2fb (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0xc8eb2fa)
#1 0x7fba2f9e4b68 (/home/basti/nwjs-0.87.0-sdk/lib/libnw.so+0x73e4b67)
Crash keys:
  "gpu-url-chunk" = "chrome-extension://dajmfnaldgbiogcpjiglngadnnpjmnfe/index.html"
  "gpu-gl-context-is-virtual" = "0"
  "gr-context-type" = "GaneshGL"
  "variations" = "f38ef081-ca7d8d80,9481ce98-3d47f4f4,70678518-dee66fa8,be338734-dee66fa8,5f9907a9-dee66fa8,8eeccb9a-dee66fa8,2b465683-dee66fa8,52fc7926-dee66fa8,a41a7188-dee66fa8,ff71bfdc-dee66fa8,6daa4147-dee66fa8,4b935545-3d47f4f4,9a38bae3-3d47f4f4,2d1e43a3-3d47f4f4,386dc267-3d47f4f4,d69d967d-3695c92e,"
  "num-experiments" = "16"
  "egl-display-type" = "angle:OpenGL"
  "gpu-gl-renderer" = "ANGLE (Intel, Mesa Intel(R) HD Graphics 620 (KBL GT2), OpenGL 4.6 (Core Profile) Mesa 24.0.6-arch1.2)"
  "gpu-gl-vendor" = "Google Inc. (Intel)"
  "gpu-generation-intel" = "9"
  "gpu-vsver" = "1.00"
  "gpu-psver" = "1.00"
  "gpu-driver" = "24.0.6"
  "gpu_count" = "1"
  "gpu-devid" = "0x5916"
  "gpu-venid" = "0x8086"
  "reentry_guard_tls_slot" = "unused"
  "switch-11" = "--user-data-dir=/home/basti/.config/nwjs-tooltip-crash"
  "switch-10" = "--variations-seed-version"
  "switch-9" = "--field-trial-handle=3,i,1866447249929635377,1220333896076927628"
  "switch-8" = "--shared-files"
  "switch-7" = "--change-stack-guard-on-fork=enable"
  "switch-6" = "--nwapp-path=."
  "switch-5" = "--user-data-dir=/home/basti/.config/nwjs-tooltip-crash"
  "switch-4" = "--enable-crash-reporter=,"
  "switch-3" = "--crashpad-handler-pid=16696"
  "switch-2" = "--ozone-platform=x11"
  "switch-1" = "--no-sandbox"
  "num-switches" = "13"
  "osarch" = "x86_64"
  "pid" = "16722"
  "ptype" = "gpu-process"

[16694:16694:0505/191049.386247:ERROR:gpu_process_host.cc(1001)] GPU process exited unexpectedly: exit_code=133
[16830:16830:0505/191049.618609:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[16830:16830:0505/191049.623603:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
[16830:16830:0505/191051.597964:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 3 times!

Also note that the crash let some rendering process alive and orphaned, eating quite some bunch of cpu/gpu resources.

I couldn't reproduce this on macos running on apple silicon. The tooltips look fine. I only tested macos though.

I also got a nvidia and use X11