-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEOn0gFAd3OQG8ow6EtFwrk3lBwykFAlqy3FwACgkQtFwrk3lB
wylgMQ//RM6525dyiniV9BhG+rjjfEVPM18hJFHLnTVCVm2KHLnUhVU+FMxgnC11
osSF9kMN61anSRnYOyhU6hd2YDq4upAH3jIV9WTqLkubYUf1IHeieKQw0kvup9XI
gJ0v6Egi2otF4P2N39PUrvIsJu/9aU1dCh78wFTsak8OOW3qiLWyduiHx4XBHMT3
RS7NVI1RDg6dbcpNyNR7C9FwCEAQl5v3FIg91BBWlVUMCnL33v3oE3crOZbr9R7N
MaetzbTAyky4HCkIZfdUmRutiIEP5hb7lmwj2JxSPwnP/NFSZK6X7DnLHQUSKU73
icc63PW4FgDKtu944xgykWvqIUdaascFh4hEYJn8/D52mk1xRi2mPJtWj2eK3gst
4kxITS8o953t08ZfRbftowuNswAwHTmgChjBfTIuHVtgWeLO/tR5109FIcG5kwwL
GudjMo6UcXpm0P3kEnr86koiR8XDVIpOv1x93NrK+bRvieJVrdUvrud2OCneNnZu
/xOfnfPo5zG1yYjgEn/Wh/6hSm8fsjEoRz7IkeAY3HiUrRndTX8P9qP4FljPbj9t
uuOj4Zy5e0EZAxpF1NdC+J9YRQ/fuNxAZZQVBlHJkxOTgA2ltNzFwEXzOyYMrh3Y
al3RZvBm3Ey0TxNlBTNzA4gEdIPX5SLIPbdTxhO4kRicRBeBk5Q=
=+He1
-----END PGP SIGNATURE-----
Hi all,
I'm using the Aync FEC decoder block to do Viterbi decoding on some of
my gr-satellites flowgraphs. Depending on the input message size, I'm
getting aborts or sigsegvs regarding malloc() and memory corruption.
I have been able to isolate the problem and produce the attached GRC
flowgraph. It seems that it fails for packet sizes of the form
(10*k+3)*8 and works OK for other packet sizes.
When running this flowgraph I get the following error:
python2: malloc.c:2369: sysmalloc: Assertion `(old_top == initial_top
(av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE &&
prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) ==
0)' failed.
See the backtrace under GDB attached below.
I haven't had much time to try to study the problem. I'm running GNU
Radio from the git master (compiled yesterday, with debugging symbols).
Could anyone else try to replicate this problem? It might be caused by
something other than GNU Radio in my system.
Best regards,
Daniel.
------
#0 0x00007ffff745ef00 in raise () from /lib64/libc.so.6
#1 0x00007ffff7460baa in abort () from /lib64/libc.so.6
#2 0x00007ffff74a8f78 in ?? () from /lib64/libc.so.6
#3 0x00007ffff74aac66 in ?? () from /lib64/libc.so.6
#4 0x00007ffff74abb5c in ?? () from /lib64/libc.so.6
#5 0x00007ffff74ad6d4 in malloc () from /lib64/libc.so.6
#6 0x00007ffff4d08688 in operator new(unsigned long) () from
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/libstdc++.so.6
#7 0x00007ffff547a589 in __gnu_cxx::new_allocator<unsigned
char>::allocate (this=0x7fffc800b8b0, __n=166)
at
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/ext/new_allocator.h:104
#8 std::allocator_traits<std::allocator<unsigned char> >::allocate
(__a=..., __n=166) at
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/alloc_traits.h:436
#9 std::_Vector_base<unsigned char, std::allocator<unsigned char>
>::_M_allocate (this=0x7fffc800b8b0, __n=166)
at
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/stl_vector.h:170
#10 std::_Vector_base<unsigned char, std::allocator<unsigned char>
>::_M_create_storage (__n=166, this=0x7fffc800b8b0)
at
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/stl_vector.h:185
#11 std::_Vector_base<unsigned char, std::allocator<unsigned char>
>::_Vector_base (__a=..., __n=166, this=0x7fffc800b8b0)
at
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/stl_vector.h:136
#12 std::vector<unsigned char, std::allocator<unsigned char> >::vector
(__a=..., __n=166, this=0x7fffc800b8b0)
at
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/stl_vector.h:280
#13 pmt::pmt_u8vector::pmt_u8vector (this=0x7fffc800b8a0, k=166, fill=0
'\000')
at
/usr/src/debug/net-wireless/gnuradio-9999/gnuradio-9999_build/gnuradio-runtime/lib/pmt/pmt_unv.cc:44
#14 0x00007ffff547aace in pmt::make_u8vector (k=k@entry=166,
fill=fill@entry=0 '\000')
at
/usr/src/debug/net-wireless/gnuradio-9999/gnuradio-9999_build/gnuradio-runtime/lib/pmt/pmt_unv.cc:109
#15 0x00007fffe792b3c1 in gr::fec::async_decoder_impl::decode_unpacked
(this=0x555556650590, msg=...)
at
/usr/src/debug/net-wireless/gnuradio-9999/gnuradio-9999/gr-fec/lib/async_decoder_impl.cc:144
#16 0x00007fffe792df91 in boost::_mfi::mf1<void,
gr::fec::async_decoder_impl, boost::intrusive_ptr<pmt::pmt_base>
>::operator() (a1=..., p=0x555556650590, this=0x555556647460)
at /usr/include/boost/bind/mem_fn_template.hpp:165
#17 boost::_bi::list2<boost::_bi::value<gr::fec::async_decoder_impl*>,
boost::arg<1> >::operator()<boost::_mfi::mf1<void,
gr::fec::async_decoder_impl, boost::intrusive_ptr<pmt::pmt_base> >,
boost::_bi::rrlist1<boost::intrusive_ptr<pmt::pmt_base> > >
(a=<synthetic pointer>..., f=..., this=0x555556647470) at
/usr/include/boost/bind/bind.hpp:319
#18 boost::_bi::bind_t<void, boost::_mfi::mf1<void,
gr::fec::async_decoder_impl, boost::intrusive_ptr<pmt::pmt_base> >,
boost::_bi::list2<boost::_bi::value<gr::fec::async_decoder_impl*>,
boost::arg<1> > >::operator()<boost::intrusive_ptr<pmt::pmt_base>
>(boost::intrusive_ptr<pmt::pmt_base>&&) (a1=<optimized out>,
this=0x555556647460)
at /usr/include/boost/bind/bind.hpp:1306
#19
boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void,
boost::_mfi::mf1<void, gr::fec::async_decoder_impl,
boost::intrusive_ptr<pmt::pmt_base> >,
boost::_bi::list2<boost::_bi::value<gr::fec::async_decoder_impl*>,
boost::arg<1> > >, void, boost::intrusive_ptr<pmt::pmt_base> >::invoke
(function_obj_ptr=..., a0=...)
at /usr/include/boost/function/function_template.hpp:159
#20 0x00007fffe7927745 in boost::function1<void,
boost::intrusive_ptr<pmt::pmt_base> >::operator() (a0=...,
this=<optimized out>)
at /usr/include/boost/function/function_template.hpp:760
#21 gr::basic_block::dispatch_msg (this=0x5555566505f8, which_port=...,
msg=...)
at
/usr/src/debug/net-wireless/gnuradio-9999/gnuradio-9999/gnuradio-runtime/include/gnuradio/basic_block.h:134
#22 0x00007ffff575d633 in gr::tpb_thread_body::tpb_thread_body
(this=0x7fffdf7fddd0, block=..., start_sync=...,
max_noutput_items=<optimized out>)
at
/usr/src/debug/net-wireless/gnuradio-9999/gnuradio-9999/gnuradio-runtime/lib/tpb_thread_body.cc:165
#23 0x00007ffff5750774 in gr::tpb_container::operator() (this=<optimized
out>, this=<optimized out>, this=<optimized out>, this=<optimized out>)
at
/usr/src/debug/net-wireless/gnuradio-9999/gnuradio-9999/gnuradio-runtime/lib/scheduler_tpb.cc:46
#24 gr::thread::thread_body_wrapper<gr::tpb_container>::operator()
(this=0x555556670370)
at
/usr/src/debug/net-wireless/gnuradio-9999/gnuradio-9999/gnuradio-runtime/include/gnuradio/thread/thread_body_wrapper.h:51
#25
boost::detail::function::void_function_obj_invoker0<gr::thread::thread_body_wrapper<gr::tpb_container>,
void>::invoke (function_obj_ptr=...)
at /usr/include/boost/function/function_template.hpp:159
#26 0x00007ffff56fd912 in boost::function0<void>::operator()
(this=<optimized out>) at
/usr/include/boost/function/function_template.hpp:760
#27 boost::detail::thread_data<boost::function0<void> >::run
(this=<optimized out>) at /usr/include/boost/thread/detail/thread.hpp:116
#28 0x00007ffff3ffaf9d in ?? () from /usr/lib64/libboost_thread.so.1.65.0
#29 0x00007ffff77e08b7 in start_thread () from /lib64/libpthread.so.0
#30 0x00007ffff7522c2f in clone () from /lib64/libc.so.6
No comments:
Post a Comment