segfault in bsxfun during "make check"

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

segfault in bsxfun during "make check"

PhilipNienhuis
During "make check" I get a segfault in bsxfun:

:
  libinterp/corefcn/bitfcns.cc-tst ............................... PASS  
60/60  
  libinterp/corefcn/bsxfun.cc-tst ................................fatal:
caught signal Segmentation fault -- stopping myself...
/bin/sh: line 1: 14215 Segmentation fault      (core dumped) /bin/sh
../run-octave --no-init-file --silent --no-history -p
/home/philip/devel/octdev/dev600/test/mex
/home/philip/devel/octdev/dev600/../dev/test/fntests.m
/home/philip/devel/octdev/dev600/../dev/test
Makefile:27988: recipe for target 'check-local' failed
make[3]: *** [check-local] Error 139
:

philip@lx230 dev]$ hg summary
parent: 26855:156bd21bf6bd
 editor follows XDG_CONFIG_HOME for autocompletion files (bug ##55822)
branch: default
bookmarks: *@
commit: (clean)

Mageia-6 Linux

Anyone else seeing this?

Thanks,
Philip



--
Sent from: http://octave.1599824.n4.nabble.com/Octave-Maintainers-f1638794.html

Reply | Threaded
Open this post in threaded view
|

Re: segfault in bsxfun during "make check"

John W. Eaton
Administrator
On 3/6/19 4:41 PM, PhilipNienhuis wrote:

> During "make check" I get a segfault in bsxfun:
>
> :
>    libinterp/corefcn/bitfcns.cc-tst ............................... PASS
> 60/60
>    libinterp/corefcn/bsxfun.cc-tst ................................fatal:
> caught signal Segmentation fault -- stopping myself...
> /bin/sh: line 1: 14215 Segmentation fault      (core dumped) /bin/sh
> ../run-octave --no-init-file --silent --no-history -p
> /home/philip/devel/octdev/dev600/test/mex
> /home/philip/devel/octdev/dev600/../dev/test/fntests.m
> /home/philip/devel/octdev/dev600/../dev/test
> Makefile:27988: recipe for target 'check-local' failed
> make[3]: *** [check-local] Error 139
> :
>
> philip@lx230 dev]$ hg summary
> parent: 26855:156bd21bf6bd
>   editor follows XDG_CONFIG_HOME for autocompletion files (bug ##55822)
> branch: default
> bookmarks: *@
> commit: (clean)
>
> Mageia-6 Linux
>
> Anyone else seeing this?

It doesn't crash for me.

I'm guessing it's due to my recent changes to function handles.

Can you try running the test suite with gdb?

Or, can you try building with --enable-address-sanitizer-flags and see
if that gives any clues about memory errors?  You may also need to use
--disable-java and --disable-docs to make that work.

jwe

Reply | Threaded
Open this post in threaded view
|

Re: segfault in bsxfun during "make check"

John W. Eaton
Administrator
On 3/6/19 5:36 PM, John W. Eaton wrote:

> On 3/6/19 4:41 PM, PhilipNienhuis wrote:
>> During "make check" I get a segfault in bsxfun:
>>
>> :
>>    libinterp/corefcn/bitfcns.cc-tst ............................... PASS
>> 60/60
>>    libinterp/corefcn/bsxfun.cc-tst ................................fatal:
>> caught signal Segmentation fault -- stopping myself...
>> /bin/sh: line 1: 14215 Segmentation fault      (core dumped) /bin/sh
>> ../run-octave --no-init-file --silent --no-history -p
>> /home/philip/devel/octdev/dev600/test/mex
>> /home/philip/devel/octdev/dev600/../dev/test/fntests.m
>> /home/philip/devel/octdev/dev600/../dev/test
>> Makefile:27988: recipe for target 'check-local' failed
>> make[3]: *** [check-local] Error 139
>> :
>>
>> philip@lx230 dev]$ hg summary
>> parent: 26855:156bd21bf6bd
>>   editor follows XDG_CONFIG_HOME for autocompletion files (bug ##55822)
>> branch: default
>> bookmarks: *@
>> commit: (clean)
>>
>> Mageia-6 Linux
>>
>> Anyone else seeing this?
>
> It doesn't crash for me.
>
> I'm guessing it's due to my recent changes to function handles.
>
> Can you try running the test suite with gdb?
>
> Or, can you try building with --enable-address-sanitizer-flags and see
> if that gives any clues about memory errors?  You may also need to use
> --disable-java and --disable-docs to make that work.

OK, I built with the address sanitizer and I see the following when
running "make check".  I'll try to take a look at this problem later
tonight.


   libinterp/corefcn/bsxfun.cc-tst
................................=================================================================
==22447==ERROR: AddressSanitizer: heap-use-after-free on address
0x61300006fe80 at pc 0x7fee13c6fea5 bp 0x7feded79c900 sp 0x7feded79c8f8
READ of size 8 at 0x61300006fe80 thread T9 (QThread)
     #0 0x7fee13c6fea4 in
octave::fcn_info::fcn_info_rep::xfind(octave::symbol_scope const&,
octave_value_list const&)
/home/jwe/src/octave/libinterp/corefcn/fcn-info.cc:396
     #1 0x7fee13c704db in
octave::fcn_info::fcn_info_rep::find(octave::symbol_scope const&,
octave_value_list const&)
/home/jwe/src/octave/libinterp/corefcn/fcn-info.cc:355
     #2 0x7fee1480437e in octave::fcn_info::find(octave::symbol_scope
const&, octave_value_list const&)
/home/jwe/src/octave/libinterp/corefcn/fcn-info.h:255
     #3 0x7fee1480437e in
