Information on ticket:181 and invitation to help (long)

As a follow up to the previous message regarding the segfault issue with
ticket:181, here is a simple test case that shows the problem. See the
end of this email for a request to help document which systems this
occurs on (you won’t need to do all the below, or use gdb as shown; just
run a couple commands.)

The problem in short:

$ python
Python 2.5.1 (r251:54863, Oct 5 2007, 13:50:07)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

from gnuradio import gr
gr.firdes.hilbert(0)
terminate called after throwing an instance of ‘std::out_of_range’
what(): Hilbert: Must have odd number of taps
Aborted (core dumped)
$

To show the problem in gory detail:

First, run Python inside gdb:

$ gdb python
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type “show copying” to see the conditions.
There is absolutely no warranty for GDB. Type “show warranty” for
details.
This GDB was configured as “x86_64-linux-gnu”…
(no debugging symbols found)
Using host libthread_db library “/lib/libthread_db.so.1”.
(gdb)

Then run it to get the interactive prompt:

(gdb) run
Starting program: /usr/bin/python
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 47791743497952 (LWP 9791)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
Python 2.5.1 (r251:54863, Oct 5 2007, 13:50:07)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)

Now execute a command that will generate an exception in swig wrapped
C++ code. In this case, we call the Hilbert filter generator with an
invalid number of taps. What should happen is that the swig wrapper
would catch this C++ exception and turn it into a Python exception,
which would then get printed and control returned to the Python command
line. Instead:

from gnuradio import gr
gr.firdes.hilbert(0)
terminate called after throwing an instance of ‘std::out_of_range’
what(): Hilbert: Must have odd number of taps

Program received signal SIGABRT, Aborted.
[Switching to Thread 47791743497952 (LWP 9791)]
0x00002b7761b25765 in raise () from /lib/libc.so.6
(gdb)

This above is what would happen if the exception thrown by GNU Radio C++
code were not being caught; it would unwind and eventually blow out the
top with an abort like above. However, lets look at the stack:

(gdb) info threads

  • 1 Thread 47791743497952 (LWP 9791) 0x00002b7761b25765 in raise ()
    from /lib/libc.so.6
    (gdb) thread apply all bt

Thread 1 (Thread 47791743497952 (LWP 9791)):
#0 0x00002b7761b25765 in raise () from /lib/libc.so.6
#1 0x00002b7761b271c0 in abort () from /lib/libc.so.6
#2 0x00002b7762f2c7b4 in __gnu_cxx::__verbose_terminate_handler () from
/usr/lib/libstdc++.so.6
#3 0x00002b7762f2a746 in ?? () from /usr/lib/libstdc++.so.6
#4 0x00002b7762f2a773 in std::terminate () from /usr/lib/libstdc++.so.6
#5 0x00002b7762f2a85a in __cxa_throw () from /usr/lib/libstdc++.so.6
#6 0x00002b7762b56ea6 in gr_firdes::hilbert (ntaps=0,
windowtype=gr_firdes::WIN_RECTANGULAR, beta=6.7599999999999998) at
gr_firdes.cc:306
#7 0x00002b7763f11f7f in _wrap_firdes_hilbert (self=0x0, args=) at gnuradio_swig_py_general.cc:24183
#8 0x0000000000417e53 in PyObject_Call ()
#9 0x0000000000486997 in PyEval_EvalFrameEx ()
#10 0x0000000000489d60 in PyEval_EvalCodeEx ()
#11 0x0000000000487f32 in PyEval_EvalFrameEx ()
#12 0x0000000000489d60 in PyEval_EvalCodeEx ()
#13 0x0000000000489da2 in PyEval_EvalCode ()
#14 0x00000000004abbb7 in PyRun_InteractiveOneFlags ()
#15 0x00000000004abdc4 in PyRun_InteractiveLoopFlags ()
#16 0x00000000004abeca in PyRun_AnyFileExFlags ()
#17 0x0000000000414725 in Py_Main ()
#18 0x00002b7761b11b44 in __libc_start_main () from /lib/libc.so.6
#19 0x0000000000413c69 in _start ()
(gdb)

Stack frame #7 is the call to the swig generated C++ wrapper, #6 is the
actual GNU Radio C++ implementation of the Hilbert code. Let’s look at
#6:

