[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/