octave::symbol_table::fcn_table_find(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, octave_value_list
const&, octave::symbol_scope const&)
/home/jwe/src/octave/libinterp/corefcn/symtab.cc:175
     #4 0x7fee148047ef in
octave::symbol_table::find_function(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, octave_value_list
const&, octave::symbol_scope const&)
/home/jwe/src/octave/libinterp/corefcn/symtab.cc:227
     #5 0x7fee13351f6a in octave_fcn_handle::function_value(bool)
/home/jwe/src/octave/libinterp/octave-value/ov-fcn-handle.cc:233
     #6 0x7fee139c89b7 in Fbsxfun(octave::interpreter&,
octave_value_list const&, int)
/home/jwe/src/octave/libinterp/corefcn/bsxfun.cc:369
     #7 0x7fee13253bf4 in octave_builtin::call(octave::tree_evaluator&,
int, octave_value_list const&)
/home/jwe/src/octave/libinterp/octave-value/ov-builtin.cc:71
     #8 0x7fee137b52e8 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2161
     #9 0x7fee1314ae83 in
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.h:317
     #10 0x7fee137a6786 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2897
     #11 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #12 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #13 0x7fee1379f86e in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #14 0x7fee1379f86e in
octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&, octave::stack_frame*)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:1817
     #15 0x7fee134f0f7c in
octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&, octave::stack_frame*)
/home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.cc:456
     #16 0x7fee134f0f7c in
octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&)
/home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.h:368
     #17 0x7fee137b52e8 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2161
     #18 0x7fee137c24dc in
octave::tree_evaluator::evaluate_n(octave::tree_expression*, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.h:348
     #19 0x7fee137a9b23 in
octave::tree_evaluator::eval_string(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool, int&, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:241
     #20 0x7fee137aa32f in
octave::tree_evaluator::eval_string(octave_value const&, bool, int&,
int) /home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:292
     #21 0x7fee14251152 in octave::interpreter::eval_string(octave_value
const&, bool, int&, int)
/home/jwe/src/octave/libinterp/corefcn/interpreter.cc:1183
     #22 0x7fee13702f2a in Feval(octave::interpreter&, octave_value_list
const&, int) /home/jwe/src/octave/libinterp/parse-tree/oct-parse.yy:5504
     #23 0x7fee13253bf4 in octave_builtin::call(octave::tree_evaluator&,
int, octave_value_list const&)
/home/jwe/src/octave/libinterp/octave-value/ov-builtin.cc:71
     #24 0x7fee137b52e8 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2161
     #25 0x7fee1314ae83 in
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.h:317
     #26 0x7fee137a6786 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2897
     #27 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #28 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #29 0x7fee13795e95 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #30 0x7fee13795e95 in
