Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#42832 - [octave] Segmentation fault in `Fl_Gl_Window::show()`

Attached to Project: Arch Linux
Opened by Michal Rus (michalrus) - Tuesday, 18 November 2014, 12:42 GMT
Last edited by Ronald van Haren (pressh) - Thursday, 20 November 2014, 15:08 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Ronald van Haren (pressh)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 3
Private No

Details

Hey,

this one might be related to #40032, but instead of a garbled image, I'm getting a SIGSEGV in `Fl_Gl_Window::show()`, when trying to plot with the FLTK backend.

% pacman -Q | grep 'octave|fltk'
fltk 1.3.3-1
octave 3.8.2-1

% echo 'plot(1:4)' > segv.m

% octave segv.m
panic: Segmentation fault -- stopping myself...
attempting to save variables to 'octave-workspace'...
save to 'octave-workspace' complete
zsh: segmentation fault (core dumped) octave segv.m

(139)%

Backtrace:

#0 0x00007fffe69cc6fd in Fl_Gl_Window::show() () from /usr/lib/libfltk_gl.so.1.3
#1 0x00007fffe670ba60 in Fl_Window::handle(int) () from /usr/lib/libfltk.so.1.3
#2 0x00007fffe6bf4770 in OpenGL_fltk::handle(int) () from /usr/lib/octave/3.8.2/oct/x86_64-unknown-linux-gnu/__init_fltk__.oct
#3 0x00007fffe6720d26 in Fl_Group::handle(int) () from /usr/lib/libfltk.so.1.3
#4 0x00007fffe6c04cd6 in plot_window::handle(int) () from /usr/lib/octave/3.8.2/oct/x86_64-unknown-linux-gnu/__init_fltk__.oct
#5 0x00007fffe6769498 in Fl_X::make_xid(Fl_Window*, XVisualInfo*, unsigned long) () from /usr/lib/libfltk.so.1.3
#6 0x00007fffe6c0724c in plot_window::plot_window(int, int, int, int, figure::properties&) () from /usr/lib/octave/3.8.2/oct/x86_64-unknown-linux-gnu/__init_fltk__.oct
#7 0x00007fffe6c07a83 in figure_manager::do_new_window(figure::properties&) () from /usr/lib/octave/3.8.2/oct/x86_64-unknown-linux-gnu/__init_fltk__.oct
#8 0x00007fffe6bf377d in ?? () from /usr/lib/octave/3.8.2/oct/x86_64-unknown-linux-gnu/__init_fltk__.oct
#9 0x00007fffe6c07ce3 in fltk_graphics_toolkit::redraw_figure(graphics_object const&) const () from /usr/lib/octave/3.8.2/oct/x86_64-unknown-linux-gnu/__init_fltk__.oct
#10 0x00007ffff758e139 in Fdrawnow(octave_value_list const&, int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#11 0x00007ffff71fcac7 in octave_builtin::do_multi_index_op(int, octave_value_list const&, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#12 0x00007ffff71fb2a4 in octave_builtin::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#13 0x00007ffff71fc13c in octave_builtin::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#14 0x00007ffff72bfc09 in octave_value::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#15 0x00007ffff72bfc95 in octave_value::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#16 0x00007ffff733fee6 in tree_index_expression::rvalue(int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#17 0x00007ffff7340b81 in tree_index_expression::rvalue1(int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#18 0x00007ffff732aafb in tree_evaluator::visit_statement(tree_statement&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#19 0x00007ffff7329e09 in tree_evaluator::visit_statement_list(tree_statement_list&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#20 0x00007ffff732aa84 in tree_evaluator::visit_statement(tree_statement&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#21 0x00007ffff7329e09 in tree_evaluator::visit_statement_list(tree_statement_list&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#22 0x00007ffff72b4239 in octave_user_function::do_multi_index_op(int, octave_value_list const&, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#23 0x00007ffff72afb22 in octave_user_function::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#24 0x00007ffff72afd3c in octave_user_function::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#25 0x00007ffff72bfc09 in octave_value::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#26 0x00007ffff72bfc95 in octave_value::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#27 0x00007ffff733fee6 in tree_index_expression::rvalue(int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#28 0x00007ffff7340b81 in tree_index_expression::rvalue1(int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#29 0x00007ffff732aafb in tree_evaluator::visit_statement(tree_statement&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#30 0x00007ffff7329e09 in tree_evaluator::visit_statement_list(tree_statement_list&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#31 0x00007ffff732aa84 in tree_evaluator::visit_statement(tree_statement&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#32 0x00007ffff7329e09 in tree_evaluator::visit_statement_list(tree_statement_list&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#33 0x00007ffff72b4239 in octave_user_function::do_multi_index_op(int, octave_value_list const&, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#34 0x00007ffff72afb22 in octave_user_function::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#35 0x00007ffff72b5814 in octave_user_function::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#36 0x00007ffff72bfc34 in octave_value::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#37 0x00007ffff72bfc95 in octave_value::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#38 0x00007ffff733fee6 in tree_index_expression::rvalue(int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#39 0x00007ffff7340b81 in tree_index_expression::rvalue1(int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#40 0x00007ffff73162cf in tree_simple_assignment::rvalue1(int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#41 0x00007ffff732aafb in tree_evaluator::visit_statement(tree_statement&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#42 0x00007ffff7329e09 in tree_evaluator::visit_statement_list(tree_statement_list&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#43 0x00007ffff732aa84 in tree_evaluator::visit_statement(tree_statement&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#44 0x00007ffff7329e09 in tree_evaluator::visit_statement_list(tree_statement_list&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#45 0x00007ffff732aa84 in tree_evaluator::visit_statement(tree_statement&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#46 0x00007ffff7329e09 in tree_evaluator::visit_statement_list(tree_statement_list&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#47 0x00007ffff72b4239 in octave_user_function::do_multi_index_op(int, octave_value_list const&, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#48 0x00007ffff72afb22 in octave_user_function::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#49 0x00007ffff72b5814 in octave_user_function::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#50 0x00007ffff72bfc34 in octave_value::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#51 0x00007ffff72bfc95 in octave_value::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#52 0x00007ffff733fee6 in tree_index_expression::rvalue(int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#53 0x00007ffff7340b81 in tree_index_expression::rvalue1(int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#54 0x00007ffff73162cf in tree_simple_assignment::rvalue1(int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#55 0x00007ffff732aafb in tree_evaluator::visit_statement(tree_statement&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#56 0x00007ffff7329e09 in tree_evaluator::visit_statement_list(tree_statement_list&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#57 0x00007ffff732aa84 in tree_evaluator::visit_statement(tree_statement&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#58 0x00007ffff7329e09 in tree_evaluator::visit_statement_list(tree_statement_list&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#59 0x00007ffff72b4239 in octave_user_function::do_multi_index_op(int, octave_value_list const&, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#60 0x00007ffff72afb22 in octave_user_function::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#61 0x00007ffff72b5814 in octave_user_function::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#62 0x00007ffff72bfc34 in octave_value::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#63 0x00007ffff72bfc95 in octave_value::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#64 0x00007ffff733fee6 in tree_index_expression::rvalue(int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#65 0x00007ffff7340b81 in tree_index_expression::rvalue1(int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#66 0x00007ffff73162cf in tree_simple_assignment::rvalue1(int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#67 0x00007ffff732aafb in tree_evaluator::visit_statement(tree_statement&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#68 0x00007ffff7329e09 in tree_evaluator::visit_statement_list(tree_statement_list&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#69 0x00007ffff732d3de in tree_evaluator::visit_unwind_protect_command(tree_unwind_protect_command&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#70 0x00007ffff732aa84 in tree_evaluator::visit_statement(tree_statement&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#71 0x00007ffff7329e09 in tree_evaluator::visit_statement_list(tree_statement_list&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#72 0x00007ffff72b4239 in octave_user_function::do_multi_index_op(int, octave_value_list const&, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#73 0x00007ffff72afb22 in octave_user_function::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#74 0x00007ffff72afd3c in octave_user_function::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#75 0x00007ffff72bfc09 in octave_value::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#76 0x00007ffff72bfc95 in octave_value::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#77 0x00007ffff733fee6 in tree_index_expression::rvalue(int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#78 0x00007ffff7340b81 in tree_index_expression::rvalue1(int) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#79 0x00007ffff732aafb in tree_evaluator::visit_statement(tree_statement&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#80 0x00007ffff7329e09 in tree_evaluator::visit_statement_list(tree_statement_list&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#81 0x00007ffff72b35d0 in octave_user_script::do_multi_index_op(int, octave_value_list const&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#82 0x00007ffff737bacb in source_file(std::string const&, std::string const&, bool, bool, std::string const&) () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#83 0x00007ffff6db5733 in ?? () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#84 0x00007ffff6db952e in octave_execute_interpreter () from /usr/lib/octave/3.8.2/liboctinterp.so.2
#85 0x00007ffff6453040 in __libc_start_main () from /usr/lib/libc.so.6
#86 0x000000000040091f in ?? ()

