bugGNU Octave - Bugs: bug #31032, C++ function crashes 64 bit...

 
 

bug #31032: C++ function crashes 64 bit Octave, but not 32 bit.

Submitter:  None
Submitted:  Tue 14 Sep 2010 12:31:14 PM UTC
   
 
Category:  None Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Segfault, Bus Error, etc.
Status:  Works For Me Assigned to:  None
Originator Name:  Originator Email:  -email is unavailable-
Open/Closed:  * Closed Release:  * 3.2.4
Operating System:  * GNU/Linux Fixed Release:  None
Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Thu 16 Sep 2010 06:12:55 PM UTC, comment #3: 

In that case, I'm closing this report because I suspect that the problem is some kind of compiler/library mismatch between the compiled .oct files and the Octave interpreter, and not something we can fix in Octave itself.

John W. Eaton <jwe>
Group administrator
Thu 16 Sep 2010 12:17:22 PM UTC, comment #2: 

I can reproduce the problem on Ubuntu 32 bit Octave 3.2.3 and Fedora 64 bit 3.2.4, both fresh installs from the official packages, so it is not a 64 bit problem as I thought.

The simplest test is just running the 'hzeta' function, which will lead to a crash.

The problem seems to be gone in the latest development sources, I can't reproduce it with compiled sources on the same machines.

Peter Søndergaard <psoenderg>
Tue 14 Sep 2010 04:38:05 PM UTC, comment #1: 

I can't reproduce this problem on an AMD 64 system running Debian and using the Debian packaged version of Octave 3.2.4.

Did you compile Octave yourself?  If so, what configure arguments did you use?

If not, then maybe you should report the problem to the people who packaged Octave?

It would also be helpful to know whether anyone else using Fedora on a 64-bit system duplicate this problem.

John W. Eaton <jwe>
Group administrator
Tue 14 Sep 2010 12:31:14 PM UTC, original submission:  

The following code is a stripped down example "test64.cc":

#include <octave/oct.h>

DEFUN_DLD (test64, args, ,
  "\n")
{

  const int    L      = args(0).int_value();

  Matrix g(L,1);

  return octave_value (g);
}

I compile using "mkoctfile test64.cc"

On 32 bit Linux (Ubuntu with Octave 3.2.3) this works perfectly fine, "test64(20)" return a vector of random garbage, and up until know this code has always worked.

It also workd on Octave 3.2.4 on WinXP.

On 64 bit Fedora, Octave 3.2.4 I get an immidiate crash:

[peter@pspc ~]$ octave --no-init-file
GNU Octave, version 3.2.4
Copyright (C) 2009 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type `warranty'.

Octave was configured for "x86_64-redhat-linux-gnu".

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@octave.org> (but first, please read
http://www.octave.org/bugs.html to learn how to write a helpful report).

For information about changes from previous versions, type `news'.

