[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] RuntimeError: udp_sink(1): insufficient connected out

From: Mike Rex
Subject: [Discuss-gnuradio] RuntimeError: udp_sink(1): insufficient connected output ports
Date: Thu, 31 Aug 2017 20:17:04 -0700
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0

gnuradio version: 3.7.12git-218-g811bee8c installed from build-gnuradio script. Dev PC: Xubuntu 16.04 running in VM Workstation  (mentioned because some python bugs are hypervisor effected only) Problem: I am getting errors when running flow graphs in GRC after adding variables to the udp_sink_impl.h file.

I've been struggling all week making changes to an existing project (https://github.com/ghostop14/gr-grnet) that are alternate versions of TCP/UDP sink/source. I planned on starting with this project, adding in some missing bits from the gr-blocks UDP sink/source, and then finally modifying it for our particular application (raw protocol instead of UDP with IP).

I'm having problems adding variables to udp_sink_impl.h/udp_source_impl.h without getting errors when running the flow graph. I may be overlooking something simple, but I'm really just trying to append the new variable following the usage of other existing variables.  I think there is either something wrong with my python 2.7 on my xubuntu 16.04 PC, or there needs to be additional memory allocated somewhere. Typically, when adding a new variable to udp_sink_impl.h, I'll get the following, where the "NUM needed" varies from run to run:

Traceback (most recent call last):
  File "/home/mike/top_block.py", line 110, in <module>
  File "/home/mike/top_block.py", line 99, in main
  File "/usr/local/lib/python2.7/dist-packages/gnuradio/gr/top_block.py", line 109, in start
    top_block_start_unlocked(self._impl, max_noutput_items)
  File "/usr/local/lib/python2.7/dist-packages/gnuradio/gr/runtime_swig.py", line 5681, in top_block_start_unlocked
    return _runtime_swig.top_block_start_unlocked(r, max_noutput_items)
RuntimeError: udp_sink(1): insufficient connected output ports (54929632 needed, 0 connected)

Other times, the flowgraph will start and then crash after the private  constructor finishes and the error will be related to python2 and corrupted size vs prev_size...

*** Error in `/usr/bin/python2': corrupted size vs. prev_size: 0x0000000003428620 ***

Comment out the variable, and then it runs every time.  Geez, while writing this email, I restored the variable to get the corrupted size error.  Pressed Play again and it ran.  Sometimes 2/3 tries works, and other times 2/3 tries gets the python error (I did not notice that behavior until just now). Added another variable, and then it went up to like 1 in 6 worked or 1 in 10 worked, and with another variable added, it doesn't ever work again.  So this looks like a memory allocation/corruption problem that somehow randomly works.

When testing block changes, what is the correct process to ensure gnuradio sees the newest installed code only? I've been doing:

(current dir is build)
sudo make uninstall && sudo ldconfig && cd .. && rm -rf build
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE="Debug" ../
make -j8 && sudo make install && sudo ldconfig

Is there something I'm missing that completely removes old stuff or failing to import all the new stuff?

I do have another local repo where I have many more changes and the payload_size is working (don't know what changed when it suddenly started working), but further adding variables like 'eof' result in the error in question.  The simplest changes I can make and reproduce this can be seen here: https://github.com/ghostop14/gr-grnet/compare/master...BCITMike:master. I'm changing 4 files:
modified: grc/grnet_udp_sink.xml
modified: include/grnet/udp_sink.h
modified: lib/udp_sink_impl.cc
modified: lib/udp_sink_impl.h

So either I'm missing something fundamental or my dev setup is bad.  If someone can point out what I'm missing to make this work, I would greatly appreciate it!


reply via email to

[Prev in Thread] Current Thread [Next in Thread]