(gdb) up 6
#6 0x00002b7762b56ea6 in gr_firdes::hilbert (ntaps=0,
windowtype=gr_firdes::WIN_RECTANGULAR, beta=6.7599999999999998) at
gr_firdes.cc:306
306 throw std::out_of_range(“Hilbert: Must have odd number of
taps”);
Current language: auto; currently c++
(gdb) l
301 gr_firdes::hilbert (unsigned int ntaps,
302 win_type windowtype,
303 double beta)
304 {
305 if(!(ntaps & 1))
306 throw std::out_of_range(“Hilbert: Must have odd number of
taps”);
307
308 vector taps(ntaps);
309 vector w = window (windowtype, ntaps, beta);
310 unsigned int h = (ntaps-1)/2;
(gdb)

So in line 305 we tested the number of taps and in 306 we throw the
std::out_of_range exception. In the calling stack frame:

(gdb) up
#7 0x00002b7763f11f7f in _wrap_firdes_hilbert (self=0x0, args=) at gnuradio_swig_py_general.cc:24183
24183 result = gr_firdes::hilbert(arg1);
(gdb) l
24178 if (!SWIG_IsOK(ecode1)) {
24179 SWIG_exception_fail(SWIG_ArgError(ecode1), “in method '”
“firdes_hilbert” “', argument " “1"” of type '” “unsigned int”“'”);
24180 }
24181 arg1 = static_cast< unsigned int >(val1);
24182 try {
24183 result = gr_firdes::hilbert(arg1);
24184 }
24185 catch(std::out_of_range &_e) {
24186 SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
24187 }
(gdb)

This is the swig generated wrapper code that does the transition from
Python to C++. Line 24182 sets up a try block to call our code; when we
throw the exception, it should be getting caught by the handler in line
24185. Instead, it acts “as if” this code didn’t exist, and stack
frames #4-#0 show the call into glibc to abort the application.

*** Request For Help ***

We need people to run this simple test case and post to the list whether
it works or not, and a few items of information about their
configuration:

$ python
Python 2.5.1 (r251:54863, Oct 5 2007, 13:50:07)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

from gnuradio import gr
gr.firdes.hilbert(0)
terminate called after throwing an instance of ‘std::out_of_range’
what(): Hilbert: Must have odd number of taps
Aborted (core dumped)
$

$ g++ --version
gcc (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
$

$ swig -version

SWIG Version 1.3.31

Compiled with g++ [x86_64-unknown-linux-gnu]
Please see http://www.swig.org for reporting bugs and further
information
$

Finally, the GNU Radio version in use (here I’m using 3.1svn), and the
OS/platform (here I have Ubuntu 7.10 64-bit desktop on an Intel Core 2
Duo processor.)

Thanks!


Johnathan C.
Corgan Enterprises LLC
http://corganenterprises.com

SVN latest revision; MacOS X 10.4.11 latest updates; Intel-iMac 2.16
GHz core-2-duo:

% python
Python 2.5.1 (r251:54863, Jan 5 2008, 16:11:24)
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.

from gnuradio import gr
gr.firdes.hilbert(0)
Traceback (most recent call last):
File “”, line 1, in
File “/usr/local/lib/python2.5/site-packages/gnuradio/gr/
gnuradio_swig_py_general.py”, line 2837, in hilbert
return _gnuradio_swig_py_general.firdes_hilbert(*args)
IndexError: Hilbert: Must have odd number of taps

% g++ --version

i686-apple-darwin8-g+±4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build
5367)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There
is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

% swig -version

SWIG Version 1.3.33
Compiled with /usr/bin/g+±4.0 [i386-apple-darwin8.11.1]
Please see http://www.swig.org for reporting bugs and further
information

On Thu, Jan 17, 2008 at 01:09:31PM -0800, Johnathan C. wrote:

As a follow up to the previous message regarding the segfault issue with
ticket:181, here is a simple test case that shows the problem. See the
end of this email for a request to help document which systems this
occurs on (you won’t need to do all the below, or use gdb as shown; just
run a couple commands.)

Thanks Johnathan, for posting this.

We really do need ALL your help in bisecting this. If you can run the
simple experiment below, and in the previous message, please do and
post the info to the list.

We know it used to work, and now it doesn’t. What we’re looking for
are cases where it works and those where it doesn’t. Then for those
cases, biscect by compiler version / python version / 32-bit vs 64-bit
/ gnuradio version.

Once we know what triggers it, it shouldn’t be too hard to fix.
My gut sense is that it’s not directly swig related. The code they
generate looks OK.

Eric

Michael D. wrote:

line 2837, in hilbert
return _gnuradio_swig_py_general.firdes_hilbert(*args)
IndexError: Hilbert: Must have odd number of taps

We have a winner :slight_smile:

Just FYI, the above is what is supposed to happen, with the C++
exception being turned into a Python exception by swig and control
returned to the Python command line.


Johnathan C.
Corgan Enterprises LLC
http://corganenterprises.com

Hi,

I get the same error. My system is Ubuntu Edgy, Intel Core 2 Duo,
Macbook pro, fairly old SVN build of gnuradio.

j@ /gnuradio> svn info
Path: .
URL: http://gnuradio.org/svn/gnuradio/trunk
Repository Root: http://gnuradio.org/svn
Repository UUID: 221aa14e-8319-0410-a670-987f0aec2ac5
Revision: 6441
Node Kind: directory
Schedule: normal
Last Changed Author: eb
Last Changed Rev: 6429
Last Changed Date: 2007-09-13 23:21:41 +0000 (Thu, 13 Sep 2007)

uname -a
Linux mcbook 2.6.20-15-generic #2 SMP Sun Apr 15 07:36:31 UTC 2007
i686 GNU/Linux

Here is the listing, which hopefully contains all the necessary version
numbers:

j@ /j> gdb python
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type “show copying” to see the conditions.
There is absolutely no warranty for GDB. Type “show warranty” for
details.
This GDB was configured as “i486-linux-gnu”…
(no debugging symbols found)
Using host libthread_db library “/lib/tls/i686/cmov/libthread_db.so.1”.
(gdb) run
Starting program: /usr/bin/python
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 1075566272 (LWP 15317)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
Python 2.5.1 (r251:54863, May 2 2007, 16:56:35)
[GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)

from gnuradio import gr
gr.firdes.hilbert(0)
terminate called after throwing an instance of ‘std::out_of_range’
what(): Hilbert: Must have odd number of taps

Program received signal SIGABRT, Aborted.
[Switching to Thread 1075566272 (LWP 15317)]
0xffffe410 in __kernel_vsyscall ()
(gdb) info threads

  • 1 Thread 1075566272 (LWP 15317) 0xffffe410 in __kernel_vsyscall ()
    (gdb) thread apply all bt

Thread 1 (Thread 1075566272 (LWP 15317)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x400a5df0 in raise () from /lib/tls/i686/cmov/libc.so.6
#2 0x400a7641 in abort () from /lib/tls/i686/cmov/libc.so.6
#3 0x40741270 in __gnu_cxx::__verbose_terminate_handler ()
from /usr/lib/libstdc++.so.6
#4 0x4073eca5 in ?? () from /usr/lib/libstdc++.so.6
#5 0x4073ece2 in std::terminate () from /usr/lib/libstdc++.so.6
#6 0x4073ee1a in __cxa_throw () from /usr/lib/libstdc++.so.6
#7 0x404f4104 in gr_firdes::hilbert ()
from /usr/local/lib/libgnuradio-core.so.0
#8 0x40970440 in _wrap_firdes_hilbert ()
from
/usr/local/lib/python2.5/site-packages/gnuradio/gr/_gnuradio_swig_py_general.so
#9 0x0805c787 in PyObject_Call ()
#10 0x080c6c2f in PyEval_EvalFrameEx ()
#11 0x080c9ca5 in PyEval_EvalCodeEx ()
#12 0x080c8169 in PyEval_EvalFrameEx ()
#13 0x080c9ca5 in PyEval_EvalCodeEx ()
#14 0x080c9d17 in PyEval_EvalCode ()
#15 0x080e9803 in PyRun_InteractiveOneFlags ()
#16 0x080e9a36 in PyRun_InteractiveLoopFlags ()
—Type to continue, or q to quit—
#17 0x080e9b52 in PyRun_AnyFileExFlags ()
#18 0x08059330 in Py_Main ()
#19 0x08058862 in main ()

*** Request For Help ***

$ python
Python 2.4.4 (#1, Oct 23 2006, 13:58:18)
[GCC 4.1.1 20061011 (Red Hat 4.1.1-30)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

from gnuradio import gr
gr.firdes.hilbert(0)
terminate called after throwing an instance of ‘std::out_of_range’
what(): Hilbert: Must have odd number of taps
Aborted

$ g++ --version
g++ (GCC) 4.1.2 20070626 (Red Hat 4.1.2-13)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

$ swig -version

SWIG Version 1.3.31

Compiled with x86_64-redhat-linux-g++ [x86_64-redhat-linux-gnu]
Please see http://www.swig.org for reporting bugs and further
information

$ uname -a
Linux GR5T61 2.6.22.7-57.fc6 #1 SMP Fri Sep 21 19:45:12 EDT 2007 x86_64
x86_64 x86_64 GNU/Linux

Using gnuradio r7456, Fedora core 6 64bit on a Intel Core 2 Duo.

Ubuntu 7.10, 32-bit (real, not VM), latest updates; SVN latest revision
Intel core-2-duo @ 2 GHz (single board computer “commell LS-371”)

$ python

Python 2.5.1 (r251:54863, Oct 5 2007, 13:36:32)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

from gnuradio import gr
gr.firdes.hilbert(0)
terminate called after throwing an instance of ‘std::out_of_range’
what(): Hilbert: Must have odd number of taps
Aborted (core dumped)

$ gcc --version

gcc (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There
is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

$ swig -version

SWIG Version 1.3.31

Compiled with g++ [i686-pc-linux-gnu]
Please see http://www.swig.org for reporting bugs and further
information

$ uname -a

Linux p1 2.6.22-14-generic #1 SMP Tue Dec 18 08:02:57 UTC 2007 i686
GNU/Linux

On Thu, Jan 17, 2008 at 09:46:39PM +0000, Juha V. wrote:

Hi,

I get the same error. My system is Ubuntu Edgy, Intel Core 2 Duo,
Macbook pro, fairly old SVN build of gnuradio.

Thanks. Can you get us

$ g++ --version
$ python -V
$ swig -version

Eric

SVN latest version, Ubuntu Gutsy with latest updates, Pentium 4

gnychis@cyprus:~$ python
Python 2.5.1 (r251:54863, Oct 5 2007, 13:36:32)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

from gnuradio import gr
gr.firdes.hilbert(0)
terminate called after throwing an instance of ‘std::out_of_range’
what(): Hilbert: Must have odd number of taps
Aborted (core dumped)

gnychis@cyprus:~$ g++ --version
g++ (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

gnychis@cyprus:~$ swig -version
SWIG Version 1.3.31
Compiled with g++ [i686-pc-linux-gnu]
Please see http://www.swig.org for reporting bugs and further
information

  • George

Upgrading to SWIG 1.3.33 doesn’t change this.

Ubuntu 7.10, 32-bit (real, not VM), latest updates; SVN latest revision
Intel core-2-duo @ 2 GHz (single board computer “commell LS-371”)

$ python

Python 2.5.1 (r251:54863, Oct 5 2007, 13:36:32)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

from gnuradio import gr
gr.firdes.hilbert(0)
terminate called after throwing an instance of ‘std::out_of_range’
what(): Hilbert: Must have odd number of taps
Aborted (core dumped)

$ gcc --version

gcc (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
Copyright © 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There
is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

$ uname -a

Linux p1 2.6.22-14-generic #1 SMP Tue Dec 18 08:02:57 UTC 2007 i686
GNU/Linux

Thanks. Can you get us

$ g++ --version
$ python -V
$ swig -version

j@ /j> g++ --version
g++ (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

j@ /j> python -V
Python 2.5.1
j@ /j> swig -version

SWIG Version 1.3.31

Compiled with g++ [i686-pc-linux-gnu]
Please see http://www.swig.org for reporting bugs and further
information

SVN latest version, Gutsy Gibbon, Core Duo L2400 (not core 2 duo)

gnychis@x60s:~/school/gr/trunk$ python
Python 2.5.1 (r251:54863, Oct 5 2007, 13:36:32)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

from gnuradio import gr
gr.firdes.hilbert(0)
terminate called after throwing an instance of ‘std::out_of_range’
what(): Hilbert: Must have odd number of taps
Aborted (core dumped)

gnychis@x60s:~/school/gr/trunk$ g++ --version
g++ (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

gnychis@x60s:~/school/gr/trunk$ swig -version
SWIG Version 1.3.31
Compiled with g++ [i686-pc-linux-gnu]
Please see http://www.swig.org for reporting bugs and further
information

Linux x60s 2.6.22-14-generic #1 SMP Tue Dec 18 08:02:57 UTC 2007 i686
GNU/Linux

  • George

This might be a similar problem:

http://www.nabble.com/C%2B%2B,-Python-and-multiple-libraries-td14223763.html

juha

Juha V. wrote:

This might be a similar problem:

http://www.nabble.com/C%2B%2B,-Python-and-multiple-libraries-td14223763.html

Thanks, we found that too. It does look similar.

So far from all the reports (thanks guys, keep them coming), the
works/fails distinction is whether gcc is < 4.1 or not. But we don’t
have enough “works” examples to really draw that conclusion yet.


Johnathan C.
Corgan Enterprises LLC
http://corganenterprises.com

On Fri, Jan 18, 2008 at 01:04:38AM +0200, Juha V. wrote:

This might be a similar problem:

http://www.nabble.com/C%2B%2B,-Python-and-multiple-libraries-td14223763.html

juha

Thanks! It does look similar.

Eric

PS3:

[eb@ps3 ~]$ python
Python 2.5 (r25:51908, Nov 6 2007, 15:58:37)
[GCC 4.1.2 20070925 (Red Hat 4.1.2-27)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

from gnuradio import gr
gr.firdes.hilbert(0)
terminate called after throwing an instance of ‘std::out_of_range’
what(): Hilbert: Must have odd number of taps
Aborted

[eb@ps3 ~]$ g++ --version
g++ (GCC) 4.1.2 20070925 (Red Hat 4.1.2-27)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

[eb@ps3 ~]$ swig -version

SWIG Version 1.3.31

Compiled with g++ [powerpc-redhat-linux-gnu]
Please see http://www.swig.org for reporting bugs and further
information
[eb@ps3 ~]$ uname -a
Linux ps3.comsec.com 2.6.23 #1 SMP Mon Nov 12 17:32:16 PST 2007 ppc64
ppc64 ppc64 GNU/Linux
[eb@ps3 ~]$

And the “quick fix” suggested in the bug report also works:
http://sourceforge.net/tracker/index.php?func=detail&aid=1863647&group_id=1645&atid=101645

j@ /swigp> python
Python 2.5.1 (r251:54863, May 2 2007, 16:56:35)
[GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

import sys, dl
sys.setdlopenflags(sys.getdlopenflags() | dl.RTLD_GLOBAL)
from gnuradio import gr
gr.firdes.hilbert(0)
Traceback (most recent call last):
File “”, line 1, in
File
“/usr/local/lib/python2.5/site-packages/gnuradio/gr/gnuradio_swig_py_general.py”,
line 2837, in hilbert
return _gnuradio_swig_py_general.firdes_hilbert(*args)
IndexError: Hilbert: Must have odd number of taps

Johnathan C. wrote:

I’m going to try a fix in which we automate this; this will at least
workaround the problem until the swig guys make a fix.

Trunk revision r7461 now contains an automated version of the
workaround, which has stopped the problem in my development version. In
particular, however, there could be some unwanted side effects.

This workaround is to a single .py file, so once you update you can just
re-run ‘sudo make install’ to get it into place. That is, unless you
updated from an old enough version of the trunk that it includes
non-Python updates, and then of course you’ll have to rebuild.


Johnathan C.
Corgan Enterprises LLC
http://corganenterprises.com

Juha V. wrote:

And the “quick fix” suggested in the bug report also works:
SWIG / Bugs / #881 Multiple modules leads to unhandled exception

Great catch!

I’m going to try a fix in which we automate this; this will at least
workaround the problem until the swig guys make a fix.


Johnathan C.
Corgan Enterprises LLC
http://corganenterprises.com

Working on my P4 and Core Duo now!

  • George