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:24:06 -0500 (EST)

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

Actually sombrero() brought some warnings:


==================
WARNING: ThreadSanitizer: data race (pid=201875)
  Write of size 8 at 0x7f1ec10e1f60 by thread T7:
    #0 std::__shared_ptr<octave::stack_frame,
(__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<octave::stack_frame,
(__gnu_cxx::_Lock_policy)2> const&)
/usr/include/c++/11/bits/shared_ptr_base.h:1152 (liboctinterp.so.11+0xa2d231)
    #1
std::shared_ptr<octave::stack_frame>::shared_ptr(std::shared_ptr<octave::stack_frame>
const&) /usr/include/c++/11/bits/shared_ptr.h:150
(liboctinterp.so.11+0xa2d28e)
    #2 octave::octave_lvalue::octave_lvalue(octave::symbol_record const&,
std::shared_ptr<octave::stack_frame> const&)
../libinterp/parse-tree/oct-lvalue.h:45 (liboctinterp.so.11+0xc256af)
    #3 octave::tree_identifier::lvalue(octave::tree_evaluator&)
../libinterp/parse-tree/pt-id.cc:74 (liboctinterp.so.11+0xc249ba)
    #4 octave::tree_decl_elt::lvalue(octave::tree_evaluator&)
../libinterp/parse-tree/pt-decl.h:79 (liboctinterp.so.11+0xc05566)
    #5
octave::tree_evaluator::define_parameter_list_from_arg_vector(octave::tree_parameter_list*,
octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:2223
(liboctinterp.so.11+0xbf046d)
    #6 octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3589
(liboctinterp.so.11+0xbf61b4)
    #7 octave_user_function::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
(liboctinterp.so.11+0xaae0af)
    #8 octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
(liboctinterp.so.11+0xaae016)
    #9 octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.cc:427 (liboctinterp.so.11+0xc28263)
    #10 octave::tree_multi_assignment::evaluate_n(octave::tree_evaluator&,
int) ../libinterp/parse-tree/pt-assign.cc:201 (liboctinterp.so.11+0xbd7f9f)
    #11 octave::tree_multi_assignment::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-assign.h:156 (liboctinterp.so.11+0xbda381)
    #12 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3941 (liboctinterp.so.11+0xbf7b79)
    #13 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #14
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #15 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #16 octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3665
(liboctinterp.so.11+0xbf6714)
    #17 octave_user_function::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
(liboctinterp.so.11+0xaae0af)
    #18 octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
(liboctinterp.so.11+0xaae016)
    #19 octave::tree_index_expression::evaluate_n(octave::tree_evaluator&,
int) ../libinterp/parse-tree/pt-idx.cc:427 (liboctinterp.so.11+0xc28263)
    #20 octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108 (liboctinterp.so.11+0xc2be53)
    #21 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3941 (liboctinterp.so.11+0xbf7b79)
    #22 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #23
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #24 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #25
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:3789 (liboctinterp.so.11+0xbf71a1)
    #26 octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:119 (liboctinterp.so.11+0xc05ae3)
    #27 octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:3767 (liboctinterp.so.11+0xbf6f65)
    #28 octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:153 (liboctinterp.so.11+0xc389e1)
    #29 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3916 (liboctinterp.so.11+0xbf7a22)
    #30 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #31
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #32 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #33 octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3665
(liboctinterp.so.11+0xbf6714)
    #34 octave_user_function::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
(liboctinterp.so.11+0xaae0af)
    #35 octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
(liboctinterp.so.11+0xaae016)
    #36 octave::tree_index_expression::evaluate_n(octave::tree_evaluator&,
int) ../libinterp/parse-tree/pt-idx.cc:427 (liboctinterp.so.11+0xc28263)
    #37 octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108 (liboctinterp.so.11+0xc2be53)
    #38 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3941 (liboctinterp.so.11+0xbf7b79)
    #39 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #40
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #41 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #42
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:3789 (liboctinterp.so.11+0xbf71a1)
    #43 octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:119 (liboctinterp.so.11+0xc05ae3)
    #44 octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:3767 (liboctinterp.so.11+0xbf6f65)
    #45 octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:153 (liboctinterp.so.11+0xc389e1)
    #46 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3916 (liboctinterp.so.11+0xbf7a22)
    #47 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #48
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #49 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #50 octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3665
(liboctinterp.so.11+0xbf6714)
    #51 octave_user_function::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
(liboctinterp.so.11+0xaae0af)
    #52 octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
(liboctinterp.so.11+0xaae016)
    #53 octave::tree_index_expression::evaluate_n(octave::tree_evaluator&,
int) ../libinterp/parse-tree/pt-idx.cc:427 (liboctinterp.so.11+0xc28263)
    #54 octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108 (liboctinterp.so.11+0xc2be53)
    #55 octave::tree_simple_assignment::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-assign.cc:101 (liboctinterp.so.11+0xbd74d9)
    #56 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3941 (liboctinterp.so.11+0xbf7b79)
    #57 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #58
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #59 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #60
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:3789 (liboctinterp.so.11+0xbf71a1)
    #61 octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:119 (liboctinterp.so.11+0xc05ae3)
    #62 octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:3767 (liboctinterp.so.11+0xbf6f65)
    #63 octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:153 (liboctinterp.so.11+0xc389e1)
    #64 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3916 (liboctinterp.so.11+0xbf7a22)
    #65 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #66
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #67 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #68
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:3789 (liboctinterp.so.11+0xbf71a1)
    #69 octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:119 (liboctinterp.so.11+0xc05ae3)
    #70 octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:3767 (liboctinterp.so.11+0xbf6f65)
    #71 octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:153 (liboctinterp.so.11+0xc389e1)
    #72 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3916 (liboctinterp.so.11+0xbf7a22)
    #73 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #74
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #75 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #76 octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3665
(liboctinterp.so.11+0xbf6714)
    #77 octave_user_function::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
(liboctinterp.so.11+0xaae0af)
    #78 octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
(liboctinterp.so.11+0xaae016)
    #79 octave::tree_index_expression::evaluate_n(octave::tree_evaluator&,
int) ../libinterp/parse-tree/pt-idx.cc:427 (liboctinterp.so.11+0xc28263)
    #80 octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108 (liboctinterp.so.11+0xc2be53)
    #81 octave::tree_simple_assignment::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-assign.cc:101 (liboctinterp.so.11+0xbd74d9)
    #82 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3941 (liboctinterp.so.11+0xbf7b79)
    #83 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #84
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #85 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #86
octave::tree_evaluator::visit_unwind_protect_command(octave::tree_unwind_protect_command&)
../libinterp/parse-tree/pt-eval.cc:4286 (liboctinterp.so.11+0xbf9067)
    #87 octave::tree_unwind_protect_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-except.h:151 (liboctinterp.so.11+0xc23a4b)
    #88 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3916 (liboctinterp.so.11+0xbf7a22)
    #89 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #90
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #91 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #92 octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3665
(liboctinterp.so.11+0xbf6714)
    #93 octave_user_function::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
(liboctinterp.so.11+0xaae0af)
    #94 octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
(liboctinterp.so.11+0xaae016)
    #95 octave::tree_index_expression::evaluate_n(octave::tree_evaluator&,
int) ../libinterp/parse-tree/pt-idx.cc:427 (liboctinterp.so.11+0xc28263)
    #96 octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108 (liboctinterp.so.11+0xc2be53)
    #97 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3941 (liboctinterp.so.11+0xbf7b79)
    #98 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #99
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #100 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #101
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:3789 (liboctinterp.so.11+0xbf71a1)
    #102 octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:119 (liboctinterp.so.11+0xc05ae3)
    #103 octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:3767 (liboctinterp.so.11+0xbf6f65)
    #104 octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:153 (liboctinterp.so.11+0xc389e1)
    #105 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3916 (liboctinterp.so.11+0xbf7a22)
    #106 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #107
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #108 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #109 octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3665
(liboctinterp.so.11+0xbf6714)
    #110 octave_user_function::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
(liboctinterp.so.11+0xaae0af)
    #111 octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
(liboctinterp.so.11+0xaae016)
    #112 octave::tree_identifier::evaluate_n(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-id.cc:130 (liboctinterp.so.11+0xc24e72)
    #113 octave::tree_identifier::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-id.h:98 (liboctinterp.so.11+0xc25957)
    #114 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3941 (liboctinterp.so.11+0xbf7b79)
    #115 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #116
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #117 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #118
octave::tree_evaluator::eval(std::shared_ptr<octave::tree_statement_list>&,
bool) ../libinterp/parse-tree/pt-eval.cc:985 (liboctinterp.so.11+0xbeaaef)
    #119
octave::tree_evaluator::parse_and_execute(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool&)
../libinterp/parse-tree/pt-eval.cc:617 (liboctinterp.so.11+0xbe919d)
    #120
octave::interpreter::parse_and_execute(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool&)
../libinterp/corefcn/interpreter.cc:835 (liboctinterp.so.11+0x107e872)
    #121 operator() ../libgui/src/command-widget.cc:153
(liboctgui.so.9+0x1e9e0c)
    #122 __invoke_impl<void, octave::command_widget::process_input_line(const
QString&)::<lambda(octave::interpreter&)>&, octave::interpreter&>
/usr/include/c++/11/bits/invoke.h:61 (liboctgui.so.9+0x1ebf23)
    #123 __invoke_r<void, octave::command_widget::process_input_line(const
QString&)::<lambda(octave::interpreter&)>&, octave::interpreter&>
/usr/include/c++/11/bits/invoke.h:111 (liboctgui.so.9+0x1ebbf1)
    #124 _M_invoke /usr/include/c++/11/bits/std_function.h:290
(liboctgui.so.9+0x1eb6c3)
    #125 std::function<void
(octave::interpreter&)>::operator()(octave::interpreter&) const
/usr/include/c++/11/bits/std_function.h:590 (liboctinterp.so.11+0xdc8bb8)
    #126 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)
    #127 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)
    #128 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)
    #129 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)
    #130 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)
    #131 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)
    #132 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)
    #133 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)
    #134 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)
    #135 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)
    #136 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)
    #137 std::function<void ()>::operator()() const
/usr/include/c++/11/bits/std_function.h:590 (liboctinterp.so.11+0x94ac34)
    #138 octave::action_container::fcn_elem::run()
../liboctave/util/action-container.h:82 (liboctinterp.so.11+0xc029be)
    #139 octave::event_queue::run_first()
../libinterp/corefcn/event-queue.h:63 (liboctinterp.so.11+0xdbec80)
    #140 octave::action_container::run(unsigned long)
../liboctave/util/action-container.cc:42 (liboctave.so.10+0xe4ac04)
    #141 octave::action_container::run()
../liboctave/util/action-container.h:202 (liboctinterp.so.11+0x983919)
    #142 octave::event_manager::process_events(bool)
../libinterp/corefcn/event-manager.cc:120 (liboctinterp.so.11+0xdbaaa7)
    #143 readline_event_hook ../libinterp/corefcn/event-manager.cc:53
(liboctinterp.so.11+0xdba5b0)
    #144 octave::command_editor::event_handler()
../liboctave/util/cmd-edit.cc:1174 (liboctave.so.10+0xe4d932)
    #145 octave::command_editor::run_event_hooks()
../liboctave/util/cmd-edit.cc:1583 (liboctave.so.10+0xe5004b)
    #146 octave::tree_evaluator::server_loop()
../libinterp/parse-tree/pt-eval.cc:903 (liboctinterp.so.11+0xbea4e2)
    #147 octave::interpreter::server_loop()
../libinterp/corefcn/interpreter.cc:1355 (liboctinterp.so.11+0x10846f4)
    #148 octave::interpreter::execute()
../libinterp/corefcn/interpreter.cc:900 (liboctinterp.so.11+0x107eaa5)
    #149 octave::interpreter_qobject::execute()
../libgui/src/interpreter-qobject.cc:89 (liboctgui.so.9+0x2432eb)
    #150 octave::interpreter_qobject::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) libgui/src/moc-interpreter-qobject.cc:88
(liboctgui.so.9+0x3fb9e4)
    #151 QObject::event(QEvent*) <null> (libQt5Core.so.5+0x2d1a98)
    #152 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>
(libQt5Core.so.5+0x2a7357)

  Previous read of size 8 at 0x7f1ec10e1f60 by main thread:
    #0 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>,
QtPrivate::List<double>, void, void
(octave::qt_graphics_toolkit::*)(double)>::call(void
(octave::qt_graphics_toolkit::*)(double), octave::qt_graphics_toolkit*,
void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
(liboctgui.so.9+0x1e23a4)
    #1 void QtPrivate::FunctionPointer<void
(octave::qt_graphics_toolkit::*)(double)>::call<QtPrivate::List<double>,
void>(void (octave::qt_graphics_toolkit::*)(double),
octave::qt_graphics_toolkit*, void**)
/usr/include/qt5/QtCore/qobjectdefs_impl.h:185 (liboctgui.so.9+0x1e22c4)
    #2 QtPrivate::QSlotObject<void (octave::qt_graphics_toolkit::*)(double),
QtPrivate::List<double>, void>::impl(int, QtPrivate::QSlotObjectBase*,
QObject*, void**, bool*) /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
(liboctgui.so.9+0x1e21fd)
    #3 QObject::event(QEvent*) <null> (libQt5Core.so.5+0x2d1a98)
    #4 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>
(libQt5Core.so.5+0x2a7357)
    #5 octave::qt_application::execute() ../libgui/src/qt-application.cc:73
(liboctgui.so.9+0x31c4ac)
    #6 main ../src/main-gui.cc:148 (lt-octave-gui+0x403730)

  Location is stack of thread T7.

  Thread T7 'QThread' (tid=202012, 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
/usr/include/c++/11/bits/shared_ptr_base.h:1152 in
std::__shared_ptr<octave::stack_frame,
(__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<octave::stack_frame,
(__gnu_cxx::_Lock_policy)2> const&)
==================
==================
WARNING: ThreadSanitizer: data race (pid=201875)
  Write of size 8 at 0x7f1ec10e1d40 by thread T7:
    #0 Cell::index(octave_value_list const&, bool) const
../libinterp/corefcn/Cell.cc:196 (liboctinterp.so.11+0xc589a3)
    #1 octave_base_matrix<Cell>::do_index_op(octave_value_list const&, bool)
../libinterp/octave-value/ov-cell.cc:73 (liboctinterp.so.11+0x9b88d3)
    #2 octave_cell::subsref(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::__cxx11::list<octave_value_list, std::allocator<octave_value_list> >
const&, int) ../libinterp/octave-value/ov-cell.cc:171
(liboctinterp.so.11+0x9b9633)
    #3 octave_value::subsref(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::__cxx11::list<octave_value_list, std::allocator<octave_value_list> >
const&, int) ../libinterp/octave-value/ov.cc:1585
(liboctinterp.so.11+0xabc2ab)
    #4 octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.cc:611 (liboctinterp.so.11+0xc28c84)
    #5 octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108 (liboctinterp.so.11+0xc2be53)
    #6
octave::tree_evaluator::convert_to_const_vector(octave::tree_argument_list*)
../libinterp/parse-tree/pt-eval.cc:2307 (liboctinterp.so.11+0xbf0850)
    #7 octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.cc:407 (liboctinterp.so.11+0xc280e0)
    #8 octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108 (liboctinterp.so.11+0xc2be53)
    #9 octave::tree_simple_assignment::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-assign.cc:101 (liboctinterp.so.11+0xbd74d9)
    #10 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3941 (liboctinterp.so.11+0xbf7b79)
    #11 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #12
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #13 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #14 octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3665
(liboctinterp.so.11+0xbf6714)
    #15 octave_user_function::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
(liboctinterp.so.11+0xaae0af)
    #16 octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
(liboctinterp.so.11+0xaae016)
    #17 octave::tree_index_expression::evaluate_n(octave::tree_evaluator&,
int) ../libinterp/parse-tree/pt-idx.cc:427 (liboctinterp.so.11+0xc28263)
    #18 octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108 (liboctinterp.so.11+0xc2be53)
    #19 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3941 (liboctinterp.so.11+0xbf7b79)
    #20 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #21
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #22 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #23
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:3789 (liboctinterp.so.11+0xbf71a1)
    #24 octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:119 (liboctinterp.so.11+0xc05ae3)
    #25 octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:3767 (liboctinterp.so.11+0xbf6f65)
    #26 octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:153 (liboctinterp.so.11+0xc389e1)
    #27 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3916 (liboctinterp.so.11+0xbf7a22)
    #28 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #29
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #30 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #31 octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3665
(liboctinterp.so.11+0xbf6714)
    #32 octave_user_function::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
(liboctinterp.so.11+0xaae0af)
    #33 octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
(liboctinterp.so.11+0xaae016)
    #34 octave::tree_index_expression::evaluate_n(octave::tree_evaluator&,
int) ../libinterp/parse-tree/pt-idx.cc:427 (liboctinterp.so.11+0xc28263)
    #35 octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108 (liboctinterp.so.11+0xc2be53)
    #36 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3941 (liboctinterp.so.11+0xbf7b79)
    #37 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #38
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #39 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #40
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:3789 (liboctinterp.so.11+0xbf71a1)
    #41 octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:119 (liboctinterp.so.11+0xc05ae3)
    #42 octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:3767 (liboctinterp.so.11+0xbf6f65)
    #43 octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:153 (liboctinterp.so.11+0xc389e1)
    #44 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3916 (liboctinterp.so.11+0xbf7a22)
    #45 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #46
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #47 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #48 octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3665
(liboctinterp.so.11+0xbf6714)
    #49 octave_user_function::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
(liboctinterp.so.11+0xaae0af)
    #50 octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
(liboctinterp.so.11+0xaae016)
    #51 octave::tree_index_expression::evaluate_n(octave::tree_evaluator&,
int) ../libinterp/parse-tree/pt-idx.cc:427 (liboctinterp.so.11+0xc28263)
    #52 octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108 (liboctinterp.so.11+0xc2be53)
    #53 octave::tree_simple_assignment::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-assign.cc:101 (liboctinterp.so.11+0xbd74d9)
    #54 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3941 (liboctinterp.so.11+0xbf7b79)
    #55 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #56
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #57 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #58
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:3789 (liboctinterp.so.11+0xbf71a1)
    #59 octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:119 (liboctinterp.so.11+0xc05ae3)
    #60 octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:3767 (liboctinterp.so.11+0xbf6f65)
    #61 octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:153 (liboctinterp.so.11+0xc389e1)
    #62 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3916 (liboctinterp.so.11+0xbf7a22)
    #63 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #64
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #65 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #66
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:3789 (liboctinterp.so.11+0xbf71a1)
    #67 octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:119 (liboctinterp.so.11+0xc05ae3)
    #68 octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:3767 (liboctinterp.so.11+0xbf6f65)
    #69 octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:153 (liboctinterp.so.11+0xc389e1)
    #70 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3916 (liboctinterp.so.11+0xbf7a22)
    #71 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #72
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #73 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #74 octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3665
(liboctinterp.so.11+0xbf6714)
    #75 octave_user_function::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
(liboctinterp.so.11+0xaae0af)
    #76 octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
(liboctinterp.so.11+0xaae016)
    #77 octave::tree_index_expression::evaluate_n(octave::tree_evaluator&,
int) ../libinterp/parse-tree/pt-idx.cc:427 (liboctinterp.so.11+0xc28263)
    #78 octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108 (liboctinterp.so.11+0xc2be53)
    #79 octave::tree_simple_assignment::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-assign.cc:101 (liboctinterp.so.11+0xbd74d9)
    #80 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3941 (liboctinterp.so.11+0xbf7b79)
    #81 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #82
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #83 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #84
octave::tree_evaluator::visit_unwind_protect_command(octave::tree_unwind_protect_command&)
../libinterp/parse-tree/pt-eval.cc:4286 (liboctinterp.so.11+0xbf9067)
    #85 octave::tree_unwind_protect_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-except.h:151 (liboctinterp.so.11+0xc23a4b)
    #86 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3916 (liboctinterp.so.11+0xbf7a22)
    #87 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #88
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #89 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #90 octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3665
(liboctinterp.so.11+0xbf6714)
    #91 octave_user_function::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
(liboctinterp.so.11+0xaae0af)
    #92 octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
(liboctinterp.so.11+0xaae016)
    #93 octave::tree_index_expression::evaluate_n(octave::tree_evaluator&,
int) ../libinterp/parse-tree/pt-idx.cc:427 (liboctinterp.so.11+0xc28263)
    #94 octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108 (liboctinterp.so.11+0xc2be53)
    #95 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3941 (liboctinterp.so.11+0xbf7b79)
    #96 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #97
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #98 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #99
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:3789 (liboctinterp.so.11+0xbf71a1)
    #100 octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:119 (liboctinterp.so.11+0xc05ae3)
    #101 octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:3767 (liboctinterp.so.11+0xbf6f65)
    #102 octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:153 (liboctinterp.so.11+0xc389e1)
    #103 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3916 (liboctinterp.so.11+0xbf7a22)
    #104 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #105
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #106 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #107 octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3665
(liboctinterp.so.11+0xbf6714)
    #108 octave_user_function::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
(liboctinterp.so.11+0xaae0af)
    #109 octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
(liboctinterp.so.11+0xaae016)
    #110 octave::tree_identifier::evaluate_n(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-id.cc:130 (liboctinterp.so.11+0xc24e72)
    #111 octave::tree_identifier::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-id.h:98 (liboctinterp.so.11+0xc25957)
    #112 octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3941 (liboctinterp.so.11+0xbf7b79)
    #113 octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124 (liboctinterp.so.11+0xc3a821)
    #114
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:4026 (liboctinterp.so.11+0xbf80f0)
    #115 octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201 (liboctinterp.so.11+0x94a4cd)
    #116
octave::tree_evaluator::eval(std::shared_ptr<octave::tree_statement_list>&,
bool) ../libinterp/parse-tree/pt-eval.cc:985 (liboctinterp.so.11+0xbeaaef)
    #117
octave::tree_evaluator::parse_and_execute(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool&)
../libinterp/parse-tree/pt-eval.cc:617 (liboctinterp.so.11+0xbe919d)
    #118
octave::interpreter::parse_and_execute(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool&)
../libinterp/corefcn/interpreter.cc:835 (liboctinterp.so.11+0x107e872)
    #119 operator() ../libgui/src/command-widget.cc:153
(liboctgui.so.9+0x1e9e0c)
    #120 __invoke_impl<void, octave::command_widget::process_input_line(const
QString&)::<lambda(octave::interpreter&)>&, octave::interpreter&>
/usr/include/c++/11/bits/invoke.h:61 (liboctgui.so.9+0x1ebf23)
    #121 __invoke_r<void, octave::command_widget::process_input_line(const
QString&)::<lambda(octave::interpreter&)>&, octave::interpreter&>
/usr/include/c++/11/bits/invoke.h:111 (liboctgui.so.9+0x1ebbf1)
    #122 _M_invoke /usr/include/c++/11/bits/std_function.h:290
(liboctgui.so.9+0x1eb6c3)
    #123 std::function<void
(octave::interpreter&)>::operator()(octave::interpreter&) const
/usr/include/c++/11/bits/std_function.h:590 (liboctinterp.so.11+0xdc8bb8)
    #124 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)
    #125 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)
    #126 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)
    #127 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)
    #128 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)
    #129 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)
    #130 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)
    #131 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)
    #132 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)
    #133 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)
    #134 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)
    #135 std::function<void ()>::operator()() const
/usr/include/c++/11/bits/std_function.h:590 (liboctinterp.so.11+0x94ac34)
    #136 octave::action_container::fcn_elem::run()
../liboctave/util/action-container.h:82 (liboctinterp.so.11+0xc029be)
    #137 octave::event_queue::run_first()
../libinterp/corefcn/event-queue.h:63 (liboctinterp.so.11+0xdbec80)
    #138 octave::action_container::run(unsigned long)
../liboctave/util/action-container.cc:42 (liboctave.so.10+0xe4ac04)
    #139 octave::action_container::run()
../liboctave/util/action-container.h:202 (liboctinterp.so.11+0x983919)
    #140 octave::event_manager::process_events(bool)
../libinterp/corefcn/event-manager.cc:120 (liboctinterp.so.11+0xdbaaa7)
    #141 readline_event_hook ../libinterp/corefcn/event-manager.cc:53
(liboctinterp.so.11+0xdba5b0)
    #142 octave::command_editor::event_handler()
../liboctave/util/cmd-edit.cc:1174 (liboctave.so.10+0xe4d932)
    #143 octave::command_editor::run_event_hooks()
../liboctave/util/cmd-edit.cc:1583 (liboctave.so.10+0xe5004b)
    #144 octave::tree_evaluator::server_loop()
../libinterp/parse-tree/pt-eval.cc:903 (liboctinterp.so.11+0xbea4e2)
    #145 octave::interpreter::server_loop()
../libinterp/corefcn/interpreter.cc:1355 (liboctinterp.so.11+0x10846f4)
    #146 octave::interpreter::execute()
../libinterp/corefcn/interpreter.cc:900 (liboctinterp.so.11+0x107eaa5)
    #147 octave::interpreter_qobject::execute()
../libgui/src/interpreter-qobject.cc:89 (liboctgui.so.9+0x2432eb)
    #148 octave::interpreter_qobject::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) libgui/src/moc-interpreter-qobject.cc:88
(liboctgui.so.9+0x3fb9e4)
    #149 QObject::event(QEvent*) <null> (libQt5Core.so.5+0x2d1a98)
    #150 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>
(libQt5Core.so.5+0x2a7357)

  Previous read of size 8 at 0x7f1ec10e1d40 by main thread:
    #0 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>,
QtPrivate::List<double>, void, void
(octave::qt_graphics_toolkit::*)(double)>::call(void
(octave::qt_graphics_toolkit::*)(double), octave::qt_graphics_toolkit*,
void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
(liboctgui.so.9+0x1e23a4)
    #1 void QtPrivate::FunctionPointer<void
(octave::qt_graphics_toolkit::*)(double)>::call<QtPrivate::List<double>,
void>(void (octave::qt_graphics_toolkit::*)(double),
octave::qt_graphics_toolkit*, void**)
/usr/include/qt5/QtCore/qobjectdefs_impl.h:185 (liboctgui.so.9+0x1e22c4)
    #2 QtPrivate::QSlotObject<void (octave::qt_graphics_toolkit::*)(double),
QtPrivate::List<double>, void>::impl(int, QtPrivate::QSlotObjectBase*,
QObject*, void**, bool*) /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
(liboctgui.so.9+0x1e21fd)
    #3 QObject::event(QEvent*) <null> (libQt5Core.so.5+0x2d1a98)
    #4 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>
(libQt5Core.so.5+0x2a7357)
    #5 octave::qt_application::execute() ../libgui/src/qt-application.cc:73
(liboctgui.so.9+0x31c4ac)
    #6 main ../src/main-gui.cc:148 (lt-octave-gui+0x403730)

  Location is stack of thread T7.

  Thread T7 'QThread' (tid=202012, 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 ../libinterp/corefcn/Cell.cc:196 in
Cell::index(octave_value_list const&, bool) const
==================


But those probably a separate issue.

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]