-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
Describe the Bug
I'm using Sunshine in the context of Games on Whales. It's been working great for a while using the older, pre-fork Sunshine, but recently I tried to run with version 0.14.0 and I get a segfault as soon as I try to connect with Moonlight. I grabbed this stacktrace with gdb:
Thread 23 "sunshine-dbg" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffa4804640 (LWP 155)]
0x00007ffff5e15f45 in ?? () from /usr/lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0 0x00007ffff5e15f45 in ?? () from /usr/lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff6135589 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(char const*) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2 0x0000555555fd1513 in platf::pa::server_t::get_default_sink_name[abi:cxx11]()::{lambda(pa_context*, pa_server_info const*)#1}::operator()(pa_context*, pa_server_info const*) const (
__closure=0x7fffceffbf20, ctx=0x7fffb4001530, server_info=0x7fffa4803230) at /sunshine/sunshine/platform/linux/audio.cpp:400
#3 0x0000555555fd5e06 in std::__invoke_impl<void, platf::pa::server_t::get_default_sink_name()::{lambda(pa_context*, pa_server_info const*)#1}&, pa_context*, pa_server_info const*>(std::__invoke_other, platf::pa::server_t::get_default_sink_name()::{lambda(pa_context*, pa_server_info const*)#1}&, pa_context*&&, pa_server_info const*&&) (__f=...)
at /usr/include/c++/10/bits/invoke.h:60
#4 0x0000555555fd5281 in std::__invoke_r<void, platf::pa::server_t::get_default_sink_name()::{lambda(pa_context*, pa_server_info const*)#1}&, pa_context*, pa_server_info const*>(platf::pa::server_t::get_default_sink_name()::{lambda(pa_context*, pa_server_info const*)#1}&, pa_context*&&, pa_server_info const*&&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#5 0x0000555555fd4426 in std::_Function_handler<void (pa_context*, pa_server_info const*), platf::pa::server_t::get_default_sink_name()::{lambda(pa_context*, pa_server_info const*)#1}>::_M_invoke(std::_Any_data const&, pa_context*&&, pa_server_info const*&&) (__functor=..., __args#0=@0x7fffa48031c0: 0x7fffb4001530, __args#1=@0x7fffa48031b8: 0x7fffa4803230)
at /usr/include/c++/10/bits/std_function.h:291
#6 0x0000555555fd4515 in std::function<void (pa_context*, pa_server_info const*)>::operator()(pa_context*, pa_server_info const*) const (this=0x7fffceffbf20, __args#0=0x7fffb4001530,
__args#1=0x7fffa4803230) at /usr/include/c++/10/bits/std_function.h:622
#7 0x0000555555fd336d in platf::pa::cb<pa_server_info*> (ctx=0x7fffb4001530, i=0x7fffa4803230, userdata=0x7fffceffbf20) at /sunshine/sunshine/platform/linux/audio.cpp:135
#8 0x00007ffff6220579 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#9 0x00007ffff1ea6df3 in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-14.2.so
#10 0x00007ffff1ea780f in pa_pdispatch_run () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-14.2.so
#11 0x00007ffff6220873 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#12 0x00007ffff1eab8fd in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-14.2.so
#13 0x00007ffff1ead48f in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-14.2.so
#14 0x00007ffff6234603 in pa_mainloop_dispatch () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#15 0x00007ffff6234c62 in pa_mainloop_iterate () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#16 0x00007ffff6234d00 in pa_mainloop_run () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#17 0x0000555555fcfd61 in platf::pa::server_t::init()::{lambda(pa_mainloop*)#2}::operator()(pa_mainloop*) const (__closure=0x7fffb4003a28, loop=0x7fffb4001430)
at /sunshine/sunshine/platform/linux/audio.cpp:232
#18 0x0000555555fd7560 in std::__invoke_impl<void, platf::pa::server_t::init()::{lambda(pa_mainloop*)#2}, pa_mainloop*>(std::__invoke_other, platf::pa::server_t::init()::{lambda(pa_mainloop*)#2}&&, pa_mainloop*&&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#19 0x0000555555fd74bb in std::__invoke<platf::pa::server_t::init()::{lambda(pa_mainloop*)#2}, pa_mainloop*>(platf::pa::server_t::init()::{lambda(pa_mainloop*)#2}&&, pa_mainloop*&&) (
__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#20 0x0000555555fd741b in std::thread::_Invoker<std::tuple<platf::pa::server_t::init()::{lambda(pa_mainloop*)#2}, pa_mainloop*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) (
this=0x7fffb4003a28) at /usr/include/c++/10/thread:264
#21 0x0000555555fd7376 in std::thread::_Invoker<std::tuple<platf::pa::server_t::init()::{lambda(pa_mainloop*)#2}, pa_mainloop*> >::operator()() (this=0x7fffb4003a28)
at /usr/include/c++/10/thread:271
#22 0x0000555555fd730e in std::thread::_State_impl<std::thread::_Invoker<std::tuple<platf::pa::server_t::init()::{lambda(pa_mainloop*)#2}, pa_mainloop*> > >::_M_run() (
this=0x7fffb4003a20) at /usr/include/c++/10/thread:215
#23 0x00007ffff60c7694 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#24 0x00007ffff7fa1450 in start_thread () from /usr/lib/x86_64-linux-gnu/libpthread.so.0
#25 0x00007ffff5dadd53 in clone () from /usr/lib/x86_64-linux-gnu/libc.so.6
Expected Behavior
No response
Additional Context
My server_info pointer is apparently non-null but still invalid, because this is the line that's crashing: https://github.com/SunshineStream/Sunshine/blob/70ae7a2fa9b33173eb949c86ec42a96e7b9e8c25/sunshine/platform/linux/audio.cpp#L400. I haven't done any further digging yet.
Sunshine Host Operating System and Version
unRAID 6.10.3 / Docker, Dockerfile based on Ubuntu 21.04
Architecture
64-bit
Sunshine Version
Built from source at 70ae7a2
GPU Type
Nvidia
GPU Model
GeForce GTX 1660 Ti
GPU Driver/Mesa Version
470.129.06
Capture Method (Linux Only)
X11