Hi all, I'm using a Polyphase clock sync block in one of my flowgraphs (https://github.com/daniestevez/gr-satellites/blob/master/apps/picsat.grc) and I'm getting a segmentation fault when running the flowgraph.
Using GDB, the problem seems to be in the Polyphase clock implementation, when filtering is done via fir_filter_ccf (see the backtrace below). I've studied a bit pfb_clock_sync_ccf_impl::general_work() and I have the impression that the line out[i+d_out_idx] = d_filters[d_filtnum]->filter(&in[count+d_out_idx]); might run into problems if there are not enough samples in the input buffer, since filter() assumes you pass as many samples as taps are in the filter. The pfb_clock_sync_ccf_impl::general_work() doesn't ever look at ninput_items to check how much output can be produced with the input given, so I'm not even sure how it manages to run correctly in many other cases (I've had no problems with Polyphase clock in many other flowgraphs). Regards, Daniel. ----------- BACKTRACE #0 volk_32fc_32f_dot_prod_32fc_a_avx (result=0x555556735100, input=<optimized out>, taps=0x55555673c5a0, num_points=89) at /usr/src/debug/net-wireless/gnuradio-9999/gnuradio-9999/volk/kernels/volk/volk_32fc_32f_dot_prod_32fc.h:138 #1 0x00007fffe9b61119 in gr::filter::kernel::fir_filter_ccf::filter (this=0x555556734f00, input=input@entry=0x7fffa4804d80) at /usr/src/debug/net-wireless/gnuradio-9999/gnuradio-9999/gr-filter/lib/fir_filter.cc:232 #2 0x00007fffea15266b in gr::digital::pfb_clock_sync_ccf_impl::general_work (this=0x555556730080, noutput_items=16, ninput_items=..., input_items=..., output_items=std::vector of length 1, capacity 1 = {...}) at /usr/src/debug/net-wireless/gnuradio-9999/gnuradio-9999/gr-digital/lib/pfb_clock_sync_ccf_impl.cc:465 #3 0x00007ffff5d48608 in gr::block_executor::run_one_iteration (this=this@entry=0x7fffbeffcdd0) at /usr/src/debug/net-wireless/gnuradio-9999/gnuradio-9999/gnuradio-runtime/lib/block_executor.cc:451 #4 0x00007ffff5d927c8 in gr::tpb_thread_body::tpb_thread_body (this=0x7fffbeffcdd0, 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:123 #5 0x00007ffff5d86ac4 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 #6 gr::thread::thread_body_wrapper<gr::tpb_container>::operator() (this=0x555556776120) at /usr/src/debug/net-wireless/gnuradio-9999/gnuradio-9999/gnuradio-runtime/include/gnuradio/thread/thread_body_wrapper.h:51 #7 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 #8 0x00007ffff5d33f42 in boost::function0<void>::operator() (this=<optimized out>) at /usr/include/boost/function/function_template.hpp:771 #9 boost::detail::thread_data<boost::function0<void> >::run (this=<optimized out>) at /usr/include/boost/thread/detail/thread.hpp:116 #10 0x00007ffff4a9994d in ?? () from /usr/lib64/libboost_thread.so.1.63.0 #11 0x00007ffff77de677 in start_thread () from /lib64/libpthread.so.0 #12 0x00007ffff751ec7f in clone () from /lib64/libc.so.6 _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio