drowe67 / freedv-gui

GUI Application for FreeDV – open source digital voice for HF radio
https://freedv.org/
GNU Lesser General Public License v2.1
206 stars 52 forks source link

FreeDV v1.8.0-20220622 Pulse Linux version crashes when "start" is clicked #250

Closed computer-wizard closed 2 years ago

computer-wizard commented 2 years ago

When clicking 'start' at the GUI (tried several 700 modes) FreeDV crashes and exits. (FreeDV pulse audio version 20220622 build of 1.8.0 at Ubuntu 20.04) Installed from the DEB packages

gdb dump/ bt follows

GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/.

For help, type "help". Type "apropos word" to search for commands related to "word". Attaching to process 89776 [New LWP 89786] [New LWP 89787] [New LWP 89790] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007fa386ce199f in __GI___poll (fds=0x55cf04dedf30, nfds=4, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 29 ../sysdeps/unix/sysv/linux/poll.c: No such file or directory. (gdb) c Continuing. [New Thread 0x7fa3817a8700 (LWP 89850)] [Thread 0x7fa3817a8700 (LWP 89850) exited] [New Thread 0x7fa3817a8700 (LWP 89851)] [New Thread 0x7fa34bfff700 (LWP 89852)] [New Thread 0x7fa34b7fe700 (LWP 89853)] [New Thread 0x7fa34affd700 (LWP 89854)] [New Thread 0x7fa34a7fc700 (LWP 89855)]

Thread 9 "FreeDV rxThread" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fa34affd700 (LWP 89854)] 0x00007fa34affc910 in ?? () (gdb) bt

0 0x00007fa34affc910 in ()

1 0x000055cf03e5cfc6 in std::function<int ()>::operator()() const (this=0x7fa34affc870)

at /usr/include/c++/9/bits/std_function.h:688

2 0x000055cf03e5a0e2 in FreeDVInterface::<lambda(ParallelStep)>::operator()(ParallelStep ) const

(__closure=0x7fa34001fc80, stepObj=0x7fa34001fbc0) at /home/mooneer/freedv-gui/src/freedv_interface.cpp:598

3 0x000055cf03e5aef1 in std::_Function_handler<int(ParallelStep), FreeDVInterface::createReceivePipeline(int, int, std::function<int()>, std::function<int()>, std::function<int()>, std::function<float()>, std::function<float()>)::<lambda(ParallelStep)> >::_M_invoke(const std::_Any_data &, ParallelStep *&&) (functor=..., args#0=@0x7fa34aff79c0: 0x7fa34001fbc0)

at /usr/include/c++/9/bits/std_function.h:285

4 0x000055cf03e73f0f in std::function<int (ParallelStep)>::operator()(ParallelStep) const

(this=0x7fa34001fbd8, __args#0=0x7fa34001fbc0) at /usr/include/c++/9/bits/std_function.h:688

5 0x000055cf03e6e956 in ParallelStep::execute(std::shared_ptr, int, int*)

(this=0x7fa34001fbc0, inputSamples=std::shared_ptr<short> (use count 9, weak count 0) = {...}, numInputSamples=960, numOutputSamples=0x7fa34aff7bd0) at /home/mooneer/freedv-gui/src/pipeline/ParallelStep.cpp:86

6 0x000055cf03e8f7d4 in AudioPipeline::execute(std::shared_ptr, int, int*)

(this=0x7fa34001b1f0, inputSamples=std::shared_ptr<short> (use count 9, weak count 0) = {...}, numInputSamples=960, numOutputSamples=0x7fa34aff7d00) at /home/mooneer/freedv-gui/src/pipeline/AudioPipeline.cpp:63

7 0x000055cf03e9247b in EitherOrStep::execute(std::shared_ptr, int, int*)

(this=0x7fa34000e3d0, inputSamples=std::shared_ptr<short> (use count 9, weak count 0) = {...}, numInputSamples=960, numOutputSamples=0x7fa34aff7d00) at /home/mooneer/freedv-gui/src/pipeline/EitherOrStep.cpp:60

8 0x000055cf03e8f7d4 in AudioPipeline::execute(std::shared_ptr, int, int*)

(this=0x7fa340001260, inputSamples=std::shared_ptr<short> (use count 9, weak count 0) = {...}, numInputSamples=960, numOutputSamples=0x7fa34aff7d90) at /home/mooneer/freedv-gui/src/pipeline/AudioPipeline.cpp:63

9 0x000055cf03e8698c in TxRxThread::rxProcessing_() (this=0x55cf047aed50)

at /home/mooneer/freedv-gui/src/pipeline/TxRxThread.cpp:623

10 0x000055cf03e85ec9 in TxRxThread::Entry() (this=0x55cf047aed50) at /home/mooneer/freedv-gui/src/pipeline/TxRxThread.cpp:402

11 0x00007fa38858259a in wxThread::CallEntry() () at /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0

12 0x00007fa38858e0da in () at /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0

13 0x00007fa386dc9609 in start_thread (arg=) at pthread_create.c:477

14 0x00007fa386cee133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

(gdb)

computer-wizard commented 2 years ago

I close this as the above is already fixed in v1.8.0-20220623

tmiw commented 2 years ago

I close this as the above is already fixed in v1.8.0-20220623

No worries, I cleaned up the code in that area a bit anyway to make it a bit more readable 👍

Tyrbiter commented 2 years ago

This change has massively reduced the Resync rate on noise, so it seems good from that point of view.

Will report further if it has any bad effects on real signals.