Repository navigation
TypeError: 'builtin_function_or_method' object does not support vectorcall #55
Description
Activity
coredump:
PID: 40828 (deno) UID: 1000 (mrcool) GID: 1000 (mrcool) Signal: 11 (SEGV) Timestamp: Sat 2023-11-11 21:43:17 CET (1min 3s ago) Command Line: /home/mrcool/.deno/bin/deno run --unstable-ffi -A examples/smoke/main.ts Executable: /home/mrcool/.deno/bin/deno Control Group: /user.slice/user-1000.slice/user@1000.service/app.slice/flatpak-session-helper.service Unit: user@1000.service User Unit: flatpak-session-helper.service Slice: user-1000.slice Owner UID: 1000 (mrcool) Boot ID: 5e84d00665ca4b95921ad32c5aaa5016 Machine ID: e37a32c7cb794197a17b26360ae4cb77 Hostname: fedora Storage: /var/lib/systemd/coredump/core.deno.1000.5e84d00665ca4b95921ad32c5aaa5016.40828.1699735397000000.zst (present) Size on Disk: 10.9M Message: Process 40828 (deno) of user 1000 dumped core. Module libGL.so.1 from rpm libglvnd-1.7.0-1.fc39.x86_64 Module libpciaccess.so.0 from rpm libpciaccess-0.16-9.fc39.x86_64 Module libtinfo.so.6 from rpm ncurses-6.4-7.20230520.fc39.x86_64 Module libedit.so.0 from rpm libedit-3.1-48.20230828cvs.fc39.x86_64 Module libdrm_intel.so.1 from rpm libdrm-2.4.117-1.fc39.x86_64 Module libdrm_nouveau.so.2 from rpm libdrm-2.4.117-1.fc39.x86_64 Module libdrm_amdgpu.so.1 from rpm libdrm-2.4.117-1.fc39.x86_64 Module libdrm_radeon.so.1 from rpm libdrm-2.4.117-1.fc39.x86_64 Module libsensors.so.4 from rpm lm_sensors-3.6.0-14.fc39.x86_64 Module crocus_dri.so from rpm mesa-23.2.1-2.fc39.x86_64 Module libxshmfence.so.1 from rpm libxshmfence-1.3-13.fc39.x86_64 Module libxcb-sync.so.1 from rpm libxcb-1.13.1-12.fc39.x86_64 Module libxcb-present.so.0 from rpm libxcb-1.13.1-12.fc39.x86_64 Module libxcb-dri3.so.0 from rpm libxcb-1.13.1-12.fc39.x86_64 Module libxcb-xfixes.so.0 from rpm libxcb-1.13.1-12.fc39.x86_64 Module libxcb-dri2.so.0 from rpm libxcb-1.13.1-12.fc39.x86_64 Module libglapi.so.0 from rpm mesa-23.2.1-2.fc39.x86_64 Module libEGL_mesa.so.0 from rpm mesa-23.2.1-2.fc39.x86_64 Module librsvg-2.so.2 from rpm librsvg2-2.57.0-1.fc39.x86_64 Module libpixbufloader-svg.so from rpm librsvg2-2.57.0-1.fc39.x86_64 Module libssl.so.3 from rpm openssl-3.1.1-4.fc39.x86_64 Module libnghttp2.so.14 from rpm nghttp2-1.55.1-4.fc39.x86_64 Module libstemmer.so.0 from rpm snowball-2.2.0-7.fc39.x86_64 Module libyaml-0.so.2 from rpm libyaml-0.2.5-12.fc39.x86_64 Module libxmlb.so.2 from rpm libxmlb-0.3.14-1.fc39.x86_64 Module libcurl.so.4 from rpm curl-8.2.1-3.fc39.x86_64 Module libappstream.so.4 from rpm appstream-0.16.1-4.fc39.x86_64 Module libadwaita-1.so.0 from rpm libadwaita-1.4.0-1.fc39.x86_64 Module libgvfscommon.so from rpm gvfs-1.52.1-1.fc39.x86_64 Module libgvfsdbus.so from rpm gvfs-1.52.1-1.fc39.x86_64 Module libdconfsettings.so from rpm dconf-0.40.0-9.fc39.x86_64 Module libgstaudio-1.0.so.0 from rpm gstreamer1-plugins-base-1.22.5-1.fc39.x86_64 Module libxcb-randr.so.0 from rpm libxcb-1.13.1-12.fc39.x86_64 Module libexpat.so.1 from rpm expat-2.5.0-3.fc39.x86_64 Module libwayland-server.so.0 from rpm wayland-1.22.0-2.fc39.x86_64 Module libGLdispatch.so.0 from rpm libglvnd-1.7.0-1.fc39.x86_64 Module libelf.so.1 from rpm elfutils-0.190-1.fc39.x86_64 Module libgstpbutils-1.0.so.0 from rpm gstreamer1-plugins-base-1.22.5-1.fc39.x86_64 Module libgsttag-1.0.so.0 from rpm gstreamer1-plugins-base-1.22.5-1.fc39.x86_64 Module libgbm.so.1 from rpm mesa-23.2.1-2.fc39.x86_64 Module libdrm.so.2 from rpm libdrm-2.4.117-1.fc39.x86_64 Module libgudev-1.0.so.0 from rpm libgudev-238-2.fc39.x86_64 Module libX11-xcb.so.1 from rpm libX11-1.8.7-1.fc39.x86_64 Module libwayland-cursor.so.0 from rpm wayland-1.22.0-2.fc39.x86_64 Module libGLX.so.0 from rpm libglvnd-1.7.0-1.fc39.x86_64 Module libEGL.so.1 from rpm libglvnd-1.7.0-1.fc39.x86_64 Module libgstallocators-1.0.so.0 from rpm gstreamer1-plugins-base-1.22.5-1.fc39.x86_64 Module libdw.so.1 from rpm elfutils-0.190-1.fc39.x86_64 Module libunwind.so.8 from rpm libunwind-1.7.0-0.2.rc2.fc39.x86_64 Module liborc-0.4.so.0 from rpm orc-0.4.33-3.fc39.x86_64 Module libgstbase-1.0.so.0 from rpm gstreamer1-1.22.6-1.fc39.x86_64 Module libgstplay-1.0.so.0 from rpm gstreamer1-plugins-bad-free-1.22.5-2.fc39.x86_64 Module libgstgl-1.0.so.0 from rpm gstreamer1-plugins-base-1.22.5-1.fc39.x86_64 Module libgstreamer-1.0.so.0 from rpm gstreamer1-1.22.6-1.fc39.x86_64 Module libgstvideo-1.0.so.0 from rpm gstreamer1-plugins-base-1.22.5-1.fc39.x86_64 Module libgstplayer-1.0.so.0 from rpm gstreamer1-plugins-bad-free-1.22.5-2.fc39.x86_64 Module libmedia-gstreamer.so from rpm gtk4-4.12.3-1.fc39.x86_64 Module libibus-1.0.so.5 from rpm ibus-1.5.29~rc1-3.fc39.x86_64 Module libim-ibus.so from rpm ibus-1.5.29~rc1-3.fc39.x86_64 Module libprintbackend-file.so from rpm gtk4-4.12.3-1.fc39.x86_64 Module liblz4.so.1 from rpm lz4-1.9.4-4.fc39.x86_64 Module libsystemd.so.0 from rpm systemd-254.5-2.fc39.x86_64 Module libcap.so.2 from rpm libcap-2.48-7.fc39.x86_64 Module libgmp.so.10 from rpm gmp-6.2.1-5.fc39.x86_64 Module libhogweed.so.6 from rpm nettle-3.9.1-2.fc39.x86_64 Module libnettle.so.8 from rpm nettle-3.9.1-2.fc39.x86_64 Module libtasn1.so.6 from rpm libtasn1-4.19.0-3.fc39.x86_64 Module libunistring.so.5 from rpm libunistring-1.1-5.fc39.x86_64 Module libidn2.so.0 from rpm libidn2-2.3.4-3.fc39.x86_64 Module libp11-kit.so.0 from rpm p11-kit-0.25.2-1.fc39.x86_64 Module libdbus-1.so.3 from rpm dbus-1.14.10-1.fc39.x86_64 Module libcrypto.so.3 from rpm openssl-3.1.1-4.fc39.x86_64 Module libkeyutils.so.1 from rpm keyutils-1.6.1-7.fc39.x86_64 Module libkrb5support.so.0 from rpm krb5-1.21.2-2.fc39.x86_64 Module libcom_err.so.2 from rpm e2fsprogs-1.47.0-2.fc39.x86_64 Module libk5crypto.so.3 from rpm krb5-1.21.2-2.fc39.x86_64 Module libkrb5.so.3 from rpm krb5-1.21.2-2.fc39.x86_64 Module libudev.so.1 from rpm systemd-254.5-2.fc39.x86_64 Module liblcms2.so.2 from rpm lcms2-2.15-2.fc39.x86_64 Module libgnutls.so.30 from rpm gnutls-3.8.1-1.fc39.x86_64 Module libavahi-client.so.3 from rpm avahi-0.8-24.fc39.x86_64 Module libavahi-common.so.3 from rpm avahi-0.8-24.fc39.x86_64 Module libgssapi_krb5.so.2 from rpm krb5-1.21.2-2.fc39.x86_64 Module libcolord.so.2 from rpm colord-1.4.6-6.fc39.x86_64 Module libcups.so.2 from rpm cups-2.4.7-1.fc39.x86_64 Module libprintbackend-cups.so from rpm gtk4-4.12.3-1.fc39.x86_64 Module libsharpyuv.so.0 from rpm libwebp-1.3.2-2.fc39.x86_64 Module libjbig.so.2.1 from rpm jbigkit-2.1-26.fc39.x86_64 Module libLerc.so.4 from rpm liblerc-4.0.0-4.fc39.x86_64 Module libzstd.so.1 from rpm zstd-1.5.5-4.fc39.x86_64 Module libwebp.so.7 from rpm libwebp-1.3.2-2.fc39.x86_64 Module libjson-glib-1.0.so.0 from rpm json-glib-1.8.0-1.fc39.x86_64 Module libcairo-script-interpreter.so.2 from rpm cairo-1.18.0-1.fc39.x86_64 Module libXinerama.so.1 from rpm libXinerama-1.1.5-3.fc39.x86_64 Module libXrandr.so.2 from rpm libXrandr-1.5.4-1.fc39.x86_64 Module libXfixes.so.3 from rpm libXfixes-6.0.0-6.fc39.x86_64 Module libXdamage.so.1 from rpm libXdamage-1.1.5-10.fc39.x86_64 Module libXcursor.so.1 from rpm libXcursor-1.2.1-4.fc39.x86_64 Module libwayland-egl.so.1 from rpm wayland-1.22.0-2.fc39.x86_64 Module libwayland-client.so.0 from rpm wayland-1.22.0-2.fc39.x86_64 Module libxkbcommon.so.0 from rpm libxkbcommon-1.6.0-1.fc39.x86_64 Module libtiff.so.5 from rpm libtiff-4.4.0-8.fc39.x86_64 Module libtracker-sparql-3.0.so.0 from rpm tracker-3.6.0-1.fc39.x86_64 Module libpangoft2-1.0.so.0 from rpm pango-1.51.0-1.fc39.x86_64 Module libXi.so.6 from rpm libXi-1.8.1-2.fc39.x86_64 Module libgraphene-1.0.so.0 from rpm graphene-1.10.6-6.fc39.x86_64 Module libepoxy.so.0 from rpm libepoxy-1.5.10-4.fc39.x86_64 Module libpangocairo-1.0.so.0 from rpm pango-1.51.0-1.fc39.x86_64 Module libgtk-4.so.1 from rpm gtk4-4.12.3-1.fc39.x86_64 Module libjpeg.so.62 from rpm libjpeg-turbo-2.1.4-3.fc39.x86_64 Module libgdk_pixbuf-2.0.so.0 from rpm gdk-pixbuf2-2.42.10-5.fc39.x86_64 Module libdatrie.so.1 from rpm libdatrie-0.2.13-7.fc39.x86_64 Module libthai.so.0 from rpm libthai-0.1.29-6.fc39.x86_64 Module libfribidi.so.0 from rpm fribidi-1.0.13-2.fc39.x86_64 Module libpango-1.0.so.0 from rpm pango-1.51.0-1.fc39.x86_64 Module array.cpython-312-x86_64-linux-gnu.so from rpm python3.12-3.12.0-1.fc39.x86_64 Module select.cpython-312-x86_64-linux-gnu.so from rpm python3.12-3.12.0-1.fc39.x86_64 Module math.cpython-312-x86_64-linux-gnu.so from rpm python3.12-3.12.0-1.fc39.x86_64 Module _socket.cpython-312-x86_64-linux-gnu.so from rpm python3.12-3.12.0-1.fc39.x86_64 Module _cairo.cpython-312-x86_64-linux-gnu.so from rpm pycairo-1.25.1-1.fc39.x86_64 Module libbrotlicommon.so.1 from rpm brotli-1.1.0-1.fc39.x86_64 Module libgraphite2.so.3 from rpm graphite2-1.3.14-12.fc39.x86_64 Module liblzma.so.5 from rpm xz-5.4.4-1.fc39.x86_64 Module libXau.so.6 from rpm libXau-1.0.11-3.fc39.x86_64 Module libbrotlidec.so.1 from rpm brotli-1.1.0-1.fc39.x86_64 Module libharfbuzz.so.0 from rpm harfbuzz-8.2.1-2.fc39.x86_64 Module libbz2.so.1 from rpm bzip2-1.0.8-16.fc39.x86_64 Module libxml2.so.2 from rpm libxml2-2.10.4-3.fc39.x86_64 Module libpixman-1.so.0 from rpm pixman-0.42.2-2.fc39.x86_64 Module libxcb-shm.so.0 from rpm libxcb-1.13.1-12.fc39.x86_64 Module libxcb-render.so.0 from rpm libxcb-1.13.1-12.fc39.x86_64 Module libxcb.so.1 from rpm libxcb-1.13.1-12.fc39.x86_64 Module libXrender.so.1 from rpm libXrender-0.9.11-3.fc39.x86_64 Module libXext.so.6 from rpm libXext-1.3.5-3.fc39.x86_64 Module libX11.so.6 from rpm libX11-1.8.7-1.fc39.x86_64 Module libfreetype.so.6 from rpm freetype-2.13.1-2.fc39.x86_64 Module libfontconfig.so.1 from rpm fontconfig-2.14.2-5.fc39.x86_64 Module libpng16.so.16 from rpm libpng-1.6.37-15.fc39.x86_64 Module libcairo-gobject.so.2 from rpm cairo-1.18.0-1.fc39.x86_64 Module libcairo.so.2 from rpm cairo-1.18.0-1.fc39.x86_64 Module _gi_cairo.cpython-312-x86_64-linux-gnu.so from rpm pygobject3-3.46.0-1.fc39.x86_64 Module libblkid.so.1 from rpm util-linux-2.39.2-1.fc39.x86_64 Module libselinux.so.1 from rpm libselinux-3.5-5.fc39.x86_64 Module libmount.so.1 from rpm util-linux-2.39.2-1.fc39.x86_64 Module libz.so.1 from rpm zlib-1.2.13-4.fc39.x86_64 Module libgio-2.0.so.0 from rpm glib2-2.78.1-1.fc39.x86_64 Module libgmodule-2.0.so.0 from rpm glib2-2.78.1-1.fc39.x86_64 Module libpcre2-8.so.0 from rpm pcre2-10.42-1.fc39.2.x86_64 Module libffi.so.8 from rpm libffi-3.4.4-4.fc39.x86_64 Module libgobject-2.0.so.0 from rpm glib2-2.78.1-1.fc39.x86_64 Module libgirepository-1.0.so.1 from rpm gobject-introspection-1.78.1-1.fc39.x86_64 Module libglib-2.0.so.0 from rpm glib2-2.78.1-1.fc39.x86_64 Module _gi.cpython-312-x86_64-linux-gnu.so from rpm pygobject3-3.46.0-1.fc39.x86_64 Module libpython3.12.so from rpm python3.12-3.12.0-1.fc39.x86_64 Stack trace of thread 40828: #0 0x00007f2345410954 cfunction_call (libpython3.12.so + 0x210954) #1 0x00007f234541f6b9 _PyObject_Call (libpython3.12.so + 0x21f6b9) #2 0x00007f234590cfae pygi_signal_closure_marshal.lto_priv.0 (_gi.cpython-312-x86_64-linux-gnu.so + 0x33fae) #3 0x00007f2344d6b52a g_closure_invoke (libgobject-2.0.so.0 + 0x1452a) #4 0x00007f2344d99fec signal_emit_unlocked_R.isra.0 (libgobject-2.0.so.0 + 0x42fec) #5 0x00007f2344d8ad59 signal_emit_valist_unlocked (libgobject-2.0.so.0 + 0x33d59) #6 0x00007f2344d8af91 g_signal_emit_valist (libgobject-2.0.so.0 + 0x33f91) #7 0x00007f2344d8b053 g_signal_emit (libgobject-2.0.so.0 + 0x34053) #8 0x00007f233f5cb4c3 gtk_range_adjustment_value_changed (libgtk-4.so.1 + 0x1cb4c3) #9 0x00007f2344d6b52a g_closure_invoke (libgobject-2.0.so.0 + 0x1452a) #10 0x00007f2344d99fec signal_emit_unlocked_R.isra.0 (libgobject-2.0.so.0 + 0x42fec) #11 0x00007f2344d8ad59 signal_emit_valist_unlocked (libgobject-2.0.so.0 + 0x33d59) #12 0x00007f2344d8af91 g_signal_emit_valist (libgobject-2.0.so.0 + 0x33f91) #13 0x00007f2344d8b053 g_signal_emit (libgobject-2.0.so.0 + 0x34053) #14 0x00007f233f4c11a7 adjustment_set_value (libgtk-4.so.1 + 0xc11a7) #15 0x00007f233f5cb144 gtk_range_real_change_value (libgtk-4.so.1 + 0x1cb144) #16 0x00007f233f4b3daa _gtk_marshal_BOOLEAN__ENUM_DOUBLEv (libgtk-4.so.1 + 0xb3daa) #17 0x00007f2344d8ae85 signal_emit_valist_unlocked (libgobject-2.0.so.0 + 0x33e85) #18 0x00007f2344d8af91 g_signal_emit_valist (libgobject-2.0.so.0 + 0x33f91) #19 0x00007f2344d8b053 g_signal_emit (libgobject-2.0.so.0 + 0x34053) #20 0x00007f233f5cbe9a update_slider_position (libgtk-4.so.1 + 0x1cbe9a) #21 0x00007f233f5cc219 gtk_range_drag_gesture_update (libgtk-4.so.1 + 0x1cc219) #22 0x00007f233f4b431b _gtk_marshal_VOID__DOUBLE_DOUBLEv (libgtk-4.so.1 + 0xb431b) #23 0x00007f2344d8ae85 signal_emit_valist_unlocked (libgobject-2.0.so.0 + 0x33e85) #24 0x00007f2344d8af91 g_signal_emit_valist (libgobject-2.0.so.0 + 0x33f91) #25 0x00007f2344d8b053 g_signal_emit (libgobject-2.0.so.0 + 0x34053) #26 0x00007f2344d6f62a g_cclosure_marshal_VOID__BOXEDv (libgobject-2.0.so.0 + 0x1862a) #27 0x00007f2344d8ae85 signal_emit_valist_unlocked (libgobject-2.0.so.0 + 0x33e85) #28 0x00007f2344d8af91 g_signal_emit_valist (libgobject-2.0.so.0 + 0x33f91) #29 0x00007f2344d8b053 g_signal_emit (libgobject-2.0.so.0 + 0x34053) #30 0x00007f233f555ca8 gtk_gesture_handle_event.lto_priv.0 (libgtk-4.so.1 + 0x155ca8) #31 0x00007f233f559119 gtk_gesture_single_handle_event (libgtk-4.so.1 + 0x159119) #32 0x00007f233f66f8df gtk_widget_run_controllers (libgtk-4.so.1 + 0x26f8df) #33 0x00007f233f66fc4d gtk_widget_event (libgtk-4.so.1 + 0x26fc4d) #34 0x00007f233f8b561a gtk_propagate_event_internal.isra.0 (libgtk-4.so.1 + 0x4b561a) #35 0x00007f233f59737f gtk_main_do_event.part.0 (libgtk-4.so.1 + 0x19737f) #36 0x00007f233f685904 surface_event (libgtk-4.so.1 + 0x285904) #37 0x00007f233f7dd81c _gdk_marshal_BOOLEAN__POINTERv (libgtk-4.so.1 + 0x3dd81c) #38 0x00007f233f852348 gdk_surface_event_marshallerv (libgtk-4.so.1 + 0x452348) #39 0x00007f2344d8ae85 signal_emit_valist_unlocked (libgobject-2.0.so.0 + 0x33e85) #40 0x00007f2344d8af91 g_signal_emit_valist (libgobject-2.0.so.0 + 0x33f91) #41 0x00007f2344d8b053 g_signal_emit (libgobject-2.0.so.0 + 0x34053) #42 0x00007f233f8ac647 gdk_surface_handle_event.isra.0 (libgtk-4.so.1 + 0x4ac647) #43 0x00007f233f852fa5 gdk_surface_flush_events (libgtk-4.so.1 + 0x452fa5) #44 0x00007f2344d8ae85 signal_emit_valist_unlocked (libgobject-2.0.so.0 + 0x33e85) #45 0x00007f2344d8af91 g_signal_emit_valist (libgobject-2.0.so.0 + 0x33f91) #46 0x00007f2344d8b053 g_signal_emit (libgobject-2.0.so.0 + 0x34053) #47 0x00007f233f8378d5 gdk_frame_clock_flush_idle (libgtk-4.so.1 + 0x4378d5) #48 0x00007f2344e13799 g_timeout_dispatch (libglib-2.0.so.0 + 0x5c799) #49 0x00007f2344e12e5c g_main_context_dispatch_unlocked.lto_priv.0 (libglib-2.0.so.0 + 0x5be5c) #50 0x00007f2344e6ddd8 g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0xb6dd8) #51 0x00007f2344e10ad3 g_main_context_iteration (libglib-2.0.so.0 + 0x59ad3) #52 0x00007f2344bcfc5d g_application_run (libgio-2.0.so.0 + 0xe9c5d) #53 0x00007f2345897056 ffi_call_unix64 (libffi.so.8 + 0x9056) #54 0x00007f23458935ef ffi_call_int.lto_priv.0 (libffi.so.8 + 0x55ef) #55 0x00007f23458963fe ffi_call (libffi.so.8 + 0x83fe) #56 0x00007f2345909bdb pygi_invoke_c_callable (_gi.cpython-312-x86_64-linux-gnu.so + 0x30bdb) #57 0x00007f234590812a _wrap_g_callable_info_invoke (_gi.cpython-312-x86_64-linux-gnu.so + 0x2f12a) #58 0x00007f234541f6b9 _PyObject_Call (libpython3.12.so + 0x21f6b9) #59 0x00007f2345310043 _PyEval_EvalFrameDefault.cold (libpython3.12.so + 0x110043) #60 0x00007f23454325bd method_vectorcall (libpython3.12.so + 0x2325bd) #61 0x0000557510432052 n/a (/home/mrcool/.deno/bin/deno + 0x26df052) #62 0x00007ffc9ee61a30 n/a (n/a + 0x0) ELF object binary architecture: AMD x86-64Here is an easier reproduction
import { Adw, Gtk, Gtk_, kw, NamedArgument, python, } from "https://raw.githubusercontent.com/sigmaSd/deno-gtk-py/0.1.4/mod.ts"; class MainWindow extends Gtk.ApplicationWindow { #blobs: [number, number][] = []; #dw: Gtk_.DrawingArea; constructor(kwArg: NamedArgument) { super(kwArg); this.set_default_size(600, 250); this.#dw = Gtk.DrawingArea(); this.#dw.set_draw_func(this.draw); const evk = Gtk.GestureClick.new(); evk.connect("pressed", this.dw_click); this.#dw.add_controller(evk); this.set_child(this.#dw); } draw = python.callback( (_kwargs, _area, c): undefined => { c.set_source_rgb(1, 0, 1); for (const [x, y] of this.#blobs) { c.arc(x, y, 10, 0, 2 * 3.1415926); c.fill(); } }, ); dw_click = python.callback( (_kwargs, _gesture: Gtk_.GestureClick, _data, x, y) => { this.#blobs.push([x, y]); this.#dw.queue_draw(); // Force a redraw }, ); } class App extends Adw.Application { #win: MainWindow | undefined; constructor(kwArg: NamedArgument) { super(kwArg); this.connect("activate", this.onActivate); } onActivate = python.callback((_kwarg, app: Gtk_.Application): undefined => { this.#win = new MainWindow(new NamedArgument("application", app)); this.#win.present(); }); } const app = new App(kw`application_id=${"com.example.com"}`); app.run(Deno.args);
click on the board multipe times fast enough and it will segfault
seems like this vector_call thing is an optimization that is not correctly handled ?
To catch the segfault , you need to run gdb like this
G_DEBUG=fatal-criticals gdb --args deno run -A --unstable code.tsbacktrace
#0 0x00007ffff7e92b20 in main_arena () at /lib64/libc.so.6 #1 0x00007ffff5a10956 in cfunction_call () at /lib64/libpython3.12.so #2 0x00007ffff5a1f6b9 in _PyObject_Call () at /lib64/libpython3.12.so #3 0x00007ffff5eac802 in _pygi_closure_handle () at /usr/lib64/python3.12/site-packages/gi/_gi.cpython-312-x86_64-linux-gnu.so #4 0x00007ffff5e5fa81 in ffi_closure_unix64_inner () at /lib64/libffi.so.8 #5 0x00007ffff5e60278 in ffi_closure_unix64 () at /lib64/libffi.so.8 #6 0x00007fffd2310f60 in gtk_drawing_area_snapshot () at /lib64/libgtk-4.so.1 #7 0x00007fffd248467c in gtk_widget_create_render_node () at /lib64/libgtk-4.so.1 #8 0x00007fffd2484bf8 in gtk_widget_do_snapshot () at /lib64/libgtk-4.so.1 #9 0x00007fffd24855d2 in gtk_widget_snapshot_child () at /lib64/libgtk-4.so.1 #10 0x00007fffd246a9ee in gtk_widget_real_snapshot () at /lib64/libgtk-4.so.1 #11 0x00007fffd248467c in gtk_widget_create_render_node () at /lib64/libgtk-4.so.1 #12 0x00007fffd2484bf8 in gtk_widget_do_snapshot () at /lib64/libgtk-4.so.1 #13 0x00007fffd24855d2 in gtk_widget_snapshot_child () at /lib64/libgtk-4.so.1 #14 0x00007fffd246a9ee in gtk_widget_real_snapshot () at /lib64/libgtk-4.so.1 #15 0x00007fffd248467c in gtk_widget_create_render_node () at /lib64/libgtk-4.so.1 #16 0x00007fffd2484bf8 in gtk_widget_do_snapshot () at /lib64/libgtk-4.so.1 #17 0x00007fffd24855d2 in gtk_widget_snapshot_child () at /lib64/libgtk-4.so.1 #18 0x00007fffd246a9ee in gtk_widget_real_snapshot () at /lib64/libgtk-4.so.1 #19 0x00007fffd24849c0 in gtk_widget_create_render_node () at /lib64/libgtk-4.so.1 #20 0x00007fffd2484bf8 in gtk_widget_do_snapshot () at /lib64/libgtk-4.so.1 #21 0x00007fffd248539f in gtk_widget_render () at /lib64/libgtk-4.so.1 #22 0x00007fffd24859c9 in surface_render () at /lib64/libgtk-4.so.1 #23 0x00007fffd25dd967 in _gdk_marshal_BOOLEAN__BOXEDv () at /lib64/libgtk-4.so.1 #24 0x00007ffff5365e85 in signal_emit_valist_unlocked () at /lib64/libgobject-2.0.so.0 #25 0x00007ffff5365f91 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0 #26 0x00007ffff5366053 in g_signal_emit () at /lib64/libgobject-2.0.so.0 #27 0x00007fffd264b0b9 in gdk_surface_paint_on_clock () at /lib64/libgtk-4.so.1 #28 0x00007ffff5365e85 in signal_emit_valist_unlocked () at /lib64/libgobject-2.0.so.0 #29 0x00007ffff5365f91 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0 #30 0x00007ffff5366053 in g_signal_emit () at /lib64/libgobject-2.0.so.0 #31 0x00007fffd263798c in gdk_frame_clock_paint_idle () at /lib64/libgtk-4.so.1 #32 0x00007fffd2637b5e in gdk_frame_clock_flush_idle () at /lib64/libgtk-4.so.1 #33 0x00007ffff5413799 in g_timeout_dispatch () at /lib64/libglib-2.0.so.0 --Type <RET> for more, q to quit, c to continue without paging--quit #34 0x00007ffff5412e5c in g_main_context_dispatch_unlocked.lto_priv () at /lib64/libglib-2.0.so.0 #35 0x00007ffff546ddd8 in g_main_context_iterate_unlocked.isra () at /lib64/libglib-2.0.so.0 #36 0x00007ffff5410ad3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #37 0x00007ffff51aac5d in g_application_run () at /lib64/libgio-2.0.so.0 #38 0x00007ffff5e60056 in ffi_call_unix64 () at /lib64/libffi.so.8 #39 0x00007ffff5e5c5ef in ffi_call_int.lto_priv () at /lib64/libffi.so.8 #40 0x00007ffff5e5f3fe in ffi_call () at /lib64/libffi.so.8 #41 0x00007ffff5eadbdb in pygi_invoke_c_callable () at /usr/lib64/python3.12/site-packages/gi/_gi.cpython-312-x86_64-linux-gnu.so #42 0x00007ffff5eac12a in _wrap_g_callable_info_invoke () at /usr/lib64/python3.12/site-packages/gi/_gi.cpython-312-x86_64-linux-gnu.so #43 0x00007ffff5a1f6b9 in _PyObject_Call () at /lib64/libpython3.12.so #44 0x00007ffff5910043 in _PyEval_EvalFrameDefault.cold () at /lib64/libpython3.12.so #45 0x00007ffff5a325bd in method_vectorcall () at /lib64/libpython3.12.so #46 0x0000555557c3b052 in ffi_call_unix64 () #47 0x000055555a23ae8c in ffi_call_int.llvm () #48 0x000055555a23abf1 in ffi_call () #49 0x000055555a201d09 in <extern "C" fn(A0) .> R as v8::support::CFnFrom<F>>::mapping::c_fn::h4d87b05f7d17b230 () #50 0x0000555558d2c95d in Builtins_CallApiCallbackGeneric ()I found the weirdest fix , logging with Deno.stdout.write, somehow fixes the problem
diff --git a/src/python.ts b/src/python.ts index 66cf3bd..3bed6d8 100644 --- a/src/python.ts +++ b/src/python.ts @@ -470,6 +470,7 @@ export class PyObject { BigInt(Deno.UnsafePointer.value(Deno.UnsafePointer.of(nameBuf)!)), LE, ); + Deno.stdout.write(struct); const fn = py.PyCFunction_NewEx( struct, PyObject.from(null).handle,
Also I noticed if I use console.log in that python.ts file I make the segfault more likely to happen.
AapoAlas in deno discord helped me debugging this, it seems the root issue, is that when using
PyCFunction_NewExwe're assuming struct will live long enough , but v8 does not know it should so it can be destroyed at any point.The fix is to extend its lifetime, the only obvious place to stick it in is PyObject, I can open a pr with this idea for review
This is the reproduction I have, you need to keep moving the slider fast until it throws the above error or sefaults