octave::tree_evaluator::visit_try_catch_command(octave::tree_try_catch_command&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:3073
     #31 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #32 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #33 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #34 0x7fee137a79bb in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #35 0x7fee137a79bb in
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2004
     #36 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #37 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #38 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #39 0x7fee137a79bb in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #40 0x7fee137a79bb in
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2004
     #41 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #42 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #43 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #44 0x7fee137976ab in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #45 0x7fee137976ab in
octave::tree_evaluator::visit_unwind_protect_command(octave::tree_unwind_protect_command&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:3212
     #46 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #47 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #48 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #49 0x7fee137a3604 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #50 0x7fee137a3604 in
octave::tree_evaluator::visit_simple_for_command(octave::tree_simple_for_command&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:1467
     #51 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #52 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #53 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #54 0x7fee1379f86e in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #55 0x7fee1379f86e in
octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&, octave::stack_frame*)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:1817
     #56 0x7fee134f0f7c in
octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&, octave::stack_frame*)
/home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.cc:456
     #57 0x7fee134f0f7c in
octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&)
/home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.h:368
     #58 0x7fee137b52e8 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2161
     #59 0x7fee137c24dc in
octave::tree_evaluator::evaluate_n(octave::tree_expression*, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.h:348
     #60 0x7fee137ad910 in
octave::tree_evaluator::visit_multi_assignment(octave::tree_multi_assignment&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2473
     #61 0x7fee1314ae83 in
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.h:317
     #62 0x7fee137a6786 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2897
     #63 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #64 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #65 0x7fee137a79bb in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #66 0x7fee137a79bb in
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2004
     #67 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #68 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #69 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #70 0x7fee137a79bb in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #71 0x7fee137a79bb in
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2004
     #72 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #73 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #74 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #75 0x7fee137a3604 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #76 0x7fee137a3604 in
octave::tree_evaluator::visit_simple_for_command(octave::tree_simple_for_command&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:1467
     #77 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #78 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #79 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #80 0x7fee137976ab in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #81 0x7fee137976ab in
octave::tree_evaluator::visit_unwind_protect_command(octave::tree_unwind_protect_command&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:3212
     #82 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #83 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #84 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #85 0x7fee1379f86e in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #86 0x7fee1379f86e in
octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&, octave::stack_frame*)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:1817
     #87 0x7fee134f0f7c in
octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&, octave::stack_frame*)
/home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.cc:456
     #88 0x7fee134f0f7c in
octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&)
/home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.h:368
     #89 0x7fee137b52e8 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2161
     #90 0x7fee137c24dc in
octave::tree_evaluator::evaluate_n(octave::tree_expression*, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.h:348
     #91 0x7fee137ad910 in
octave::tree_evaluator::visit_multi_assignment(octave::tree_multi_assignment&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2473
     #92 0x7fee1314ae83 in
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.h:317
     #93 0x7fee137a6786 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2897
     #94 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #95 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #96 0x7fee137a79bb in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #97 0x7fee137a79bb in
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2004
     #98 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #99 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #100 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #101 0x7fee137a3604 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #102 0x7fee137a3604 in
octave::tree_evaluator::visit_simple_for_command(octave::tree_simple_for_command&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:1467
     #103 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #104 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #105 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #106 0x7fee1379f86e in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #107 0x7fee1379f86e in
octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&, octave::stack_frame*)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:1817
     #108 0x7fee134f0f7c in
octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&, octave::stack_frame*)
/home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.cc:456
     #109 0x7fee134f0f7c in
octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&)
/home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.h:368
     #110 0x7fee137b52e8 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2161
     #111 0x7fee137c24dc in
octave::tree_evaluator::evaluate_n(octave::tree_expression*, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.h:348
     #112 0x7fee137ad910 in
octave::tree_evaluator::visit_multi_assignment(octave::tree_multi_assignment&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2473
     #113 0x7fee1314ae83 in
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.h:317
     #114 0x7fee137a6786 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2897
     #115 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #116 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #117 0x7fee137a3604 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #118 0x7fee137a3604 in
octave::tree_evaluator::visit_simple_for_command(octave::tree_simple_for_command&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:1467
     #119 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #120 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #121 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #122 0x7fee13795e95 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #123 0x7fee13795e95 in
octave::tree_evaluator::visit_try_catch_command(octave::tree_try_catch_command&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:3073
     #124 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #125 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #126 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #127 0x7fee137976ab in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #128 0x7fee137976ab in
octave::tree_evaluator::visit_unwind_protect_command(octave::tree_unwind_protect_command&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:3212
     #129 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #130 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #131 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #132 0x7fee1379f86e in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #133 0x7fee1379f86e in
octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&, octave::stack_frame*)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:1817
     #134 0x7fee134f0f7c in
octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&, octave::stack_frame*)
/home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.cc:456
     #135 0x7fee134f0f7c in
octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&)
/home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.h:368
     #136 0x7fee137b52e8 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2161
     #137 0x7fee1314ae83 in
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.h:317
     #138 0x7fee137a6786 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2897
     #139 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #140 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #141 0x7fee13794f31 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #142 0x7fee13794f31 in
octave::tree_evaluator::execute_user_script(octave_user_script&, int,
octave_value_list const&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:1675
     #143 0x7fee134d563c in
octave_user_script::call(octave::tree_evaluator&, int, octave_value_list
const&) /home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.cc:167
     #144 0x7fee13731489 in
octave::source_file(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, bool, bool,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&)
/home/jwe/src/octave/libinterp/parse-tree/oct-parse.yy:5101
     #145 0x7fee142516db in safe_source_file
/home/jwe/src/octave/libinterp/corefcn/interpreter.cc:255
     #146 0x7fee1425f12a in
octave::interpreter::execute_command_line_file()
/home/jwe/src/octave/libinterp/corefcn/interpreter.cc:954
     #147 0x7fee14267e6f in octave::interpreter::execute()
/home/jwe/src/octave/libinterp/corefcn/interpreter.cc:673
     #148 0x7fee151c60b7 in octave::octave_interpreter::execute()
/home/jwe/src/octave/libgui/src/main-window.cc:146
     #149 0x7fee0d69ce51 in QObject::event(QEvent*)
(/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x294e51)
     #150 0x7fee0e07f490 in QApplicationPrivate::notify_helper(QObject*,
QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15f490)
     #151 0x7fee0e086abf in QApplication::notify(QObject*, QEvent*)
(/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x166abf)
     #152 0x7fee151cb3d2 in
octave::octave_qapplication::notify(QObject*, QEvent*)
/home/jwe/src/octave/libgui/src/main-window.cc:2795
     #153 0x7fee0d673478 in QCoreApplication::notifyInternal2(QObject*,
QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x26b478)
     #154 0x7fee0d67646a in
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
(/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x26e46a)
     #155 0x7fee0d6c5a02
(/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2bda02)
     #156 0x7fee087f5f2d in g_main_context_dispatch
(/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4df2d)
     #157 0x7fee087f61c7
(/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4e1c7)
     #158 0x7fee087f625b in g_main_context_iteration
(/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4e25b)
     #159 0x7fee0d6c5032 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2bd032)
     #160 0x7fee0d67214a in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x26a14a)
     #161 0x7fee0d4c10d5 in QThread::exec()
(/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xb90d5)
     #162 0x7fee0d4cac76
(/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xc2c76)
     #163 0x7fee0e9fffa2 in start_thread
/build/glibc-YJREGK/glibc-2.28/nptl/pthread_create.c:486
     #164 0x7fee0e92980e in clone (/lib/x86_64-linux-gnu/libc.so.6+0xf980e)

0x61300006fe80 is located 0 bytes inside of 384-byte region
[0x61300006fe80,0x613000070000)
freed by thread T9 (QThread) here:
     #0 0x7fee1566c178 in operator delete(void*, unsigned long)
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0xec178)
     #1 0x7fee12fbb209 in octave_value::operator=(octave_value const&)
/home/jwe/src/octave/libinterp/octave-value/ov.h:361
     #2 0x7fee1480b387 in
octave::fcn_info::fcn_info_rep::clear_user_function(bool)
/home/jwe/src/octave/libinterp/corefcn/fcn-info.h:171
     #3 0x7fee1480b387 in
octave::fcn_info::fcn_info_rep::clear_user_function(bool)
/home/jwe/src/octave/libinterp/corefcn/fcn-info.h:163
     #4 0x7fee147f399e in octave::fcn_info::clear_user_function(bool)
/home/jwe/src/octave/libinterp/corefcn/fcn-info.h:342
     #5 0x7fee147f399e in
octave::symbol_table::clear_function_pattern(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)
/home/jwe/src/octave/libinterp/corefcn/symtab.cc:369
     #6 0x7fee14900d47 in do_matlab_compatible_clear
/home/jwe/src/octave/libinterp/corefcn/variables.cc:1133
     #7 0x7fee14900d47 in Fclear(octave::interpreter&, octave_value_list
const&, int) /home/jwe/src/octave/libinterp/corefcn/variables.cc:1306
     #8 0x7fee13253bf4 in octave_builtin::call(octave::tree_evaluator&,
int, octave_value_list const&)
/home/jwe/src/octave/libinterp/octave-value/ov-builtin.cc:71
     #9 0x7fee137b52e8 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2161
     #10 0x7fee1314ae83 in
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.h:317
     #11 0x7fee137a6786 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2897
     #12 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #13 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #14 0x7fee137a79bb in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #15 0x7fee137a79bb in
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2004
     #16 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #17 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #18 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #19 0x7fee137976ab in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #20 0x7fee137976ab in
octave::tree_evaluator::visit_unwind_protect_command(octave::tree_unwind_protect_command&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:3212
     #21 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #22 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #23 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #24 0x7fee137a3604 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #25 0x7fee137a3604 in
octave::tree_evaluator::visit_simple_for_command(octave::tree_simple_for_command&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:1467
     #26 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #27 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #28 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #29 0x7fee1379f86e in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #30 0x7fee1379f86e in
octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&, octave::stack_frame*)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:1817
     #31 0x7fee134f0f7c in
octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&, octave::stack_frame*)
/home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.cc:456
     #32 0x7fee134f0f7c in
octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&)
/home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.h:368
     #33 0x7fee137b52e8 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2161
     #34 0x7fee137c24dc in
octave::tree_evaluator::evaluate_n(octave::tree_expression*, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.h:348
     #35 0x7fee137ad910 in
octave::tree_evaluator::visit_multi_assignment(octave::tree_multi_assignment&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2473
     #36 0x7fee1314ae83 in
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.h:317
     #37 0x7fee137a6786 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2897
     #38 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #39 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #40 0x7fee137a79bb in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #41 0x7fee137a79bb in
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2004
     #42 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #43 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #44 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956

previously allocated by thread T9 (QThread) here:
     #0 0x7fee1566ad80 in operator new(unsigned long)
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0xead80)
     #1 0x7fee13710bef in
octave::base_parser::start_function(octave::tree_identifier*,
octave::tree_parameter_list*, octave::tree_statement_list*,
octave::tree_statement*)
/home/jwe/src/octave/libinterp/parse-tree/oct-parse.yy:3399
     #2 0x7fee13712466 in
octave::base_parser::make_function(octave::token*,
octave::tree_parameter_list*, octave::tree_identifier*,
octave::tree_parameter_list*, octave::tree_statement_list*,
octave::tree_statement*, octave::comment_list*)
/home/jwe/src/octave/libinterp/parse-tree/oct-parse.yy:3361
     #3 0x7fee137197b8 in octave_push_parse(octave_pstate*, int,
OCTAVE_STYPE const*, octave::base_parser&)
/home/jwe/src/octave/libinterp/parse-tree/oct-parse.yy:1643
     #4 0x7fee13728bec in octave_pull_parse(octave_pstate*,
