AlexandreRouma / SDRPlusPlus

Cross-Platform SDR Software
GNU General Public License v3.0
4.18k stars 579 forks source link

SDRPlusPlus fails to start if airspy device cannot be opened #1091

Closed x31415926 closed 1 year ago

x31415926 commented 1 year ago

Bug Description sdrpp fails to start if the airspy open API call throws an exception. I suspect the code here catches the exception, but continues.

Steps To Reproduce

  1. Make sure the airspy device is in use
  2. Start sdrpp (in my log examples below, I started just the server for remote operation)
  3. sdrpp fails to start

Additional info This is with an airspy device

pi@rpi1:~ $ sdrpp -a 0.0.0.0  -s
[05/06/2023 19:26:18.000] [INFO] SDR++ v1.1.0
[05/06/2023 19:26:18.000] [INFO] Loading config
[05/06/2023 19:26:18.000] [INFO] =====| SERVER MODE |=====
[05/06/2023 19:26:18.000] [WARN] ConfigManager locked, waiting...
[05/06/2023 19:26:18.000] [INFO] Loading modules
[05/06/2023 19:26:18.000] [INFO] Loading /usr/lib/sdrpp/plugins/rtl_tcp_source.so
[05/06/2023 19:26:18.000] [INFO] Loading /usr/lib/sdrpp/plugins/hermes_source.so
[05/06/2023 19:26:18.000] [INFO] Loading /usr/lib/sdrpp/plugins/airspyhf_source.so
[05/06/2023 19:26:18.000] [INFO] Loading /usr/lib/sdrpp/plugins/airspy_source.so
[05/06/2023 19:26:18.000] [INFO] Loading /usr/lib/sdrpp/plugins/soapy_source.so
[05/06/2023 19:26:18.000] [INFO] Loading /usr/lib/sdrpp/plugins/audio_source.so
[05/06/2023 19:26:18.000] [INFO] Loading /usr/lib/sdrpp/plugins/sdrpp_server_source.so
[05/06/2023 19:26:18.000] [INFO] Loading /usr/lib/sdrpp/plugins/spyserver_source.so
[05/06/2023 19:26:18.000] [INFO] Loading /usr/lib/sdrpp/plugins/rtl_sdr_source.so
[05/06/2023 19:26:18.000] [INFO] Loading /usr/lib/sdrpp/plugins/spectran_http_source.so
[05/06/2023 19:26:18.000] [INFO] Loading /usr/lib/sdrpp/plugins/plutosdr_source.so
[05/06/2023 19:26:18.000] [INFO] Loading /usr/lib/sdrpp/plugins/rfspace_source.so
[05/06/2023 19:26:18.000] [INFO] Loading /usr/lib/sdrpp/plugins/file_source.so
[05/06/2023 19:26:18.000] [INFO] Initializing Airspy Source (airspy_source)
[05/06/2023 19:26:18.000] [ERROR] Could not open Airspy xxxxxxxxxxxx
[05/06/2023 19:26:18.000] [INFO] Initializing AirspyHF+ Source (airspyhf_source)
[05/06/2023 19:26:18.000] [INFO] Initializing File Source (file_source)
[05/06/2023 19:26:18.000] [INFO] Initializing Hermes Source (hermes_source)
[05/06/2023 19:26:18.000] [INFO] Initializing PlutoSDR Source (plutosdr_source)
[05/06/2023 19:26:18.000] [INFO] Initializing RFspace Source (rfspace_source)
[05/06/2023 19:26:18.000] [INFO] Initializing RTL-SDR Source (rtl_sdr_source)
Found Rafael Micro R820T tuner
[05/06/2023 19:26:18.000] [INFO] Initializing RTL-TCP Source (rtl_tcp_source)
[05/06/2023 19:26:18.000] [INFO] Initializing SDR++ Server Source (sdrpp_server_source)
[05/06/2023 19:26:18.000] [INFO] Initializing SoapySDR Source (soapy_source)
Found Rafael Micro R820T tuner
terminate called after throwing an instance of 'std::runtime_error'
  what():  Unable to open AirSpy device with serial xxxxxxxxxxxx
Aborted

This is using an RTLSDR, which behaves as expected

pi@rpi1:~ $ sdrpp -a 0.0.0.0  -s
[05/06/2023 19:24:00.000] [INFO] SDR++ v1.1.0
[05/06/2023 19:24:00.000] [INFO] Loading config
[05/06/2023 19:24:00.000] [INFO] =====| SERVER MODE |=====
[05/06/2023 19:24:00.000] [WARN] ConfigManager locked, waiting...
[05/06/2023 19:24:00.000] [INFO] Loading modules
[05/06/2023 19:24:00.000] [INFO] Loading /usr/lib/sdrpp/plugins/rtl_tcp_source.so
[05/06/2023 19:24:00.000] [INFO] Loading /usr/lib/sdrpp/plugins/hermes_source.so
[05/06/2023 19:24:00.000] [INFO] Loading /usr/lib/sdrpp/plugins/airspyhf_source.so
[05/06/2023 19:24:00.000] [INFO] Loading /usr/lib/sdrpp/plugins/airspy_source.so
[05/06/2023 19:24:00.000] [INFO] Loading /usr/lib/sdrpp/plugins/soapy_source.so
[05/06/2023 19:24:00.000] [INFO] Loading /usr/lib/sdrpp/plugins/audio_source.so
[05/06/2023 19:24:00.000] [INFO] Loading /usr/lib/sdrpp/plugins/sdrpp_server_source.so
[05/06/2023 19:24:00.000] [INFO] Loading /usr/lib/sdrpp/plugins/spyserver_source.so
[05/06/2023 19:24:00.000] [INFO] Loading /usr/lib/sdrpp/plugins/rtl_sdr_source.so
[05/06/2023 19:24:00.000] [INFO] Loading /usr/lib/sdrpp/plugins/spectran_http_source.so
[05/06/2023 19:24:00.000] [INFO] Loading /usr/lib/sdrpp/plugins/plutosdr_source.so
[05/06/2023 19:24:00.000] [INFO] Loading /usr/lib/sdrpp/plugins/rfspace_source.so
[05/06/2023 19:24:00.000] [INFO] Loading /usr/lib/sdrpp/plugins/file_source.so
[05/06/2023 19:24:00.000] [INFO] Initializing Airspy Source (airspy_source)
[05/06/2023 19:24:00.000] [INFO] Initializing AirspyHF+ Source (airspyhf_source)
[05/06/2023 19:24:00.000] [INFO] Initializing File Source (file_source)
[05/06/2023 19:24:00.000] [INFO] Initializing Hermes Source (hermes_source)
[05/06/2023 19:24:00.000] [INFO] Initializing PlutoSDR Source (plutosdr_source)
[05/06/2023 19:24:00.000] [INFO] Initializing RFspace Source (rfspace_source)
[05/06/2023 19:24:00.000] [INFO] Initializing RTL-SDR Source (rtl_sdr_source)
usb_claim_interface error -6
[05/06/2023 19:24:00.000] [ERROR] Could not open RTL-SDR: -6
[05/06/2023 19:24:00.000] [INFO] Initializing RTL-TCP Source (rtl_tcp_source)
[05/06/2023 19:24:00.000] [INFO] Initializing SDR++ Server Source (sdrpp_server_source)
[05/06/2023 19:24:00.000] [INFO] Initializing SoapySDR Source (soapy_source)
usb_claim_interface error -6
[05/06/2023 19:24:00.000] [INFO] Setting sample rate to 6000000.000000
[05/06/2023 19:24:00.000] [INFO] Initializing SpyServer Source (spyserver_source)
[05/06/2023 19:24:00.000] [INFO] Running post-init for Airspy Source
[05/06/2023 19:24:00.000] [INFO] Running post-init for AirspyHF+ Source
[05/06/2023 19:24:00.000] [INFO] Running post-init for File Source
[05/06/2023 19:24:00.000] [INFO] Running post-init for Hermes Source
[05/06/2023 19:24:00.000] [INFO] Running post-init for PlutoSDR Source
[05/06/2023 19:24:00.000] [INFO] Running post-init for RFspace Source
[05/06/2023 19:24:00.000] [INFO] Running post-init for RTL-SDR Source
[05/06/2023 19:24:00.000] [INFO] Running post-init for RTL-TCP Source
[05/06/2023 19:24:00.000] [INFO] Running post-init for SDR++ Server Source
[05/06/2023 19:24:00.000] [INFO] Running post-init for SoapySDR Source
[05/06/2023 19:24:00.000] [INFO] Running post-init for SpyServer Source
[05/06/2023 19:24:00.000] [INFO] AirspyHFSourceModule 'AirspyHF+ Source': Menu Select!
[05/06/2023 19:24:00.000] [INFO] Ready, listening on 0.0.0.0:5259
^C

Per the bug template request, though I doubt it really matters

Hardware Raspberry Pi 4

Software

pi@rpi1:~ $ uname -a
Linux rpi1 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux
AlexandreRouma commented 1 year ago

It's SoapySDR that crashes. Not SDR++'s fault and nothing that can be done on this side. Remove the soapysdr source from the module instances.