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

DSP freeze and device lost after sample rate change #1003

Closed
vladisslav2011 opened this issue Nov 20, 2021 · 1 comment · Fixed by #1004
Closed

DSP freeze and device lost after sample rate change #1003

vladisslav2011 opened this issue Nov 20, 2021 · 1 comment · Fixed by #1004

Comments

@vladisslav2011
Copy link
Contributor

vladisslav2011 commented Nov 20, 2021

When the sample rate (or filter bandwidth) is changed in running state, the DSP freezes with the following error log:

SaveConfig
New LNB LO: 0 Hz
saveSettings *** FIXME_ SQL on/off
New FFT rate: 25 Hz
Loading configuration from: "/home/vlad/.config/gqrx/default.conf"
Configuration file: "/home/vlad/.config/gqrx/default.conf"
Set input device:
  old: rtl=0
  new: rtl=0
gr-osmosdr 0.1.4 (0.1.4) gnuradio 3.7.11
built-in source types: file osmosdr fcd rtl rtl_tcp uhd miri hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp 
Using device #0 Realtek RTL2838UHIDIR SN: 00000013
usb_claim_interface error -6

FATAL: Failed to open rtlsdr device.

Trying to fill up 1 missing channel(s) with null source(s).
This is being done to prevent the application from crashing
due to gnuradio bug #528.

New antenna selected: ""
********************
********************
Set output device:
   old: 
   new: 

Failed to set RX input rate to 2.4e+06
Your device may not be working properly.

Reproduced with Hackrf one, RTL-SDR.
System: Ubuntu 18.04.6 LTS
Gqrx was built from source from current git with g++-7 (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0.
Git head at build time was at 2172ef1.

Steps to reproduce:

  1. Select a real device (RTL-SDR for example)
  2. Start DSP, adjust gain, tune to some frequency, set up demodulator and waterfall, etc
  3. Open the device dialog and change the input rate (for example. Changing buffers/bias without changing device triggers the bug too)
  4. Confirm changes

Expected behavior:
Sample rate is changed, DSP restarts with new sample rate, waterfall/panadapter continues to update with new data, sound continues to output (if tuned frequency is still in new bandwidth)

Observed behavior:
Sample rate is changed, DSP stops, starting DSP does not show nor waterfall/panadapter with new data, nor sound.

vladisslav2011 added a commit to vladisslav2011/gqrx that referenced this issue Nov 21, 2021
Partially reverting 8b4c2ef and fixing
DSP restart failure in MainWindow::on_actionIoConfig_triggered allows to
select different device/change sample rate/bandwidth/or other device
options without DSP freeze and device open failure.
But this still does not fix the failure when device string changes for
the same device. Changing "hackrf=0" to "hackrf=0,bias=1" still results
in freeze. It looks like src destructor does not get called at time of
osmosdr::source::make call despite of explicit src.reset. Strange...
vladisslav2011 added a commit to vladisslav2011/gqrx that referenced this issue Dec 2, 2021
Partially reverting 8b4c2ef and fixing
DSP restart failure in MainWindow::on_actionIoConfig_triggered allows to
select different device/change sample rate/bandwidth/or other device
options without DSP freeze and device open failure.
But this still does not fix the failure when device string changes for
the same device. Changing "hackrf=0" to "hackrf=0,bias=1" still results
in freeze. It looks like src destructor does not get called at time of
osmosdr::source::make call despite of explicit src.reset. Strange...
vladisslav2011 added a commit to vladisslav2011/gqrx that referenced this issue Dec 4, 2021
Partially reverting 8b4c2ef and fixing
DSP restart failure in MainWindow::on_actionIoConfig_triggered allows to
select different device/change sample rate/bandwidth/or other device
options without DSP freeze and device open failure.
But this still does not fix the failure when device string changes for
the same device. Changing "hackrf=0" to "hackrf=0,bias=1" still results
in freeze. It looks like src destructor does not get called at time of
osmosdr::source::make call despite of explicit src.reset. Strange...
@argilo
Copy link
Member

argilo commented Dec 15, 2021

This issue is a duplicate of #757. The root cause was a bug in GNU Radio, which I fixed in gnuradio/gnuradio#3184. The fix was applied to GNU Radio 3.8 and later.

vladisslav2011 added a commit to vladisslav2011/gqrx that referenced this issue Dec 15, 2021
Partially reverting 8b4c2ef and fixing
DSP restart failure in MainWindow::on_actionIoConfig_triggered allows to
select different device/change sample rate/bandwidth/or other device
options without DSP freeze and device open failure.
But this still does not fix the failure when device string changes for
the same device. Changing "hackrf=0" to "hackrf=0,bias=1" still results
in freeze. It looks like src destructor does not get called at time of
osmosdr::source::make call despite of explicit src.reset. Strange...
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

Successfully merging a pull request may close this issue.

2 participants