[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Segfault when running "make check"
From: |
PhilipNienhuis |
Subject: |
Re: Segfault when running "make check" |
Date: |
Wed, 30 Jan 2013 13:32:52 -0800 (PST) |
Julien Bect wrote
>
> Jordi Gutiérrez Hermoso-2 wrote
>> On 30 January 2013 09:19, Julien Bect <
>> julien.bect@
>> > wrote:
>>> Note that I haven't been able to run a full "make check", though (it
>>> segfaults when I reach the tests for dblquad.m, but this is not
>>> related to my patch).
>>
>> Is this a known problem? Should we diagnose it?
>>
>> - Jordi G. H.
> Yes it is known:
> https://mailman.cae.wisc.edu/pipermail/octave-maintainers/2012-December/031324.html
>
> I get this on both of my dev boxes (an old Pentium M laptop and a
> middle-aged Intel Core Duo) both with Mageia 2.
>
> More or less based on the various Java-related segfault bug reports (where
> Java actually seems unrelated) I didn't pursue much further as I'm unable
> to debug this and I figured (hoped) it would be picked up at some point.
> (Nobody did, until now.)
> Moreover, after installation Octave runs OK w/o segfaults, including
> octave-cli and octave (GUI).
>
> For me it started with a segfault in triplequad.m (see URL above).
> After pulling in and updating my local hg clone the segfault shifted to
> dblquad.m
>
> Interestingly it only crashes during ' make check', more precisely, when
> running test/fntests.m, and only with octave-cli:
>
> If I fire up Octave GUI, surf to
> <Octave_source_dir>
> /test and run fntests.m, all tests pass w/o crash.
> If I do this with octave-cli, it segfaults in dblquad.m.
> If run octave-cli or the Octave-GUI, and type 'test dblquad.m', there's no
> crash.
>
> When doing 'make check', dblquad segfaults almost immediately while trying
> ' test dblquad' takes quite a bit of time to complete.
>
> FYI:
> Linux Mageia 2
> gcc 4.6.3
>
> Obviously I'm willing to help debug this, but this will be a hard one as I
> have only an hour or so each evening and I'm not very acquainted with
> valgrind etc.
>
> To start, a gdb backtrace (from gdb octave-cli) follows below.
> I hope it is useful as Octave is being built simultaneously as I tried
> 'make check' but my tree apparently was updated but not rebuilt yet.
> The rebuild will take probably another hour, if you want I'll post a new
> backtrace with the updated build (but maybe only tomorrow)
Build ended OK
address@hidden octave]$ hg summary
parent: 15972:22ab4fe661d7 tip
After installation and running:
gdb octave
:
bt
I got essentially the same results as in earlier post (only the memory
addresses differed a little, but stack trace still 242 deep).
A run of valgrind octave-cli follows:
==========================================
address@hidden test]$ valgrind octave-cli
==24079== Memcheck, a memory error detector
==24079== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==24079== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==24079== Command: octave-cli
==24079==
GNU Octave, version 3.7.1+
Copyright (C) 2012 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 "i686-pc-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/get-involved.html
Read http://www.octave.org/bugs.html to learn how to submit bug reports.
For information about changes from previous versions, type 'news'.
octave-cli:1> pwd
ans = /home/philip/devel/octdev/octave/test
octave-cli:2> fntests
Integrated test scripts:
libinterp/corefcn/__contourc__.cc ...................... PASS 1/1
libinterp/corefcn/__dispatch__.cc ...................... PASS 1/1
libinterp/corefcn/__lin_interpn__.cc ................... PASS 1/1
libinterp/corefcn/__pchip_deriv__.cc ................... PASS 1/1
libinterp/corefcn/__qp__.cc ............................ PASS 1/1
libinterp/corefcn/besselj.cc ........................... PASS 191/191
libinterp/corefcn/betainc.cc ........................... PASS 23/23
libinterp/corefcn/bsxfun.cc ............................ PASS 73/73
libinterp/corefcn/cellfun.cc ........................... PASS 122/122
libinterp/corefcn/conv2.cc ............................. PASS 24/24
libinterp/corefcn/dassl.cc ............................. PASS 4/4
libinterp/corefcn/det.cc ............................... PASS 5/5
libinterp/corefcn/dlmread.cc ........................... PASS 20/20
libinterp/corefcn/dot.cc ............................... PASS 6/6
libinterp/corefcn/eig.cc ............................... PASS 20/20
libinterp/corefcn/fft.cc ............................... PASS 19/19
libinterp/corefcn/fft2.cc .............................. PASS 4/4
libinterp/corefcn/filter.cc ............................ PASS 14/14
libinterp/corefcn/find.cc .............................. PASS 16/16
libinterp/corefcn/gammainc.cc .......................... PASS 4/4
libinterp/corefcn/gcd.cc ............................... PASS 6/6
libinterp/corefcn/givens.cc ............................ PASS 5/5
libinterp/corefcn/hess.cc .............................. PASS 5/5
libinterp/corefcn/hex2num.cc ........................... PASS 2/2
libinterp/corefcn/inv.cc ............................... PASS 5/5
libinterp/corefcn/kron.cc .............................. PASS 6/6
libinterp/corefcn/lookup.cc ............................ PASS 20/20
libinterp/corefcn/lsode.cc ............................. PASS 5/5
libinterp/corefcn/lu.cc ................................ PASS 20/20
libinterp/corefcn/luinc.cc ............................. PASS 2/2
libinterp/corefcn/mappers.cc ........................... PASS 388/388
libinterp/corefcn/matrix_type.cc ....................... PASS 51/51
libinterp/corefcn/max.cc ............................... PASS 12/12
libinterp/corefcn/md5sum.cc ............................ PASS 2/2
libinterp/corefcn/mgorth.cc ............................ PASS 2/2
libinterp/corefcn/nproc.cc ............................. PASS 1/1
libinterp/corefcn/pinv.cc .............................. PASS 8/8
libinterp/corefcn/quad.cc .............................. PASS 8/8
libinterp/corefcn/quadcc.cc ............................ PASS 19/19
libinterp/corefcn/qz.cc ................................ PASS 4/4
libinterp/corefcn/rand.cc ..............................==24079==
Conditional jump or move depends on uninitialised value(s)
==24079== at 0x55502F3: ignpoi_ (in
/usr/local/lib/octave/3.7.1+/liboctave.so.1.0.1)
==24079== by 0x5551CB6: dignpoi_ (in
/usr/local/lib/octave/3.7.1+/liboctave.so.1.0.1)
==24079== by 0x560BB5C: octave_rand::fill(int, double*, double)
(oct-rand.cc:761)
==24079== by 0x560BC7A: octave_rand::do_nd_array(dim_vector const&,
double) (oct-rand.cc:550)
==24079==
PASS 57/57
libinterp/corefcn/rcond.cc ............................. PASS 8/8
libinterp/corefcn/regexp.cc ............................ PASS 106/106
libinterp/corefcn/schur.cc ............................. PASS 8/8
libinterp/corefcn/spparms.cc ........................... PASS 9/9
libinterp/corefcn/sqrtm.cc ............................. PASS 3/3
libinterp/corefcn/str2double.cc ........................ PASS 29/29
libinterp/corefcn/strfind.cc ........................... PASS 13/13
libinterp/corefcn/strfns.cc ............................ PASS 86/86
libinterp/corefcn/sub2ind.cc ........................... PASS 24/24
libinterp/corefcn/svd.cc ............................... PASS 18/18
libinterp/corefcn/syl.cc ............................... PASS 5/5
libinterp/corefcn/syscalls.cc .......................... PASS 1/1
libinterp/corefcn/time.cc ..............................==24079==
Conditional jump or move depends on uninitialised value(s)
==24079== at 0x5B96CD0: strftime_case_ (strftime.c:942)
==24079== by 0x5B57C4C: octave_base_tm::strftime(std::string const&)
const (oct-time.cc:183)
==24079== by 0xF: ???
==24079==
==24079== Conditional jump or move depends on uninitialised value(s)
==24079== at 0x5B96D23: strftime_case_ (strftime.c:953)
==24079==
==24079== Conditional jump or move depends on uninitialised value(s)
==24079== at 0x5B96D23: strftime_case_ (strftime.c:953)
==24079== by 0x7F: ???
==24079==
==24079== Conditional jump or move depends on uninitialised value(s)
==24079== at 0x5B96D23: strftime_case_ (strftime.c:953)
==24079== by 0x8036: ???
==24079==
==24079== Conditional jump or move depends on uninitialised value(s)
==24079== at 0x5B96D23: strftime_case_ (strftime.c:953)
==24079== by 0x803730: ???
==24079==
==24079== Conditional jump or move depends on uninitialised value(s)
==24079== at 0x5B96D23: strftime_case_ (strftime.c:953)
==24079== by 0x80373130: ???
==24079==
==24079== Conditional jump or move depends on uninitialised value(s)
==24079== at 0x5B96D47: strftime_case_ (strftime.c:959)
==24079== by 0x80373130: ???
==24079==
==24079== Conditional jump or move depends on uninitialised value(s)
==24079== at 0x40288C7: strlen (in
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==24079== by 0xF: ???
==24079==
PASS 20/20
libinterp/corefcn/tril.cc .............................. PASS 2/2
libinterp/dldfcn/__delaunayn__.cc ...................... PASS 1/1
libinterp/dldfcn/__dsearchn__.cc ....................... PASS 1/1
libinterp/dldfcn/__fltk_uigetfile__.cc ................. PASS 1/1
libinterp/dldfcn/__glpk__.cc ........................... PASS 1/1
libinterp/dldfcn/__magick_read__.cc .................... PASS 4/4
libinterp/dldfcn/__voronoi__.cc ........................ PASS 1/1
libinterp/dldfcn/chol.cc ............................... PASS 29/29
libinterp/dldfcn/convhulln.cc .......................... PASS 4/4
libinterp/dldfcn/dmperm.cc ............................. PASS 5/5
libinterp/dldfcn/eigs.cc ............................... PASS 149/149
libinterp/dldfcn/fftw.cc ............................... PASS 4/4
libinterp/dldfcn/qr.cc ................................. PASS 48/48
libinterp/dldfcn/tsearch.cc ............................ PASS 6/6
libinterp/interp-core/oct-map.cc ....................... PASS 8/8
libinterp/interp-core/pt-jit.cc ........................==24079== Invalid
read of size 4
==24079== at 0xDC1E449: ???
==24079== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==24079==
vex x86->IR: unhandled instruction bytes: 0xDF 0xC9 0xD 0xEC
==24079== valgrind: Unrecognised instruction at address 0xdc1e449.
==24079== at 0xDC1E449: ???
==24079== Your program just tried to execute an instruction that Valgrind
==24079== did not recognise. There are two possible reasons for this.
==24079== 1. Your program has a bug and erroneously jumped to a non-code
==24079== location. If you are running Memcheck and you just saw a
==24079== warning about a bad jump, it's probably your program's fault.
==24079== 2. The instruction is legitimate but Valgrind doesn't handle it,
==24079== i.e. it's Valgrind's fault. If you think this is the case or
==24079== you are not sure, please let us know and we'll try to fix it.
==24079== Either way, Valgrind will now raise a SIGILL signal which will
==24079== probably kill your program.
panic: Illegal instruction -- stopping myself...
==24079==
==24079== HEAP SUMMARY:
==24079== in use at exit: 39,131,740 bytes in 92,083 blocks
==24079== total heap usage: 33,776,298 allocs, 33,684,215 frees,
2,628,405,699 bytes allocated
==24079==
==24079== LEAK SUMMARY:
==24079== definitely lost: 116 bytes in 27 blocks
==24079== indirectly lost: 182 bytes in 7 blocks
==24079== possibly lost: 1,317,548 bytes in 29,245 blocks
==24079== still reachable: 37,813,894 bytes in 62,804 blocks
==24079== suppressed: 0 bytes in 0 blocks
==24079== Rerun with --leak-check=full to see details of leaked memory
==24079==
==24079== For counts of detected and suppressed errors, rerun with: -v
==24079== Use --track-origins=yes to see where uninitialised values come
from
==24079== ERROR SUMMARY: 26 errors from 10 contexts (suppressed: 198 from
13)
Killed
--
View this message in context:
http://octave.1599824.n4.nabble.com/Segfault-when-running-make-check-tp4649275p4649297.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.
- Re: Segfault when running "make check", (continued)
- Re: Segfault when running "make check", Jordi Gutiérrez Hermoso, 2013/01/30
- Re: Segfault when running "make check", Julien Bect, 2013/01/30
- Re: Segfault when running "make check", Michael Goffioul, 2013/01/30
- Re: Segfault when running "make check", Mike Miller, 2013/01/30
- Re: Segfault when running "make check", Julien Bect, 2013/01/30
- Re: Segfault when running "make check", Jordi Gutiérrez Hermoso, 2013/01/30
- Re: Segfault when running "make check", Julien Bect, 2013/01/30
- Re: Segfault when running "make check", Jordi Gutiérrez Hermoso, 2013/01/30
- Re: Segfault when running "make check", John W. Eaton, 2013/01/30
Re: Segfault when running "make check", PhilipNienhuis, 2013/01/30
- Re: Segfault when running "make check",
PhilipNienhuis <=
- Re: Segfault when running "make check", Mike Miller, 2013/01/31
- Re: Segfault when running "make check", Julien Bect, 2013/01/31
- Re: Segfault when running "make check", Julien Bect, 2013/01/31
- Re: Segfault when running "make check", Julien Bect, 2013/01/31
- Re: Segfault when running "make check", Mike Miller, 2013/01/31
Re: Segfault when running "make check", Michael Goffioul, 2013/01/31
Re: Segfault when running "make check", PhilipNienhuis, 2013/01/31
Re: Segfault when running "make check", Jordi Gutiérrez Hermoso, 2013/01/31
Re: Segfault when running "make check", Rik, 2013/01/30