-
Notifications
You must be signed in to change notification settings - Fork 184
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
Segmentation Fault and Fix for UL Sniffing #37
Comments
Hi Stevens, |
@hdtuanss I would be honored to be listed as a contributor. Thanks again for all you are doing on this project. |
I’ve made the changes above and compiled the latest source. It seems fine running LTESniffer w/ uplink using an X310 for an extended period of time against srsRan. If there’s specific configurations of srsRan I should try and test against, let me know and I’m happy to do so. |
@cellular777 I updated the code as you recommended. Thanks a lot. |
@alphafox02 Thank you for testing and verifying the new code for me. |
@hdtuanss, update from me. Figured I would just add to this thread as it is similar. I hope that is ok. Currently, I switched to a different EARFCN DL/UL pair and got errors after 3-5 minutes. Command
Error #1
Error #2
ResultsThe first error doesn't make much sense to me. I checked the entire std:list and the values all seem fine. The second error also doesn't make much sense to me, as it didn't really give a stack trace. Some Ideas
|
@cellular777 Hi Brian, thanks for your update! |
Error 1 may very well be a multi thread access issue. I might be able to run with a single thread and see if the error occurs? I will report back next week. There is also a shared_mutex object that may be best. 1: File Playback: Let me know what you can share, even if it is "how you would do it". This will be something I work on next week. It would be nice to capture errors and replay. 2 + 3: Memory Debugging: I want to work on this. But #1 comes first. 4: Raw Pointers and Threads: Previously, there was a relationship with the .get() method (raw pointer) and shared_ptrs. I wonder if removing the .get() helps with something like the mutex access issue. My previous suggestion really seemed like it "fixed" something. As I ran multiple times and got crashes, then with the change didn't crash at all. However, maybe it was fixing a thread multi-access issue? Technically, in a single threaded application the get() method should really do nothing functionally different, that stackoverflow recommends it as "safer". I was curious if I removed the get() method from all shared_ptrs if it would "patch the issue". It is something quick I might try. I will be focusing on this more next week. I will let you know if I find anything of interest. |
@hdtuanss I have some fixes for segfaults I found. I did this before having file playback. I would like to run valgrind on the file playback version that was recently posted to make sure memory is sound. I have been just running in gdb and doing tracebacks when it segfaults. I only found these trying to get long run times and I didnt seem to have these much or at all with 1x thread. Previously, I would crash between 5min to 8min running. These fixes got me to 5+ even 13+ hours. It is hard to tell if UHD errors might be happening over long periods of time at these run times. Again, after this point I would go to valgrind.
I have tested these over days and it seems way more stable. I will add these when I get back from out of the office (see my other comment on the other issue). |
Intro
First, thank you for your contributions with this project. I have been following FALCON for quite some time.
I have encountered a few segmentation faults while running UL mode against a local station.
I wanted to contribute my fix. These errors usually appear sometime after 1-5 minutes of the program running.
Command
Errors and Solutions
#1 Shared Pointer Access Issue
PUSCH_Decoder::investigate_valid_ul_grant
function does this later down in [UL_Sniffer_PUSCH.cc]#2 Target RNTI Zero Error
Hopefully, this is helpful. I am now able to run the UL code for 10s of minutes.
Brian Stevens
The text was updated successfully, but these errors were encountered: