[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #59172] Test suite segfaults with scripts/spar
From: |
Chris Gorman |
Subject: |
[Octave-bug-tracker] [bug #59172] Test suite segfaults with scripts/sparse/eigs.m |
Date: |
Wed, 23 Sep 2020 13:30:50 -0400 (EDT) |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0 |
URL:
<https://savannah.gnu.org/bugs/?59172>
Summary: Test suite segfaults with scripts/sparse/eigs.m
Project: GNU Octave
Submitted by: chrisgorman
Submitted on: Wed 23 Sep 2020 05:30:48 PM UTC
Category: Test Suite
Severity: 3 - Normal
Priority: 5 - Normal
Item Group: Segfault, Bus Error, etc.
Status: None
Assigned to: None
Originator Name: Chris Gorman
Originator Email:
Open/Closed: Open
Release: dev
Discussion Lock: Any
Operating System: GNU/Linux
_______________________________________________________
Details:
Hello,
I have just built octave, HG ID ec9efcc717cc, and am getting segfault when I
try to run scripts/sparse/eigs.m I have looked at it under gdb and it is
related to QThread. Here is what gdb has to say.
chris [ ~/temp ]$ gdb --args octave --eval "test
/sources/octave/octave-blas64-builder/octave/scripts/sparse/eigs.m"
GNU gdb (GDB) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from octave...
(gdb) run
Starting program: /opt/octave-devel/bin/octave --eval test\
/sources/octave/octave-blas64-builder/octave/scripts/sparse/eigs.m
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
process 30046 is executing new program:
/opt/octave-devel/libexec/octave/7.0.0/exec/x86_64-pc-linux-gnu/octave-gui
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
[New Thread 0x7fffe0ed8640 (LWP 30053)]
[New Thread 0x7fffdb5cb640 (LWP 30054)]
[New Thread 0x7fffdadb6640 (LWP 30055)]
[New Thread 0x7fffda4b6640 (LWP 30056)]
[New Thread 0x7fffd9cb5640 (LWP 30057)]
[New Thread 0x7fffd8df7640 (LWP 30058)]
Thread 5 "QThread" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffda4b6640 (LWP 30056)]
0x00007ffff516914d in dseupd_ () from /usr/lib/libarpack.so.2
(gdb) bt
#0 0x00007ffff516914d in dseupd_ () at /usr/lib/libarpack.so.2
#1 0x00007ffff5a16e82 in EigsRealSymmetricMatrix<SparseMatrix>(SparseMatrix
const&, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >, long, long, long&, Matrix&, ColumnVector&,
SparseMatrix const&, ColumnVector&, ColumnVector&, std::ostream&, double,
bool, bool, int, int) (m=
..., typ="LM", k_arg=k_arg@entry=4, p_arg=p_arg@entry=-1,
info=@0x7fffda4aa100: 4294967292, eig_vec=..., eig_val=..., _b=..., permB=...,
resid=..., os=
..., tol=<optimized out>,
tol@entry=2.2204460492503131e-16, rvec=false, cholB=false, disp=0,
maxit=300) at /usr/include/c++/10.2.0/bits/basic_string.h:2299
#2 0x00007ffff6c6cf0d in F__eigs__(octave::interpreter&, octave_value_list
const&, int) (interp=..., args=..., nargout=1)
at /usr/include/c++/10.2.0/bits/basic_string.h:907
#3 0x00007ffff6a3e0d6 in octave_builtin::execute(octave::tree_evaluator&,
int, octave_value_list const&) (this=0x7fffd0077c40, tw=..., nargout=1,
args=...)
at ../libinterp/octave-value/ov-builtin.cc:65
#4 0x00007ffff6a9b058 in octave_function::call(octave::tree_evaluator&, int,
octave_value_list const&) (this=0x7fffd0077c40, tw=..., nargout=1, args=...)
at ../libinterp/octave-value/ov-fcn.cc:57
#5 0x00007ffff6c3e3de in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
(this=0x7fffd045fb00, tw=..., nargout=1)
at ../libinterp/parse-tree/pt-idx.cc:525
#6 0x00007ffff6c146f6 in
octave::tree_multi_assignment::evaluate_n(octave::tree_evaluator&, int)
(this=0x7fffda4aafa0, tw=...)
--Type <RET> for more, q to quit, c to continue without paging--
at ../libinterp/parse-tree/pt-assign.cc:201
#7 0x00007ffff6c1702c in
octave::tree_multi_assignment::evaluate(octave::tree_evaluator&, int)
(this=<optimized out>, tw=..., nargout=<optimized out>)
at ../libinterp/parse-tree/pt-assign.h:163
#8 0x00007ffff6c2d6d3 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(this=0x7fffd00036f8, stmt=...)
at ../libinterp/parse-tree/pt-eval.cc:3244
#9 0x00007ffff6c1f270 in
octave::tree_statement::accept(octave::tree_walker&)
(tw=..., this=0x7fffd045e7d0) at ../libinterp/parse-tree/pt-stmt.h:124
#10
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
(this=0x7fffd00036f8, lst=...) at ../libinterp/parse-tree/pt-eval.cc:3303
#11 0x00007ffff6c2d646 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(this=0x7fffd00036f8, stmt=...)
at ../libinterp/parse-tree/pt-eval.cc:3221
#12 0x00007ffff6c1f270 in
octave::tree_statement::accept(octave::tree_walker&)
(tw=..., this=0x7fffd045b170) at ../libinterp/parse-tree/pt-stmt.h:124
#13
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
(this=0x7fffd00036f8, lst=...) at ../libinterp/parse-tree/pt-eval.cc:3303
#14 0x00007ffff6c27c60 in
octave::tree_statement_list::accept(octave::tree_walker&) (tw=...,
this=0x7fffd04ec1d0) at ../libinterp/parse-tree/pt-stmt.h:201
#15 octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&)
(this=this@entry=0x7fffd00036f8, user_function=...,
nargout=nargout@entry=1, xargs=...) at
../libinterp/parse-tree/pt-eval.cc:2983
--Type <RET> for more, q to quit, c to continue without paging--
#16 0x00007ffff6b6f671 in
octave_user_function::execute(octave::tree_evaluator&, int, octave_value_list
const&)
(args=..., nargout=<optimized out>, tw=..., this=0x7fffd049da50)
at ../libinterp/octave-value/ov-usr-fcn.cc:496
#17 octave_user_function::call(octave::tree_evaluator&, int, octave_value_list
const&) (this=0x7fffd049da50, tw=..., nargout=1, args=...)
at ../libinterp/octave-value/ov-usr-fcn.cc:489
#18 0x00007ffff6c3e3de in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
(this=0x7fffd04ac310, tw=..., nargout=1)
at ../libinterp/parse-tree/pt-idx.cc:525
#19 0x00007ffff6c424cc in
octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
(this=<optimized out>, tw=..., nargout=<optimized out>)
at ../libinterp/parse-tree/pt-idx.h:109
#20 0x00007ffff6c13b1e in
octave::tree_simple_assignment::evaluate(octave::tree_evaluator&, int)
(this=0x7fffd0488bf0, tw=...)
at ../libinterp/parse-tree/pt-assign.cc:101
#21 0x00007ffff6c2d6d3 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(this=0x7fffd00036f8, stmt=...)
at ../libinterp/parse-tree/pt-eval.cc:3244
#22 0x00007ffff6c1f270 in
octave::tree_statement::accept(octave::tree_walker&)
(tw=..., this=0x7fffd0485880) at ../libinterp/parse-tree/pt-stmt.h:124
#23
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
(this=0x7fffd00036f8, lst=...) at ../libinterp/parse-tree/pt-eval.cc:3303
#24 0x00007ffff6c27c60 in
octave::tree_statement_list::accept(octave::tree_walke--Type <RET> for more, q
to quit, c to continue without paging--
r&) (tw=..., this=0x7fffd01fe190) at ../libinterp/parse-tree/pt-stmt.h:201
#25 octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&)
(this=this@entry=0x7fffd00036f8, user_function=...,
nargout=nargout@entry=7, xargs=...) at
../libinterp/parse-tree/pt-eval.cc:2983
#26 0x00007ffff6b6f671 in
octave_user_function::execute(octave::tree_evaluator&, int, octave_value_list
const&)
(args=..., nargout=<optimized out>, tw=..., this=0x7fffd047f720)
at ../libinterp/octave-value/ov-usr-fcn.cc:496
#27 octave_user_function::call(octave::tree_evaluator&, int, octave_value_list
const&) (this=0x7fffd047f720, tw=..., nargout=7, args=...)
at ../libinterp/octave-value/ov-usr-fcn.cc:489
#28 0x00007ffff6c3e3de in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
(this=0x7fffd0496260, tw=..., nargout=7)
at ../libinterp/parse-tree/pt-idx.cc:525
#29 0x00007ffff6c146f6 in
octave::tree_multi_assignment::evaluate_n(octave::tree_evaluator&, int)
(this=0x7fffda4ac750, tw=...)
at ../libinterp/parse-tree/pt-assign.cc:201
#30 0x00007ffff6c2e649 in
octave::tree_evaluator::eval_string(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool, int&, int)
(this=0x7fffd00036f8, eval_str=..., silent=false,
parse_status=@0x7fffda4acd9c: 0, nargout=0) at
../libinterp/parse-tree/pt-eval.cc:507
#31 0x00007ffff6c2e9b6 in
octave::tree_evaluator::eval(std::__cxx11::basic_strin--Type <RET> for more, q
to quit, c to continue without paging--
g<char, std::char_traits<char>, std::allocator<char> > const&, int)
(this=this@entry=0x7fffd00036f8, try_code="[ n, k, A, d0, d2, old_state,
restore_state] = __test__( n, k, A, d0, d2, old_state, restore_state);",
nargout=nargout@entry=0) at ../libinterp/parse-tree/pt-eval.cc:566
#32 0x00007ffff6fa1ae1 in
octave::interpreter::eval(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, int)
(this=this@entry=0x7fffd0002960, try_code="[ n, k, A, d0, d2, old_state,
restore_state] = __test__( n, k, A, d0, d2, old_state, restore_state);",
nargout=nargout@entry=0) at ../libinterp/corefcn/interpreter.cc:1491
#33 0x00007ffff6bf75a1 in Feval(octave::interpreter&, octave_value_list
const&, int) (interp=..., args=..., nargout=0)
at ../libinterp/parse-tree/oct-parse.yy:5622
#34 0x00007ffff6a3e0d6 in octave_builtin::execute(octave::tree_evaluator&,
int, octave_value_list const&) (this=0x7fffd0017d00, tw=..., nargout=0,
args=...)
at ../libinterp/octave-value/ov-builtin.cc:65
#35 0x00007ffff6a9b058 in octave_function::call(octave::tree_evaluator&, int,
octave_value_list const&) (this=0x7fffd0017d00, tw=..., nargout=0, args=...)
at ../libinterp/octave-value/ov-fcn.cc:57
#36 0x00007ffff6c3e3de in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
(this=0x7fffd049f460, tw=..., nargout=0)
at ../libinterp/parse-tree/pt-idx.cc:525
#37 0x00007ffff6c424cc in
octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
(this=<optimized out>, tw=..., nargout=<optimized out>)
at ../libinterp/parse-tree/pt-idx.h:109
--Type <RET> for more, q to quit, c to continue without paging--
#38 0x00007ffff6c2d6d3 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(this=0x7fffd00036f8, stmt=...)
at ../libinterp/parse-tree/pt-eval.cc:3244
#39 0x00007ffff6c1f270 in
octave::tree_statement::accept(octave::tree_walker&)
(tw=..., this=0x7fffd049f6b0) at ../libinterp/parse-tree/pt-stmt.h:124
#40
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
(this=0x7fffd00036f8, lst=...) at ../libinterp/parse-tree/pt-eval.cc:3303
#41 0x00007ffff6c2907a in
octave::tree_statement_list::accept(octave::tree_walker&) (tw=...,
this=0x7fffd049ea90) at ../libinterp/parse-tree/pt-stmt.h:201
#42
octave::tree_evaluator::visit_try_catch_command(octave::tree_try_catch_command&)
(this=0x7fffd00036f8, cmd=...) at ../libinterp/parse-tree/pt-eval.cc:3414
#43 0x00007ffff6c2d646 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(this=0x7fffd00036f8, stmt=...)
at ../libinterp/parse-tree/pt-eval.cc:3221
#44 0x00007ffff6c1f270 in
octave::tree_statement::accept(octave::tree_walker&)
(tw=..., this=0x7fffd04a6fd0) at ../libinterp/parse-tree/pt-stmt.h:124
#45
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
(this=0x7fffd00036f8, lst=...) at ../libinterp/parse-tree/pt-eval.cc:3303
#46 0x00007ffff6c2d646 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(this=0x7fffd00036f8, stmt=...)
at ../libinterp/parse-tree/pt-eval.cc:3221
#47 0x00007ffff6c1f270 in
octave::tree_statement::accept(octave::tree_walker&)
(tw=..., this=0x7fffd04a76a0) at ../libinterp/parse-tree/pt-stmt.h:124
#48
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
--Type <RET> for more, q to quit, c to continue without paging--
(this=0x7fffd00036f8, lst=...) at ../libinterp/parse-tree/pt-eval.cc:3303
#49 0x00007ffff6c298a7 in
octave::tree_statement_list::accept(octave::tree_walker&) (tw=...,
this=<optimized out>) at ../libinterp/parse-tree/pt-stmt.h:201
#50
octave::tree_evaluator::visit_unwind_protect_command(octave::tree_unwind_protect_command&)
(this=0x7fffd00036f8, cmd=...)
at ../libinterp/parse-tree/pt-eval.cc:3556
#51 0x00007ffff6c2d646 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(this=0x7fffd00036f8, stmt=...)
at ../libinterp/parse-tree/pt-eval.cc:3221
#52 0x00007ffff6c1f270 in
octave::tree_statement::accept(octave::tree_walker&)
(tw=..., this=0x7fffd04b30b0) at ../libinterp/parse-tree/pt-stmt.h:124
#53
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
(this=0x7fffd00036f8, lst=...) at ../libinterp/parse-tree/pt-eval.cc:3303
#54 0x00007ffff6c2cb1e in
octave::tree_statement_list::accept(octave::tree_walker&) (tw=...,
this=0x7fffd04468b0) at ../libinterp/parse-tree/pt-stmt.h:201
#55 octave::tree_evaluator::execute_range_loop<double>(octave::range<double>
const&, unsigned long, octave::octave_lvalue&, octave::tree_statement_list*)
(loop_body=0x7fffd04468b0, ult=..., line=323, rng=...,
this=0x7fffd00036f8)
at ../libinterp/parse-tree/pt-eval.cc:2521
#56
octave::tree_evaluator::visit_simple_for_command(octave::tree_simple_for_command&)
(this=0x7fffd00036f8, cmd=...)
at ../libinterp/parse-tree/pt-eval.cc:2571
#57 0x00007ffff6c2d646 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(this=0x7fffd00036f8, stmt=...)
--Type <RET> for more, q to quit, c to continue without paging--
at ../libinterp/parse-tree/pt-eval.cc:3221
#58 0x00007ffff6c1f270 in
octave::tree_statement::accept(octave::tree_walker&)
(tw=..., this=0x7fffd04b3190) at ../libinterp/parse-tree/pt-stmt.h:124
#59
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
(this=0x7fffd00036f8, lst=...) at ../libinterp/parse-tree/pt-eval.cc:3303
#60 0x00007ffff6c27c60 in
octave::tree_statement_list::accept(octave::tree_walker&) (tw=...,
this=0x7fffd02483a0) at ../libinterp/parse-tree/pt-stmt.h:201
#61 octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&)
(this=this@entry=0x7fffd00036f8, user_function=...,
nargout=nargout@entry=0, xargs=...) at
../libinterp/parse-tree/pt-eval.cc:2983
#62 0x00007ffff6b6f671 in
octave_user_function::execute(octave::tree_evaluator&, int, octave_value_list
const&)
(args=..., nargout=<optimized out>, tw=..., this=0x7fffd042b740)
at ../libinterp/octave-value/ov-usr-fcn.cc:496
#63 octave_user_function::call(octave::tree_evaluator&, int, octave_value_list
const&) (this=0x7fffd042b740, tw=..., nargout=0, args=...)
at ../libinterp/octave-value/ov-usr-fcn.cc:489
#64 0x00007ffff6c3e3de in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
(this=0x7fffd01ccc30, tw=..., nargout=0)
at ../libinterp/parse-tree/pt-idx.cc:525
#65 0x00007ffff6c2e649 in
octave::tree_evaluator::eval_string(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool, int&, int)
--Type <RET> for more, q to quit, c to continue without paging--
(this=this@entry=0x7fffd00036f8, eval_str="test
/sources/octave/octave-blas64-builder/octave/scripts/sparse/eigs.m",
silent=silent@entry=false, parse_status=@0x7fffda4ae31c: 0,
nargout=nargout@entry=0)
at ../libinterp/parse-tree/pt-eval.cc:507
#66 0x00007ffff6fa1a84 in
octave::interpreter::eval_string(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool, int&, int)
(this=this@entry=0x7fffd0002960, eval_str="test
/sources/octave/octave-blas64-builder/octave/scripts/sparse/eigs.m",
silent=silent@entry=false, parse_status=@0x7fffda4ae31c: 0,
nargout=nargout@entry=0)
at ../libinterp/corefcn/interpreter.cc:1472
#67 0x00007ffff6fa68af in octave::interpreter::execute_eval_option_code()
(this=0x7fffd0002960) at ../libinterp/corefcn/interpreter.cc:1144
#68 0x00007ffff6fa9c40 in octave::interpreter::execute()
(this=this@entry=0x7fffd0002960) at
../libinterp/corefcn/interpreter.cc:779
#69 0x00007ffff7719b9a in octave::interpreter_qobject::execute()
(this=0x715b00) at ../libgui/src/interpreter-qobject.cc:87
#70 0x00007ffff36ab721 in QObject::event(QEvent*) ()
at /opt/qt5/lib/libQt5Core.so.5
#71 0x00007ffff41251cf in QApplicationPrivate::notify_helper(QObject*,
QEvent*)
() at /opt/qt5/lib/libQt5Widgets.so.5
#72 0x00007ffff77558c4 in octave::octave_qapplication::notify(QObject*,
QEvent*) (this=0x504dd0, receiver=<optimized out>, ev=<optimized out>)
at ../libgui/src/octave-qobject.cc:132
--Type <RET> for more, q to quit, c to continue without paging--
#73 0x00007ffff36811ca in QCoreApplication::notifyInternal2(QObject*,
QEvent*)
() at /opt/qt5/lib/libQt5Core.so.5
#74 0x00007ffff3683971 in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) () at /opt/qt5/lib/libQt5Core.so.5
#75 0x00007ffff36d5903 in () at /opt/qt5/lib/libQt5Core.so.5
#76 0x00007fffef360abb in g_main_dispatch (context=0x7fffd0000c20)
at ../glib/gmain.c:3309
#77 g_main_context_dispatch (context=0x7fffd0000c20) at ../glib/gmain.c:3974
#78 0x00007fffef360d38 in g_main_context_iterate
(context=context@entry=0x7fffd0000c20, block=block@entry=1,
dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4047
#79 0x00007fffef360ddf in g_main_context_iteration
(context=0x7fffd0000c20, may_block=1) at ../glib/gmain.c:4108
#80 0x00007ffff36d4fef in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
at /opt/qt5/lib/libQt5Core.so.5
#81 0x00007ffff367fd0b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at
/opt/qt5/lib/libQt5Core.so.5
#82 0x00007ffff34a62fe in QThread::exec() () at /opt/qt5/lib/libQt5Core.so.5
#83 0x00007ffff34a7301 in () at /opt/qt5/lib/libQt5Core.so.5
#84 0x00007ffff1d33eae in start_thread (arg=0x7fffda4b6640)
at pthread_create.c:463
#85 0x00007ffff1c6031f in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb)
It's probably unrelated, but I got a build error making arpack-ng due to
gcc-10. I had to pass -fallow-argument-mismatch to get it built.
Thanks
Chris
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?59172>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
- [Octave-bug-tracker] [bug #59172] Test suite segfaults with scripts/sparse/eigs.m,
Chris Gorman <=