octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #54656] Crash with signal 11 (segfault)


From: John W. Eaton
Subject: [Octave-bug-tracker] [bug #54656] Crash with signal 11 (segfault)
Date: Thu, 13 Sep 2018 10:06:27 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0

Update of bug #54656 (project octave):

                  Status:                    None => Confirmed              

    _______________________________________________________

Follow-up Comment #3:

I can confirm the crash.  After attaching gdb to the octave-gui process, it
stops with


Thread 1 "octave-gui" received signal SIGSEGV, Segmentation fault.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
>::basic_string (__str=<error reading variable: Cannot access memory at
address 0x7f82b063c92010>, this=0x7fffef508a30)
    at /usr/include/c++/8/ext/new_allocator.h:86
86            ~new_allocator() _GLIBCXX_USE_NOEXCEPT { }


Interesting bits from "thread apply all bt":


Thread 13 (Thread 0x7f82d97fd700 (LWP 25653)):
---Type <return> to continue, or q <return> to quit---
#0  clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:78
#1  0x00007f830955eca2 in create_thread (address@hidden,
address@hidden,
address@hidden,
address@hidden, 
    address@hidden) at
../sysdeps/unix/sysv/linux/createthread.c:100
#2  0x00007f83095606f3 in __pthread_create_2_1 (newthread=<optimized out>,
attr=<optimized out>, start_routine=<optimized out>, arg=<optimized out>) at
pthread_create.c:797
#3  0x00007f8306a6294a in fftw_spawn_loop () from
/usr/lib/x86_64-linux-gnu/libfftw3_threads.so.3
#4  0x00007f8306a62c26 in ?? () from
/usr/lib/x86_64-linux-gnu/libfftw3_threads.so.3
#5  0x00007f83068c6eb7 in ?? () from /usr/lib/x86_64-linux-gnu/libfftw3.so.3
#6  0x00007f830a10a2c6 in octave::fftw::fft(double const*,
std::complex<double>*, unsigned long, unsigned long, long, long) () at
/home/jwe/src/octave-stable/liboctave/numeric/oct-fftw.cc:867
#7  0x00007f8309e6205d in NDArray::fourier(int) const () at
/home/jwe/src/octave-stable/liboctave/array/dNDArray.cc:122
#8  0x00007f830b3e8f85 in do_fft(octave_value_list const&, char const*, int)
() at /home/jwe/src/octave-stable/liboctave/array/dim-vector.h:159
#9  0x00007f830b3e9819 in Ffft(octave_value_list const&, int) () at
/home/jwe/src/octave-stable/libinterp/corefcn/fft.cc:209
#10 0x00007f830b12cc4e in octave_builtin::call(octave::tree_evaluator&, int,
octave_value_list const&) () at
/home/jwe/src/octave-stable/libinterp/octave-value/ov-builtin.cc:65
#11 0x00007f830b2b0bcc in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
() at /home/jwe/src/octave-stable/libinterp/parse-tree/pt-eval.cc:1381
#12 0x00007f830b16b03e in octave::tree_evaluator::evaluate
(this=0x7f82b0000ea0, expr=0x7f82b061f3b0, nargout=<optimized out>) at
/home/jwe/src/octave-stable/libinterp/parse-tree/pt-eval.h:300
#13 0x00007f830b2af372 in
octave::tree_evaluator::visit_simple_assignment(octave::tree_simple_assignment&)
() at /home/jwe/src/octave-stable/libinterp/parse-tree/pt-eval.cc:2224
#14 0x00007f830b16b03e in octave::tree_evaluator::evaluate
(this=0x7f82b0000ea0, expr=0x7f82b061f7b0, nargout=<optimized out>) at
/home/jwe/src/octave-stable/libinterp/parse-tree/pt-eval.h:300
#15 0x00007f830b2ad22c in
octave::tree_evaluator::visit_statement(octave::tree_statement&) () at
/home/jwe/src/octave-stable/libinterp/parse-tree/pt-eval.cc:2337
#16 0x00007f830b2a3cd0 in octave::tree_statement::accept (tw=...,
this=0x7f82b061f7f0) at
/home/jwe/src/octave-stable/libinterp/parse-tree/pt-stmt.h:115
#17 octave::tree_evaluator::visit_statement_list (this=0x7f82b0000ea0,
lst=...) at /home/jwe/src/octave-stable/libinterp/parse-tree/pt-eval.cc:2406
#18 0x00007f830b2ac1f9 in octave::tree_statement_list::accept (tw=...,
this=0x7f82b061d460) at
/home/jwe/src/octave-stable/libinterp/parse-tree/pt-stmt.h:190
#19
octave::tree_evaluator::visit_simple_for_command(octave::tree_simple_for_command&)
() at /home/jwe/src/octave-stable/libinterp/parse-tree/pt-eval.cc:882
#20 0x00007f830b2ad160 in
octave::tree_evaluator::visit_statement(octave::tree_statement&) () at
/home/jwe/src/octave-stable/libinterp/parse-tree/pt-eval.cc:2315
#21 0x00007f830b2a3cd0 in octave::tree_statement::accept (tw=...,
this=0x7f82b0620460) at
/home/jwe/src/octave-stable/libinterp/parse-tree/pt-stmt.h:115
#22 octave::tree_evaluator::visit_statement_list (this=0x7f82b0000ea0,
lst=...) at /home/jwe/src/octave-stable/libinterp/parse-tree/pt-eval.cc:2406
#23 0x00007f830b200244 in octave::tree_statement_list::accept (tw=...,
this=<optimized out>) at
/home/jwe/src/octave-stable/libinterp/parse-tree/pt-stmt.h:190
#24 octave_user_script::call(octave::tree_evaluator&, int, octave_value_list
const&) () at
/home/jwe/src/octave-stable/libinterp/octave-value/ov-usr-fcn.cc:215
#25 0x00007f830b2a66b1 in
octave::tree_evaluator::visit_identifier(octave::tree_identifier&) () at
/home/jwe/src/octave-stable/libinterp/parse-tree/pt-eval.cc:1128
#26 0x00007f830b16b03e in octave::tree_evaluator::evaluate
(this=0x7f82b0000ea0, expr=0x7f82b0600bd0, nargout=<optimized out>) at
/home/jwe/src/octave-stable/libinterp/parse-tree/pt-eval.h:300
#27 0x00007f830b2ad22c in
octave::tree_evaluator::visit_statement(octave::tree_statement&) () at
/home/jwe/src/octave-stable/libinterp/parse-tree/pt-eval.cc:2337
---Type <return> to continue, or q <return> to quit---
#28 0x00007f830b2a3cd0 in octave::tree_statement::accept (tw=...,
this=0x7f82b02fc3d0) at
/home/jwe/src/octave-stable/libinterp/parse-tree/pt-stmt.h:115
#29 octave::tree_evaluator::visit_statement_list
(address@hidden, lst=...) at
/home/jwe/src/octave-stable/libinterp/parse-tree/pt-eval.cc:2406
#30 0x00007f830b573dce in octave::tree_statement_list::accept (tw=...,
this=<optimized out>) at
/home/jwe/src/octave-stable/libinterp/parse-tree/pt-stmt.h:190
#31 octave::interpreter::main_loop() () at
/home/jwe/src/octave-stable/libinterp/corefcn/interpreter.cc:995
#32 0x00007f830b5797ca in octave::interpreter::execute() () at
/home/jwe/src/octave-stable/libinterp/corefcn/interpreter.cc:717
#33 0x00007f830bbc2eeb in octave::octave_interpreter::execute() () at
/home/jwe/src/octave-stable/libgui/src/main-window.cc:128
#34 0x00007f8308215072 in QObject::event(QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#35 0x00007f8308b9f4a1 in QApplicationPrivate::notify_helper(QObject*,
QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007f8308ba6ae0 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#37 0x00007f83081eb579 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#38 0x00007f83081ee56b in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#39 0x00007f830823dc03 in ?? () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#40 0x00007f83020f4287 in g_main_context_dispatch () from
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#41 0x00007f83020f44c0 in ?? () from
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#42 0x00007f83020f454c in g_main_context_iteration () from
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007f830823d223 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#44 0x00007f83081ea24b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#45 0x00007f8308039176 in QThread::exec() () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#46 0x00007f8308042d47 in ?? () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#47 0x00007f830955ff2a in start_thread (arg=0x7f82d97fd700) at
pthread_create.c:463
#48 0x00007f830948fedf in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95


