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

Possible FreeDV crash when adjusting audio settings with pavucontrol #418

Closed
tmiw opened this issue Jun 6, 2023 · 8 comments · Fixed by #420
Closed

Possible FreeDV crash when adjusting audio settings with pavucontrol #418

tmiw opened this issue Jun 6, 2023 · 8 comments · Fixed by #420
Labels
bug Something isn't working

Comments

@tmiw
Copy link
Collaborator

tmiw commented Jun 6, 2023

From FreeDV Reporter earlier:

Screenshot_2023-06-06-10-38-35-20_40deb401b9ffe8e1df2f1cc5ba480b12

@tmiw tmiw added the bug Something isn't working label Jun 6, 2023
@Tyrbiter
Copy link

Tyrbiter commented Jun 6, 2023

I have just tried the very same thing, this used to work in the past and now I get a segfault, here is gdb's output when it happened, seems to be a threading issue in StartRxStream where it's trying to change the soundcard out name:

PulseAudioDevice[Tue Jun 6 19:32:52 2023]: stream named alsa_output.usb-Generic_Realtek_USB2.0_Audio-00.analog-stereo has been moved to alsa_output.usb-1130_USB_AUDIO-00.analog-stereo

Thread 1 "FreeDV GUI" received signal SIGSEGV, Segmentation fault.
__strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:76
76 VPCMPEQ (%rdi), %ymm0, %ymm1
(gdb) thread apply all bt

