cjcliffe/CubicSDR

Segmentation fault with Raspberry Pi OS Bookworm

srs4511351 opened this issue · 2 comments

Running CubicSDR v0.2.8 compiled from git clone on 10/19/2023
I have a Raspberry Pi 4 with Raspberry Pi OS Bullseye 64 bit Debian
pipewire is installed.

When I run CubicSDR, it ends with a Segmentation fault after going through hamlib and the audio devices.
It seems to find Audio Device #0 default without error, but it doesn't work with the Alsa devices:
RtApiAlsa::getDeviceInfo: pcm device (hw:0,0) data format not supported by RtAudio.

Compiling for PulseAudio, there are no audio errors, but still ends with a Segmentation fault.

I tried rtaudio-5.2.0 and rtaudio-6.0.1

I copied the Alsa installation to a DietPi Bookworm OS and it runs there.

Can you help to troubleshoot this issue?

----Steve

I ran CubicSDR with gdb. Maybe that will help to reveal the cause of the crash.

[New Thread 0x7fee7ce9c0 (LWP 4730)]
[New Thread 0x7fedfbe9c0 (LWP 4731)]
[New Thread 0x7fed7ae9c0 (LWP 4732)]

Thread 1 "CubicSDR" received signal SIGSEGV, Segmentation fault.
0x0000007ff6dba254 in XQueryExtension ()
   from /lib/aarch64-linux-gnu/libX11.so.6
(gdb) thread apply all bt

Thread 8 (Thread 0x7fed7ae9c0 (LWP 4732) "CubicSDR"):
#0  0x0000007ff65db694 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x7fed7ae100, op=137, expected=0, futex_word=0x555622a090) at ./nptl/futex-internal.c:57
#1  __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x7fed7ae100, clockid=1, expected=0, futex_word=0x555622a090) at ./nptl/futex-internal.c:87
#2  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x555622a090, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fed7ae100, private=private@entry=0) at ./nptl/futex-internal.c:139
#3  0x0000007ff65de7e8 in __pthread_cond_wait_common (abstime=0x7fed7ae100, clockid=1, mutex=0x55562982d0, cond=0x555622a068) at ./nptl/pthread_cond_wait.c:503
#4  ___pthread_cond_clockwait64 (abstime=0x7fed7ae100, clockid=1, mutex=0x55562982d0, cond=0x555622a068) at ./nptl/pthread_cond_wait.c:682
#5  ___pthread_cond_clockwait64 (cond=0x555622a068, mutex=0x55562982d0, clockid=1, abstime=0x7fed7ae100) at ./nptl/pthread_cond_wait.c:670
#6  0x0000005555a03724 in SDRPostThread::run() ()
#7  0x00000055559e3e30 in IOThread::threadMain() ()
#8  0x0000007ff681e9dc in  () at /lib/aarch64-linux-gnu/libstdc++.so.6
#9  0x0000007ff65dee18 in start_thread (arg=0x7fffffeb97) at ./nptl/pthread_create.c:442
#10 0x0000007ff6647e9c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:79
--Type <RET> for more, q to quit, c to continue without paging--c

Thread 7 (Thread 0x7fedfbe9c0 (LWP 4731) "CubicSDR"):
#0  0x0000007ff6613b50 in __GI___clock_nanosleep (clock_id=<optimized out>, clock_id@entry=0, flags=flags@entry=0, req=0x7fedfbe110, rem=0x7fedfbe110) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
#1  0x0000007ff6618a9c in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2  0x0000005555a8f4dc in SpectrumVisualDataThread::run() ()
#3  0x00000055559e3e30 in IOThread::threadMain() ()
#4  0x0000007ff681e9dc in  () at /lib/aarch64-linux-gnu/libstdc++.so.6
#5  0x0000007ff65dee18 in start_thread (arg=0x7fffffeb97) at ./nptl/pthread_create.c:442
#6  0x0000007ff6647e9c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:79

Thread 6 (Thread 0x7fee7ce9c0 (LWP 4730) "CubicSDR"):
#0  0x0000007ff6613b50 in __GI___clock_nanosleep (clock_id=<optimized out>, clock_id@entry=0, flags=flags@entry=0, req=0x7fee7ce110, rem=0x7fee7ce110) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
#1  0x0000007ff6618a9c in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2  0x0000005555a8f4dc in SpectrumVisualDataThread::run() ()
#3  0x00000055559e3e30 in IOThread::threadMain() ()
#4  0x0000007ff681e9dc in  () at /lib/aarch64-linux-gnu/libstdc++.so.6
#5  0x0000007ff65dee18 in start_thread (arg=0x7fffffeb97) at ./nptl/pthread_create.c:442
#6  0x0000007ff6647e9c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:79

Thread 5 (Thread 0x7feefde9c0 (LWP 4725) "dconf worker"):
#0  0x0000007ff663de94 in __GI___poll (fds=0x555619eae0, nfds=1, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:41
#1  0x0000007ff6f37958 in  () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#2  0x0000007ff6f37a84 in g_main_context_iteration () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#3  0x0000007ff42cb984 in  () at /usr/lib/aarch64-linux-gnu/gio/modules/libdconfsettings.so
#4  0x0000007ff6f62854 in  () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#5  0x0000007ff65dee18 in start_thread (arg=0x7fffffde97) at ./nptl/pthread_create.c:442
#6  0x0000007ff6647e9c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:79

Thread 4 (Thread 0x7fef7ee9c0 (LWP 4724) "gdbus"):
#0  0x0000007ff663de94 in __GI___poll (fds=0x7fe800ff70, nfds=2, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:41
#1  0x0000007ff6f37958 in  () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#2  0x0000007ff6f37d04 in g_main_loop_run () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#3  0x0000007ff71efa04 in  () at /lib/aarch64-linux-gnu/libgio-2.0.so.0
#4  0x0000007ff6f62854 in  () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#5  0x0000007ff65dee18 in start_thread (arg=0x7fefffde07) at ./nptl/pthread_create.c:442
#6  0x0000007ff6647e9c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:79

Thread 3 (Thread 0x7fefffe9c0 (LWP 4723) "pool-CubicSDR"):
#0  syscall () at ../sysdeps/unix/sysv/linux/aarch64/syscall.S:38
#1  0x0000007ff6f8df20 in g_cond_wait_until () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#2  0x0000007ff6f03184 in  () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#3  0x0000007ff6f634a4 in  () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#4  0x0000007ff6f62854 in  () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#5  0x0000007ff65dee18 in start_thread (arg=0x7fffffe1f7) at ./nptl/pthread_create.c:442
#6  0x0000007ff6647e9c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:79

Thread 2 (Thread 0x7ff4b449c0 (LWP 4722) "gmain"):
#0  0x0000007ff663de94 in __GI___poll (fds=0x5556184370, nfds=1, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:41
#1  0x0000007ff6f37958 in  () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#2  0x0000007ff6f37a84 in g_main_context_iteration () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#3  0x0000007ff6f37adc in  () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#4  0x0000007ff6f62854 in  () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#5  0x0000007ff65dee18 in start_thread (arg=0x7fffffe1b7) at ./nptl/pthread_create.c:442
#6  0x0000007ff6647e9c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:79

Thread 1 (Thread 0x7ff763a600 (LWP 4717) "CubicSDR"):
#0  0x0000007ff6dba254 in XQueryExtension () at /lib/aarch64-linux-gnu/libX11.so.6
#1  0x0000007ff6379a10 in  () at /lib/aarch64-linux-gnu/libGLX.so.0
#2  0x0000007ff6375290 in glXQueryVersion () at /lib/aarch64-linux-gnu/libGLX.so.0
#3  0x0000005555aee05c in wxGLCanvasX11::GetGLXVersion() ()
#4  0x0000005555aecae8 in wxGLAttributes::RGBA() ()
#5  0x00000055559c8618 in AppFrame::AppFrame() ()
#6  0x00000055559af200 in CubicSDR::OnInit() ()
#7  0x0000005555b3d4c0 in wxEntry(int&, wchar_t**) ()
#8  0x0000005555b3d5b8 in wxEntry(int&, char**) ()
#9  0x000000555599c2f0 in main ()

----Steve

I configured Raspberry Pi OS Bookworm to switch from Wayland to the Openbox window manager and CubicSDR works now.
It looks like there is an issue running CubicSDR on Wayland, which is now the default for Raspberry Pi OS Bookworm.

----Steve