octave::base_parser&) libinterp/parse-tree/oct-parse.cc:2998
     #5 0x7fee13728da4 in octave::parser::run()
/home/jwe/src/octave/libinterp/parse-tree/oct-parse.yy:4410
     #6 0x7fee137a970d in
octave::tree_evaluator::eval_string(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool, int&, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:224
     #7 0x7fee137aa32f in
octave::tree_evaluator::eval_string(octave_value const&, bool, int&,
int) /home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:292
     #8 0x7fee14251152 in octave::interpreter::eval_string(octave_value
const&, bool, int&, int)
/home/jwe/src/octave/libinterp/corefcn/interpreter.cc:1183
     #9 0x7fee13702f2a in Feval(octave::interpreter&, octave_value_list
const&, int) /home/jwe/src/octave/libinterp/parse-tree/oct-parse.yy:5504
     #10 0x7fee13253bf4 in octave_builtin::call(octave::tree_evaluator&,
int, octave_value_list const&)
/home/jwe/src/octave/libinterp/octave-value/ov-builtin.cc:71
     #11 0x7fee137b52e8 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2161
     #12 0x7fee1314ae83 in
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.h:317
     #13 0x7fee137a6786 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2897
     #14 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #15 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #16 0x7fee13795e95 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #17 0x7fee13795e95 in