Thread 66 (Thread 0x7fffa97fa6c0 (LWP 257812) "FreeDV GUI"):
#0 0x00007ffff50ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7fff80006bec) at futex-internal.c:57
#1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7fff80006bec, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2 0x00007ffff50ab25f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fff80006bec, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139
#3 0x00007ffff50adb79 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=, cond=0x7fff80006bc0) at pthread_cond_wait.c:503
#4 ___pthread_cond_wait (cond=0x7fff80006bc0, mutex=) at pthread_cond_wait.c:618
#5 0x000055555562d19a in asio::detail::posix_event::waitasio::detail::conditionally_enabled_mutex::scoped_lock(asio::detail::conditionally_enabled_mutex::scoped_lock&) (lock=..., this=0x7fff80006bc0) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/redhat-linux-build/sioclient_src/lib/asio/asio/include/asio/detail/posix_event.hpp:105
#6 asio::detail::conditionally_enabled_event::wait(asio::detail::conditionally_enabled_mutex::scoped_lock&) (lock=..., this=0x7fff80006bb8) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/redhat-linux-build/sioclient_src/lib/asio/asio/include/asio/detail/conditionally_enabled_event.hpp:88
#7 asio::detail::scheduler::do_run_one(asio::detail::conditionally_enabled_mutex::scoped_lock&, asio::detail::scheduler_thread_info&, std::error_code const&) (ec=std::error_code = { }, this_thread=..., lock=..., this=0x7fff80006b50) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/redhat-linux-build/sioclient_src/lib/asio/asio/include/asio/detail/impl/scheduler.ipp:408
#8 asio::detail::scheduler::run(std::error_code&) (ec=std::error_code = { }, this=0x7fff80006b50) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/redhat-linux-build/sioclient_src/lib/asio/asio/include/asio/detail/impl/scheduler.ipp:153
#9 asio::io_context::run() (this=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/redhat-linux-build/sioclient_src/lib/asio/asio/include/asio/impl/io_context.ipp:61
--Type for more, q to quit, c to continue without paging--c
#10 0x000055555562d8aa in asio::detail::resolver_service_base::work_io_context_runner::operator()() (this=0x7fff80007118) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/redhat-linux-build/sioclient_src/lib/asio/asio/include/asio/detail/impl/resolver_service_base.ipp:31
#11 asio::detail::posix_thread::funcasio::detail::resolver_service_base::work_io_context_runner::run() (this=0x7fff80007110) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/redhat-linux-build/sioclient_src/lib/asio/asio/include/asio/detail/posix_thread.hpp:85
#12 asio::detail::asio_detail_posix_thread_function(void*) (arg=0x7fff80007110) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/redhat-linux-build/sioclient_src/lib/asio/asio/include/asio/detail/impl/posix_thread.ipp:73
#13 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#14 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 65 (Thread 0x7fffa9ffb6c0 (LWP 257811) "FreeDV GUI"):
#0 0x00007ffff5134c72 in epoll_wait (epfd=20, events=0x7fffa9ffa380, maxevents=128, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#1 0x000055555562a6a8 in asio::detail::epoll_reactor::run(long, asio::detail::op_queueasio::detail::scheduler_operation&) (this=0x7fffbc041b00, usec=, ops=...) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/redhat-linux-build/sioclient_src/lib/asio/asio/include/asio/detail/impl/epoll_reactor.ipp:452
#2 0x000055555562d0c7 in asio::detail::scheduler::do_run_one(asio::detail::conditionally_enabled_mutex::scoped_lock&, asio::detail::scheduler_thread_info&, std::error_code const&) (ec=std::error_code = { }, this_thread=..., lock=..., this=0x7fffbc03d790) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/redhat-linux-build/sioclient_src/lib/asio/asio/include/asio/detail/impl/scheduler.ipp:384
#3 asio::detail::scheduler::run(std::error_code&) (ec=std::error_code = { }, this=0x7fffbc03d790) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/redhat-linux-build/sioclient_src/lib/asio/asio/include/asio/detail/impl/scheduler.ipp:153
#4 asio::io_context::run() (this=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/redhat-linux-build/sioclient_src/lib/asio/asio/include/asio/impl/io_context.ipp:61
#5 0x000055555562d900 in websocketpp::transport::asio::endpointwebsocketpp::config::asio_client::transport_config::run() (this=0x7fffbc036560) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/redhat-linux-build/sioclient_src/lib/websocketpp/websocketpp/transport/asio/endpoint.hpp:641
#6 sio::client_impl::run_loop() (this=0x7fffbc036550) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/redhat-linux-build/sioclient_src/src/internal/sio_client_impl.cpp:229
#7 0x00007ffff52e31d3 in std::execute_native_thread_routine(void*) (__p=0x7fff8c001030) at ../../../../../libstdc++-v3/src/c++11/thread.cc:104
#8 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#9 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 64 (Thread 0x7fffaa7fc6c0 (LWP 257810) "FreeDV GUI"):
#0 0x00007ffff50ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7fffbc044044) at futex-internal.c:57
#1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7fffbc044044, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2 0x00007ffff50ab25f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fffbc044044, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139
#3 0x00007ffff50adb79 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=, cond=0x7fffbc044018) at pthread_cond_wait.c:503
#4 ___pthread_cond_wait (cond=0x7fffbc044018, mutex=) at pthread_cond_wait.c:618
#5 0x00007ffff52dc1a0 in __gthread_cond_wait (__mutex=, __cond=0x61) at /usr/src/debug/gcc-13.1.1-2.fc38.x86_64/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/x86_64-redhat-linux/bits/gthr-default.h:865
#6 std::__condvar::wait(std::mutex&) (__m=, this=0x61) at /usr/src/debug/gcc-13.1.1-2.fc38.x86_64/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/std_mutex.h:171
#7 std::condition_variable::wait(std::unique_lockstd::mutex&) (this=this@entry=0x7fffbc044018, _lock=...) at ../../../../../libstdc++-v3/src/c++11/condition_variable.cc:41
#8 0x00005555556208f0 in FreeDVReporter::threadEntryPoint
() (this=0x7fffbc043fd0) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/reporting/FreeDVReporter.cpp:155
#9 0x00007ffff52e31d3 in std::execute_native_thread_routine(void*) (__p=0x7fffbc038030) at ../../../../../libstdc++-v3/src/c++11/thread.cc:104
#10 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#11 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 63 (Thread 0x7fffaaffd6c0 (LWP 257809) "FreeDV GUI"):
#0 0x00007ffff50ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x7fffaaffca90, op=137, expected=0, futex_word=0x555555b6ff14) at futex-internal.c:57
#1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x555555b6ff14, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffaaffca90, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2 0x00007ffff50ab25f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x555555b6ff14, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffaaffca90, private=private@entry=0) at futex-internal.c:139
#3 0x00007ffff50ae202 in __pthread_cond_wait_common (abstime=, clockid=, mutex=, cond=0x555555b6fee8) at pthread_cond_wait.c:503
#4 ___pthread_cond_clockwait64 (abstime=, clockid=, mutex=, cond=0x555555b6fee8) at pthread_cond_wait.c:682
#5 ___pthread_cond_clockwait64 (cond=0x555555b6fee8, mutex=, clockid=, abstime=) at pthread_cond_wait.c:670
#6 0x00005555555f154e in std::__condvar::wait_until(std::mutex&, int, timespec&) (__abs_time=..., __clock=1, __m=, this=) at /usr/include/c++/13/bits/std_mutex.h:185
#7 std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__lock=..., __atime=, this=) at /usr/include/c++/13/condition_variable:203
#8 std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__atime=, __lock=..., this=) at /usr/include/c++/13/condition_variable:113
#9 std::condition_variable::wait_for<long, std::ratio<1l, 1l> >(std::unique_lockstd::mutex&, std::chrono::duration<long, std::ratio<1l, 1l> > const&) (__rtime=, _lock=..., this=) at /usr/include/c++/13/condition_variable:165
#10 Hamlib::statusUpdateThreadEntryFn
() (this=0x555555b6fe80) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/hamlib.cpp:482
#11 0x00007ffff52e31d3 in std::execute_native_thread_routine(void*) (__p=0x7fffbc036340) at ../../../../../libstdc++-v3/src/c++11/thread.cc:104
#12 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#13 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 62 (Thread 0x7fffab7fe6c0 (LWP 257808) "FreeDV PS"):
#0 0x00007ffff50ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x7fffab7fda60, op=137, expected=0, futex_word=0x7fffac0271bc) at futex-internal.c:57
#1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7fffac0271bc, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffab7fda60, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2 0x00007ffff50ab25f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fffac0271bc, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffab7fda60, private=private@entry=0) at futex-internal.c:139
#3 0x00007ffff50ae202 in __pthread_cond_wait_common (abstime=, clockid=, mutex=, cond=0x7fffac027190) at pthread_cond_wait.c:503
#4 ___pthread_cond_clockwait64 (abstime=, clockid=, mutex=, cond=0x7fffac027190) at pthread_cond_wait.c:682
#5 ___pthread_cond_clockwait64 (cond=0x7fffac027190, mutex=, clockid=, abstime=) at pthread_cond_wait.c:670
#6 0x00005555556101ed in std::__condvar::wait_until(std::mutex&, int, timespec&) (__abs_time=..., __clock=1, __m=, this=0x7fffac027190) at /usr/include/c++/13/bits/std_mutex.h:185
#7 std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__lock=..., __atime=, this=0x7fffac027190) at /usr/include/c++/13/condition_variable:203
#8 std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__atime=, __lock=..., this=0x7fffac027190, this=, __lock=, __atime=) at /usr/include/c++/13/condition_variable:113
#9 std::condition_variable::wait_for<long, std::ratio<1l, 1000l> >(std::unique_lockstd::mutex&, std::chrono::duration<long, std::ratio<1l, 1000l> > const&) (__rtime=, _lock=..., this=0x7fffac027190) at /usr/include/c++/13/condition_variable:165
#10 ParallelStep::executeRunnerThread
(ParallelStep::ThreadInfo*) (threadState=0x7fffac027160, this=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/pipeline/ParallelStep.cpp:197
#11 operator() (threadState=0x7fffac027160, __closure=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/pipeline/ParallelStep.cpp:54
#12 std::__invoke_impl<void, ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> (__f=) at /usr/include/c++/13/bits/invoke.h:61
#13 std::__invoke<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> (__fn=) at /usr/include/c++/13/bits/invoke.h:96
#14 std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> >::_M_invoke<0, 1> (this=) at /usr/include/c++/13/bits/std_thread.h:292
#15 std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> >::operator() (this=) at /usr/include/c++/13/bits/std_thread.h:299
#16 std::thread::_State_impl<std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> > >::_M_run(void) (this=) at /usr/include/c++/13/bits/std_thread.h:244
#17 0x00007ffff52e31d3 in std::execute_native_thread_routine(void*) (__p=0x7fffac027460) at ../../../../../libstdc++-v3/src/c++11/thread.cc:104
#18 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#19 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 61 (Thread 0x7fffabfff6c0 (LWP 257807) "FreeDV PS"):
#0 0x00007ffff50ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x7fffabffea60, op=137, expected=0, futex_word=0x7fffac026cc8) at futex-internal.c:57
#1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7fffac026cc8, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffabffea60, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2 0x00007ffff50ab25f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fffac026cc8, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffabffea60, private=private@entry=0) at futex-internal.c:139
#3 0x00007ffff50ae202 in __pthread_cond_wait_common (abstime=, clockid=, mutex=, cond=0x7fffac026ca0) at pthread_cond_wait.c:503
#4 ___pthread_cond_clockwait64 (abstime=, clockid=, mutex=, cond=0x7fffac026ca0) at pthread_cond_wait.c:682
#5 ___pthread_cond_clockwait64 (cond=0x7fffac026ca0, mutex=, clockid=, abstime=) at pthread_cond_wait.c:670
#6 0x00005555556101ed in std::__condvar::wait_until(std::mutex&, int, timespec&) (__abs_time=..., __clock=1, __m=, this=0x7fffac026ca0) at /usr/include/c++/13/bits/std_mutex.h:185
#7 std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__lock=..., __atime=, this=0x7fffac026ca0) at /usr/include/c++/13/condition_variable:203
#8 std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__atime=, __lock=..., this=0x7fffac026ca0, this=, __lock=, __atime=) at /usr/include/c++/13/condition_variable:113
#9 std::condition_variable::wait_for<long, std::ratio<1l, 1000l> >(std::unique_lockstd::mutex&, std::chrono::duration<long, std::ratio<1l, 1000l> > const&) (__rtime=, _lock=..., this=0x7fffac026ca0) at /usr/include/c++/13/condition_variable:165
#10 ParallelStep::executeRunnerThread
(ParallelStep::ThreadInfo*) (threadState=0x7fffac026c70, this=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/pipeline/ParallelStep.cpp:197
#11 operator() (threadState=0x7fffac026c70, __closure=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/pipeline/ParallelStep.cpp:54
#12 std::__invoke_impl<void, ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> (__f=) at /usr/include/c++/13/bits/invoke.h:61
#13 std::__invoke<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> (__fn=) at /usr/include/c++/13/bits/invoke.h:96
#14 std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> >::_M_invoke<0, 1> (this=) at /usr/include/c++/13/bits/std_thread.h:292
#15 std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> >::operator() (this=) at /usr/include/c++/13/bits/std_thread.h:299
#16 std::thread::_State_impl<std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> > >::_M_run(void) (this=) at /usr/include/c++/13/bits/std_thread.h:244
#17 0x00007ffff52e31d3 in std::execute_native_thread_routine(void*) (__p=0x7fffac026f20) at ../../../../../libstdc++-v3/src/c++11/thread.cc:104
#18 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#19 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 60 (Thread 0x7fffb8ff96c0 (LWP 257806) "FreeDV PS"):
#0 0x00007ffff50ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x7fffb8ff8a60, op=137, expected=0, futex_word=0x7fffac02674c) at futex-internal.c:57
#1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7fffac02674c, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffb8ff8a60, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2 0x00007ffff50ab25f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fffac02674c, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffb8ff8a60, private=private@entry=0) at futex-internal.c:139
#3 0x00007ffff50ae202 in __pthread_cond_wait_common (abstime=, clockid=, mutex=, cond=0x7fffac026720) at pthread_cond_wait.c:503
#4 ___pthread_cond_clockwait64 (abstime=, clockid=, mutex=, cond=0x7fffac026720) at pthread_cond_wait.c:682
#5 ___pthread_cond_clockwait64 (cond=0x7fffac026720, mutex=, clockid=, abstime=) at pthread_cond_wait.c:670
#6 0x00005555556101ed in std::__condvar::wait_until(std::mutex&, int, timespec&) (__abs_time=..., __clock=1, __m=, this=0x7fffac026720) at /usr/include/c++/13/bits/std_mutex.h:185
#7 std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__lock=..., __atime=, this=0x7fffac026720) at /usr/include/c++/13/condition_variable:203
#8 std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__atime=, __lock=..., this=0x7fffac026720, this=, __lock=, __atime=) at /usr/include/c++/13/condition_variable:113
#9 std::condition_variable::wait_for<long, std::ratio<1l, 1000l> >(std::unique_lockstd::mutex&, std::chrono::duration<long, std::ratio<1l, 1000l> > const&) (__rtime=, _lock=..., this=0x7fffac026720) at /usr/include/c++/13/condition_variable:165
#10 ParallelStep::executeRunnerThread
(ParallelStep::ThreadInfo*) (threadState=0x7fffac0266f0, this=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/pipeline/ParallelStep.cpp:197
#11 operator() (threadState=0x7fffac0266f0, __closure=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/pipeline/ParallelStep.cpp:54
#12 std::__invoke_impl<void, ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> (__f=) at /usr/include/c++/13/bits/invoke.h:61
#13 std::__invoke<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> (__fn=) at /usr/include/c++/13/bits/invoke.h:96
#14 std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> >::_M_invoke<0, 1> (this=) at /usr/include/c++/13/bits/std_thread.h:292
#15 std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> >::operator() (this=) at /usr/include/c++/13/bits/std_thread.h:299
#16 std::thread::_State_impl<std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> > >::_M_run(void) (this=) at /usr/include/c++/13/bits/std_thread.h:244
#17 0x00007ffff52e31d3 in std::execute_native_thread_routine(void*) (__p=0x7fffac0269f0) at ../../../../../libstdc++-v3/src/c++11/thread.cc:104
#18 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#19 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 59 (Thread 0x7fffb97fa6c0 (LWP 257805) "FreeDV PS"):
#0 0x00007ffff50ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x7fffb97f9a60, op=137, expected=0, futex_word=0x7fffac02627c) at futex-internal.c:57
#1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7fffac02627c, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffb97f9a60, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2 0x00007ffff50ab25f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fffac02627c, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffb97f9a60, private=private@entry=0) at futex-internal.c:139
#3 0x00007ffff50ae202 in __pthread_cond_wait_common (abstime=, clockid=, mutex=, cond=0x7fffac026250) at pthread_cond_wait.c:503
#4 ___pthread_cond_clockwait64 (abstime=, clockid=, mutex=, cond=0x7fffac026250) at pthread_cond_wait.c:682
#5 ___pthread_cond_clockwait64 (cond=0x7fffac026250, mutex=, clockid=, abstime=) at pthread_cond_wait.c:670
#6 0x00005555556101ed in std::__condvar::wait_until(std::mutex&, int, timespec&) (__abs_time=..., __clock=1, __m=, this=0x7fffac026250) at /usr/include/c++/13/bits/std_mutex.h:185
#7 std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__lock=..., __atime=, this=0x7fffac026250) at /usr/include/c++/13/condition_variable:203
#8 std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__atime=, __lock=..., this=0x7fffac026250, this=, __lock=, __atime=) at /usr/include/c++/13/condition_variable:113
#9 std::condition_variable::wait_for<long, std::ratio<1l, 1000l> >(std::unique_lockstd::mutex&, std::chrono::duration<long, std::ratio<1l, 1000l> > const&) (__rtime=, _lock=..., this=0x7fffac026250) at /usr/include/c++/13/condition_variable:165
#10 ParallelStep::executeRunnerThread
(ParallelStep::ThreadInfo*) (threadState=0x7fffac026220, this=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/pipeline/ParallelStep.cpp:197
#11 operator() (threadState=0x7fffac026220, __closure=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/pipeline/ParallelStep.cpp:54
#12 std::__invoke_impl<void, ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> (__f=) at /usr/include/c++/13/bits/invoke.h:61
#13 std::__invoke<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> (__fn=) at /usr/include/c++/13/bits/invoke.h:96
#14 std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> >::_M_invoke<0, 1> (this=) at /usr/include/c++/13/bits/std_thread.h:292
#15 std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> >::operator() (this=) at /usr/include/c++/13/bits/std_thread.h:299
#16 std::thread::_State_impl<std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> > >::_M_run(void) (this=) at /usr/include/c++/13/bits/std_thread.h:244
#17 0x00007ffff52e31d3 in std::execute_native_thread_routine(void*) (__p=0x7fffac026520) at ../../../../../libstdc++-v3/src/c++11/thread.cc:104
#18 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#19 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 58 (Thread 0x7fffb9ffb6c0 (LWP 257804) "FreeDV PS"):
#0 0x00007ffff50ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x7fffb9ffaa60, op=137, expected=0, futex_word=0x7fffac025d5c) at futex-internal.c:57
#1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7fffac025d5c, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffb9ffaa60, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2 0x00007ffff50ab25f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fffac025d5c, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffb9ffaa60, private=private@entry=0) at futex-internal.c:139
#3 0x00007ffff50ae202 in __pthread_cond_wait_common (abstime=, clockid=, mutex=, cond=0x7fffac025d30) at pthread_cond_wait.c:503
#4 ___pthread_cond_clockwait64 (abstime=, clockid=, mutex=, cond=0x7fffac025d30) at pthread_cond_wait.c:682
#5 ___pthread_cond_clockwait64 (cond=0x7fffac025d30, mutex=, clockid=, abstime=) at pthread_cond_wait.c:670
#6 0x00005555556101ed in std::__condvar::wait_until(std::mutex&, int, timespec&) (__abs_time=..., __clock=1, __m=, this=0x7fffac025d30) at /usr/include/c++/13/bits/std_mutex.h:185
#7 std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__lock=..., __atime=, this=0x7fffac025d30) at /usr/include/c++/13/condition_variable:203
#8 std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__atime=, __lock=..., this=0x7fffac025d30, this=, __lock=, __atime=) at /usr/include/c++/13/condition_variable:113
#9 std::condition_variable::wait_for<long, std::ratio<1l, 1000l> >(std::unique_lockstd::mutex&, std::chrono::duration<long, std::ratio<1l, 1000l> > const&) (__rtime=, _lock=..., this=0x7fffac025d30) at /usr/include/c++/13/condition_variable:165
#10 ParallelStep::executeRunnerThread
(ParallelStep::ThreadInfo*) (threadState=0x7fffac025d00, this=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/pipeline/ParallelStep.cpp:197
#11 operator() (threadState=0x7fffac025d00, __closure=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/pipeline/ParallelStep.cpp:54
#12 std::__invoke_impl<void, ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> (__f=) at /usr/include/c++/13/bits/invoke.h:61
#13 std::__invoke<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> (__fn=) at /usr/include/c++/13/bits/invoke.h:96
#14 std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> >::_M_invoke<0, 1> (this=) at /usr/include/c++/13/bits/std_thread.h:292
#15 std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> >::operator() (this=) at /usr/include/c++/13/bits/std_thread.h:299
#16 std::thread::_State_impl<std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> > >::_M_run(void) (this=) at /usr/include/c++/13/bits/std_thread.h:244
#17 0x00007ffff52e31d3 in std::execute_native_thread_routine(void*) (__p=0x7fffac0257f0) at ../../../../../libstdc++-v3/src/c++11/thread.cc:104
#18 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#19 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 57 (Thread 0x7fffba7fc6c0 (LWP 257803) "FreeDV PS"):
#0 0x00007ffff50ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x7fffba7fba60, op=137, expected=0, futex_word=0x7fffac025868) at futex-internal.c:57
#1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7fffac025868, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffba7fba60, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2 0x00007ffff50ab25f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fffac025868, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffba7fba60, private=private@entry=0) at futex-internal.c:139
#3 0x00007ffff50ae202 in __pthread_cond_wait_common (abstime=, clockid=, mutex=, cond=0x7fffac025840) at pthread_cond_wait.c:503
#4 ___pthread_cond_clockwait64 (abstime=, clockid=, mutex=, cond=0x7fffac025840) at pthread_cond_wait.c:682
#5 ___pthread_cond_clockwait64 (cond=0x7fffac025840, mutex=, clockid=, abstime=) at pthread_cond_wait.c:670
#6 0x00005555556101ed in std::__condvar::wait_until(std::mutex&, int, timespec&) (__abs_time=..., __clock=1, __m=, this=0x7fffac025840) at /usr/include/c++/13/bits/std_mutex.h:185
#7 std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__lock=..., __atime=, this=0x7fffac025840) at /usr/include/c++/13/condition_variable:203
#8 std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__atime=, __lock=..., this=0x7fffac025840, this=, __lock=, __atime=) at /usr/include/c++/13/condition_variable:113
#9 std::condition_variable::wait_for<long, std::ratio<1l, 1000l> >(std::unique_lockstd::mutex&, std::chrono::duration<long, std::ratio<1l, 1000l> > const&) (__rtime=, _lock=..., this=0x7fffac025840) at /usr/include/c++/13/condition_variable:165
#10 ParallelStep::executeRunnerThread
(ParallelStep::ThreadInfo*) (threadState=0x7fffac025810, this=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/pipeline/ParallelStep.cpp:197
#11 operator() (threadState=0x7fffac025810, __closure=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/pipeline/ParallelStep.cpp:54
#12 std::__invoke_impl<void, ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> (__f=) at /usr/include/c++/13/bits/invoke.h:61
#13 std::__invoke<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> (__fn=) at /usr/include/c++/13/bits/invoke.h:96
#14 std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> >::_M_invoke<0, 1> (this=) at /usr/include/c++/13/bits/std_thread.h:292
#15 std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> >::operator() (this=) at /usr/include/c++/13/bits/std_thread.h:299
#16 std::thread::_State_impl<std::thread::_Invoker<std::tuple<ParallelStep::ParallelStep(int, int, bool, std::function<int(ParallelStep*)>, std::function<int(ParallelStep*)>, std::vector<IPipelineStep*>, std::shared_ptr)::<lambda(ParallelStep::ThreadInfo*)>, ParallelStep::ThreadInfo*> > >::_M_run(void) (this=) at /usr/include/c++/13/bits/std_thread.h:244
#17 0x00007ffff52e31d3 in std::execute_native_thread_routine(void*) (__p=0x7fffac025ac0) at ../../../../../libstdc++-v3/src/c++11/thread.cc:104
#18 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#19 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 56 (Thread 0x7fffbaffd6c0 (LWP 257802) "FreeDV PAOut"):
#0 0x00007ffff50f8413 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7fffbaffca90, rem=0x7fffbaffca90) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
#1 0x00007ffff50fceb7 in __GI___nanosleep (req=, rem=) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2 0x000055555560374c in std::this_thread::sleep_for<long, std::ratio<1l, 1000000000l> >(std::chrono::duration<long, std::ratio<1l, 1000000000l> > const&) (__rtime=) at /usr/include/c++/13/bits/this_thread_sleep.h:80
#3 std::this_thread::sleep_until<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__atime=) at /usr/include/c++/13/bits/this_thread_sleep.h:99
#4 operator() (__closure=0x7fffbc035af8) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/audio/PulseAudioDevice.cpp:192
#5 std::__invoke_impl<void, PulseAudioDevice::start()::<lambda()> > (__f=...) at /usr/include/c++/13/bits/invoke.h:61
#6 std::__invoke<PulseAudioDevice::start()::<lambda()> > (__fn=...) at /usr/include/c++/13/bits/invoke.h:96
#7 std::thread::_Invoker<std::tuple<PulseAudioDevice::start()::<lambda()> > >::_M_invoke<0> (this=0x7fffbc035af8) at /usr/include/c++/13/bits/std_thread.h:292
#8 std::thread::_Invoker<std::tuple<PulseAudioDevice::start()::<lambda()> > >::operator() (this=0x7fffbc035af8) at /usr/include/c++/13/bits/std_thread.h:299
#9 std::thread::_State_impl<std::thread::_Invoker<std::tuple<PulseAudioDevice::start()::<lambda()> > > >::_M_run(void) (this=0x7fffbc035af0) at /usr/include/c++/13/bits/std_thread.h:244
#10 0x00007ffff52e31d3 in std::execute_native_thread_routine(void*) (__p=0x7fffbc035af0) at ../../../../../libstdc++-v3/src/c++11/thread.cc:104
#11 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#12 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 55 (Thread 0x7fffbb7fe6c0 (LWP 257801) "FreeDV rxThread"):
#0 0x00007ffff50ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x7fffbb7fd8d0, op=137, expected=0, futex_word=0x7fffbc034064) at futex-internal.c:57
#1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7fffbc034064, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffbb7fd8d0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2 0x00007ffff50ab25f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fffbc034064, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffbb7fd8d0, private=private@entry=0) at futex-internal.c:139
#3 0x00007ffff50ae202 in __pthread_cond_wait_common (abstime=, clockid=, mutex=, cond=0x7fffbc034038) at pthread_cond_wait.c:503
#4 ___pthread_cond_clockwait64 (abstime=, clockid=, mutex=, cond=0x7fffbc034038) at pthread_cond_wait.c:682
#5 ___pthread_cond_clockwait64 (cond=0x7fffbc034038, mutex=, clockid=, abstime=) at pthread_cond_wait.c:670
#6 0x0000555555615249 in std::__condvar::wait_until(std::mutex&, int, timespec&) (__abs_time=..., __clock=1, __m=, this=0x7fffbc034038) at /usr/include/c++/13/bits/std_mutex.h:185
#7 std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__lock=..., __atime=, this=0x7fffbc034038) at /usr/include/c++/13/condition_variable:203
#8 std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__atime=, __lock=..., this=0x7fffbc034038, this=, __lock=, __atime=) at /usr/include/c++/13/condition_variable:113
#9 std::condition_variable::wait_for<long, std::ratio<1l, 1000l> >(std::unique_lockstd::mutex&, std::chrono::duration<long, std::ratio<1l, 1000l> > const&) (__rtime=, __lock=..., this=0x7fffbc034038) at /usr/include/c++/13/condition_variable:165
#10 TxRxThread::Entry() (this=0x7fffbc033ff0) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/pipeline/TxRxThread.cpp:392
#11 0x00007ffff677a982 in wxThread::CallEntry() (this=0x7fffbc033ff0) at ../include/wx/thrimpl.cpp:356
#12 0x00007ffff6775fc6 in wxThreadInternal::PthreadStart(wxThread*) (thread=0x7fffbc033ff0) at ../src/unix/threadpsx.cpp:867
#13 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#14 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 54 (Thread 0x7fffbbfff6c0 (LWP 257800) "FreeDV PAOut"):
#0 0x00007ffff50f8413 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7fffbbffea90, rem=0x7fffbbffea90) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
#1 0x00007ffff50fceb7 in __GI___nanosleep (req=, rem=) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2 0x000055555560374c in std::this_thread::sleep_for<long, std::ratio<1l, 1000000000l> >(std::chrono::duration<long, std::ratio<1l, 1000000000l> > const&) (__rtime=) at /usr/include/c++/13/bits/this_thread_sleep.h:80
#3 std::this_thread::sleep_until<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__atime=) at /usr/include/c++/13/bits/this_thread_sleep.h:99
#4 operator() (__closure=0x7fffbc032e38) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/audio/PulseAudioDevice.cpp:192
#5 std::__invoke_impl<void, PulseAudioDevice::start()::<lambda()> > (__f=...) at /usr/include/c++/13/bits/invoke.h:61
#6 std::__invoke<PulseAudioDevice::start()::<lambda()> > (__fn=...) at /usr/include/c++/13/bits/invoke.h:96
#7 std::thread::_Invoker<std::tuple<PulseAudioDevice::start()::<lambda()> > >::_M_invoke<0> (this=0x7fffbc032e38) at /usr/include/c++/13/bits/std_thread.h:292
#8 std::thread::_Invoker<std::tuple<PulseAudioDevice::start()::<lambda()> > >::operator() (this=0x7fffbc032e38) at /usr/include/c++/13/bits/std_thread.h:299
#9 std::thread::_State_impl<std::thread::_Invoker<std::tuple<PulseAudioDevice::start()::<lambda()> > > >::_M_run(void) (this=0x7fffbc032e30) at /usr/include/c++/13/bits/std_thread.h:244
#10 0x00007ffff52e31d3 in std::execute_native_thread_routine(void*) (__p=0x7fffbc032e30) at ../../../../../libstdc++-v3/src/c++11/thread.cc:104
#11 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#12 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 53 (Thread 0x7fffddffb6c0 (LWP 257799) "FreeDV txThread"):
#0 0x00007ffff50ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x7fffddffa8d0, op=137, expected=0, futex_word=0x7fffbc043d90) at futex-internal.c:57
#1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7fffbc043d90, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffddffa8d0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2 0x00007ffff50ab25f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fffbc043d90, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffddffa8d0, private=private@entry=0) at futex-internal.c:139
#3 0x00007ffff50ae202 in __pthread_cond_wait_common (abstime=, clockid=, mutex=, cond=0x7fffbc043d68) at pthread_cond_wait.c:503
#4 ___pthread_cond_clockwait64 (abstime=, clockid=, mutex=, cond=0x7fffbc043d68) at pthread_cond_wait.c:682
#5 ___pthread_cond_clockwait64 (cond=0x7fffbc043d68, mutex=, clockid=, abstime=) at pthread_cond_wait.c:670
#6 0x0000555555615249 in std::__condvar::wait_until(std::mutex&, int, timespec&) (__abs_time=..., __clock=1, __m=, this=0x7fffbc043d68) at /usr/include/c++/13/bits/std_mutex.h:185
#7 std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__lock=..., __atime=, this=0x7fffbc043d68) at /usr/include/c++/13/condition_variable:203
#8 std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lockstd::mutex&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__atime=, __lock=..., this=0x7fffbc043d68, this=, __lock=, __atime=) at /usr/include/c++/13/condition_variable:113
#9 std::condition_variable::wait_for<long, std::ratio<1l, 1000l> >(std::unique_lockstd::mutex&, std::chrono::duration<long, std::ratio<1l, 1000l> > const&) (__rtime=, __lock=..., this=0x7fffbc043d68) at /usr/include/c++/13/condition_variable:165
#10 TxRxThread::Entry() (this=0x7fffbc043d20) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/pipeline/TxRxThread.cpp:392
#11 0x00007ffff677a982 in wxThread::CallEntry() (this=0x7fffbc043d20) at ../include/wx/thrimpl.cpp:356
#12 0x00007ffff6775fc6 in wxThreadInternal::PthreadStart(wxThread*) (thread=0x7fffbc043d20) at ../src/unix/threadpsx.cpp:867
#13 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#14 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 52 (Thread 0x7fffde7fc6c0 (LWP 257798) "threaded-ml"):
#0 0x00007ffff512735d in __GI___poll (fds=fds@entry=0x7fffc801d5b0, nfds=nfds@entry=2, timeout=timeout@entry=10) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007ffff7e0f526 in poll (__timeout=10, __nfds=2, __fds=0x7fffc801d5b0) at /usr/include/bits/poll2.h:39
#2 poll_func (ufds=0x7fffc801d5b0, nfds=2, timeout=10, userdata=0x7fffbc03e930) at ../src/pulse/thread-mainloop.c:70
#3 0x00007ffff7df8694 in pa_mainloop_poll (m=m@entry=0x7fffbc0418c0) at ../src/pulse/mainloop.c:863
#4 0x00007ffff7e03153 in pa_mainloop_iterate (m=m@entry=0x7fffbc0418c0, block=block@entry=1, retval=retval@entry=0x0) at ../src/pulse/mainloop.c:945
#5 0x00007ffff7e03218 in pa_mainloop_run (m=0x7fffbc0418c0, retval=0x0) at ../src/pulse/mainloop.c:963
#6 0x00007ffff7e13751 in thread (userdata=0x7fffbc03e8a0) at ../src/pulse/thread-mainloop.c:101
#7 0x00007ffff55dbd7b in internal_thread_func (userdata=0x7fffbc03e870) at ../src/pulsecore/thread-posix.c:81
#8 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#9 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 6 (Thread 0x7fffdeffd6c0 (LWP 257733) "dconf worker"):
#0 0x00007ffff512735d in __GI___poll (fds=0x7fffd0000b90, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007ffff42b53a9 in g_main_context_poll (priority=, n_fds=1, fds=0x7fffd0000b90, timeout=, context=0x555555779440) at ../glib/gmain.c:4584
#2 g_main_context_iterate.isra.0 (context=0x555555779440, block=1, dispatch=1, self=) at ../glib/gmain.c:4271
#3 0x00007ffff4254a23 in g_main_context_iteration (context=context@entry=0x555555779440, may_block=may_block@entry=1) at ../glib/gmain.c:4343
#4 0x00007ffff7fae5c5 in dconf_gdbus_worker_thread (user_data=0x555555779440) at ../gdbus/dconf-gdbus-thread.c:82
#5 0x00007ffff4285893 in g_thread_proxy (data=0x555555779620) at ../glib/gthread.c:831
#6 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#7 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 5 (Thread 0x7fffdf7fe6c0 (LWP 257732) "gdbus"):
#0 0x00007ffff512735d in __GI___poll (fds=0x7fffcc000b90, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007ffff42b53a9 in g_main_context_poll (priority=, n_fds=3, fds=0x7fffcc000b90, timeout=, context=0x7fffd4005ac0) at ../glib/gmain.c:4584
#2 g_main_context_iterate.isra.0 (context=0x7fffd4005ac0, block=1, dispatch=1, self=) at ../glib/gmain.c:4271
#3 0x00007ffff425699f in g_main_loop_run (loop=0x7fffd4005bb0) at ../glib/gmain.c:4479
#4 0x00007ffff3b504b2 in gdbus_shared_thread_func (user_data=0x7fffd4005a90) at ../gio/gdbusprivate.c:284
#5 0x00007ffff4285893 in g_thread_proxy (data=0x7fffd4005bf0) at ../glib/gthread.c:831
#6 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#7 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 3 (Thread 0x7fffe4bfe6c0 (LWP 257730) "gmain"):
#0 0x00007ffff512735d in __GI___poll (fds=0x555555768110, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007ffff42b53a9 in g_main_context_poll (priority=, n_fds=1, fds=0x555555768110, timeout=, context=0x555555767f00) at ../glib/gmain.c:4584
#2 g_main_context_iterate.isra.0 (context=0x555555767f00, block=1, dispatch=1, self=) at ../glib/gmain.c:4271
#3 0x00007ffff4254a23 in g_main_context_iteration (context=0x555555767f00, may_block=may_block@entry=1) at ../glib/gmain.c:4343
#4 0x00007ffff4254a79 in glib_worker_main (data=) at ../glib/gmain.c:6455
#5 0x00007ffff4285893 in g_thread_proxy (data=0x555555759440) at ../glib/gthread.c:831
#6 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#7 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 2 (Thread 0x7fffe53ff6c0 (LWP 257729) "pool-spawner"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007ffff42ac5ee in g_cond_wait (cond=0x555555760738, mutex=0x555555760730) at ../glib/gthread-posix.c:1475
#2 0x00007ffff422204b in g_async_queue_pop_intern_unlocked (queue=0x555555760730, wait=1, end_time=-1) at ../glib/gasyncqueue.c:425
#3 0x00007ffff4287473 in g_thread_pool_spawn_thread (data=) at ../glib/gthreadpool.c:311
#4 0x00007ffff4285893 in g_thread_proxy (data=0x555555762060) at ../glib/gthread.c:831
#5 0x00007ffff50ae907 in start_thread (arg=) at pthread_create.c:444
#6 0x00007ffff5134870 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 1 (Thread 0x7ffff2b21fc0 (LWP 257726) "FreeDV GUI"):
#0 __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:76
#1 0x00007ffff6706a71 in wxMBConvStrictUTF8::ToWChar(wchar_t*, unsigned long, char const*, unsigned long) const (this=, dst=, dstLen=0, src=0xb <error: Cannot access memory at address 0xb>, srcLen=) at ../src/common/strconv.cpp:987
#2 0x00007ffff670b885 in wxMBConv::cMB2WC(char const*, unsigned long, unsigned long*) const (this=0x7fffffffcde0, inBuff=0xb <error: Cannot access memory at address 0xb>, inLen=18446744073709551615, outLen=0x7fffffffcd88) at ../src/common/strconv.cpp:446
#3 0x00007ffff6716a95 in wxString::ConvertStr(char const*, unsigned long, wxMBConv const&) (psz=, nLength=, conv=...) at ../src/common/string.cpp:398
#4 0x00005555555f1c14 in wxString::ImplStr(char const*, unsigned long, wxMBConv const&) (conv=..., n=, str=, str=, n=, conv=) at /usr/include/wx-3.0/wx/string.h:480
#5 wxString::wxString(char const*, wxMBConv const&, unsigned long) (nLength=, conv=..., psz=, this=0x7fffffffce00) at /usr/include/wx-3.0/wx/string.h:1249
#6 wxString::FromUTF8(char const*, unsigned long) (len=, utf8=) at /usr/include/wx-3.0/wx/string.h:1743
#7 operator() (__closure=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/main.cpp:2508
#8 wxAsyncMethodCallEventFunctor<MainFrame::startRxStream()::<lambda(IAudioDevice&, std::string, void*)>::<lambda()> >::Execute(void) (this=) at /usr/include/wx-3.0/wx/event.h:1519
#9 0x00007ffff6791ea1 in wxEvtHandler::TryHereOnly(wxEvent&) (this=this@entry=0x5555558ce6c0, event=warning: RTTI symbol not found for class 'wxAsyncMethodCallEventFunctor<MainFrame::startRxStream()::{lambda(IAudioDevice&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, void*)#4}::operator()(IAudioDevice&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, void*) const::{lambda()#1}> [clone .lto_priv.0]'
...) at ../src/common/event.cpp:1596
#10 0x00007ffff6791eff in wxEvtHandler::TryBeforeAndHere(wxEvent&) (event=warning: RTTI symbol not found for class 'wxAsyncMethodCallEventFunctor<MainFrame::startRxStream()::{lambda(IAudioDevice&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, void*)#4}::operator()(IAudioDevice&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, void*) const::{lambda()#1}> [clone .lto_priv.0]'
..., this=0x5555558ce6c0) at ../include/wx/event.h:3692
#11 wxEvtHandler::ProcessEventLocally(wxEvent&) (this=0x5555558ce6c0, event=warning: RTTI symbol not found for class 'wxAsyncMethodCallEventFunctor<MainFrame::startRxStream()::{lambda(IAudioDevice&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, void*)#4}::operator()(IAudioDevice&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, void*) const::{lambda()#1}> [clone .lto_priv.0]'
...) at ../src/common/event.cpp:1520
#12 0x00007ffff6791fe2 in wxEvtHandler::ProcessEvent(wxEvent&) (this=0x5555558ce6c0, event=warning: RTTI symbol not found for class 'wxAsyncMethodCallEventFunctor<MainFrame::startRxStream()::{lambda(IAudioDevice&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, void*)#4}::operator()(IAudioDevice&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, void*) const::{lambda()#1}> [clone .lto_priv.0]'
...) at ../src/common/event.cpp:1493
#13 0x00007ffff6794009 in wxEvtHandler::ProcessPendingEvents() (this=0x5555558ce6c0) at ../src/common/event.cpp:54
#14 0x00007ffff6693d17 in wxAppConsoleBase::ProcessPendingEvents() (this=0x555555757db0) at ../src/common/appbase.cpp:520
#15 0x00007ffff6c8b4dc in wxApp::DoIdle() (this=0x555555757db0) at ../src/gtk/app.cpp:157
#16 0x00007ffff6c8b637 in wxapp_idle_callback(gpointer) () at ../src/gtk/app.cpp:107
#17 0x00007ffff425339d in g_idle_dispatch (source=0x7fffc8003610, callback=0x7ffff6c8b620 <wxapp_idle_callback(gpointer)>, user_data=0x0) at ../glib/gmain.c:6163
#18 0x00007ffff425739c in g_main_dispatch (context=0x55555576e460) at ../glib/gmain.c:3460
#19 g_main_context_dispatch (context=0x55555576e460) at ../glib/gmain.c:4200
#20 0x00007ffff42b5438 in g_main_context_iterate.isra.0 (context=0x55555576e460, block=1, dispatch=1, self=) at ../glib/gmain.c:4276
#21 0x00007ffff425699f in g_main_loop_run (loop=0x555555c995f0) at ../glib/gmain.c:4479
#22 0x00007ffff4806975 in gtk_main () at ../gtk/gtkmain.c:1329
#23 0x00007ffff6ca11f5 in wxGUIEventLoop::DoRun() (this=0x555555c9bec0) at ../src/gtk/evtloop.cpp:65
#24 0x00007ffff66b9c7a in wxEventLoopBase::Run() (this=0x555555c9bec0) at ../src/common/evtloopcmn.cpp:78
#25 0x00007ffff669551d in wxAppConsoleBase::MainLoop() (this=0x555555757db0) at ../src/common/appbase.cpp:334
#26 0x00007ffff66ec832 in wxEntry(int&, wchar_t**) (argc=@0x7ffff6833950: 1, argv=) at ../src/common/init.cpp:506
#27 0x00007ffff66ec8e3 in wxEntry(int&, char**) (argc=, argv=) at ../src/common/init.cpp:518
#28 0x00005555555b8e14 in main(int, char**) (argc=, argv=) at /usr/src/debug/freedv-1.8.10.1-0.3.fc38.x86_64/src/main.cpp:175
(gdb)

@JohBod
Copy link

JohBod commented Jun 6, 2023

I have the same problem with frequency reported as 0Hz to FreeDV Reporter. Sometimes it works, sometimes it doesn't. Toggling Stop/Start usually updates the web page with correct frequency. Updating the report frequency box manually, or selecting a predefined frequency in the menu works too. Like LU3JIJ, I'm not using CAT so my radio is never polled via hamlib. I'm using FreeDV v1.8.10.1 on win10 at the moment.

@tmiw
Copy link
Collaborator Author

tmiw commented Jun 6, 2023

Thanks for the stack trace, @Tyrbiter. Based on it it looks like something changed since the feature was written that's causing memory to go out of scope. Should be a straightforward fix, let me try something real quick.

@tmiw
Copy link
Collaborator Author

tmiw commented Jun 6, 2023

@JohBod, I took a brief look and it looks like it should be working, even without hamlib turned on. I'll have to investigate more tonight (not at home).

@JohBod
Copy link

JohBod commented Jun 6, 2023

@tmiw, I have seen many stations reporting 0Hz on the web page and I suspect that some of these zeroes were caused by this elusive bug. The path from the "Report Frequency" box to the web page is quite long, maybe the problem is not in the FreeDV-GUI code?

@Tyrbiter
Copy link

Tyrbiter commented Jun 6, 2023

It should be possible to capture the network packets using Wireshark, that would definitively identify if freedv-gui is sending 0 or not.

@tmiw
Copy link
Collaborator Author

tmiw commented Jun 7, 2023

With Hamlib disabled, I can duplicate the issue @JohBod described but it's very much intermittent; I need to push Start/Stop multiple times for it to happen. I'll tweak some stuff to hopefully help.

@tmiw
Copy link
Collaborator Author

tmiw commented Jun 7, 2023

With the changes in #421, I didn't notice 0 MHz being reported after repeatedly connecting and disconnecting 20+ times in a row. (Previously it was happening maybe once every 3-5 connections.) Let me know if that works better for you guys as well.

@tmiw tmiw closed this as completed in #420 Jun 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants