-
Notifications
You must be signed in to change notification settings - Fork 23
Description
Hi,
I'm using the master branch of UHD-Fairwaves for which I had to apply #27 to fix #26.
OS : Debian Testing amd64
GCC : 10.2.0
libboost 1.71
I have compiled osmo-trx-uhd to use it with UmTRX. However, it doesn't stop properly. It gets stuck after SIGTEM or SIGINT.
I have to SIGKILL to exit.
The osmo-trx code doesn't seem the source of the problem.
if I ctrl-c osmo-trx, I gets stuck :
^CTue Dec 8 17:03:35 2020 DMAIN <0000> osmo-trx.cpp:609 [tid=139644193412480] -- Transceiver active with 1 channel(s) signal 2 received shutting down Tue Dec 8 17:03:35 2020 DMAIN <0000> osmo-trx.cpp:566 [tid=139644193412480] Shutting down transceiver... ^C^C
When I strace on the blocking process, I have the screen flooded with
poll([{fd=24, events=POLLIN}], 1, 100) = 1 ([{fd=24, revents=POLLIN}]) recvfrom(24, "P\22\0\6\0\0\0\2\0\0\0\30\305X\233\361\0\0\0\0\377\377\377\377", 1472, 0, NULL, NULL) = 24 recvfrom(24, 0x55dce26565d0, 1472, MSG_DONTWAIT, NULL, NULL) = -1 EAGAIN (Ressource temporairement non disponible) poll([{fd=24, events=POLLIN}], 1, 100^Cstrace: Process 19537 detached <detached ...>
Here a gdb backtrace of this pid
(gdb) bt #0 0x00007f5ee31aa35f in __GI___poll (fds=0x7f5edd382610, nfds=1, timeout=100) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f5ee3f71605 in udp_zero_copy_asio_impl::get_recv_buff(double) () from /usr/local/lib/libuhd.so.3.15.0 #2 0x00007f5ee0d33ff9 in handle_tx_async_msgs(unsigned long, double, boost::shared_ptr<flow_control_monitor>, boost::shared_ptr<uhd::transport::zero_copy_if>, boost::function<void ()>, boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> >, boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> >) () from /usr/local/lib/uhd/modules/libumtrx.so #3 0x00007f5ee0d4e603 in void boost::_bi::list7<boost::_bi::value<unsigned long>, boost::_bi::value<double>, boost::_bi::value<boost::shared_ptr<flow_control_monitor> >, boost::_bi::value<boost::shared_ptr<uhd::transport::zero_copy_if> >, boost::_bi::value<boost::function<void ()> >, boost::_bi::value<boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> > >, boost::_bi::value<boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> > > >::operator()<void (*)(unsigned long, double, boost::shared_ptr<flow_control_monitor>, boost::shared_ptr<uhd::transport::zero_copy_if>, boost::function<void ()>, boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> >, boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> >), boost::_bi::list0>(boost::_bi::type<void>, void (*&)(unsigned long, double, boost::shared_ptr<flow_control_monitor>, boost::shared_ptr<uhd::transport::zero_copy_if>, boost::function<void ()>, boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> >, boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> >), boost::_bi::list0&, int) () from /usr/local/lib/uhd/modules/libumtrx.so #4 0x00007f5ee0d4ca07 in boost::_bi::bind_t<void, void (*)(unsigned long, double, boost::shared_ptr<flow_control_monitor>, boost::shared_ptr<uhd::transport::zero_copy_if>, boost::function<void ()>, boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> >, boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> >), boost::_bi::list7<boost::_bi::value<unsigned long>, boost::_bi::value<double>, boost::_bi::value<boost::shared_ptr<flow_control_monitor> >, boost::_bi::value<boost::shared_ptr<uhd::transport::zero_copy_if> >, boost::_--Type <RET> for more, q to quit, c to continue without paging-- bi::value<boost::function<void ()> >, boost::_bi::value<boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> > >, boost::_bi::value<boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> > > > >::operator()() () from /usr/local/lib/uhd/modules/libumtrx.so #5 0x00007f5ee0d4b0f9 in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, void (*)(unsigned long, double, boost::shared_ptr<flow_control_monitor>, boost::shared_ptr<uhd::transport::zero_copy_if>, boost::function<void ()>, boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> >, boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> >), boost::_bi::list7<boost::_bi::value<unsigned long>, boost::_bi::value<double>, boost::_bi::value<boost::shared_ptr<flow_control_monitor> >, boost::_bi::value<boost::shared_ptr<uhd::transport::zero_copy_if> >, boost::_bi::value<boost::function<void ()> >, boost::_bi::value<boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> > >, boost::_bi::value<boost::shared_ptr<uhd::transport::bounded_buffer<uhd::async_metadata_t> > > > >, void>::invoke(boost::detail::function::function_buffer&) () from /usr/local/lib/uhd/modules/libumtrx.so #6 0x00007f5ee3f39b93 in task_impl::task_loop(boost::function<void ()> const&) () from /usr/local/lib/libuhd.so.3.15.0 #7 0x00007f5ee34a8ed0 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6 #8 0x00007f5ee45d1ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477 #9 0x00007f5ee31b4d4f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95