and the thread where the crash happens:


Thread 1 (Thread 0x7f82fac05b80 (LWP 25621)):
#0  std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >::basic_string (__str=<error reading variable: Cannot
access memory at address 0x7f82b063c92010>, this=0x7fffef508a30)
    at /usr/include/c++/8/ext/new_allocator.h:86
#1  octave::symbol_record::symbol_record_rep::name[abi:cxx11]() const
(this=0x7f82b063c92000) at
/home/jwe/src/octave-stable/libinterp/corefcn/symrec.h:540
#2  octave::symbol_record::name[abi:cxx11]() const (this=0x55a9b4412e1f) at
/home/jwe/src/octave-stable/libinterp/corefcn/symrec.h:576
#3  octave::workspace_model::update_table() () at
/home/jwe/src/octave-stable/libgui/src/workspace-model.cc:291
#4  0x00007f8308215072 in QObject::event(QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f8308b9f4a1 in QApplicationPrivate::notify_helper(QObject*,
QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#6  0x00007f8308ba6ae0 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7  0x00007f83081eb579 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f83081ee56b in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007f830823dc03 in ?? () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007f83020f4287 in g_main_context_dispatch () from
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007f83020f44c0 in ?? () from
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007f83020f454c in g_main_context_iteration () from
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007f830823d223 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007f82f8127e51 in ?? () from
/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#15 0x00007f83081ea24b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007f83081f23c2 in QCoreApplication::exec() () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007f830bbd25e4 in octave::gui_application::execute() () at
/home/jwe/src/octave-stable/libgui/src/octave-gui.cc:202
#18 0x000055a9b3254389 in main () at
/home/jwe/src/octave-stable/src/main-gui.cc:104
#19 0x00007f83093bab17 in __libc_start_main (main=0x55a9b3254210 <main>,
argc=9, argv=0x7fffef509988, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7fffef509978) at
../csu/libc-start.c:310
#20 0x000055a9b325464a in _start () at
/home/jwe/src/octave-stable/src/main-gui.cc:105


So, it looks like a threading problem with accessing the symbol table when the
GUI tries to update the data displayed in the workspace widget.

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?54656>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]