Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CentOS 6.X SegFault in Control Port #994

Closed
mbr0wn opened this issue Sep 17, 2016 · 1 comment
Closed

CentOS 6.X SegFault in Control Port #994

mbr0wn opened this issue Sep 17, 2016 · 1 comment

Comments

@mbr0wn
Copy link
Member

mbr0wn commented Sep 17, 2016

I receive a segmentation fault when I attempt to run a flow graph that exports any properties over control port on CentOS 6.X. This issue does not effect Ubuntu. I have tested GNU Radio tag v3.7.8.2 as well as the current head of master (tag# bd69c31). It crashes when the first property attempts to register with the rpc manager.

Backtrace:
(gdb) bt
#0 0x00007ffff176ca4d in rpcbasic_register_get<gr::blocks::ctrlport_probe2_f, std::vector<float, std::allocator > >::rpcbasic_register_get (this=0x165a660, block_alias="probe2_f0",

functionbase=0x164f878 "samples", function=&virtual table offset 0, min=..., max=..., def=..., units_=0x7ffff17967e4 "volts", desc_=0x164eaa8 "Sample Points", minpriv_=RPC_PRIVLVL_MIN, display_=1)
at /home/jrm/workspace/FOSS/pybombs/src/gnuradio/gnuradio-runtime/include/gnuradio/rpcregisterhelpers.h:1042

#1 0x00007ffff176995b in gr::blocks::ctrlport_probe2_f_impl::setup_rpc (this=0x1650120) at /home/jrm/workspace/FOSS/pybombs/src/gnuradio/gr-blocks/lib/ctrlport_probe2_f_impl.cc:134
#2 0x00007ffff129a608 in gr::hier_block2_detail::flatten_aux (this=0x16226c0, sfg=...) at /home/jrm/workspace/FOSS/pybombs/src/gnuradio/gnuradio-runtime/lib/hier_block2_detail.cc:621
#3 0x00007ffff1293779 in gr::hier_block2::flatten (this=) at /home/jrm/workspace/FOSS/pybombs/src/gnuradio/gnuradio-runtime/lib/hier_block2.cc:157
#4 0x00007ffff12bd1b0 in gr::top_block_impl::start (this=0x163e940, max_noutput_items=) at /home/jrm/workspace/FOSS/pybombs/src/gnuradio/gnuradio-runtime/lib/top_block_impl.cc:109
#5 0x00007ffff12b5b3c in gr::top_block::start (this=0x15115b0, max_noutput_items=) at /home/jrm/workspace/FOSS/pybombs/src/gnuradio/gnuradio-runtime/lib/top_block.cc:62
#6 0x00007fffece1401c in top_block_start_unlocked (r=..., max_noutput_items=10000000) at /home/jrm/workspace/FOSS/pybombs/src/gnuradio/build/gnuradio-runtime/swig/runtime_swigPYTHON_wrap.cxx:6434
#7 0x00007fffece9cad5 in _wrap_top_block_start_unlocked (args=, kwargs=)

at /home/jrm/workspace/FOSS/pybombs/src/gnuradio/build/gnuradio-runtime/swig/runtime_swigPYTHON_wrap.cxx:49375

#8 0x000000358f6d55b6 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.6.so.1.0
#9 0x000000358f6d7647 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.6.so.1.0
#10 0x000000358f6d5a94 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.6.so.1.0
#11 0x000000358f6d7647 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.6.so.1.0
#12 0x000000358f6d5a94 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.6.so.1.0
#13 0x000000358f6d7647 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.6.so.1.0
#14 0x000000358f6d5a94 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.6.so.1.0
#15 0x000000358f6d7647 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.6.so.1.0
#16 0x000000358f6d7722 in PyEval_EvalCode () from /usr/lib64/libpython2.6.so.1.0
#17 0x000000358f6f1b9c in ?? () from /usr/lib64/libpython2.6.so.1.0
#18 0x000000358f6f1c70 in PyRun_FileExFlags () from /usr/lib64/libpython2.6.so.1.0
#19 0x000000358f6f315c in PyRun_SimpleFileExFlags () from /usr/lib64/libpython2.6.so.1.0
#20 0x000000358f6ff892 in Py_Main () from /usr/lib64/libpython2.6.so.1.0
#21 0x000000358221ed5d in __libc_start_main () from /lib64/libc.so.6
#22 0x0000000000400649 in _start ()

The line that causes the seg fault is:
rpcmanager::get()->i()->registerQueryCallback(d_id, inserter);
It appears that the "rpcmanager::get()" call does not return a handle to the Thrift rpc process b/c the process dies when it attempts to call "i()" on the object.

Thrift is installed and GNU Radio recognizes it as a valid control port component:
$ gnuradio-config-info --enabled-components
python-support;testing-support;volk;gnuradio-runtime;gr-ctrlport;* thrift;gr-blocks;gnuradio-companion;gr-fec;gr-fft;gr-filter;gr-analog;gr-digital;gr-dtv;gr-atsc;gr-audio;* alsa;* oss;gr-channels;gr-noaa;gr-pager;gr-qtgui;gr-trellis;gr-uhd;gr-utils;gr-vocoder;gr-fcd;gr-wavelet;gr-wxgui

I can run gr-ctrlport-monitor from CentOS build and attach using Thrift to another flow graph running on an Ubuntu machine.

Attached is a sample flow graph that causes the seg fault.

@marcusmueller
Copy link
Member

CentOS6 no longer supported, I'll say it's unlikely we'll fix this. Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants