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

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

[Octave-bug-tracker] [bug #63752] experimental-terminal-widget crashes O


From: Dmitri A. Sergatskov
Subject: [Octave-bug-tracker] [bug #63752] experimental-terminal-widget crashes Octave
Date: Tue, 7 Mar 2023 17:17:04 -0500 (EST)

Follow-up Comment #13, bug #63752 (project octave):

Sorry. Fixed all those:

   HG ID for this build is "129e5fc5372b"

make[2]: Leaving directory '/home/dima/src/octave/gcc_tsan'
make[1]: Leaving directory '/home/dima/src/octave/gcc_tsan'
[dima@ryzen gcc_tsan]$ TSAN_OPTIONS='ignore_noninstrumented_modules=1'
./run-octave -f --gui --experimental-terminal-widget
==================
WARNING: ThreadSanitizer: data race (pid=201467)
  Read of size 1 at 0x7ffeedfaba90 by thread T7:
    #0 octave::qt_application::gui_running() const
../libgui/src/qt-application.h:63 (liboctgui.so.9+0x31c6c8)
    #1 octave::application::is_gui_running() ../libinterp/octave.h:320
(liboctinterp.so.11+0x4e85af)
    #2 octave::F__event_manager_gui_preference__(octave::interpreter&,
octave_value_list const&, int) ../libinterp/corefcn/event-manager.cc:546
(liboctinterp.so.11+0xdbd645)
    #3 octave::tree_evaluator::execute_builtin_function(octave_builtin&, int,
octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3444
(liboctinterp.so.11+0xbf58be)
    #4 octave_builtin::execute(octave::tree_evaluator&, int, octave_value_list
const&) ../libinterp/octave-value/ov-builtin.cc:49
(liboctinterp.so.11+0x9b789b)
    #5 octave_function::call(octave::tree_evaluator&, int, octave_value_list
const&) ../libinterp/octave-value/ov-fcn.cc:57 (liboctinterp.so.11+0xa37cf0)
    #6 octave::interpreter::feval(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, octave_value_list
const&, int) ../libinterp/corefcn/interpreter.cc:1564
(liboctinterp.so.11+0x108554e)
    #7 octave::interpreter::feval(char const*, octave_value_list const&, int)
../libinterp/corefcn/interpreter.cc:1550 (liboctinterp.so.11+0x10853d1)
    #8 octave::feval(char const*, octave_value_list const&, int)
../libinterp/parse-tree/oct-parse.yy:6289 (liboctinterp.so.11+0xba8947)
    #9 octave::input_system::mfile_encoding(octave_value_list const&, int)
../libinterp/corefcn/input.cc:532 (liboctinterp.so.11+0x106d844)
    #10 octave::F__mfile_encoding__(octave::interpreter&, octave_value_list
const&, int) ../libinterp/corefcn/input.cc:1592
(liboctinterp.so.11+0x1070e36)
    #11 operator() ../libgui/src/main-window.cc:2774
(liboctgui.so.9+0x2c6042)
    #12 __invoke_impl<void, octave::main_window::update_default_encoding(const
QString&)::<lambda(octave::interpreter&)>&, octave::interpreter&>
/usr/include/c++/11/bits/invoke.h:61 (liboctgui.so.9+0x2d1551)
    #13 __invoke_r<void, octave::main_window::update_default_encoding(const
QString&)::<lambda(octave::interpreter&)>&, octave::interpreter&>
/usr/include/c++/11/bits/invoke.h:111 (liboctgui.so.9+0x2cf3df)
    #14 _M_invoke /usr/include/c++/11/bits/std_function.h:290
(liboctgui.so.9+0x2cb3f1)
    #15 std::function<void
(octave::interpreter&)>::operator()(octave::interpreter&) const
/usr/include/c++/11/bits/std_function.h:590 (liboctinterp.so.11+0xdc8bb8)
    #16 void std::__invoke_impl<void, std::function<void
(octave::interpreter&)>&, octave::interpreter&>(std::__invoke_other,
std::function<void (octave::interpreter&)>&, octave::interpreter&)
/usr/include/c++/11/bits/invoke.h:61 (liboctinterp.so.11+0xdc8afa)
    #17 std::__invoke_result<std::function<void (octave::interpreter&)>&,
octave::interpreter&>::type std::__invoke<std::function<void
(octave::interpreter&)>&, octave::interpreter&>(std::function<void
(octave::interpreter&)>&, octave::interpreter&)
/usr/include/c++/11/bits/invoke.h:96 (liboctinterp.so.11+0xdc8a17)
    #18 void std::_Bind<std::function<void (octave::interpreter&)>
(std::reference_wrapper<octave::interpreter>)>::__call<void, ,
0ul>(std::tuple<>&&, std::_Index_tuple<0ul>)
/usr/include/c++/11/functional:420 (liboctinterp.so.11+0xdc893c)
    #19 void std::_Bind<std::function<void (octave::interpreter&)>
(std::reference_wrapper<octave::interpreter>)>::operator()<, void>()
/usr/include/c++/11/functional:503 (liboctinterp.so.11+0xdc88c6)
    #20 void std::__invoke_impl<void, std::_Bind<std::function<void
(octave::interpreter&)>
(std::reference_wrapper<octave::interpreter>)>&>(std::__invoke_other,
std::_Bind<std::function<void (octave::interpreter&)>
(std::reference_wrapper<octave::interpreter>)>&)
/usr/include/c++/11/bits/invoke.h:61 (liboctinterp.so.11+0xdc8873)
    #21 std::__invoke_result<std::_Bind<std::function<void
(octave::interpreter&)> (std::reference_wrapper<octave::interpreter>)>&>::type
std::__invoke<std::_Bind<std::function<void (octave::interpreter&)>
(std::reference_wrapper<octave::interpreter>)>&>(std::_Bind<std::function<void
(octave::interpreter&)> (std::reference_wrapper<octave::interpreter>)>&)
/usr/include/c++/11/bits/invoke.h:96 (liboctinterp.so.11+0xdc86c4)
    #22 void std::_Bind<std::_Bind<std::function<void (octave::interpreter&)>
(std::reference_wrapper<octave::interpreter>)>
()>::__call<void>(std::tuple<>&&, std::_Index_tuple<>)
/usr/include/c++/11/functional:420 (liboctinterp.so.11+0xdc8594)
    #23 void std::_Bind<std::_Bind<std::function<void (octave::interpreter&)>
(std::reference_wrapper<octave::interpreter>)> ()>::operator()<, void>()
/usr/include/c++/11/functional:503 (liboctinterp.so.11+0xdc82be)
    #24 void std::__invoke_impl<void, std::_Bind<std::_Bind<std::function<void
(octave::interpreter&)> (std::reference_wrapper<octave::interpreter>)>
()>&>(std::__invoke_other, std::_Bind<std::_Bind<std::function<void
(octave::interpreter&)> (std::reference_wrapper<octave::interpreter>)> ()>&)
/usr/include/c++/11/bits/invoke.h:61 (liboctinterp.so.11+0xdc7c4d)
    #25 std::enable_if<is_invocable_r_v<void,
std::_Bind<std::_Bind<std::function<void (octave::interpreter&)>
(std::reference_wrapper<octave::interpreter>)> ()>&>, void>::type
std::__invoke_r<void, std::_Bind<std::_Bind<std::function<void
(octave::interpreter&)> (std::reference_wrapper<octave::interpreter>)>
()>&>(std::_Bind<std::_Bind<std::function<void (octave::interpreter&)>
(std::reference_wrapper<octave::interpreter>)> ()>&)
/usr/include/c++/11/bits/invoke.h:111 (liboctinterp.so.11+0xdc6ecd)
    #26 std::_Function_handler<void (),
std::_Bind<std::_Bind<std::function<void (octave::interpreter&)>
(std::reference_wrapper<octave::interpreter>)> ()> >::_M_invoke(std::_Any_data
const&) /usr/include/c++/11/bits/std_function.h:290
(liboctinterp.so.11+0xdc577c)
    #27 std::function<void ()>::operator()() const
/usr/include/c++/11/bits/std_function.h:590 (liboctinterp.so.11+0x94ac34)
    #28 octave::action_container::fcn_elem::run()
../liboctave/util/action-container.h:82 (liboctinterp.so.11+0xc029be)
    #29 octave::event_queue::run_first() ../libinterp/corefcn/event-queue.h:63
(liboctinterp.so.11+0xdbec80)
    #30 octave::action_container::run(unsigned long)
../liboctave/util/action-container.cc:42 (liboctave.so.10+0xe4ac04)
    #31 octave::action_container::run()
../liboctave/util/action-container.h:202 (liboctinterp.so.11+0x983919)
    #32 octave::event_manager::process_events(bool)
../libinterp/corefcn/event-manager.cc:120 (liboctinterp.so.11+0xdbaaa7)
    #33 readline_event_hook ../libinterp/corefcn/event-manager.cc:53
(liboctinterp.so.11+0xdba5b0)
    #34 octave::command_editor::event_handler()
../liboctave/util/cmd-edit.cc:1174 (liboctave.so.10+0xe4d932)
    #35 octave::command_editor::run_event_hooks()
../liboctave/util/cmd-edit.cc:1583 (liboctave.so.10+0xe5004b)
    #36 octave::tree_evaluator::server_loop()
../libinterp/parse-tree/pt-eval.cc:903 (liboctinterp.so.11+0xbea4e2)
    #37 octave::interpreter::server_loop()
../libinterp/corefcn/interpreter.cc:1355 (liboctinterp.so.11+0x10846f4)
    #38 octave::interpreter::execute() ../libinterp/corefcn/interpreter.cc:900
(liboctinterp.so.11+0x107eaa5)
    #39 octave::interpreter_qobject::execute()
