srsRAN_4G
srsRAN_4G copied to clipboard
Crash when ulimit rt priority is 0
trafficstars
Issue Description
When running srsenb without sudo in a shell where ulimit -r is 0, the enb crash.
Specifically, it crashes on pthread_join(*thread, NULL);
https://github.com/srsran/srsRAN/blob/master/lib/src/common/threads.c#L159
Setup Details
Ubuntu 22.04.1 USRP B210
Expected Behavior
I would expect it to create threads with normal priority or exit with indicative error.
Actual Behaviour
Crash:
Active RF plugins: libsrsran_rf_uhd.so libsrsran_rf_zmq.so
Inactive RF plugins:
--- Software Radio Systems LTE eNodeB ---
Reading configuration file /home/user/Documents/local_confs/current_enb.conf...
Built in Release mode using commit ce8a3cae1 on branch master.
connect(): Connection refused
Failed to initiate S1 connection. Attempting reconnection in 10 seconds
Warning: Failed to create thread with real-time priority. Creating it with normal priority: Connection refused
Opening 1 channels in RF device=UHD with args=clock=gpsdo
Supported RF device list: UHD zmq file
[INFO] [UHD] linux; GNU C++ version 11.2.0; Boost_107400; UHD_4.2.0.1-0ubuntu1~jammy1
[INFO] [LOGGING] Fastpath logging disabled at runtime.
Opening USRP channels=1, args: type=b200,master_clock_rate=23.04e6
[INFO] [UHD RF] RF UHD Generic instance constructed
[INFO] [B200] Detected Device: B210
[INFO] [B200] Operating over USB 3.
[INFO] [B200] Detecting internal GPSDO....
[INFO] [GPS] Found an internal GPSDO: GPSTCXO , Firmware Rev 0.929a
[INFO] [B200] Initialize CODEC control...
[INFO] [B200] Initialize Radio control...
[INFO] [B200] Performing register loopback test...
[INFO] [B200] Register loopback test passed
[INFO] [B200] Performing register loopback test...
[INFO] [B200] Register loopback test passed
[INFO] [B200] Asking for clock rate 23.040000 MHz...
[INFO] [B200] Actually got clock rate 23.040000 MHz.
Setting USRP time to 1661318142.000000s
[INFO] [MULTI_USRP] 1) catch time transition at pps edge
[INFO] [MULTI_USRP] 2) set times next pps (synchronously)
Warning: Failed to create thread with real-time priority. Creating it with normal priority: No such file or directory
Warning: Failed to create thread with real-time priority. Creating it with normal priority: No such file or directory
Warning: Failed to create thread with real-time priority. Creating it with normal priority: No such file or directory
--- command='./build/srsenb/src/srsenb /home/user/Documents/local_confs/current_enb.conf' version=22.04.1 signal=11 date='24/08/2022 05:15:43' ---
./build/srsenb/src/srsenb(+0x37ac3a) [0x561d02714c3a]
/lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7f49739e0520]
/lib/x86_64-linux-gnu/libc.so.6(+0x9659b) [0x7f4973a3459b]
./build/srsenb/src/srsenb(+0x3977b3) [0x561d027317b3]
./build/srsenb/src/srsenb(+0xe017d) [0x561d0247a17d]
./build/srsenb/src/srsenb(+0xd2416) [0x561d0246c416]
./build/srsenb/src/srsenb(+0xbf129) [0x561d02459129]
./build/srsenb/src/srsenb(+0x9de67) [0x561d02437e67]
/lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7f49739c7d90]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7f49739c7e40]
./build/srsenb/src/srsenb(+0xa0545) [0x561d0243a545]
srsRAN crashed. Please send this backtrace to the developers ...
--- exiting ---
terminate called without an active exception
--- command='./build/srsenb/src/srsenb /home/user/Documents/local_confs/current_enb.conf' version=22.04.1 signal=6 date='24/08/2022 05:15:43' ---
./build/srsenb/src/srsenb(+0x37ac3a) [0x561d02714c3a]
/lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7f49739e0520]
/lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x12c) [0x7f4973a34a7c]
/lib/x86_64-linux-gnu/libc.so.6(raise+0x16) [0x7f49739e0476]
/lib/x86_64-linux-gnu/libc.so.6(abort+0xd3) [0x7f49739c67f3]
/lib/x86_64-linux-gnu/libstdc++.so.6(+0xa2bfe) [0x7f4973d6fbfe]
/lib/x86_64-linux-gnu/libstdc++.so.6(+0xae28c) [0x7f4973d7b28c]
/lib/x86_64-linux-gnu/libstdc++.so.6(+0xae2f7) [0x7f4973d7b2f7]
/home/user/srsRAN/build/lib/src/phy/rf/libsrsran_rf_uhd.so(+0x19c69) [0x7f497386fc69]
/home/user/srsRAN/build/lib/src/phy/rf/libsrsran_rf_uhd.so(+0x1afaa) [0x7f4973870faa]
/lib/x86_64-linux-gnu/libc.so.6(__cxa_finalize+0xb6) [0x7f49739e3a56]
/home/user/srsRAN/build/lib/src/phy/rf/libsrsran_rf_uhd.so(+0xe9b7) [0x7f49738649b7]
srsRAN crashed. Please send this backtrace to the developers ...
--- exiting ---
Additional Information
It doesn't crash when running with sudo or when changing the ulimit -r
Thanks for the bug report @matan1008 . We are currently testing a possible solution internally and will share it here once it's verified on our end.