[srslte-users] enb crash during enqueue tti_clock

Andre Puschmann andre at srs.io
Fri Sep 24 09:09:41 UTC 2021


Hi Joe,

you're right, this should be protected. Thanks for letting us know, will 
be fixed in upcoming release.

Best
Andre



On 24/9/21 0:40, J Giovatto wrote:
> Hi folks,
> 
> Looking at srsenb/src/stack/enb_stack_lte.cc and the stack trace below, 
> it appears that there may be a race that could cause *sync_task_queue 
> *to be un-initialized (parent == nullptr and q_idx == -1)
> 
> Ive searched for other instances of calls and some are protected with an 
> if(running) check.
> 
> void ue_stack_lte::run_tti(uint32_t tti, uint32_t tti_jump)
> {
>    if (running) {
>      sync_task_queue.push([this, tti, tti_jump]() { run_tti_impl(tti, 
> tti_jump); });
>    }
> }
> 
> the NR versions seem to create this in the ctor.
> 
> 
> #5  0x00007f61b1e1b926 in __gnu_cxx::__verbose_terminate_handler () at 
> ../../../../libstdc++-v3/libsupc++/vterminate.cc:95
> #6  0x00007f61b1e2708c in __cxxabiv1::__terminate (handler=<optimized 
> out>) at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:48
> #7  0x00007f61b1e270f7 in std::terminate () at 
> ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:58
> #8  0x00007f61b1e273a9 in __cxxabiv1::__cxa_throw (obj=<optimized out>, 
> tinfo=0x7f61b1f58550 <typeinfo for std::system_error>, 
> dest=0x7f61b1e531a0 <std::system_error::~system_error()>) at 
> ../../../../libstdc++-v3/libsupc++/eh_throw.cc:95
> #9  0x00007f61b1e1e7ae in std::__throw_system_error (__i=1) at 
> ../../../../../libstdc++-v3/src/c++11/system_error.cc:338
> #10 0x0000000000d1a114 in std::unique_lock<std::mutex>::lock 
> (this=0x7f61a4ff86c0) at /usr/include/c++/10/bits/unique_lock.h:133
> #11 0x0000000000d17bfb in std::unique_lock<std::mutex>::unique_lock 
> (this=0x7f61a4ff86c0, __m=...) at /usr/include/c++/10/bits/unique_lock.h:68
> #12 0x0000000000da9c79 in 
> srsran::multiqueue_handler<srsran::move_callback<void(), 64, false> 
>  >::push<srsenb::enb_stack_lte::tti_clock()::<lambda()> >(int, struct 
> {...} &&) (*this=0x0, q_idx=-1, value=...*)
>      at 
> /home/jgiovatto/Devel/LTE/srs/srsRAN-emane/lib/include/srsran/common/multiqueue.h:177
> #13 0x0000000000da9bae in 
> srsran::multiqueue_handler<srsran::move_callback<void(), 64, false> 
>  >::queue_handle::push<srsenb::enb_stack_lte::tti_clock()::<lambda()> 
>  >(struct {...} &&) (this=0xdebffd8, value=...)
>      at 
> /home/jgiovatto/Devel/LTE/srs/srsRAN-emane/lib/include/srsran/common/multiqueue.h:101
> #14 0x0000000000da95b8 in srsenb::enb_stack_lte::tti_clock 
> (this=0xdead460) at 
> /home/jgiovatto/Devel/LTE/srs/srsRAN-emane/srsenb/src/stack/enb_stack_lte.cc:163
> #15 0x0000000000d72ae5 in srsenb::txrx::run_thread (this=0x110e0cc8) at 
> /home/jgiovatto/Devel/LTE/srs/srsRAN-emane/srsenb/src/phy/txrx.cc:222
> #16 0x0000000000d12264 in srsran::thread::thread_function_entry 
> (_this=0x110e0cc8) at 
> /home/jgiovatto/Devel/LTE/srs/srsRAN-emane/lib/include/srsran/common/threads.h:111
> #17 0x00007f61b2a1d3f9 in start_thread (arg=0x7f61a4ff9640) at 
> pthread_create.c:463
> #18 0x00007f61b1b524c3 in clone () at 
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> 
> Best
> 
> Joe
> 
> 
> _______________________________________________
> srslte-users mailing list
> srslte-users at lists.softwareradiosystems.com
> https://lists.softwareradiosystems.com/mailman/listinfo/srslte-users
> 




More information about the srsran-users mailing list