octave::tree_evaluator::visit_try_catch_command(octave::tree_try_catch_command&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:3073
     #18 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #19 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #20 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #21 0x7fee137a79bb in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #22 0x7fee137a79bb in
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2004
     #23 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #24 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #25 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #26 0x7fee137976ab in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #27 0x7fee137976ab in
octave::tree_evaluator::visit_unwind_protect_command(octave::tree_unwind_protect_command&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:3212
     #28 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #29 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #30 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #31 0x7fee137a3604 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #32 0x7fee137a3604 in
octave::tree_evaluator::visit_simple_for_command(octave::tree_simple_for_command&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:1467
     #33 0x7fee137a63fa in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2875
     #34 0x7fee1377f6a0 in
octave::tree_statement::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:119
     #35 0x7fee1377f6a0 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2956
     #36 0x7fee1379f86e in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/jwe/src/octave/libinterp/parse-tree/pt-stmt.h:194
     #37 0x7fee1379f86e in
octave::tree_evaluator::execute_user_function(octave_user_function&,
int, octave_value_list const&, octave::stack_frame*)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:1817
     #38 0x7fee134f0f7c in
octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&, octave::stack_frame*)
/home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.cc:456
     #39 0x7fee134f0f7c in
octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&)
/home/jwe/src/octave/libinterp/octave-value/ov-usr-fcn.h:368
     #40 0x7fee137b52e8 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
/home/jwe/src/octave/libinterp/parse-tree/pt-eval.cc:2161

Thread T9 (QThread) created by T0 here:
     #0 0x7fee155d0db0 in __interceptor_pthread_create
(/usr/lib/x86_64-linux-gnu/libasan.so.5+0x50db0)
     #1 0x7fee0d4ca5f9 in QThread::start(QThread::Priority)
(/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xc25f9)

SUMMARY: AddressSanitizer: heap-use-after-free
/home/jwe/src/octave/libinterp/corefcn/fcn-info.cc:396 in
octave::fcn_info::fcn_info_rep::xfind(octave::symbol_scope const&,
octave_value_list const&)
Shadow bytes around the buggy address:
   0x0c2680005f80: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
   0x0c2680005f90: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
   0x0c2680005fa0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
   0x0c2680005fb0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
   0x0c2680005fc0: fd fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x0c2680005fd0:[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
   0x0c2680005fe0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
   0x0c2680005ff0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
   0x0c2680006000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
   0x0c2680006010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
   0x0c2680006020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
   Addressable:           00
   Partially addressable: 01 02 03 04 05 06 07
   Heap left redzone:       fa
   Freed heap region:       fd
   Stack left redzone:      f1
   Stack mid redzone:       f2
   Stack right redzone:     f3
   Stack after return:      f5
   Stack use after scope:   f8
   Global redzone:          f9
   Global init order:       f6
   Poisoned by user:        f7
   Container overflow:      fc
   Array cookie:            ac
   Intra object redzone:    bb
   ASan internal:           fe
   Left alloca redzone:     ca
   Right alloca redzone:    cb
==22447==ABORTING
make[3]: *** [Makefile:31306: check-local] Error 1
make[3]: Leaving directory '/net/devnull/scratch/jwe/build/octave-asan'
make[2]: *** [Makefile:27460: check-am] Error 2
make[2]: Leaving directory '/net/devnull/scratch/jwe/build/octave-asan'
make[1]: *** [Makefile:27168: check-recursive] Error 1
make[1]: Leaving directory '/net/devnull/scratch/jwe/build/octave-asan'
make: *** [Makefile:27462: check] Error 2


jwe

Reply | Threaded
Open this post in threaded view
|

Re: segfault in bsxfun during "make check"

PhilipNienhuis
John W. Eaton wrote

> On 3/6/19 5:36 PM, John W. Eaton wrote:
>> On 3/6/19 4:41 PM, PhilipNienhuis wrote:
>>> During "make check" I get a segfault in bsxfun:
>>>
>>> :
>>>    libinterp/corefcn/bitfcns.cc-tst ............................... PASS
>>> 60/60
>>>    libinterp/corefcn/bsxfun.cc-tst
>>> ................................fatal:
>>> caught signal Segmentation fault -- stopping myself...
>>> /bin/sh: line 1: 14215 Segmentation fault      (core dumped) /bin/sh
>>> ../run-octave --no-init-file --silent --no-history -p
>>> /home/philip/devel/octdev/dev600/test/mex
>>> /home/philip/devel/octdev/dev600/../dev/test/fntests.m
>>> /home/philip/devel/octdev/dev600/../dev/test
>>> Makefile:27988: recipe for target 'check-local' failed
>>> make[3]: *** [check-local] Error 139
>>> :
>>>
>>> philip@lx230 dev]$ hg summary
>>> parent: 26855:156bd21bf6bd
>>>   editor follows XDG_CONFIG_HOME for autocompletion files (bug ##55822)
>>> branch: default
>>> bookmarks: *@
>>> commit: (clean)
>>>
>>> Mageia-6 Linux
>>>
>>> Anyone else seeing this?
>>
>> It doesn't crash for me.
>>
>> I'm guessing it's due to my recent changes to function handles.
>>
>> Can you try running the test suite with gdb?
>>
>> Or, can you try building with --enable-address-sanitizer-flags and see
>> if that gives any clues about memory errors?  You may also need to use
>> --disable-java and --disable-docs to make that work.
>
> OK, I built with the address sanitizer and I see the following when
> running "make check".  I'll try to take a look at this problem later
> tonight.
> :
> <snip>
> :
> jwe

Thanks very much for investigating.

In spite of the bsxfun segfault on Linux I could make a dist file and
cross-build in mxe-octave.
Once installed in Windows, while running __run_test_suite__ Octave does NOT
crash.

Philip




--
Sent from: http://octave.1599824.n4.nabble.com/Octave-Maintainers-f1638794.html

Reply | Threaded
Open this post in threaded view
|

Re: segfault in bsxfun during "make check"

John W. Eaton
Administrator
In reply to this post by John W. Eaton
On 3/6/19 5:49 PM, John W. Eaton wrote:

> On 3/6/19 5:36 PM, John W. Eaton wrote:
>> On 3/6/19 4:41 PM, PhilipNienhuis wrote:
>>> During "make check" I get a segfault in bsxfun:
>>>
>>> :
>>>    libinterp/corefcn/bitfcns.cc-tst ............................... PASS
>>> 60/60
>>>    libinterp/corefcn/bsxfun.cc-tst
>>> ................................fatal:
>>> caught signal Segmentation fault -- stopping myself...
>>> /bin/sh: line 1: 14215 Segmentation fault      (core dumped) /bin/sh
>>> ../run-octave --no-init-file --silent --no-history -p
>>> /home/philip/devel/octdev/dev600/test/mex
>>> /home/philip/devel/octdev/dev600/../dev/test/fntests.m
>>> /home/philip/devel/octdev/dev600/../dev/test
>>> Makefile:27988: recipe for target 'check-local' failed
>>> make[3]: *** [check-local] Error 139
>>> :
>>>
>>> philip@lx230 dev]$ hg summary
>>> parent: 26855:156bd21bf6bd
>>>   editor follows XDG_CONFIG_HOME for autocompletion files (bug ##55822)
>>> branch: default
>>> bookmarks: *@
>>> commit: (clean)
>>>
>>> Mageia-6 Linux
>>>
>>> Anyone else seeing this?
>>
>> It doesn't crash for me.
>>
>> I'm guessing it's due to my recent changes to function handles.
>>
>> Can you try running the test suite with gdb?
>>
>> Or, can you try building with --enable-address-sanitizer-flags and see
>> if that gives any clues about memory errors?  You may also need to use
>> --disable-java and --disable-docs to make that work.
>
> OK, I built with the address sanitizer and I see the following when
> running "make check".  I'll try to take a look at this problem later
> tonight.
I'm attaching a patch you can experiment with.

jwe


diffs.txt (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: segfault in bsxfun during "make check"

PhilipNienhuis
John W. Eaton wrote

> On 3/6/19 5:49 PM, John W. Eaton wrote:
>> On 3/6/19 5:36 PM, John W. Eaton wrote:
>>> On 3/6/19 4:41 PM, PhilipNienhuis wrote:
>>>> During "make check" I get a segfault in bsxfun:
>>>>
>>>> :
>>>>    libinterp/corefcn/bitfcns.cc-tst ...............................
>>>> PASS
>>>> 60/60
>>>>    libinterp/corefcn/bsxfun.cc-tst
>>>> ................................fatal:
>>>> caught signal Segmentation fault -- stopping myself...
>>>> /bin/sh: line 1: 14215 Segmentation fault      (core dumped) /bin/sh
>>>> ../run-octave --no-init-file --silent --no-history -p
>>>> /home/philip/devel/octdev/dev600/test/mex
>>>> /home/philip/devel/octdev/dev600/../dev/test/fntests.m
>>>> /home/philip/devel/octdev/dev600/../dev/test
>>>> Makefile:27988: recipe for target 'check-local' failed
>>>> make[3]: *** [check-local] Error 139
>>>> :
>>>>
>>>> philip@lx230 dev]$ hg summary
>>>> parent: 26855:156bd21bf6bd
>>>>   editor follows XDG_CONFIG_HOME for autocompletion files (bug ##55822)
>>>> branch: default
>>>> bookmarks: *@
>>>> commit: (clean)
>>>>
>>>> Mageia-6 Linux
>>>>
>>>> Anyone else seeing this?
>>>
>>> It doesn't crash for me.
>>>
>>> I'm guessing it's due to my recent changes to function handles.
>>>
>>> Can you try running the test suite with gdb?
>>>
>>> Or, can you try building with --enable-address-sanitizer-flags and see
>>> if that gives any clues about memory errors?  You may also need to use
>>> --disable-java and --disable-docs to make that work.
>>
>> OK, I built with the address sanitizer and I see the following when
>> running "make check".  I'll try to take a look at this problem later
>> tonight.
>
> I'm attaching a patch you can experiment with.
>
> jwe
>
> diffs.txt (4K)
> &lt;http://octave.1599824.n4.nabble.com/attachment/4691913/0/diffs.txt&gt;

Thanks John, that patch did the trick, "make check" finishes.

There's now one FAIL I didn't see before in ode15i. No idea if it's related,
excerpt from fntests.log follows:

>>>>> processing /home/philip/devel/octdev/dev/scripts/ode/ode15i.m
***** testif HAVE_SUNDIALS
 saved_opts = warning ();
 warning ("off", "all");
 opt = odeset ("Jacobian", "_5yVNhWVJWJn47RKnzxPsyb_");
 fail ("[t, y] = ode15i (@rob, [0, 4e6], [1; 0; 0], [-1e-4; 1e-4; 0], opt)",
       "invalid value assigned to field 'Jacobian'");
 warning (saved_opts);
!!!!! test failed
expected error <invalid value assigned to field 'Jacobian'>
but got <nargin: FCN must be a string or function handle>


Philip



--
Sent from: http://octave.1599824.n4.nabble.com/Octave-Maintainers-f1638794.html