warning: mark_as_command is obsolete and will be removed from a future version of Octave
octave:1> test64(20)
* glibc detected * octave: free(): invalid pointer: 0x00007f905f518f30 *
======= Backtrace: =========
/lib64/libc.so.6[0x34ca675676]
/usr/lib64/octave-3.2.4/liboctinterp.so(_ZN21tree_index_expression7rvalue1Ei+0x9e)[0x7f905ed1db7e]
/usr/lib64/octave-3.2.4/liboctinterp.so(_ZN14tree_evaluator15visit_statementER14tree_statement+0x106)[0x7f905ed11636]
/usr/lib64/octave-3.2.4/liboctinterp.so(_ZN14tree_evaluator20visit_statement_listER19tree_statement_list+0x58)[0x7f905ed0e658]
/usr/lib64/octave-3.2.4/liboctinterp.so(_Z9main_loopv+0x14e)[0x7f905eb42bce]
/usr/lib64/octave-3.2.4/liboctinterp.so(octave_main+0xf37)[0x7f905ead8367]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x34ca61ec5d]
octave[0x4007f9]
======= Memory map: ========
00400000-00401000 r-xp 00000000 fd:00 270192                             /usr/bin/octave-3.2.4
00600000-00601000 rw-p 00000000 fd:00 270192                             /usr/bin/octave-3.2.4
0189a000-02073000 rw-p 00000000 00:00 0                                  [heap]
34ca000000-34ca01e000 r-xp 00000000 fd:00 418                            /lib64/ld-2.12.so
34ca21e000-34ca21f000 r--p 0001e000 fd:00 418                            /lib64/ld-2.12.so
34ca21f000-34ca220000 rw-p 0001f000 fd:00 418                            /lib64/ld-2.12.so
34ca220000-34ca221000 rw-p 00000000 00:00 0
34ca400000-34ca401000 r-xp 00000000 fd:00 298019                         /usr/lib64/nvidia/tls/libnvidia-tls.so.195.36.31
34ca401000-34ca501000 ---p 00001000 fd:00 298019                         /usr/lib64/nvidia/tls/libnvidia-tls.so.195.36.31
34ca501000-34ca502000 rw-p 00001000 fd:00 298019                         /usr/lib64/nvidia/tls/libnvidia-tls.so.195.36.31
34ca600000-34ca775000 r-xp 00000000 fd:00 1496                           /lib64/libc-2.12.so
34ca775000-34ca975000 ---p 00175000 fd:00 1496                           /lib64/libc-2.12.so
34ca975000-34ca979000 r--p 00175000 fd:00 1496                           /lib64/libc-2.12.so
34ca979000-34ca97a000 rw-p 00179000 fd:00 1496                           /lib64/libc-2.12.so
34ca97a000-34ca97f000 rw-p 00000000 00:00 0
34caa00000-34caa83000 r-xp 00000000 fd:00 2465                           /lib64/libm-2.12.so
34caa83000-34cac82000 ---p 00083000 fd:00 2465                           /lib64/libm-2.12.so
34cac82000-34cac83000 r--p 00082000 fd:00 2465                           /lib64/libm-2.12.so
34cac83000-34cac84000 rw-p 00083000 fd:00 2465                           /lib64/libm-2.12.so
34cae00000-34cae17000 r-xp 00000000 fd:00 1533                           /lib64/libpthread-2.12.so
34cae17000-34cb016000 ---p 00017000 fd:00 1533                           /lib64/libpthread-2.12.so
34cb016000-34cb017000 r--p 00016000 fd:00 1533                           /lib64/libpthread-2.12.so
34cb017000-34cb018000 rw-p 00017000 fd:00 1533                           /lib64/libpthread-2.12.so
34cb018000-34cb01c000 rw-p 00000000 00:00 0
34cb200000-34cb2f8000 r-xp 00000000 fd:00 272739                         /usr/lib64/libfftw3.so.3.2.4
34cb2f8000-34cb4f7000 ---p 000f8000 fd:00 272739                         /usr/lib64/libfftw3.so.3.2.4
34cb4f7000-34cb4fe000 rw-p 000f7000 fd:00 272739                         /usr/lib64/libfftw3.so.3.2.4
34cb600000-34cb615000 r-xp 00000000 fd:00 2571                           /lib64/libz.so.1.2.3
34cb615000-34cb814000 ---p 00015000 fd:00 2571                           /lib64/libz.so.1.2.3
34cb814000-34cb815000 rw-p 00014000 fd:00 2571                           /lib64/libz.so.1.2.3
34cd600000-34cd61b000 r-xp 00000000 fd:00 301694                         /usr/lib64/libxcb.so.1.1.0
34cd61b000-34cd81a000 ---p 0001b000 fd:00 301694                         /usr/lib64/libxcb.so.1.1.0
34cd81a000-34cd81b000 rw-p 0001a000 fd:00 301694                         /usr/lib64/libxcb.so.1.1.0
34cda00000-34cdb39000 r-xp 00000000 fd:00 301697                         /usr/lib64/libX11.so.6.3.0
34cdb39000-34cdd39000 ---p 00139000 fd:00 301697                         /usr/lib64/libX11.so.6.3.0
34cdd39000-34cdd3f000 rw-p 00139000 fd:00 301697                         /usr/lib64/libX11.so.6.3.0
34cde00000-34cde02000 r-xp 00000000 fd:00 301693                         /usr/lib64/libXau.so.6.0.0
34cde02000-34ce002000 ---p 00002000 fd:00 301693                         /usr/lib64/libXau.so.6.0.0
34ce002000-34ce003000 rw-p 00002000 fd:00 301693                         /usr/lib64/libXau.so.6.0.0
34cee00000-34cee97000 r-xp 00000000 fd:00 301685                         /usr/lib64/libfreetype.so.6.3.22
34cee97000-34cf096000 ---p 00097000 fd:00 301685                         /usr/lib64/libfreetype.so.6.3.22
34cf096000-34cf09c000 rw-p 00096000 fd:00 301685                         /usr/lib64/libfreetype.so.6.3.22
34cf200000-34cf23b000 r-xp 00000000 fd:00 2000                           /lib64/libreadline.so.6.1
34cf23b000-34cf43b000 ---p 0003b000 fd:00 2000                           /lib64/libreadline.so.6.1
34cf43b000-34cf443000 rw-p 0003b000 fd:00 2000                           /lib64/libreadline.so.6.1
34cf443000-34cf444000 rw-p 00000000 00:00 0
34d4600000-34d4616000 r-xp 00000000 fd:00 1903                           /lib64/libgcc_s-4.4.4-20100630.so.1
34d4616000-34d4815000 ---p 00016000 fd:00 1903                           /lib64/libgcc_s-4.4.4-20100630.so.1
34d4815000-34d4816000 rw-p 00015000 fd:00 1903                           /lib64/libgcc_s-4.4.4-20100630.so.1
34d5200000-34d52e9000 r-xp 00000000 fd:00 265856                         /usr/lib64/libstdc++.so.6.0.13
34d52e9000-34d54e9000 ---p 000e9000 fd:00 265856                         /usr/lib64/libstdc++.so.6.0.13
34d54e9000-34d54f0000 r--p 000e9000 fd:00 265856                         /usr/lib64/libstdc++.so.6.0.13
34d54f0000-34d54f2000 rw-p 000f0000 fd:00 265856                         /usr/lib64/libstdc++.so.6.0.13
34d54f2000-34d5507000 rw-p 00000000 00:00 0
34d8200000-34d8222000 r-xp 00000000 fd:00 2985                           /lib64/libncurses.so.5.7
34d8222000-34d8422000 ---p 00022000 fd:00 2985                           /lib64/libncurses.so.5.7
34d8422000-34d8423000 rw-p 00022000 fd:00 2985                           /lib64/libncurses.so.5.7
34d9600000-34d962d000 r-xp 00000000 fd:00 1974                           /lib64/libpcre.so.0.0.1
34d962d000-34d982c000 ---p 0002d000 fd:00 1974                           /lib64/libpcre.so.0.0.1
34d982c000-34d982d000 rw-p 0002c000 fd:00 1974                           /lib64/libpcre.so.0.0.1
34dae00000-34dae24000 r-xp 00000000 fd:00 2611                           /lib64/libtinfo.so.5.7
34dae24000-34db023000 ---p 00024000 fd:00 2611                           /lib64/libtinfo.so.5.7
34db023000-34db028000 rw-p 00023000 fd:00 2611                           /lib64/libtinfo.so.5.7
34e6800000-34e7c58000 r-xp 00000000 fd:00 269764                         /usr/lib64/nvidia/libGLcore.so.195.36.31panic: Aborted -- stopping myself...
attempting to save variables to `octave-core'...
* glibc detected * octave: free(): invalid pointer: 0x00007f905f518f30 *
======= Backtrace: =========
/lib64/libc.so.6[0x34ca675676]
/usr/lib64/octave-3.2.4/liboctinterp.so(+0x4020fc)[0x7f905ea230fc]
/usr/lib64/octave-3.2.4/liboctinterp.so(_Z16dump_octave_corev+0x20b)[0x7f905ea23c3b]
/usr/lib64/octave-3.2.4/liboctinterp.so(+0x4ef92b)[0x7f905eb1092b]
/lib64/libpthread.so.0[0x34cae0f440]
/lib64/libc.so.6(gsignal+0x35)[0x34ca6329a5]
/lib64/libc.so.6(abort+0x175)[0x34ca634185]
/lib64/libc.so.6[0x34ca66fd5b]
/lib64/libc.so.6[0x34ca675676]
/usr/lib64/octave-3.2.4/liboctinterp.so(_ZN21tree_index_expression7rvalue1Ei+0x9e)[0x7f905ed1db7e]
/usr/lib64/octave-3.2.4/liboctinterp.so(_ZN14tree_evaluator15visit_statementER14tree_statement+0x106)[0x7f905ed11636]
/usr/lib64/octave-3.2.4/liboctinterp.so(_ZN14tree_evaluator20visit_statement_listER19tree_statement_list+0x58)[0x7f905ed0e658]
/usr/lib64/octave-3.2.4/liboctinterp.so(_Z9main_loopv+0x14e)[0x7f905eb42bce]
/usr/lib64/octave-3.2.4/liboctinterp.so(octave_main+0xf37)[0x7f905ead8367]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x34ca61ec5d]
octave[0x4007f9]
======= Memory map: ========
00400000-00401000 r-xp 00000000 fd:00 270192                             /usr/bin/octave-3.2.4
00600000-00601000 rw-p 00000000 fd:00 270192                             /usr/bin/octave-3.2.4
0189a000-02073000 rw-p 00000000 00:00 0                                  [heap]
34ca000000-34ca01e000 r-xp 00000000 fd:00 418                            /lib64/ld-2.12.so
34ca21e000-34ca21f000 r--p 0001e000 fd:00 418                            /lib64/ld-2.12.so
34ca21f000-34ca220000 rw-p 0001f000 fd:00 418                            /lib64/ld-2.12.so
34ca220000-34ca221000 rw-p 00000000 00:00 0
34ca400000-34ca401000 r-xp 00000000 fd:00 298019                         /usr/lib64/nvidia/tls/libnvidia-tls.so.195.36.31
34ca401000-34ca501000 ---p 00001000 fd:00 298019                         /usr/lib64/nvidia/tls/libnvidia-tls.so.195.36.31
34ca501000-34ca502000 rw-p 00001000 fd:00 298019                         /usr/lib64/nvidia/tls/libnvidia-tls.so.195.36.31
34ca600000-34ca775000 r-xp 00000000 fd:00 1496                           /lib64/libc-2.12.so
34ca775000-34ca975000 ---p 00175000 fd:00 1496                           /lib64/libc-2.12.so
34ca975000-34ca979000 r--p 00175000 fd:00 1496                           /lib64/libc-2.12.so
34ca979000-34ca97a000 rw-p 00179000 fd:00 1496                           /lib64/libc-2.12.so
34ca97a000-34ca97f000 rw-p 00000000 00:00 0
34caa00000-34caa83000 r-xp 00000000 fd:00 2465                           /lib64/libm-2.12.so
34caa83000-34cac82000 ---p 00083000 fd:00 2465                           /lib64/libm-2.12.so
34cac82000-34cac83000 r--p 00082000 fd:00 2465                           /lib64/libm-2.12.so
34cac83000-34cac84000 rw-p 00083000 fd:00 2465                           /lib64/libm-2.12.so
34cae00000-34cae17000 r-xp 00000000 fd:00 1533                           /lib64/libpthread-2.12.so
34cae17000-34cb016000 ---p 00017000 fd:00 1533                           /lib64/libpthread-2.12.so
34cb016000-34cb017000 r--p 00016000 fd:00 1533                           /lib64/libpthread-2.12.so
34cb017000-34cb018000 rw-p 00017000 fd:00 1533                           /lib64/libpthread-2.12.so
34cb018000-34cb01c000 rw-p 00000000 00:00 0
34cb200000-34cb2f8000 r-xp 00000000 fd:00 272739                         /usr/lib64/libfftw3.so.3.2.4
34cb2f8000-34cb4f7000 ---p 000f8000 fd:00 272739                         /usr/lib64/libfftw3.so.3.2.4
34cb4f7000-34cb4fe000 rw-p 000f7000 fd:00 272739                         /usr/lib64/libfftw3.so.3.2.4
34cb600000-34cb615000 r-xp 00000000 fd:00 2571                           /lib64/libz.so.1.2.3
34cb615000-34cb814000 ---p 00015000 fd:00 2571                           /lib64/libz.so.1.2.3
34cb814000-34cb815000 rw-p 00014000 fd:00 2571                           /lib64/libz.so.1.2.3
34cd600000-34cd61b000 r-xp 00000000 fd:00 301694                         /usr/lib64/libxcb.so.1.1.0
34cd61b000-34cd81a000 ---p 0001b000 fd:00 301694                         /usr/lib64/libxcb.so.1.1.0
34cd81a000-34cd81b000 rw-p 0001a000 fd:00 301694                         /usr/lib64/libxcb.so.1.1.0
34cda00000-34cdb39000 r-xp 00000000 fd:00 301697                         /usr/lib64/libX11.so.6.3.0
34cdb39000-34cdd39000 ---p 00139000 fd:00 301697                         /usr/lib64/libX11.so.6.3.0
34cdd39000-34cdd3f000 rw-p 00139000 fd:00 301697                         /usr/lib64/libX11.so.6.3.0
34cde00000-34cde02000 r-xp 00000000 fd:00 301693                         /usr/lib64/libXau.so.6.0.0
34cde02000-34ce002000 ---p 00002000 fd:00 301693                         /usr/lib64/libXau.so.6.0.0
34ce002000-34ce003000 rw-p 00002000 fd:00 301693                         /usr/lib64/libXau.so.6.0.0
34cee00000-34cee97000 r-xp 00000000 fd:00 301685                         /usr/lib64/libfreetype.so.6.3.22
34cee97000-34cf096000 ---p 00097000 fd:00 301685                         /usr/lib64/libfreetype.so.6.3.22
34cf096000-34cf09c000 rw-p 00096000 fd:00 301685                         /usr/lib64/libfreetype.so.6.3.22
34cf200000-34cf23b000 r-xp 00000000 fd:00 2000                           /lib64/libreadline.so.6.1
34cf23b000-34cf43b000 ---p 0003b000 fd:00 2000                           /lib64/libreadline.so.6.1
34cf43b000-34cf443000 rw-p 0003b000 fd:00 2000                           /lib64/libreadline.so.6.1
34cf443000-34cf444000 rw-p 00000000 00:00 0
34d4600000-34d4616000 r-xp 00000000 fd:00 1903                           /lib64/libgcc_s-4.4.4-20100630.so.1
34d4616000-34d4815000 ---p 00016000 fd:00 1903                           /lib64/libgcc_s-4.4.4-20100630.so.1
34d4815000-34d4816000 rw-p 00015000 fd:00 1903                           /lib64/libgcc_s-4.4.4-20100630.so.1
34d5200000-34d52e9000 r-xp 00000000 fd:00 265856                         /usr/lib64/libstdc++.so.6.0.13
34d52e9000-34d54e9000 ---p 000e9000 fd:00 265856                         /usr/lib64/libstdc++.so.6.0.13
34d54e9000-34d54f0000 r--p 000e9000 fd:00 265856                         /usr/lib64/libstdc++.so.6.0.13
34d54f0000-34d54f2000 rw-p 000f0000 fd:00 265856                         /usr/lib64/libstdc++.so.6.0.13
34d54f2000-34d5507000 rw-p 00000000 00:00 0
34d8200000-34d8222000 r-xp 00000000 fd:00 2985                           /lib64/libncurses.so.5.7
34d8222000-34d8422000 ---p 00022000 fd:00 2985                           /lib64/libncurses.so.5.7
34d8422000-34d8423000 rw-p 00022000 fd:00 2985                           /lib64/libncurses.so.5.7
34d9600000-34d962d000 r-xp 00000000 fd:00 1974                           /lib64/libpcre.so.0.0.1
34d962d000-34d982c000 ---p 0002d000 fd:00 1974                           /lib64/libpcre.so.0.0.1
34d982c000-34d982d000 rw-p 0002c000 fd:00 1974                           /lib64/libpcre.so.0.0.1
34dae00000-34dae24000 r-xp 00000000 fd:00 2611                           /lib64/libtinfo.so.5.7
34dae24000-34db023000 ---p 00024000 fd:00 2611                           /lib64/libtinfo.so.5.7
34db023000-34db028000 rw-p 00023000 fd:00 2611                           /lib64/libtinfo.so.5.7
34e6800000-34e7c58000 r-xp 00000000 fd:00 269764                         /usr/lib64/nvidia/libGLcore.so.195.36.31panic: attempted clean up apparently failed -- aborting...
Afbrudt (SIGABRT) (core dumped)

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by psoenderg (Posted a comment)
  • -email is unavailable- added by jwe (Posted a comment)
  • -email is unavailable- added by None (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2010-09-16 jwe Open/ClosedOpen Closed
    2010-09-14 jwe StatusNone Works For Me

    Back to the top

    Powered by Savane 3.13-caa5.
    Corresponding source code