rotating generated image from octave with hardware acceleration causes sigsegv
System information
System: Host: descartes Kernel: 5.10.54-1-lts x86_64 bits: 64 compiler: gcc v: 11.1.0 Desktop: FVWM 2.6.9 dm: LXDM Distro: Arch Linux CPU: Info: 6-Core model: Intel Core i7-6800K bits: 64 type: MT MCP arch: Broadwell rev: 1 cache: L2: 15 MiB flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 81557 Speed: 1200 MHz min/max: 1200/3800 MHz Core speeds (MHz): 1: 1200 2: 1200 3: 1438 4: 1200 5: 1502 6: 1202 7: 2450 8: 1203 9: 1201 10: 1201 11: 1648 12: 1200 Graphics: Device-1: AMD Cedar [Radeon HD 5000/6000/7350/8350 Series] vendor: VISIONTEK driver: radeon v: kernel bus-ID: 01:00.0 chip-ID: 1002:68f9 Device-2: Realtek RTL2838 DVB-T type: USB driver: N/A bus-ID: 3-14:8 chip-ID: 0bda:2838 Display: x11 server: X.org 1.20.12 driver: loaded: modesetting alternate: ati,fbdev,vesa resolution: <missing: xdpyinfo> OpenGL: renderer: AMD CEDAR (DRM 2.50.0 / 5.10.54-1-lts LLVM 12.0.1) v: 3.3 Mesa 21.1.5 compat-v: 3.1 direct render: Yes
Describe the issue
I have an issue running octave and having it segfault when run with hardware rendering. If I run the program as LIBGL_ALWAYS_SOFTWARE=1 octave, then I can run the examples without error.
To reproduce, I need to run octave and from it run.
octave:1> demo isosurface isosurface example 1: clf; [x,y,z] = meshgrid (-2:0.5:2, -2:0.5:2, -2:0.5:2); v = x.^2 + y.^2 + z.^2; isosurface (x, y, z, v, 1); axis equal; title ("isosurface() of a sphere");
or
octave:1> a=eye(3);mesh(a);camlight;
Then I need to select the rotate button in the generated figure and I will get a SIGSEGV.
Regression
This is the first occurrence of this error for me.
Log files as attachment
Backtrace for a=eye(3);mesh(a);camlight;
Core was generated by `/usr/lib/octave/6.3.0/exec/x86_64-pc-linux-gnu/octave-gui'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f3bba9345e3 in LLVMBuildBitCast () from /usr/lib/libLLVM-12.so [Current thread is 1 (Thread 0x7f3be6b20a00 (LWP 626897))] (gdb) bt #0 0x00007f3bba9345e3 in LLVMBuildBitCast () from /usr/lib/libLLVM-12.so #1 (closed) 0x00007f3bd4cd9620 in ?? () from /usr/lib/dri/r600_dri.so #2 (closed) 0x00007f3bd5682b9b in ?? () from /usr/lib/dri/r600_dri.so #3 (closed) 0x00007f3bd4caf869 in ?? () from /usr/lib/dri/r600_dri.so #4 (closed) 0x00007f3bd4c4e300 in ?? () from /usr/lib/dri/r600_dri.so #5 (closed) 0x00007f3bd4c5f265 in ?? () from /usr/lib/dri/r600_dri.so #6 (closed) 0x00007f3bd4bfc5e2 in ?? () from /usr/lib/dri/r600_dri.so #7 (closed) 0x00007f3bd5689042 in ?? () from /usr/lib/dri/r600_dri.so #8 (closed) 0x00007f3bd4c02265 in ?? () from /usr/lib/dri/r600_dri.so #9 (closed) 0x00007f3bd4c0a869 in ?? () from /usr/lib/dri/r600_dri.so #10 (closed) 0x00007f3bd47d54a3 in ?? () from /usr/lib/dri/r600_dri.so #11 (closed) 0x00007f3bd486ebd3 in ?? () from /usr/lib/dri/r600_dri.so #12 (closed) 0x00007f3bd486cde3 in ?? () from /usr/lib/dri/r600_dri.so #13 (closed) 0x00007f3bd498bf7c in ?? () from /usr/lib/dri/r600_dri.so #14 0x00007f3bd498c2dd in ?? () from /usr/lib/dri/r600_dri.so #15 (closed) 0x00007f3bd4a381f7 in ?? () from /usr/lib/dri/r600_dri.so #16 0x00007f3bef9177b0 in octave::opengl_renderer::draw_surface(surface::properties const&) () from /usr/lib/octave/6.3.0/liboctinterp.so.9 #17 (closed) 0x00007f3bef905753 in octave::opengl_renderer::draw(graphics_object const&, bool) () from /usr/lib/octave/6.3.0/liboctinterp.so.9 #18 0x00007f3bf01d4dba in octave::opengl_selector::draw(graphics_object const&, bool) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #19 (closed) 0x00007f3bef91ec50 in octave::opengl_renderer::draw_axes_children(axes::prop--Type for more, q to quit, c to continue without paging-- erties const&) () from /usr/lib/octave/6.3.0/liboctinterp.so.9 #20 (closed) 0x00007f3bef91f7e5 in octave::opengl_renderer::draw_axes(axes::properties const&) () from /usr/lib/octave/6.3.0/liboctinterp.so.9 #21 (closed) 0x00007f3bef905753 in octave::opengl_renderer::draw(graphics_object const&, bool) () from /usr/lib/octave/6.3.0/liboctinterp.so.9 #22 (closed) 0x00007f3bf01d4dba in octave::opengl_selector::draw(graphics_object const&, bool) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #23 (closed) 0x00007f3bf01d5029 in octave::opengl_selector::select(graphics_object const&, int, int, int) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #24 (closed) 0x00007f3bf019b2c1 in QtHandles::GLCanvas::selectFromAxes(graphics_object const&, QPoint const&) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #25 0x00007f3bf018a342 in QtHandles::Canvas::select_object(graphics_object, QMouseEvent*, graphics_object&, graphics_object&, bool, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #26 (closed) 0x00007f3bf018afa5 in QtHandles::Canvas::canvasMousePressEvent(QMouseEvent*) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #27 (closed) 0x00007f3beccd80be in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5 #28 (closed) 0x00007f3becc94d62 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #29 (closed) 0x00007f3becc9cac9 in QApplication::notify(QObject*, QEvent*) () --Type for more, q to quit, c to continue without paging-- from /usr/lib/libQt5Widgets.so.5 #30 (closed) 0x00007f3bf023d388 in octave::octave_qapplication::notify(QObject*, QEvent*) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #31 (closed) 0x00007f3bec1c03aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5 #32 (closed) 0x00007f3becc9b57b in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool, bool) () from /usr/lib/libQt5Widgets.so.5 #33 (closed) 0x00007f3beccf1a84 in ?? () from /usr/lib/libQt5Widgets.so.5 #34 (closed) 0x00007f3beccf4db5 in ?? () from /usr/lib/libQt5Widgets.so.5 #35 (closed) 0x00007f3becc94d62 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #36 (closed) 0x00007f3bf023d388 in octave::octave_qapplication::notify(QObject*, QEvent*) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #37 (closed) 0x00007f3bec1c03aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5 #38 (closed) 0x00007f3bec599210 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/libQt5Gui.so.5 #39 (moved) 0x00007f3bec56e7e5 in QWindowSystemInterface::sendWindowSystemEvents(QFlagsQEventLoop::ProcessEventsFlag) () from /usr/lib/libQt5Gui.so.5 #40 (moved) 0x00007f3be620afac in ?? () from /usr/lib/libQt5XcbQpa.so.5 #41 (closed) 0x00007f3be931110c in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 --Type for more, q to quit, c to continue without paging-- #42 (closed) 0x00007f3be9364b99 in ?? () from /usr/lib/libglib-2.0.so.0 #43 0x00007f3be930e871 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #44 0x00007f3bec218fd6 in QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) () from /usr/lib/libQt5Core.so.5 #45 0x00007f3bec1bed1c in QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) () from /usr/lib/libQt5Core.so.5 #46 0x00007f3bec1c7284 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5 #47 (closed) 0x00007f3bf0247f67 in octave::qt_application::execute() () from /usr/lib/octave/6.3.0/liboctgui.so.6 #48 (closed) 0x000055bce3f9f22f in ?? () #49 (closed) 0x00007f3bed90fb25 in __libc_start_main () from /usr/lib/libc.so.6 #50 (closed) 0x000055bce3f9f50e in ?? ()
Backtrace for isosurface command.
Core was generated by `/usr/lib/octave/6.3.0/exec/x86_64-pc-linux-gnu/octave-gui'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f7e7a9345e3 in LLVMBuildBitCast () from /usr/lib/libLLVM-12.so [Current thread is 1 (Thread 0x7f7ea560da00 (LWP 627528))] (gdb) bt #0 0x00007f7e7a9345e3 in LLVMBuildBitCast () from /usr/lib/libLLVM-12.so #1 (closed) 0x00007f7e86cdd620 in ?? () from /usr/lib/dri/r600_dri.so #2 (closed) 0x00007f7e87686b9b in ?? () from /usr/lib/dri/r600_dri.so #3 (closed) 0x00007f7e86cb3869 in ?? () from /usr/lib/dri/r600_dri.so #4 (closed) 0x00007f7e86c52300 in ?? () from /usr/lib/dri/r600_dri.so #5 (closed) 0x00007f7e86c63265 in ?? () from /usr/lib/dri/r600_dri.so #6 (closed) 0x00007f7e86c005e2 in ?? () from /usr/lib/dri/r600_dri.so #7 (closed) 0x00007f7e8768d042 in ?? () from /usr/lib/dri/r600_dri.so #8 (closed) 0x00007f7e86c06265 in ?? () from /usr/lib/dri/r600_dri.so #9 (closed) 0x00007f7e86c0e869 in ?? () from /usr/lib/dri/r600_dri.so #10 (closed) 0x00007f7e867d94a3 in ?? () from /usr/lib/dri/r600_dri.so #11 (closed) 0x00007f7e86872bd3 in ?? () from /usr/lib/dri/r600_dri.so #12 (closed) 0x00007f7e86870de3 in ?? () from /usr/lib/dri/r600_dri.so #13 (closed) 0x00007f7e8698ff7c in ?? () from /usr/lib/dri/r600_dri.so #14 0x00007f7e869902dd in ?? () from /usr/lib/dri/r600_dri.so #15 (closed) 0x00007f7e86a3ba26 in ?? () from /usr/lib/dri/r600_dri.so #16 0x00007f7eae3edb6e in octave::opengl_renderer::set_polygon_offset(bool, float) () from /usr/lib/octave/6.3.0/liboctinterp.so.9 #17 (closed) 0x00007f7ea9a6fe6b in gluTessEndPolygon () from /usr/lib/libGLU.so.1 #18 0x00007f7eae40865c in octave::opengl_renderer::draw_patch(patch::properties const&) () from /usr/lib/octave/6.3.0/liboctinterp.so.9 #19 (closed) 0x00007f7eae3f2753 in octave::opengl_renderer::draw(graphics_object const&, bool) () from /usr/lib/octave/6.3.0/liboctinterp.so.9 --Type for more, q to quit, c to continue without paging-- #20 (closed) 0x00007f7eaecc1dba in octave::opengl_selector::draw(graphics_object const&, bool) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #21 (closed) 0x00007f7eae40bc50 in octave::opengl_renderer::draw_axes_children(axes::properties const&) () from /usr/lib/octave/6.3.0/liboctinterp.so.9 #22 (closed) 0x00007f7eae40c7e5 in octave::opengl_renderer::draw_axes(axes::properties const&) () from /usr/lib/octave/6.3.0/liboctinterp.so.9 #23 (closed) 0x00007f7eae3f2753 in octave::opengl_renderer::draw(graphics_object const&, bool) () from /usr/lib/octave/6.3.0/liboctinterp.so.9 #24 (closed) 0x00007f7eaecc1dba in octave::opengl_selector::draw(graphics_object const&, bool) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #25 0x00007f7eaecc2029 in octave::opengl_selector::select(graphics_object const&, int, int, int) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #26 (closed) 0x00007f7eaec882c1 in QtHandles::GLCanvas::selectFromAxes(graphics_object const&, QPoint const&) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #27 (closed) 0x00007f7eaec77342 in QtHandles::Canvas::select_object(graphics_object, QMouseEvent*, graphics_object&, graphics_object&, bool, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #28 (closed) 0x00007f7eaec77fa5 in QtHandles::Canvas::canvasMousePressEvent(QMouseEvent*) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #29 (closed) 0x00007f7eab7c50be in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5 --Type for more, q to quit, c to continue without paging-- #30 (closed) 0x00007f7eab781d62 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #31 (closed) 0x00007f7eab789ac9 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #32 (closed) 0x00007f7eaed2a388 in octave::octave_qapplication::notify(QObject*, QEvent*) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #33 (closed) 0x00007f7eaacad3aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5 #34 (closed) 0x00007f7eab78857b in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool, bool) () from /usr/lib/libQt5Widgets.so.5 #35 (closed) 0x00007f7eab7dea84 in ?? () from /usr/lib/libQt5Widgets.so.5 #36 (closed) 0x00007f7eab7e1db5 in ?? () from /usr/lib/libQt5Widgets.so.5 #37 (closed) 0x00007f7eab781d62 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #38 (closed) 0x00007f7eaed2a388 in octave::octave_qapplication::notify(QObject*, QEvent*) () from /usr/lib/octave/6.3.0/liboctgui.so.6 #39 (moved) 0x00007f7eaacad3aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5 #40 (moved) 0x00007f7eab086210 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/libQt5Gui.so.5 #41 (closed) 0x00007f7eab05b7e5 in QWindowSystemInterface::sendWindowSystemEvents(QFlagsQEventLoop::ProcessEventsFlag) () from /usr/lib/libQt5Gui.so.5 --Type for more, q to quit, c to continue without paging-- #42 (closed) 0x00007f7ea4cf7fac in ?? () from /usr/lib/libQt5XcbQpa.so.5 #43 0x00007f7ea7dfe10c in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #44 0x00007f7ea7e51b99 in ?? () from /usr/lib/libglib-2.0.so.0 #45 0x00007f7ea7dfb871 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #46 0x00007f7eaad05fd6 in QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) () from /usr/lib/libQt5Core.so.5 #47 (closed) 0x00007f7eaacabd1c in QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) () from /usr/lib/libQt5Core.so.5 #48 (closed) 0x00007f7eaacb4284 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5 #49 (closed) 0x00007f7eaed34f67 in octave::qt_application::execute() () from /usr/lib/octave/6.3.0/liboctgui.so.6 #50 (closed) 0x000056161192022f in ?? () #51 0x00007f7eac3fcb25 in __libc_start_main () from /usr/lib/libc.so.6 #52 (moved) 0x000056161192050e in ?? ()
Screenshots/video files (if applicable)
What is generated in terms of screenshots is not important, just that they crash when I attempt to rotate them with a mouse.