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

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

Closed
computer-wizard opened this issue Jul 1, 2022 · 3 comments

Comments

@computer-wizard
Copy link

computer-wizard commented Jul 1, 2022

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 (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 (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 (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 (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)

tmiw added a commit that referenced this issue Jul 1, 2022
1. Move lambda usage for RX to member functions (adds readability and possibly fixes #250).
2. Use sync as well as SNR/squelch setting to determine whether to let audio through (reduces extra noise in speakers).
@computer-wizard
Copy link
Author

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

@tmiw
Copy link
Collaborator

tmiw commented Jul 1, 2022

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
Copy link

Tyrbiter commented Jul 2, 2022

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.

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

3 participants