Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

activate vfunc in Gtk.Application results in segfault #362

Open
pervoj opened this issue Apr 27, 2024 · 0 comments
Open

activate vfunc in Gtk.Application results in segfault #362

pervoj opened this issue Apr 27, 2024 · 0 comments

Comments

@pervoj
Copy link

pervoj commented Apr 27, 2024

Using the activate signal in Gtk.Application works fine, but switching to the activate vfunc results in segfault:

Screenshot from 2024-04-27 20-58-50

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/[email protected]/app.slice/app-gnome-codium-43495.scope
          Unit: [email protected]
     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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant