acebrianjuan / gnss-sdr-monitor

A graphical user interface to monitor the GNSS-SDR status in real time
GNU General Public License v3.0
84 stars 37 forks source link

Crashes in WSL 1 #18

Open DSdPR opened 2 years ago

DSdPR commented 2 years ago

Hello, I've been trying to run the application on a Ubuntu 20.04 installation within a Windows 10 computer using WSL version 1. While I can run the simple monitoring client described in the GNSS-SDR documentation (https://gnss-sdr.org/docs/tutorials/monitoring-software-receiver-internal-status/) without problems, when using the gnss-sdr-monitor application I have noticed it crashes as soon as gnss-sdr starts streaming data. Any idea why this might be? Thank you

acebrianjuan commented 2 years ago

Hi Daniel (@DSdPR),

Thank you for reporting this.

Honestly, I have never tested the gnss-sdr-monitor application on a WSL instance, so I don't know what the cause of the crash might be but I am interested in finding out more details.

Are there any error messages printed on the console when the crash occurs? Can you send me a gdb backtrace when the crash occurs so I can investigate this?

Regards, Álvaro

DSdPR commented 2 years ago

Hi Álvaro, here is the backtrace: image

I tested this running a simple configuration with the SDR in which it reads a signal, locks onto certain SVs and then gives a position fix. It's about a minute worth of signal.

It is not so much a crash as the program freezes, with no further output or error messages on the console, that is why I had to issue an interrupt. There is a brief window, while the SDR is performing Acquisition, when I can interact with the program and connect to the SDR. However, once it locks onto an SV, the program freezes and I can no longer select any option or telecommands.

acebrianjuan commented 2 years ago

I tested this running a simple configuration with the SDR in which it reads a signal, locks onto certain SVs and then gives a position fix. It's about a minute worth of signal.

It is not so much a crash as the program freezes, that is why I had to issue an interrupt. There is a brief window, while the SDR is performing Acquisition, when I can interact with the program and connect to the SDR. However, once it locks onto an SV, the program freezes and I can no longer select any option or telecommands.

Oh I see, so the GUI doesn't crash but it becomes unresponsive when GNSS-SDR starts locking onto satellites. Then, given that you are running GNSS-SDR with a pre-recorded signal file, I suspect you are experiencing the same performance issue as reported in issue https://github.com/acebrianjuan/gnss-sdr-monitor/issues/10.

Try doing the following:

  1. Set SignalSource.enable_throttle_control=true in your receiver configuration file (the reason is explained here).
  2. Set a relatively low buffer size value (for example 1000) in the gnss-sdr-monitor preferences panel (Edit > Preferences), so that the GUI doesn't eat up too much memory.

The GUI should remain responsive now.

Let me know if this solved the issue or if the problem still persists.

Álvaro

DSdPR commented 2 years ago

I have set the throttle control alongside a low buffer size, but still no luck, the GUI keeps freezing when the first NAV messages are received on the SDR. Here is the corresponding backtrace: image

acebrianjuan commented 2 years ago

What version of gnss-sdr are you using?

Are you using a resource-constrained WSL instance?

DSdPR commented 2 years ago

The version is v 0.15, and there is nothing indicating the WSL instance might be resource-constrained. I suspect this issue might be due to how WSL version 1 has no real linux kernel. I will try again later with a WSL version 2 to see if there is any luck. Thanks for your help.