../libgui/src/interpreter-qobject.cc:89 (liboctgui.so.9+0x2432eb)
    #40 octave::interpreter_qobject::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) libgui/src/moc-interpreter-qobject.cc:88
(liboctgui.so.9+0x3fb9e4)
    #41 QObject::event(QEvent*) <null> (libQt5Core.so.5+0x2d1a98)
    #42 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>
(libQt5Core.so.5+0x2a7357)

  Previous write of size 1 at 0x7ffeedfaba90 by main thread:
    #0 octave::qt_application::gui_running(bool)
../libgui/src/qt-application.h:64 (liboctgui.so.9+0x31c710)
    #1 octave::base_qobject::start_gui(bool)
../libgui/src/octave-qobject.cc:794 (liboctgui.so.9+0x2fea48)
    #2 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>,
QtPrivate::List<bool>, void, void (octave::base_qobject::*)(bool)>::call(void
(octave::base_qobject::*)(bool), octave::base_qobject*, void**)
/usr/include/qt5/QtCore/qobjectdefs_impl.h:152 (liboctgui.so.9+0x30c437)
    #3 void QtPrivate::FunctionPointer<void
(octave::base_qobject::*)(bool)>::call<QtPrivate::List<bool>, void>(void
(octave::base_qobject::*)(bool), octave::base_qobject*, void**)
/usr/include/qt5/QtCore/qobjectdefs_impl.h:185 (liboctgui.so.9+0x30b917)
    #4 QtPrivate::QSlotObject<void (octave::base_qobject::*)(bool),
QtPrivate::List<bool>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*,
void**, bool*) /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
(liboctgui.so.9+0x30a28f)
    #5 QObject::event(QEvent*) <null> (libQt5Core.so.5+0x2d1a98)
    #6 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>
(libQt5Core.so.5+0x2a7357)
    #7 octave::qt_application::execute() ../libgui/src/qt-application.cc:73
(liboctgui.so.9+0x31c4ac)
    #8 main ../src/main-gui.cc:148 (lt-octave-gui+0x403730)

  As if synchronized via sleep:
    #0 nanosleep <null> (libtsan.so.0+0x67afc)
    #1 rpl_nanosleep ../../libgnu/nanosleep.c:81 (liboctave.so.10+0xecf735)
    #2 octave_nanosleep_wrapper ../liboctave/wrappers/nanosleep-wrapper.c:42
(liboctave.so.10+0xeaa700)
    #3 octave::sleep(double, bool) ../libinterp/corefcn/utils.cc:1599
(liboctinterp.so.11+0x12cd9ff)
    #4 octave::tree_evaluator::server_loop()
../libinterp/parse-tree/pt-eval.cc:907 (liboctinterp.so.11+0xbea4fd)
    #5 octave::interpreter::server_loop()
../libinterp/corefcn/interpreter.cc:1355 (liboctinterp.so.11+0x10846f4)
    #6 octave::interpreter::execute() ../libinterp/corefcn/interpreter.cc:900
(liboctinterp.so.11+0x107eaa5)
    #7 octave::interpreter_qobject::execute()
../libgui/src/interpreter-qobject.cc:89 (liboctgui.so.9+0x2432eb)
    #8 octave::interpreter_qobject::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) libgui/src/moc-interpreter-qobject.cc:88
(liboctgui.so.9+0x3fb9e4)
    #9 QObject::event(QEvent*) <null> (libQt5Core.so.5+0x2d1a98)
    #10 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>
(libQt5Core.so.5+0x2a7357)

  Location is stack of main thread.

  Location is global '<null>' at 0x000000000000 ([stack]+0x000000029a90)

  Thread T7 'QThread' (tid=201609, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x61748)
    #1 QThread::start(QThread::Priority) <null> (libQt5Core.so.5+0xe969e)
    #2 octave::base_qobject::base_qobject(octave::qt_application&, bool)
../libgui/src/octave-qobject.cc:326 (liboctgui.so.9+0x2fb77e)
    #3 octave::qt_application::execute() ../libgui/src/qt-application.cc:71
(liboctgui.so.9+0x31c49d)
    #4 main ../src/main-gui.cc:148 (lt-octave-gui+0x403730)

SUMMARY: ThreadSanitizer: data race ../libgui/src/qt-application.h:63 in
octave::qt_application::gui_running() const
==================



Dmitri.
-- 

(the warnings are on console)

On the terminal windows:


    Welcome to Octave

>> ver
----------------------------------------------------------------------
GNU Octave Version: 8.1.1 (hg id: 129e5fc5372b)
GNU Octave License: GNU General Public License
Operating System: Linux 5.14.0-283.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Feb
23 22:23:05 UTC 2023 x86_64
----------------------------------------------------------------------
no packages installed.
>> version 
ans = 8.1.1
>> sombrero
>>


It took looong time for plot sindows to pop-up, but it did.
No extra warning from TSAN.

Dmitri.
-- 



    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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