[Pkg-octave-devel] Bug#338487: octave: dies with illegal instruction

Timo Lindfors timo.lindfors at iki.fi
Thu Nov 10 15:41:53 UTC 2005


Package: octave
Version: 2.1.71-7
Severity: normal

Summary:

octave dies with "illegal instruction" on a pentium MMX system but
works on an athlon system. Script to trigger the bug is available at
http://iki.fi/lindi/mycos.m

Transcript:

lindi at dandelion:~/tmp$ octave
GNU Octave, version 2.1.71 (i486-pc-linux-gnu).
Copyright (C) 2005 John W. Eaton.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTIBILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type `warranty'.

Additional information about Octave is available at http://www.octave.org.

Please contribute if you find this software useful.
For more information, visit http://www.octave.org/help-wanted.html

Report bugs to <bug at octave.org> (but first, please read
http://www.octave.org/bugs.html to learn how to write a helpful report).

octave:1> x1 = mycos(3, 200, 0);
panic: Illegal instruction -- stopping myself...
attempting to save variables to `octave-core'...
save to `octave-core' complete
Illegal instruction (core dumped)

lindi at dandelion:~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 5
model           : 4
model name      : Pentium MMX
stepping        : 4
cpu MHz         : 199.682
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : yes
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr mce cx8 mmx
bogomips        : 398.13

The athlon system where the package and script work without problems
has:

lindi at sauna:~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 4
model name      : AMD Athlon(tm) processor
stepping        : 2
cpu MHz         : 701.604
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
bogomips        : 1399.19


Backtrace:

#0  0x41709b50 in fftw_taint ()
   from /usr/lib/libfftw3.so.3
(gdb) bt
#0  0x41709b50 in fftw_taint () from /usr/lib/libfftw3.so.3
#1  0x40816e43 in octave_fftw_planner::create_plan () from /usr/lib/octave-2.1.71/liboctave.so
#2  0x40818043 in octave_fftw::fft () from /usr/lib/octave-2.1.71/liboctave.so
#3  0x40abc722 in NDArray::fourier () from /usr/lib/octave-2.1.71/liboctave.so
#4  0x41e0b915 in ?? () from /usr/lib/octave/2.1.71/oct/i486-pc-linux-gnu/fft.oct
#5  0x41e0bced in Ffft () from /usr/lib/octave/2.1.71/oct/i486-pc-linux-gnu/fft.oct
#6  0x403611a7 in octave_builtin::do_multi_index_op () from /usr/lib/octave-2.1.71/liboctinterp.so
#7  0x41df0775 in octave_dispatch::do_multi_index_op () from /usr/lib/octave/site/oct/api-v13/i486-pc-linux-gnu/octave-forge/dispatch.oct
#8  0x41df1e2f in octave_dispatch::subsref () from /usr/lib/octave/site/oct/api-v13/i486-pc-linux-gnu/octave-forge/dispatch.oct
#9  0x40342a09 in octave_value::subsref () from /usr/lib/octave-2.1.71/liboctinterp.so
#10 0x40430b4d in tree_index_expression::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#11 0x40430de6 in tree_index_expression::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#12 0x4041a4af in tree_simple_assignment::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#13 0x40419ebe in tree_simple_assignment::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#14 0x4044f21b in tree_statement::eval () from /usr/lib/octave-2.1.71/liboctinterp.so
#15 0x4044f7fa in tree_statement_list::eval () from /usr/lib/octave-2.1.71/liboctinterp.so
#16 0x4036ce99 in octave_user_function::do_multi_index_op () from /usr/lib/octave-2.1.71/liboctinterp.so
#17 0x4036bd52 in octave_user_function::subsref () from /usr/lib/octave-2.1.71/liboctinterp.so
#18 0x40342a09 in octave_value::subsref () from /usr/lib/octave-2.1.71/liboctinterp.so
#19 0x40430b4d in tree_index_expression::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#20 0x40430de6 in tree_index_expression::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#21 0x4041a4af in tree_simple_assignment::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#22 0x40419ebe in tree_simple_assignment::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#23 0x4044f21b in tree_statement::eval () from /usr/lib/octave-2.1.71/liboctinterp.so
#24 0x4044f7fa in tree_statement_list::eval () from /usr/lib/octave-2.1.71/liboctinterp.so
#25 0x402abd01 in main_loop () from /usr/lib/octave-2.1.71/liboctinterp.so
#26 0x405e31a5 in octave_main () from /usr/lib/octave-2.1.71/liboctinterp.so
#27 0x0804865b in main ()
(gdb) x/4i $eip
0x41709b50 <fftw_taint+16>:     cmovne %edx,%eax
0x41709b53 <fftw_taint+19>:     ret
0x41709b54 <fftw_taint+20>:     lea    0x0(%esi),%esi
0x41709b5a <fftw_taint+26>:     lea    0x0(%edi),%edi
(gdb) disassemble fftw_taint
Dump of assembler code for function fftw_taint:
0x41709b40 <fftw_taint+0>:      push   %ebp
0x41709b41 <fftw_taint+1>:      mov    %esp,%ebp
0x41709b43 <fftw_taint+3>:      mov    0x8(%ebp),%eax
0x41709b46 <fftw_taint+6>:      mov    %eax,%edx
0x41709b48 <fftw_taint+8>:      or     $0x3,%edx
0x41709b4b <fftw_taint+11>:     testb  $0x1,0xc(%ebp)
0x41709b4f <fftw_taint+15>:     pop    %ebp
0x41709b50 <fftw_taint+16>:     cmovne %edx,%eax
0x41709b53 <fftw_taint+19>:     ret
0x41709b54 <fftw_taint+20>:     lea    0x0(%esi),%esi
0x41709b5a <fftw_taint+26>:     lea    0x0(%edi),%edi
End of assembler dump.
(gdb) info register
eax            0x8f8cf70        150523760
ecx            0xbfffe358       -1073749160
edx            0x8f8cf73        150523763
ebx            0x417cf3dc       1098707932
esp            0xbfffe31c       0xbfffe31c
ebp            0xbfffe368       0xbfffe368
esi            0x1      1
edi            0x0      0
eip            0x41709b50       0x41709b50
eflags         0x202    514
cs             0x23     35
ss             0x2b     43
ds             0x2b     43
es             0x2b     43
fs             0x2b     43
gs             0x2b     43




-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i586)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.4.31dandelion2
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages octave depends on:
ii  octave2.1                     2.1.71-7   GNU Octave language for numerical 

octave recommends no packages.

-- no debconf information




More information about the Pkg-octave-devel mailing list