bugGNU Octave - Bugs: bug #43183, Insufficient GL support &...

 
 

bug #43183: Insufficient GL support & segfault (cont.)

Submitter:  Muhali <muhali>
Submitted:  Wed 10 Sep 2014 09:00:09 AM UTC
   
 
Category:  Plotting with OpenGL Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Segfault, Bus Error, etc.
Status:  Duplicate Assigned to:  andy1978
Originator Name:  Open/Closed:  * Closed
Release:  * dev Operating System:  * GNU/Linux
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Fri 02 Jan 2015 02:50:29 AM UTC, comment #6: 

This should be fixed by this cset (http://hg.savannah.gnu.org/hgweb/octave/rev/8dbd55742112).

Rik <rik5>
Group administrator
Thu 01 Jan 2015 08:00:09 PM UTC, comment #5: 

I think this is a duplicate of bug #41747 and add this as depenecy

Andreas Weber <andy1978>
Group Member
Tue 23 Sep 2014 01:31:41 PM UTC, comment #4: 

Okay, so your setup/configuration simply has insufficient GL support for FLTK. As I already wrote above we could detect the "Insufficient GL support" and then deactivate printing with OpenGL toolkits so that octave doesn't trigger a segmentation fault.

Of course this wouldn't solve your problem with your OpenGL configuration.

Andy

Andreas Weber <andy1978>
Group Member
Wed 10 Sep 2014 01:06:53 PM UTC, comment #3: 

Sorry for not being clear enough. Yes, I see the behavior only for a ssh -X connection, and then only if LIBGL_ALWAYS_INDIRECT is not set, in which case glxinfo gives

Error: couldn't find RGB GLX visual or fbconfig
name of display: localhost:15.0

If set, glxinfo outputs


name of display: localhost:15.0
display: localhost:15  screen: 0
direct rendering: No (LIBGL_ALWAYS_INDIRECT set)
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
    GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
    GLX_EXT_swap_control, GLX_EXT_texture_from_pixmap, GLX_ARB_create_context,
    GLX_ARB_create_context_profile, GLX_ARB_multisample, GLX_NV_float_buffer,
    GLX_ARB_fbconfig_float, GLX_NV_swap_group, GLX_EXT_framebuffer_sRGB,
    GLX_NV_multisample_coverage, GLX_NV_copy_image, GLX_NV_video_capture
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,
    GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control,
    GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_OML_sync_control,
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap
GLX version: 1.4
GLX extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGI_make_current_read,
    GLX_SGI_swap_control, GLX_SGI_video_sync, GLX_SGIX_fbconfig,
    GLX_SGIX_pbuffer, GLX_EXT_texture_from_pixmap
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: Quadro FX unknown board/PCI/SSE2
OpenGL version string: 1.4 (2.1.2 NVIDIA 195.36.31)
OpenGL extensions:
    GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_fragment_program,
    GL_ARB_fragment_program_shadow, GL_ARB_framebuffer_object, GL_ARB_imaging,
    GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_point_parameters,
    GL_ARB_point_sprite, GL_ARB_shadow, GL_ARB_texture_border_clamp,
    GL_ARB_texture_compression, GL_ARB_texture_cube_map,
    GL_ARB_texture_env_add, GL_ARB_texture_env_combine,
    GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3,
    GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two,
    GL_ARB_texture_rectangle, GL_ARB_transpose_matrix, GL_ARB_vertex_program,
    GL_ARB_window_pos, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
    GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
    GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_framebuffer_object,
    GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil,
    GL_EXT_packed_pixels, GL_EXT_point_parameters, GL_EXT_rescale_normal,
    GL_EXT_secondary_color, GL_EXT_separate_specular_color,
    GL_EXT_shadow_funcs, GL_EXT_stencil_wrap, GL_EXT_texture3D,
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_edge_clamp,
    GL_EXT_texture_env_add, GL_EXT_texture_env_combine,
    GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic,
    GL_EXT_texture_lod, GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp,
    GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_vertex_array,
    GL_ATI_draw_buffers, GL_ATI_texture_float, GL_ATI_texture_mirror_once,
    GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat,
    GL_INGR_blend_func_separate, GL_NV_blend_square,
    GL_NV_copy_depth_to_color, GL_NV_depth_clamp, GL_NV_fog_distance,
    GL_NV_fragment_program, GL_NV_fragment_program_option,
    GL_NV_fragment_program2, GL_NV_light_max_exponent,
    GL_NV_multisample_filter_hint, GL_NV_packed_depth_stencil,
    GL_NV_texgen_reflection, GL_NV_texture_compression_vtc,
    GL_NV_texture_env_combine4, GL_NV_texture_rectangle,
    GL_NV_vertex_program1_1, GL_NV_vertex_program2,
    GL_NV_vertex_program2_option, GL_NV_vertex_program3,
    GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp,
    GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SGIX_depth_texture,
    GL_SGIX_shadow, GL_SUN_multi_draw_arrays, GL_SUN_slice_accum

Muhali <muhali>
Wed 10 Sep 2014 10:48:20 AM UTC, comment #2: 

Please also attach the output of glxinfo from the machine you are "ssh -X..." from as file. (The machine which should show the plot window on a screen)

Andreas Weber <andy1978>
Group Member
Wed 10 Sep 2014 10:40:46 AM UTC, comment #1: 

In the first step we need to be able to reproduce this. You conceal, as I read from the FLTK bug report, that this only happens if you "use a ssh tunnel". What exactly are you doing? Have you run "export LIBGL_ALWAYS_INDIRECT=y" before running octave?

The only thing we could do here is try to detect the "Insufficient GL support" and then to deactivate printing with OpenGL toolkits so that octave doesn't trigger a segmentation fault.

So what exactly is your concern here? Do you want help debugging plotting via "ssh -X username@host" (this works for me on different machines) or is your point that octave should just not segfault if there is insufficient GL support?

Thanks, Andy

Andreas Weber <andy1978>
Group Member
Wed 10 Sep 2014 09:00:09 AM UTC, original submission:  

I don't remember why this bug was closed, as I still get the segfault. I had reported the crash to the FLTK forum here as well. They suggest "that the octave folks might have coded a bit more defensively", which I cannot judge as I don't speak C.

I used the most recent dev version. Here is the debug output.


octave:2> graphics_toolkit fltk
octave:3> peaks
Insufficient GL support
Insufficient GL support

Program received signal SIGSEGV, Segmentation fault.
0x00007fffe7efb7eb in Fl_Gl_Window::make_current() () from /usr/local/octave-dev/lib/octave/4.1.0+/oct/x86_64-unknown-linux-gnu/__init_fltk__.oct
(gdb) where
#0  0x00007fffe7efb7eb in Fl_Gl_Window::make_current() () from /usr/local/octave-dev/lib/octave/4.1.0+/oct/x86_64-unknown-linux-gnu/__init_fltk__.oct
#1  0x00007fffe7ee7b93 in plot_window::show_canvas (this=0xf2d560) at ../../libinterp/dldfcn/__init_fltk__.cc:863
#2  0x00007fffe7ee72a4 in plot_window (this=0xf2d560, xx=299, yy=431, ww=560, hh=420, xfp=..., internal=true) at ../../libinterp/dldfcn/__init_fltk__.cc:753
#3  0x00007fffe7eeef99 in figure_manager::do_new_window (this=0xda4e20, fp=...) at ../../libinterp/dldfcn/__init_fltk__.cc:1840
#4  0x00007fffe7eee5ff in figure_manager::new_window (fp=...) at ../../libinterp/dldfcn/__init_fltk__.cc:1691
#5  0x00007fffe7ef1181 in fltk_graphics_toolkit::redraw_figure (this=0xc35e90, go=...) at ../../libinterp/dldfcn/__init_fltk__.cc:2164
#6  0x00007ffff68cc3b6 in graphics_toolkit::redraw_figure (this=0x7fffffffc6f0, go=...) at corefcn/graphics.h:2169
#7  0x00007ffff68be31c in Fdrawnow (args=...) at ../../libinterp/corefcn/graphics.cc:10810
#8  0x00007ffff643faf2 in octave_builtin::do_multi_index_op (this=0x6eb630, nargout=0, args=..., lvalue_list=0x0) at ../../libinterp/octave-value/ov-builtin.cc:132
#9  0x00007ffff643f951 in octave_builtin::do_multi_index_op (this=0x6eb630, nargout=0, args=...) at ../../libinterp/octave-value/ov-builtin.cc:100
#10 0x00007ffff65531ea in octave_value::do_multi_index_op (this=0x7fffffffca60, nargout=0, idx=...) at ../../libinterp/octave-value/ov.cc:1353
#11 0x00007ffff661cdd9 in feval (name=..., args=..., nargout=0) at parse-tree/oct-parse.yy:4460
#12 0x00007ffff691fd0c in interactive_input (s=..., eof=@0x7fffffffccdf) at ../../libinterp/corefcn/input.cc:201
#13 0x00007ffff691ff23 in octave_base_reader::octave_gets (this=0xa35840, eof=@0x7fffffffccdf) at ../../libinterp/corefcn/input.cc:254
#14 0x00007ffff692171e in octave_terminal_reader::get_input (this=0xa35840, eof=@0x7fffffffccdf) at ../../libinterp/corefcn/input.cc:624
#15 0x00007ffff6605f60 in octave_input_reader::get_input (this=0x851628, eof=@0x7fffffffccdf) at ../../libinterp/corefcn/input.h:262
#16 0x00007ffff6605931 in octave_lexer::fill_flex_buffer (this=0x8513a0, buf=0xc6c770 "", max_size=8192) at ../../libinterp/parse-tree/lex.ll:3433
#17 0x00007ffff65fe288 in yy_get_next_buffer (yyscanner=0x8525e0) at parse-tree/lex.cc:3419
#18 0x00007ffff65fdee1 in octave_lex (yylval_param=0x7fffffffd020, yyscanner=0x8525e0) at parse-tree/lex.cc:3288
#19 0x00007ffff660b7e2 in octave_pull_parse (yyps=0x0, parser=...) at parse-tree/oct-parse.cc:3136
#20 0x00007ffff660b776 in octave_parse (parser=...) at parse-tree/oct-parse.cc:3114
#21 0x00007ffff661977a in octave_parser::run (this=0x7fffffffd0a0) at parse-tree/oct-parse.yy:3788
#22 0x00007ffff6aa8425 in main_loop () at ../../libinterp/corefcn/toplev.cc:589
#23 0x00007ffff6080de6 in octave_execute_interpreter () at ../../libinterp/octave.cc:887
#24 0x00000000004033d9 in main (argc=1, argv=0x7fffffffd358) at ../../src/main-cli.cc:42

Muhali <muhali>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Digest:
   bug dependencies.

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by andy1978 (Posted a comment)
  • -email is unavailable- added by muhali (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2015-01-02 rik5 Open/ClosedOpen Closed
    2015-01-01 andy1978 Assigned toNone andy1978
    2015-01-01 andy1978 StatusNone Duplicate
        Dependencies- Depends on bugs #41747

    Back to the top

    Powered by Savane 3.13-f8d8.
    Corresponding source code