How do I proceed from here?

Best,
m.
This task depends upon

Closed by  Ronald van Haren (pressh)
Thursday, 20 November 2014, 15:08 GMT
Reason for closing:  Fixed
Additional comments about closing:  octave 3.8.2-2
Comment by sven (commonuser) - Wednesday, 19 November 2014, 23:18 GMT
Can confirm the bug with Nvidia and Mesa libgl for
octave 3.8.2-1 and fltk 1.3.3-3.

Even a simple `figure` triggers the crash.
Comment by Michal Rus (michalrus) - Wednesday, 19 November 2014, 23:21 GMT
`mesa-libgl 10.3.3-1` here, too, and:

Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
Advanced Micro Devices, Inc. [AMD/ATI] Mars [Radeon HD 8730M]
Comment by Ronald van Haren (pressh) - Thursday, 20 November 2014, 10:51 GMT
was this introduced with the update of fltk to 1.3.3?
Comment by Michal Rus (michalrus) - Thursday, 20 November 2014, 10:53 GMT
@pressh, I wouldn't know, I only installed octave on 18th of November…

@commonuser, how about you?
Comment by Milian Wolff (milianw) - Thursday, 20 November 2014, 11:58 GMT
This broke in one of the last updates. It still worked fine sometime last week or two ago. Sadly I can't find a tarball of fltk 1.3.2-3 anymore and have cleared my local pacman cache already.
Comment by mattia (nTia89) - Thursday, 20 November 2014, 12:07 GMT
I confirm the bug with:
* octave 3.8.2-1
* fltk 1.3.3-3
Comment by Ronald van Haren (pressh) - Thursday, 20 November 2014, 12:22 GMT
Seems to be fixed by a simple rebuild. I'll upload when the i686 build finishes as well.
Comment by Ronald van Haren (pressh) - Thursday, 20 November 2014, 13:49 GMT
please confirm that this is fixed in octave 3.8.2-2
Comment by Michal Rus (michalrus) - Thursday, 20 November 2014, 14:24 GMT
Works for me! Thank youuuuu. ♥ ♥
Comment by andrea gadda (andrea89g) - Thursday, 20 November 2014, 14:46 GMT
Works fine, thank you!

Loading...