Hi Johannes,
thanks for this very short and informal bug report on your own software :)
so, a bit of debugging from my side:
gdb --args python2 $(which gnuradio-companion)
(gdb) run
…
Trigger hangup by dragging POLAR config onto canvas
…
[ctrl-C]
Thread 1 "python2" received signal SIGINT, Interrupt.
(gdb) backtrace
#0 0x00007ffff7a76fbe in instancemethod_call.lto_priv () at
/lib64/libpython2.7.so.1.0
#1 0x00007ffff7a2bea3 in PyObject_Call () at /lib64/libpython2.7.so.1.0
#2 0x00007ffff7a7d323 in slot_sq_item.lto_priv () at /lib64/libpython2.7.so.1.0
#3 0x00007ffff7a47b8f in iter_iternext.lto_priv () at
/lib64/libpython2.7.so.1.0
#4 0x00007ffff7a2d2de in PyIter_Next () at /lib64/libpython2.7.so.1.0
…
aha, so that's happening in python-land. Thus, throw python debugging at
this:
(gdb) py-bt
Traceback (most recent call first):
File
"/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/grc/core/Param.py",
line 136, in __getitem__
*return str(self._param.get_opt(item)) if self._param.is_enum() else
NotImplemented*
File "cheetah_DynamicallyCompiledCheetahTemplate_1500284883_72_24761.py",
line 85, in respond
File "/usr/lib64/python2.7/site-packages/Cheetah/Template.py", line 1005, in
__str__
rc = getattr(self, mainMethName)()
File
"/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/grc/core/Block.py",
line 703, in resolve_dependencies
return str(Template(tmpl, n))
File
"/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/grc/core/Param.py",
line 338, in get_hide
hide = self.get_parent().resolve_dependencies(self._hide).strip()
File
"/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/grc/gui/Block.py",
line 211, in create_labels
markups = [param.get_markup() for param in self.get_params() if
param.get_hide() not in ('all', 'part')]
File
"/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/grc/gui/Element.py",
line 78, in create_labels
for child in self.get_children():child.create_labels()
File
"/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/grc/gui/FlowGraph.py",
line 476, in update
self.create_labels()
File
"/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/grc/gui/ActionHandler.py",
line 113, in flow_graph_update
fg.update()
File
"/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/grc/gui/ActionHandler.py",
line 358, in _handle_action
flow_graph_update()
File
"/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/grc/gui/Actions.py",
line 114, in __call__
self.emit('activate')
File
"/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/grc/gui/FlowGraph.py",
line 160, in add_new_block
Actions.ELEMENT_CREATE()
File
"/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/grc/gui/DrawingArea.py",
line 96, in _handle_drag_data_received
self._flow_graph.add_new_block(selection_data.data, (x, y))
File
"/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/grc/main.py",
line 54, in main
gtk.main()
File "/home/marcus/.usrlocal/bin/gnuradio-companion", line 92, in run_main
exit(main())
File "/home/marcus/.usrlocal/bin/gnuradio-companion", line 99, in <module>
run_main()
*Emphasis* by me. OK, so it's a ["string"] dereferral problem in Cheetah
calling back into GRC code, most likely (the point in the execution time
where my ctrl-C hits the python process is of course a random variable,
with the event-space being all lines of code executed in that infinite
loop in a "this eats up CPU" situation; but there's an accumulation
point at the things that are called most often, so heh, this "works on
average", or after a few tries. This time, it worked on the first
ctrl-C). So, Cheetah looping over something it parses. Ok, we have a
suspect. Let's look at the block definition XML file:
<?xml version="1.0"?>
<block>
<name>POLAR code Configurator</name>
<key>variable_polar_code_configurator</key>
<import>from gnuradio.fec import polar</import>
<var_make>self.$(id) = $(id) = polar.load_frozen_bits_info(False, $channel,
$block_size, $num_info_bits, $design_snr, $mu)</var_make>
<var_value>polar.load_frozen_bits_info(True, $channel, $block_size, $num_info_bits,
$design_snr, $mu)</var_value>
<make></make>
<param>
<name>Channel</name>
<key>channel</key>
<value>polar.CHANNEL_TYPE_BEC</value>
<type>string</type>
<option>
<name>BEC</name>
<key>polar.CHANNEL_TYPE_BEC</key>
</option>
<option>
<name>AWGN</name>
<key>polar.CHANNEL_TYPE_AWGN</key>
</option>
</param>
<param>
<name>Block size (N)</name>
<key>block_size</key>
<type>int</type>
</param>
<param>
*<name>#Info Bits (K)</name>*
<key>num_info_bits</key>
<type>int</type>
</param>
<param>
<name>design SNR</name>
<key>design_snr</key>
<value>0.0</value>
<type>float</type>
</param>
<param>
<name>mu</name>
<key>mu</key>
<value>16</value>
<type>int</type>
*<hide>#if 'BEC' in $getVar('channel') then 'all' else 'none' #</hide>*
</param>
</block>
Hm, that <hide> element looks fishy.
Removed it, tried again, works.
So, you've got a bug in the way your <hide> element is parsed. Maybe
it's a combination with the (probably cheetah-illegal?) # at the
beginning of "num_info_bits"'s <name> element. Hope that gives you a
direction to look at!
By the way, wouldn't we use small k instead of K and n instead of N for
a (n,k) code?
Cheers,
Marcus
On 07/17/2017 11:03 AM, Johannes Demel wrote:
Hi List,
I created an issue for this on github [0]. I assume the bug manifested
itself due to a change in GRC.
Cheers
Johannes
[0] https://github.com/gnuradio/gnuradio/issues/1385
On 15.07.2017 04:36, Cinaed Simson wrote:
Hi Johannes - I captured the output of grcc for both polar grc files and
they can't find
polar_config
I did a search of the gnuradio tree and my home directory
find . -name polar_config\*
and I couldn't find it either.
-- Cinaed
On 07/14/2017 01:04 AM, Johannes Demel wrote:
Hi,
this is a tricky one. My assumption is, that the configurator block
tries to compute channel capacities with a complex algorithm. There is
also the BEC channel approximation, which should be called.
This whole bug is caused by some GRC changes, as far as I could figure
it out. Could you try to have a look into the python code of the block
configurator and make sure, only the BEC functions are called? This
should fix your GRC problem.
The configurator automates quite a few things regarding channel
construction and has a built-in system for cached channel capacities. I
assume something does not behave as expected here.
Cheers
Johannes
On 14.07.2017 01:47, Cinaed Simson wrote:
On 07/13/2017 12:03 AM, Johannes Demel wrote:
Hi Alex,
could you be more specific about
'When I drop the POLAR code configurator block on the canvas, the
gnuradio program turns down.'?
Does GRC quit with an error? Does it turn dark and is
unresponsive? Is
there anything printed on the commandline?
Cheers
Johannes
Hey, I had that problem too!
In my case, all the tests pass - I have the correct version of GSL
installed - namely 1.16
But I couldn't even load the polar grc files.
When I press open on the grc it hangs - the grc was consuming 100% of
the cpu.
Eventually I had to kill it.
I first noticed it in gnuradio-3.7.10. I'm currently running
gnuradio-3.7.12git and I just checked and the problem is still there.
And I can't generate the python code using grcc - both polar grc
examples generate errors.
-- Cinaed
On 12.07.2017 18:04, Marcus Müller wrote:
Those test failures aren't great, but I think they might be bugs
in the
tests.
So, OK, can't remember what you need to do under Ubuntu to get
the full
Python debugging capability in GDB, but I wrote a (slightly dated,
since
the python commands have improved) tutorial on debugging crashing
Python
applications [1].
The idea is to simply execute your minimal crashing example using
gdb --args python2 /path/to/flowgraph.py
(gdb) run
<wait for crash>
(gdb) backtrace
and figure out why where how things crash. If you got a
backtrace, and
don't immediately see how to proceed (hint: print a few local
variables,
if possible, using gdb's "print" command), share it with the mailing
list
Best regards,
Marcus
[1]https://wiki.gnuradio.org/index.php/TutorialsGDB
On 07/12/2017 05:50 PM, Alex Homero Rivadeneira Erazo wrote:
I am using ubuntu 16.04 LTS.
At the end of the make test, I have obtained some failures:
97% tests passed, 6 tests failed out of 218
Total Test time (real) = 142.49 sec
The following tests FAILED:
48 - qa_ctrlport_probes (Failed)
59 - qa_cpp_py_binding (Failed)
76 - qa_cpp_py_binding_set (Failed)
124 - qa_filterbank (Failed)
154 - qa_ofdm_txrx (Failed)
197 - qa_fading_model (Failed)
Errors while running CTest
Makefile:61: recipe for target 'test' failed
make: *** [test] Error 8
Best regards,
Alex
On Wed, Jul 12, 2017 at 11:46 AM, Marcus Müller
<marcus.muel...@ettus.com <mailto:marcus.muel...@ettus.com>> wrote:
That might still give us enough debug info. Which Linux
distro are
we talking about (or, is it Linux at all?)
Best regards,
Marcus
On 07/12/2017 05:30 PM, Alex Homero Rivadeneira Erazo wrote:
Hi Marcus
At this moment, I am installing the
gnuradio 3.7.12git-171-get72c77bc from source, which is the
same
that I installed with pybombs . Unfortunately, I just already
built the gnuradio with "make && make test". The gnuradio
that I
had with the standard installation was gnuradio 3.7.9
Thanks
Best regards,
Alex
On Wed, Jul 12, 2017 at 11:13 AM, Marcus Müller
<marcus.muel...@ettus.com <mailto:marcus.muel...@ettus.com>>
wrote:
Hi Alex,
that does indeed sound like a bug. Things shouldn't be
crashing!
So, what's the distribution you're working with? Maybe
I can
help you a bit with the debugging. If you're, at the
moment,
building GNU Radio, make sure that the CMake parameters
contain -DCMAKE_BUILD_TYPE=RelWithDebInfo , so that we get
debugging symbols :)
Best regards,
Marcus
On 07/12/2017 05:11 PM, Alex Homero Rivadeneira Erazo
wrote:
Hi Marcus
Based on your suggestion I have deleted my Nabbles
account.
Respect to my problem with the POLAR code
configurator block, I checked the discussion threads, but
anyone gave a solution.
Note that this problem does not happen with
a gnuradio installed with the distribution's package
manager
(standard installation). However, the problem with this
installation method is that gnuradio is not up to date
and
it does not have all the blocks that I need in my
work. That
is why I used pybombs to install gnuradio which has the
blocks that I need. Now the problem is that gnuradio with
pybombs does work with the POLAR code configurator block.
When I drop the POLAR code configurator block on the
canvas,
the gnuradio program turns down.
At this moment, I am installing gnuradio from source.
If you
have other ideas please tell me.
Thanks
Best regards,
Alex
On Wed, Jul 12, 2017 at 9:43 AM, Marcus Müller
<marcus.muel...@ettus.com
<mailto:marcus.muel...@ettus.com>>
wrote:
Hi Alex,
I hope you do get an answer, but that mail from
Jose is
from the
beginning of 2016 – not extremely likely.
Anyway, have you seen the other answers that Jose
got?
If not: That's Nabble's fault. I never tire to
repeat:
Nabble is just a terrible, terrible web frontend
to use
the official GNU
Radio Mailing list.
It's not the official mailing list archive. It never
was, and it never
will be. The official way to sign up for the mailing
list is
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
<https://lists.gnu.org/mailman/listinfo/discuss-gnuradio>
and there's a link to the official mailing list
archive,
too.
I'd recommend deleting your Nabble account, and
directly
signing up
under the above address with your email account. It's
really easier to
use a proper email client (eg. GMail's web
frontend) and
simply the
mails than Nabble. Nabble breaks discussion
threads, it
makes answers
invisible, and it has cost us hours and hours of
unnecessary work so
far. PLEASE, don't use Nabble.
Best regards,
Marcus
On 07/12/2017 01:52 PM, Alex Rivadeneira wrote:
> Dear Jose
>
> Can you tell me if you solved the problem with the
POLAR code configurator
> block? because I have the same problem in the
gnuradio
installed with
> pybombs.
>
> Thanks
>
> Alex
>
>
>
> --
> View this message in context:
http://gnuradio.4.n7.nabble.com/polar-code-example-tp58407p64520.html
<http://gnuradio.4.n7.nabble.com/polar-code-example-tp58407p64520.html>
> Sent from the GnuRadio mailing list archive at
Nabble.com.
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
<mailto:Discuss-gnuradio@gnu.org>
>
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
<https://lists.gnu.org/mailman/listinfo/discuss-gnuradio>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
<mailto:Discuss-gnuradio@gnu.org>
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
<https://lists.gnu.org/mailman/listinfo/discuss-gnuradio>
--
Regards,
Alex Homero Rivadeneira E.
Cell: 438 397-8330 <tel:%28438%29%20397-8330>
--
Regards,
Alex Homero Rivadeneira E.
Cell: 438 397-8330 <tel:%28438%29%20397-8330>
--
Regards,
Alex Homero Rivadeneira E.
Cell: 438 397-8330
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
.
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio