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

Can't build after xrdesktop, gulkan, gxr update to 0.16 on AUR #7

Open
duckbytes opened this issue Nov 13, 2022 · 16 comments
Open

Can't build after xrdesktop, gulkan, gxr update to 0.16 on AUR #7

duckbytes opened this issue Nov 13, 2022 · 16 comments

Comments

@duckbytes
Copy link

xrdesktop-git, gxr-git and gulkan-git were all updated to 0.16 recently on the AUR.

The build binary I was using failed because it couldn't find a .so file on my system any more (think it was libxrdesktop-0.16.so, but I deleted the binary so I can't check again).

Trying to compile with cargo build --release gives this output:

    Skipping git submodule `https://github.com/gtk-rs/gir` due to update strategy in .gitmodules
    Skipping git submodule `https://github.com/gtk-rs/gir-files` due to update strategy in .gitmodules
    Skipping git submodule `https://github.com/gtk-rs/gir` due to update strategy in .gitmodules
    Skipping git submodule `https://github.com/gtk-rs/gir-files` due to update strategy in .gitmodules
   Compiling picom-xrdesktop-companion v0.1.0 (/home/theo/git/picom-xrdesktop-companion/app)
   Compiling gxr-sys v0.15.0 (/home/theo/git/picom-xrdesktop-companion/gxr/sys)
   Compiling gulkan-sys v0.15.0 (/home/theo/git/picom-xrdesktop-companion/gulkan/sys)
   Compiling xrd-sys v0.15.0 (/home/theo/git/picom-xrdesktop-companion/xrd/sys)
   Compiling gobject-sys v0.17.0 (https://github.com/gtk-rs/gtk-rs-core#8f989cc2)
   Compiling cairo-sys-rs v0.17.0 (https://github.com/gtk-rs/gtk-rs-core#8f989cc2)
   Compiling graphene-sys v0.17.0 (https://github.com/gtk-rs/gtk-rs-core#8f989cc2)
The following warnings were emitted during compilation:

warning: `"pkg-config" "--libs" "--cflags" "gulkan-0.15" "gulkan-0.15 >= 0.15"` did not exit successfully: exit status: 1

error: failed to run custom build command for `gulkan-sys v0.15.0 (/home/theo/git/picom-xrdesktop-companion/gulkan/sys)`

Caused by:
  process didn't exit successfully: `/home/theo/git/picom-xrdesktop-companion/target/release/build/gulkan-sys-76430b28aad475cc/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-env-changed=GULKAN_0.15_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  cargo:warning=`"pkg-config" "--libs" "--cflags" "gulkan-0.15" "gulkan-0.15 >= 0.15"` did not exit successfully: exit status: 1
  error: could not find system library 'gulkan-0.15' required by the 'gulkan-sys' crate

  --- stderr
  Package gulkan-0.15 was not found in the pkg-config search path.
  Perhaps you should add the directory containing `gulkan-0.15.pc'
  to the PKG_CONFIG_PATH environment variable
  Package 'gulkan-0.15', required by 'virtual:world', not found
  Package 'gulkan-0.15', required by 'virtual:world', not found

warning: build failed, waiting for other jobs to finish...
The following warnings were emitted during compilation:

warning: `"pkg-config" "--libs" "--cflags" "gxr-0.15" "gxr-0.15 >= 0.15"` did not exit successfully: exit status: 1

error: failed to run custom build command for `gxr-sys v0.15.0 (/home/theo/git/picom-xrdesktop-companion/gxr/sys)`

Caused by:
  process didn't exit successfully: `/home/theo/git/picom-xrdesktop-companion/target/release/build/gxr-sys-febd531d06147524/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-env-changed=GXR_0.15_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  cargo:warning=`"pkg-config" "--libs" "--cflags" "gxr-0.15" "gxr-0.15 >= 0.15"` did not exit successfully: exit status: 1
  error: could not find system library 'gxr-0.15' required by the 'gxr-sys' crate

  --- stderr
  Package gxr-0.15 was not found in the pkg-config search path.
  Perhaps you should add the directory containing `gxr-0.15.pc'
  to the PKG_CONFIG_PATH environment variable
  Package 'gxr-0.15', required by 'virtual:world', not found
  Package 'gxr-0.15', required by 'virtual:world', not found

The following warnings were emitted during compilation:

warning: `"pkg-config" "--libs" "--cflags" "xrdesktop-0.15" "xrdesktop-0.15 >= 0.15"` did not exit successfully: exit status: 1

error: failed to run custom build command for `xrd-sys v0.15.0 (/home/theo/git/picom-xrdesktop-companion/xrd/sys)`

Caused by:
  process didn't exit successfully: `/home/theo/git/picom-xrdesktop-companion/target/release/build/xrd-sys-eef7c4941780ecae/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-env-changed=XRDESKTOP_0.15_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  cargo:warning=`"pkg-config" "--libs" "--cflags" "xrdesktop-0.15" "xrdesktop-0.15 >= 0.15"` did not exit successfully: exit status: 1
  error: could not find system library 'xrdesktop-0.15' required by the 'xrd-sys' crate

  --- stderr
  Package xrdesktop-0.15 was not found in the pkg-config search path.
  Perhaps you should add the directory containing `xrdesktop-0.15.pc'
  to the PKG_CONFIG_PATH environment variable
  Package 'xrdesktop-0.15', required by 'virtual:world', not found
  Package 'xrdesktop-0.15', required by 'virtual:world', not found

Not sure if there is a workaround to build the app against the new versions.

@yshui
Copy link
Owner

yshui commented Nov 13, 2022

0.16 is said to have a significant API change (I haven't checked if it's actually the case yet), so it would take some time before I can update the code base to the new API.

For the time being I recommend downgrading to 0.15.

@duckbytes
Copy link
Author

That makes sense. Thanks for the response.

@duckbytes
Copy link
Author

I've been able to downgrade back to 0.15.1, but now I'm getting a segmentation fault:

➜  picom-xrdesktop-companion git:(next) pacman -Qs gxr
local/gxr-git 0.15.1.983.27da712-1
    A glib wrapper for the OpenVR and OpenXR APIs.
local/jxrlib 0.2.4-1
    Open source implementation of jpegxr
➜  picom-xrdesktop-companion git:(next) pacman -Qs xrdesktop
local/gnome-shell-extension-xrdesktop-git 0.16.0.37.6124c8c-1
    An extension for toggling xrdesktop mode in GNOME Shell.
local/xrdesktop-git 0.15.1.864.fda9b23-1
    A library for XR interaction with classical desktop compositors.
➜  picom-xrdesktop-companion git:(next) pacman -Qs gulkan
local/gulkan-git 0.15.1.300.f39526a-1
    A GLib library for Vulkan abstraction.
➜  picom-xrdesktop-companion git:(next) target/release/picom-xrdesktop-companion
ClientMode::Overlay
Load manifest path /home/theo/.cache/xrdesktop.openvr/actions.json
[1]    218538 segmentation fault (core dumped)  target/release/picom-xrdesktop-companion
➜  picom-xrdesktop-companion git:(next)

Any thoughts about what might be going wrong?

@yshui
Copy link
Owner

yshui commented Nov 21, 2022

is there a stack trace?

@duckbytes
Copy link
Author

picomxrdesktopstrace.zip

Attached is the full strace output, but here are the last few lines copied too:

poll([{fd=47, events=POLLIN}], 1, -1)   = 1 ([{fd=47, revents=POLLIN}])
recvmsg(47, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\7\0\0\0\0\0D\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 32
recvmsg(47, {msg_namelen=0}, MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x56153730c5c8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mmap(NULL, 2101248, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7fdc341ff000
mprotect(0x7fdc34200000, 2097152, PROT_READ|PROT_WRITE) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7fdc343ff990, parent_tid=0x7fdc343ff990, exit_signal=0, stack=0x7fdc341ff000, stack_size=0x1ffc40, tls=0x7fdc343ff6c0} => {parent_tid=[314154]}, 88) = 314154
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 1, NULL, FUTEX_BITSET_MATCH_ANY) = 0
mmap(NULL, 2101248, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7fdc0ebfd000
mprotect(0x7fdc0ebfe000, 2097152, PROT_READ|PROT_WRITE) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7fdc0edfd990, parent_tid=0x7fdc0edfd990, exit_signal=0, stack=0x7fdc0ebfd000, stack_size=0x1ffc40, tls=0x7fdc0edfd6c0} => {parent_tid=[314161]}, 88) = 314161
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\1\0\1\0\0\0\0\2\0\0\0\254\0\0\0\1\1o\0 \0\0\0/com/git"..., iov_len=192}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 192
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 2, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x561536e514d8, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 3, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x7fdc5d496ba0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 4, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 5, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 6, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 7, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 8, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 9, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 10, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 11, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 12, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 13, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 14, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 15, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 16, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 17, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 18, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 19, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 20, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 21, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 22, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 23, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 24, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 25, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7fdc5d496ba0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7fdc5d496ba0, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7fdc5d496ba0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 26, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 27, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x561536e515a0, FUTEX_WAIT_BITSET_PRIVATE, 28, NULL, FUTEX_BITSET_MATCH_ANY) = ?
+++ killed by SIGSEGV (core dumped) +++

@yshui
Copy link
Owner

yshui commented Nov 22, 2022

@duckbytes thanks, but i was asking for a stack trace 😅

@duckbytes
Copy link
Author

How can I get that for you?

@yshui
Copy link
Owner

yshui commented Nov 22, 2022

run the program under gdb, use the backtrace command when it crashes.

@duckbytes
Copy link
Author

Thanks. Here's the output:

Thread 13 "picom-xrdesktop" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffc31fe6c0 (LWP 48479)]
0x00007fffc18b093c in ?? () from /usr/lib/dri/radeonsi_dri.so
(gdb) backtrace
#0  0x00007fffc18b093c in  () at /usr/lib/dri/radeonsi_dri.so
#1  0x00007fffc1161e5e in  () at /usr/lib/dri/radeonsi_dri.so
#2  0x00007fffc114742d in  () at /usr/lib/dri/radeonsi_dri.so
#3  0x00007fffc13cf1d9 in  () at /usr/lib/dri/radeonsi_dri.so
#4  0x00007fffc13cf96e in  () at /usr/lib/dri/radeonsi_dri.so
#5  0x00007fffc13b742a in  () at /usr/lib/dri/radeonsi_dri.so
#6  0x00007fffc12d9148 in  () at /usr/lib/dri/radeonsi_dri.so
#7  0x00007fffc12d952d in  () at /usr/lib/dri/radeonsi_dri.so
#8  0x00007fffc1383158 in  () at /usr/lib/dri/radeonsi_dri.so
#9  0x00005555556fec78 in glium::buffer::alloc::Alloc::new ()
#10 0x000055555573bf11 in picom_xrdesktop_companion::gl::GlInner::blit ()
#11 0x0000555555761735 in core::ops::function::FnOnce::call_once{{vtable.shim}} ()
#12 0x0000555555788d44 in picom_xrdesktop_companion::utils::RemoteInner<T>::run ()
#13 0x00005555556ecfc4 in std::sys_common::backtrace::__rust_begin_short_backtrace ()
#14 0x00005555556fb119 in core::ops::function::FnOnce::call_once{{vtable.shim}} ()
#15 0x00005555558847a5 in alloc::boxed::{impl#44}::call_once<(), dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global> () at library/alloc/src/boxed.rs:1951
#16 alloc::boxed::{impl#44}::call_once<(), alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global>, alloc::alloc::Global> ()
    at library/alloc/src/boxed.rs:1951
#17 std::sys::unix::thread::{impl#2}::new::thread_start ()
    at library/std/src/sys/unix/thread.rs:108
#18 0x00007ffff77398fd in start_thread (arg=<optimized out>) at pthread_create.c:442
#19 0x00007ffff77bba60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb)

@yshui
Copy link
Owner

yshui commented Nov 22, 2022

hmm, this doesn't look good 😢

do you have valgrind installed? can you run the application under valgrind?

@duckbytes
Copy link
Author

I've found the problem. Seeing all these errors about radeonsi_dri.so, I remembered that a few days ago I had installed mesa-git from the AUR. I replaced it with mesa from the repository and vulkan-radeon (mesa-git had removed it automatically). Now things are working again!

For reference this was the output from valgrind:

==81697== Memcheck, a memory error detector
==81697== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==81697== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
==81697== Command: target/release/picom-xrdesktop-companion
==81697==
ClientMode::Overlay
Load manifest path /home/theo/.cache/xrdesktop.openvr/actions.json
==81697== Thread 12:
==81697== Invalid read of size 8
==81697==    at 0x18A5693C: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x18307E5D: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x182ED42C: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x185751D8: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x1857596D: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x1855D429: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x1847F147: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x1847F52C: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x18529157: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x2B2C77: glium::buffer::alloc::Alloc::new (in /home/theo/git/picom-xrdesktop-companion/target/release/picom-xrdesktop-companion)
==81697==    by 0x2EFF10: picom_xrdesktop_companion::gl::GlInner::blit (in /home/theo/git/picom-xrdesktop-companion/target/release/picom-xrdesktop-companion)
==81697==    by 0x315734: core::ops::function::FnOnce::call_once{{vtable.shim}} (in /home/theo/git/picom-xrdesktop-companion/target/release/picom-xrdesktop-companion)
==81697==  Address 0x8 is not stack'd, malloc'd or (recently) free'd
==81697==
==81697==
==81697== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==81697==  Access not within mapped region at address 0x8
==81697==    at 0x18A5693C: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x18307E5D: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x182ED42C: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x185751D8: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x1857596D: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x1855D429: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x1847F147: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x1847F52C: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x18529157: ??? (in /usr/lib/dri/radeonsi_dri.so)
==81697==    by 0x2B2C77: glium::buffer::alloc::Alloc::new (in /home/theo/git/picom-xrdesktop-companion/target/release/picom-xrdesktop-companion)
==81697==    by 0x2EFF10: picom_xrdesktop_companion::gl::GlInner::blit (in /home/theo/git/picom-xrdesktop-companion/target/release/picom-xrdesktop-companion)
==81697==    by 0x315734: core::ops::function::FnOnce::call_once{{vtable.shim}} (in /home/theo/git/picom-xrdesktop-companion/target/release/picom-xrdesktop-companion)
==81697==  If you believe this happened as a result of a stack
==81697==  overflow in your program's main thread (unlikely but
==81697==  possible), you can try to increase the size of the
==81697==  main thread stack using the --main-stacksize= flag.
==81697==  The main thread stack size used in this run was 8388608.
==81697==
==81697== HEAP SUMMARY:
==81697==     in use at exit: 21,202,514 bytes in 75,661 blocks
==81697==   total heap usage: 212,080 allocs, 136,419 frees, 418,678,492 bytes allocated
==81697==
==81697== LEAK SUMMARY:
==81697==    definitely lost: 158 bytes in 6 blocks
==81697==    indirectly lost: 304 bytes in 5 blocks
==81697==      possibly lost: 6,651,919 bytes in 49,028 blocks
==81697==    still reachable: 14,506,101 bytes in 26,278 blocks
==81697==                       of which reachable via heuristic:
==81697==                         stdstring          : 82,203 bytes in 1,636 blocks
==81697==                         multipleinheritance: 4,512 bytes in 12 blocks
==81697==         suppressed: 0 bytes in 0 blocks
==81697== Rerun with --leak-check=full to see details of leaked memory
==81697==
==81697== For lists of detected and suppressed errors, rerun with: -s
==81697== ERROR SUMMARY: 2 errors from 1 contexts (suppressed: 0 from 0)
[1]    81697 segmentation fault (core dumped)  valgrind target/release/picom-xrdesktop-companion

The mesa-git version I had installed was 23.0.0_devel.162796.88f1fad3f76.d41d8cd98f00b204e9800998ecf8427e-1

Thank you for your help!

@duckbytes
Copy link
Author

Unfortunately it looks like mesa has caught up in the repositories, because I'm getting segfaults again.

#2  0x00007fffbe14816d in  () at /usr/lib/dri/radeonsi_dri.so                                                                                                                                                [21/156]
#3  0x00007fffbe3d0409 in  () at /usr/lib/dri/radeonsi_dri.so
#4  0x00007fffbe3d0b9e in  () at /usr/lib/dri/radeonsi_dri.so
#5  0x00007fffbe3b865a in  () at /usr/lib/dri/radeonsi_dri.so
#6  0x00007fffbe2d9ed8 in  () at /usr/lib/dri/radeonsi_dri.so
#7  0x00007fffbe2da2bd in  () at /usr/lib/dri/radeonsi_dri.so
#8  0x00007fffbe383fe8 in  () at /usr/lib/dri/radeonsi_dri.so
#9  0x00005555556fec78 in glium::buffer::alloc::Alloc::new ()
#10 0x000055555573bf11 in picom_xrdesktop_companion::gl::GlInner::blit ()
#11 0x0000555555761735 in core::ops::function::FnOnce::call_once{{vtable.shim}} ()
--Type <RET> for more, q to quit, c to continue without paging--
#12 0x0000555555788d44 in picom_xrdesktop_companion::utils::RemoteInner<T>::run ()
#13 0x00005555556ecfc4 in std::sys_common::backtrace::__rust_begin_short_backtrace ()
#14 0x00005555556fb119 in core::ops::function::FnOnce::call_once{{vtable.shim}} ()
#15 0x00005555558847a5 in alloc::boxed::{impl#44}::call_once<(), dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global> () at library/alloc/src/boxed.rs:1951
#16 alloc::boxed::{impl#44}::call_once<(), alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global>, alloc::alloc::Global> () at library/alloc/src/boxed.rs:1951
#17 std::sys::unix::thread::{impl#2}::new::thread_start () at library/std/src/sys/unix/thread.rs:108
#18 0x00007ffff77448fd in  () at /usr/lib/libc.so.6
#19 0x00007ffff77c6d20 in  () at /usr/lib/libc.so.6

Looks like it's the same problem as before, but downgrading mesa breaks Gnome.

@yshui
Copy link
Owner

yshui commented Mar 31, 2023

Sorry I didn't have time to look into this. I will try to look into the crash in the next a couple of days.

RE: 0.16 support

Unfortunately 0.16 moved to openxr and abandoned steamvr support. While steamvr does provide an openxr implementation, that doesn't support overlays. So I don't plan to support 0.16 until overlays are supported.

@duckbytes
Copy link
Author

It's no problem. Thanks for looking into it.

I realised later too that 0.16 has dropped overlay support, so understand that it won't be ported over.

@yshui
Copy link
Owner

yshui commented Apr 1, 2023

i might have fixed the problem, or at least i can't reproduce the crash on my side. can you test again with the new changes?

@duckbytes
Copy link
Author

It works. Thanks so much!

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

2 participants