Open pervoj opened 4 months ago
Using the activate signal in Gtk.Application works fine, but switching to the activate vfunc results in segfault:
activate
Gtk.Application
Core dump:
PID: 48034 (node) UID: 1000 (pervoj) GID: 1000 (pervoj) Signal: 11 (SEGV) Timestamp: Sat 2024-04-27 21:03:55 CEST (4min 51s ago) Command Line: node . Executable: /var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node Control Group: /user.slice/user-1000.slice/user@1000.service/app.slice/app-gnome-codium-43495.scope Unit: user@1000.service User Unit: app-gnome-codium-43495.scope Slice: user-1000.slice Owner UID: 1000 (pervoj) Boot ID: cd0e8b4925304c078e15ea8d37166d23 Machine ID: f54b3cee66d14309828dbbdd47de34bf Hostname: envy Storage: /var/lib/systemd/coredump/core.node.1000.cd0e8b4925304c078e15ea8d37166d23.48034.1714244635000000.zst (present) Size on Disk: 10.3M Message: Process 48034 (node) of user 1000 dumped core. Module libgvfsdbus.so from rpm gvfs-1.54.0-2.fc40.x86_64 Module libgvfscommon.so from rpm gvfs-1.54.0-2.fc40.x86_64 Module libgioremote-volume-monitor.so from rpm gvfs-1.54.0-2.fc40.x86_64 Module libduktape.so.207 from rpm duktape-2.7.0-7.fc40.x86_64 Module libpxbackend-1.0.so from rpm libproxy-0.5.5-1.fc40.x86_64 Module libproxy.so.1 from rpm libproxy-0.5.5-1.fc40.x86_64 Module libdconfsettings.so from rpm dconf-0.40.0-12.fc40.x86_64 Module libpciaccess.so.0 from rpm libpciaccess-0.16-12.fc40.x86_64 Module libdrm_intel.so.1 from rpm libdrm-2.4.120-3.fc40.x86_64 Module libdrm_nouveau.so.2 from rpm libdrm-2.4.120-3.fc40.x86_64 Module libdrm_amdgpu.so.1 from rpm libdrm-2.4.120-3.fc40.x86_64 Module libdrm_radeon.so.1 from rpm libdrm-2.4.120-3.fc40.x86_64 Module libsensors.so.4 from rpm lm_sensors-3.6.0-18.fc40.x86_64 Module iris_dri.so from rpm mesa-24.0.5-1.fc40.x86_64 Module libXxf86vm.so.1 from rpm libXxf86vm-1.1.5-6.fc40.x86_64 Module libxcb-glx.so.0 from rpm libxcb-1.16-4.fc40.x86_64 Module libGLX_mesa.so.0 from rpm mesa-24.0.5-1.fc40.x86_64 Module libGL.so.1 from rpm libglvnd-1.7.0-4.fc40.x86_64 Module libtinfo.so.6 from rpm ncurses-6.4-12.20240127.fc40.x86_64 Module libedit.so.0 from rpm libedit-3.1-50.20230828cvs.fc40.x86_64 Module libxshmfence.so.1 from rpm libxshmfence-1.3.2-3.fc40.x86_64 Module libxcb-sync.so.1 from rpm libxcb-1.16-4.fc40.x86_64 Module libxcb-present.so.0 from rpm libxcb-1.16-4.fc40.x86_64 Module libxcb-dri3.so.0 from rpm libxcb-1.16-4.fc40.x86_64 Module libxcb-xfixes.so.0 from rpm libxcb-1.16-4.fc40.x86_64 Module libxcb-dri2.so.0 from rpm libxcb-1.16-4.fc40.x86_64 Module libglapi.so.0 from rpm mesa-24.0.5-1.fc40.x86_64 Module libEGL_mesa.so.0 from rpm mesa-24.0.5-1.fc40.x86_64 Module libgstaudio-1.0.so.0 from rpm gstreamer1-plugins-base-1.22.9-1.fc40.x86_64 Module libxcb-randr.so.0 from rpm libxcb-1.16-4.fc40.x86_64 Module libexpat.so.1 from rpm expat-2.6.2-1.fc40.x86_64 Module libwayland-server.so.0 from rpm wayland-1.22.0-3.fc40.x86_64 Module libGLdispatch.so.0 from rpm libglvnd-1.7.0-4.fc40.x86_64 Module libelf.so.1 from rpm elfutils-0.191-4.fc40.x86_64 Module libgstpbutils-1.0.so.0 from rpm gstreamer1-plugins-base-1.22.9-1.fc40.x86_64 Module libgsttag-1.0.so.0 from rpm gstreamer1-plugins-base-1.22.9-1.fc40.x86_64 Module libgbm.so.1 from rpm mesa-24.0.5-1.fc40.x86_64 Module libdrm.so.2 from rpm libdrm-2.4.120-3.fc40.x86_64 Module libgudev-1.0.so.0 from rpm libgudev-238-5.fc40.x86_64 Module libX11-xcb.so.1 from rpm libX11-1.8.9-1.fc40.x86_64 Module libwayland-cursor.so.0 from rpm wayland-1.22.0-3.fc40.x86_64 Module libGLX.so.0 from rpm libglvnd-1.7.0-4.fc40.x86_64 Module libEGL.so.1 from rpm libglvnd-1.7.0-4.fc40.x86_64 Module libgstallocators-1.0.so.0 from rpm gstreamer1-plugins-base-1.22.9-1.fc40.x86_64 Module libdw.so.1 from rpm elfutils-0.191-4.fc40.x86_64 Module libunwind.so.8 from rpm libunwind-1.8.0-3.fc40.x86_64 Module liborc-0.4.so.0 from rpm orc-0.4.38-2.fc40.x86_64 Module libgstbase-1.0.so.0 from rpm gstreamer1-1.22.9-1.fc40.x86_64 Module libgstplay-1.0.so.0 from rpm gstreamer1-plugins-bad-free-1.22.9-3.fc40.x86_64 Module libgstgl-1.0.so.0 from rpm gstreamer1-plugins-base-1.22.9-1.fc40.x86_64 Module libgstreamer-1.0.so.0 from rpm gstreamer1-1.22.9-1.fc40.x86_64 Module libgstvideo-1.0.so.0 from rpm gstreamer1-plugins-base-1.22.9-1.fc40.x86_64 Module libgstplayer-1.0.so.0 from rpm gstreamer1-plugins-bad-free-1.22.9-3.fc40.x86_64 Module libmedia-gstreamer.so from rpm gtk4-4.14.3-1.fc40.x86_64 Module libibus-1.0.so.5 from rpm ibus-1.5.30~rc3-1.fc40.x86_64 Module libim-ibus.so from rpm ibus-1.5.30~rc3-1.fc40.x86_64 Module libprintbackend-file.so from rpm gtk4-4.14.3-1.fc40.x86_64 Module libgmp.so.10 from rpm gmp-6.2.1-8.fc40.x86_64 Module libhogweed.so.6 from rpm nettle-3.9.1-6.fc40.x86_64 Module libnettle.so.8 from rpm nettle-3.9.1-6.fc40.x86_64 Module libtasn1.so.6 from rpm libtasn1-4.19.0-6.fc40.x86_64 Module libp11-kit.so.0 from rpm p11-kit-0.25.3-4.fc40.x86_64 Module libdbus-1.so.3 from rpm dbus-1.14.10-3.fc40.x86_64 Module libudev.so.1 from rpm systemd-255.4-1.fc40.x86_64 Module liblcms2.so.2 from rpm lcms2-2.16-3.fc40.x86_64 Module libgnutls.so.30 from rpm gnutls-3.8.5-1.fc40.x86_64 Module libavahi-client.so.3 from rpm avahi-0.8-26.fc40.x86_64 Module libavahi-common.so.3 from rpm avahi-0.8-26.fc40.x86_64 Module libcolord.so.2 from rpm colord-1.4.7-3.fc40.x86_64 Module libcups.so.2 from rpm cups-2.4.7-13.fc40.x86_64 Module libprintbackend-cups.so from rpm gtk4-4.14.3-1.fc40.x86_64 Module libkeyutils.so.1 from rpm keyutils-1.6.3-3.fc40.x86_64 Module libkrb5support.so.0 from rpm krb5-1.21.2-5.fc40.x86_64 Module libcom_err.so.2 from rpm e2fsprogs-1.47.0-5.fc40.x86_64 Module libk5crypto.so.3 from rpm krb5-1.21.2-5.fc40.x86_64 Module libkrb5.so.3 from rpm krb5-1.21.2-5.fc40.x86_64 Module libunistring.so.5 from rpm libunistring-1.1-7.fc40.x86_64 Module liblz4.so.1 from rpm lz4-1.9.4-6.fc40.x86_64 Module libcap.so.2 from rpm libcap-2.69-8.fc40.x86_64 Module libgssapi_krb5.so.2 from rpm krb5-1.21.2-5.fc40.x86_64 Module libcrypto.so.3 from rpm openssl-3.2.1-2.fc40.x86_64 Module libssl.so.3 from rpm openssl-3.2.1-2.fc40.x86_64 Module libidn2.so.0 from rpm libidn2-2.3.7-1.fc40.x86_64 Module libnghttp2.so.14 from rpm nghttp2-1.59.0-3.fc40.x86_64 Module libstemmer.so.0 from rpm snowball-2.2.0-10.fc40.x86_64 Module libsystemd.so.0 from rpm systemd-255.4-1.fc40.x86_64 Module libyaml-0.so.2 from rpm libyaml-0.2.5-14.fc40.x86_64 Module libxmlb.so.2 from rpm libxmlb-0.3.19-1.fc40.x86_64 Module libcurl.so.4 from rpm curl-8.6.0-8.fc40.x86_64 Module libappstream.so.5 from rpm appstream-1.0.2-2.fc40.x86_64 Module libadwaita-1.so.0 from rpm libadwaita-1.5.0-1.fc40.x86_64 Module libsharpyuv.so.0 from rpm libwebp-1.3.2-5.fc40.x86_64 Module libjbig.so.2.1 from rpm jbigkit-2.1-29.fc40.x86_64 Module libLerc.so.4 from rpm liblerc-4.0.0-6.fc40.x86_64 Module libzstd.so.1 from rpm zstd-1.5.6-1.fc40.x86_64 Module libwebp.so.7 from rpm libwebp-1.3.2-5.fc40.x86_64 Module libjson-glib-1.0.so.0 from rpm json-glib-1.8.0-3.fc40.x86_64 Module libcairo-script-interpreter.so.2 from rpm cairo-1.18.0-3.fc40.x86_64 Module libXinerama.so.1 from rpm libXinerama-1.1.5-6.fc40.x86_64 Module libXrandr.so.2 from rpm libXrandr-1.5.4-3.fc40.x86_64 Module libXfixes.so.3 from rpm libXfixes-6.0.1-3.fc40.x86_64 Module libXdamage.so.1 from rpm libXdamage-1.1.6-3.fc40.x86_64 Module libXcursor.so.1 from rpm libXcursor-1.2.1-7.fc40.x86_64 Module libwayland-egl.so.1 from rpm wayland-1.22.0-3.fc40.x86_64 Module libwayland-client.so.0 from rpm wayland-1.22.0-3.fc40.x86_64 Module libxkbcommon.so.0 from rpm libxkbcommon-1.6.0-2.fc40.x86_64 Module libtiff.so.6 from rpm libtiff-4.6.0-2.fc40.x86_64 Module libvulkan.so.1 from rpm vulkan-loader-1.3.280.0-1.fc40.x86_64 Module libtracker-sparql-3.0.so.0 from rpm tracker-3.7.1-1.fc40.x86_64 Module libpangoft2-1.0.so.0 from rpm pango-1.52.2-1.fc40.x86_64 Module libXi.so.6 from rpm libXi-1.8.1-5.fc40.x86_64 Module libepoxy.so.0 from rpm libepoxy-1.5.10-6.fc40.x86_64 Module libpangocairo-1.0.so.0 from rpm pango-1.52.2-1.fc40.x86_64 Module libgtk-4.so.1 from rpm gtk4-4.14.3-1.fc40.x86_64 Module libgraphene-1.0.so.0 from rpm graphene-1.10.6-8.fc40.x86_64 Module libjpeg.so.62 from rpm libjpeg-turbo-3.0.2-1.fc40.x86_64 Module libgdk_pixbuf-2.0.so.0 from rpm gdk-pixbuf2-2.42.10-8.fc40.x86_64 Module libdatrie.so.1 from rpm libdatrie-0.2.13-9.fc40.x86_64 Module libthai.so.0 from rpm libthai-0.1.29-8.fc40.x86_64 Module libfribidi.so.0 from rpm fribidi-1.0.13-4.fc40.x86_64 Module libpango-1.0.so.0 from rpm pango-1.52.2-1.fc40.x86_64 Module libcairo-gobject.so.2 from rpm cairo-1.18.0-3.fc40.x86_64 Module libharfbuzz-gobject.so.0 from rpm harfbuzz-8.3.0-5.fc40.x86_64 Module libblkid.so.1 from rpm util-linux-2.40-13.fc40.x86_64 Module libselinux.so.1 from rpm libselinux-3.6-4.fc40.x86_64 Module libmount.so.1 from rpm util-linux-2.40-13.fc40.x86_64 Module libgio-2.0.so.0 from rpm glib2-2.80.0-1.fc40.x86_64 Module libbrotlicommon.so.1 from rpm brotli-1.1.0-3.fc40.x86_64 Module libgraphite2.so.3 from rpm graphite2-1.3.14-15.fc40.x86_64 Module liblzma.so.5 from rpm xz-5.4.6-3.fc40.x86_64 Module libXau.so.6 from rpm libXau-1.0.11-6.fc40.x86_64 Module libbrotlidec.so.1 from rpm brotli-1.1.0-3.fc40.x86_64 Module libharfbuzz.so.0 from rpm harfbuzz-8.3.0-5.fc40.x86_64 Module libbz2.so.1 from rpm bzip2-1.0.8-18.fc40.x86_64 Module libxml2.so.2 from rpm libxml2-2.12.6-1.fc40.x86_64 Module libpcre2-8.so.0 from rpm pcre2-10.42-2.fc40.2.x86_64 Module libpixman-1.so.0 from rpm pixman-0.43.0-3.fc40.x86_64 Module libxcb-shm.so.0 from rpm libxcb-1.16-4.fc40.x86_64 Module libxcb-render.so.0 from rpm libxcb-1.16-4.fc40.x86_64 Module libxcb.so.1 from rpm libxcb-1.16-4.fc40.x86_64 Module libXrender.so.1 from rpm libXrender-0.9.11-6.fc40.x86_64 Module libXext.so.6 from rpm libXext-1.3.6-1.fc40.x86_64 Module libX11.so.6 from rpm libX11-1.8.9-1.fc40.x86_64 Module libfreetype.so.6 from rpm freetype-2.13.2-5.fc40.x86_64 Module libfontconfig.so.1 from rpm fontconfig-2.15.0-4.fc40.x86_64 Module libpng16.so.16 from rpm libpng-1.6.40-3.fc40.x86_64 Module libz.so.1 from rpm zlib-ng-2.1.6-2.fc40.x86_64 Module libffi.so.8 from rpm libffi-3.4.4-7.fc40.x86_64 Module libgmodule-2.0.so.0 from rpm glib2-2.80.0-1.fc40.x86_64 Module libglib-2.0.so.0 from rpm glib2-2.80.0-1.fc40.x86_64 Module libgobject-2.0.so.0 from rpm glib2-2.80.0-1.fc40.x86_64 Module libcairo.so.2 from rpm cairo-1.18.0-3.fc40.x86_64 Module libgirepository-1.0.so.1 from rpm gobject-introspection-1.80.1-1.fc40.x86_64 Stack trace of thread 48034: #0 0x00007fd166002010 n/a (n/a + 0x0) #1 0x00007fd16748bf11 g_signal_emit_valist (libgobject-2.0.so.0 + 0x31f11) #2 0x00007fd16748bfd3 g_signal_emit (libgobject-2.0.so.0 + 0x31fd3) #3 0x00007fd15ff15830 g_application_real_local_command_line (libgio-2.0.so.0 + 0xe1830) #4 0x00007fd15ff159d3 g_application_run (libgio-2.0.so.0 + 0xe19d3) #5 0x00007fd167453056 ffi_call_unix64 (libffi.so.8 + 0x9056) #6 0x00007fd16744f6a0 ffi_call_int.lto_priv.0 (libffi.so.8 + 0x56a0) #7 0x00007fd1674524ee ffi_call (libffi.so.8 + 0x84ee) #8 0x00007fd16750a1ad n/a (/var/home/pervoj/Temp/gtk-js-tmp/node_modules/node-gtk/lib/binding/node-v120-linux-x64/node_gtk.node + 0x2d1ad) #9 0x00007fd16750a6a4 n/a (/var/home/pervoj/Temp/gtk-js-tmp/node_modules/node-gtk/lib/binding/node-v120-linux-x64/node_gtk.node + 0x2d6a4) #10 0x00007fd1675088f4 n/a (/var/home/pervoj/Temp/gtk-js-tmp/node_modules/node-gtk/lib/binding/node-v120-linux-x64/node_gtk.node + 0x2b8f4) #11 0x00007fd15fc0eadd n/a (n/a + 0x0) #12 0x00007fd15fc0cf18 n/a (n/a + 0x0) #13 0x00007fd15fc4cacd n/a (n/a + 0x0) #14 0x00007fd15fc0ab1c n/a (n/a + 0x0) #15 0x00007fd15fc0a843 n/a (n/a + 0x0) #16 0x00000000012121ab n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0xe121ab) #17 0x0000000001212f50 n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0xe12f50) #18 0x000000000121348a n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0xe1348a) #19 0x00000000015a5a06 n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0x11a5a06) #20 0x00000000015a5fe8 n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0x11a5fe8) #21 0x00000000015a61b9 n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0x11a61b9) #22 0x00000000010cea9c n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0xccea9c) #23 0x0000000000dcc0eb n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0x9cc0eb) #24 0x00007fd15fc0eadd n/a (n/a + 0x0) #25 0x00007fd15fc0cf18 n/a (n/a + 0x0) #26 0x00007fd15fc499c3 n/a (n/a + 0x0) #27 0x00007fd15fd15d31 n/a (n/a + 0x0) #28 0x00007fd15fc374e8 n/a (n/a + 0x0) #29 0x00007fd15fc0aa43 n/a (n/a + 0x0) #30 0x00000000012123dd n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0xe123dd) #31 0x000000000121358f n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0xe1358f) #32 0x00000000012440c7 n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0xe440c7) #33 0x000000000124446d n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0xe4446d) #34 0x0000000000d28c1b n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0x928c1b) #35 0x0000000000d28e31 n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0x928e31) #36 0x0000000000eb232f n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0xab232f) #37 0x0000000000eb58cf n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0xab58cf) #38 0x0000000000eb5d58 n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0xab5d58) #39 0x0000000000d29bf1 n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0x929bf1) #40 0x0000000000e80101 n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0xa80101) #41 0x0000000000e80b6d n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0xa80b6d) #42 0x0000000000dd3bcf n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0x9d3bcf) #43 0x00007fd167610088 __libc_start_call_main (libc.so.6 + 0x2a088) #44 0x00007fd16761014b __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x2a14b) #45 0x0000000000d2717e n/a (/var/home/pervoj/.nvm/versions/node/v21.7.2/bin/node + 0x92717e) ELF object binary architecture: AMD x86-64
Here is my code:
import gi from "node-gtk"; const Gio = gi.require("Gio", "2.0"); const Gtk = gi.require("Gtk", "4.0"); const Adw = gi.require("Adw", "1"); class Win extends Adw.ApplicationWindow { static GTypeName = "Win"; constructor(app) { super({ application: app }); this.setTitle("Node GTK App"); const label = new Gtk.Label({ label: "Hello Gtk+" }); this.setContent(label); } } class App extends Adw.Application { static GTypeName = "App"; constructor() { super({ application_id: "cz.pervoj.NodeGtkTest", flags: Gio.ApplicationFlags.FLAGS_NONE, }); // this.on("activate", () => this.onActivate()); } activate() { (this.activeWindow ?? new Win(this)).present(); } } gi.registerClass(Win); gi.registerClass(App); const app = new App(); app.run(process.argv.slice(2));
I believe this is not new and this is a reason why all examples use the signal.
Using the
activate
signal inGtk.Application
works fine, but switching to theactivate
vfunc results in segfault:Core dump:
Here is my code:
I believe this is not new and this is a reason why all examples use the signal.