octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #60987] rotating generated image with mouse ca


From: Chris Gorman
Subject: [Octave-bug-tracker] [bug #60987] rotating generated image with mouse causes segfault
Date: Wed, 28 Jul 2021 19:20:02 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0

URL:
  <https://savannah.gnu.org/bugs/?60987>

                 Summary: rotating generated image with mouse causes segfault
                 Project: GNU Octave
            Submitted by: chrisgorman
            Submitted on: Wed 28 Jul 2021 11:20:00 PM UTC
                Category: Plotting with OpenGL
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Segfault, Bus Error, etc.
                  Status: None
             Assigned to: None
         Originator Name: Chris Gorman
        Originator Email: 
             Open/Closed: Open
                 Release: 6.3.0
         Discussion Lock: Any
        Operating System: GNU/Linux

    _______________________________________________________

Details:

I can get octave to segfault with mouse rotations of the generated figure.  My
first example is to use camlight on a generated image.


octave:1> a=eye(3);
octave:2> mesh(a)
octave:3> camlight


Now rotate the generated image with my mouse and segfault.  When examined by
gdb the core yields.

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  0x00007f3bd4cd9620 in ?? () from /usr/lib/dri/r600_dri.so
#2  0x00007f3bd5682b9b in ?? () from /usr/lib/dri/r600_dri.so
#3  0x00007f3bd4caf869 in ?? () from /usr/lib/dri/r600_dri.so
#4  0x00007f3bd4c4e300 in ?? () from /usr/lib/dri/r600_dri.so
#5  0x00007f3bd4c5f265 in ?? () from /usr/lib/dri/r600_dri.so
#6  0x00007f3bd4bfc5e2 in ?? () from /usr/lib/dri/r600_dri.so
#7  0x00007f3bd5689042 in ?? () from /usr/lib/dri/r600_dri.so
#8  0x00007f3bd4c02265 in ?? () from /usr/lib/dri/r600_dri.so
#9  0x00007f3bd4c0a869 in ?? () from /usr/lib/dri/r600_dri.so
#10 0x00007f3bd47d54a3 in ?? () from /usr/lib/dri/r600_dri.so
#11 0x00007f3bd486ebd3 in ?? () from /usr/lib/dri/r600_dri.so
#12 0x00007f3bd486cde3 in ?? () from /usr/lib/dri/r600_dri.so
#13 0x00007f3bd498bf7c in ?? () from /usr/lib/dri/r600_dri.so
#14 0x00007f3bd498c2dd in ?? () from /usr/lib/dri/r600_dri.so
#15 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 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 0x00007f3bef91ec50 in
octave::opengl_renderer::draw_axes_children(axes::prop--Type <RET> for more, q
to quit, c to continue without paging--
erties const&) () from /usr/lib/octave/6.3.0/liboctinterp.so.9
#20 0x00007f3bef91f7e5 in octave::opengl_renderer::draw_axes(axes::properties
const&) () from /usr/lib/octave/6.3.0/liboctinterp.so.9
#21 0x00007f3bef905753 in octave::opengl_renderer::draw(graphics_object
const&, bool) () from /usr/lib/octave/6.3.0/liboctinterp.so.9
#22 0x00007f3bf01d4dba in octave::opengl_selector::draw(graphics_object
const&, bool) () from /usr/lib/octave/6.3.0/liboctgui.so.6
#23 0x00007f3bf01d5029 in octave::opengl_selector::select(graphics_object
const&, int, int, int) () from /usr/lib/octave/6.3.0/liboctgui.so.6
#24 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<char>,
std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > > >) () from
/usr/lib/octave/6.3.0/liboctgui.so.6
#26 0x00007f3bf018afa5 in
QtHandles::Canvas::canvasMousePressEvent(QMouseEvent*) () from
/usr/lib/octave/6.3.0/liboctgui.so.6
#27 0x00007f3beccd80be in QWidget::event(QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#28 0x00007f3becc94d62 in QApplicationPrivate::notify_helper(QObject*,
QEvent*)
    () from /usr/lib/libQt5Widgets.so.5
#29 0x00007f3becc9cac9 in QApplication::notify(QObject*, QEvent*) ()
--Type <RET> for more, q to quit, c to continue without paging--
   from /usr/lib/libQt5Widgets.so.5
#30 0x00007f3bf023d388 in octave::octave_qapplication::notify(QObject*,
QEvent*) () from /usr/lib/octave/6.3.0/liboctgui.so.6
#31 0x00007f3bec1c03aa in QCoreApplication::notifyInternal2(QObject*,
QEvent*)
    () from /usr/lib/libQt5Core.so.5
#32 0x00007f3becc9b57b in QApplicationPrivate::sendMouseEvent(QWidget*,
QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool)
()
   from /usr/lib/libQt5Widgets.so.5
#33 0x00007f3beccf1a84 in ?? () from /usr/lib/libQt5Widgets.so.5
#34 0x00007f3beccf4db5 in ?? () from /usr/lib/libQt5Widgets.so.5
#35 0x00007f3becc94d62 in QApplicationPrivate::notify_helper(QObject*,
QEvent*)
    () from /usr/lib/libQt5Widgets.so.5
#36 0x00007f3bf023d388 in octave::octave_qapplication::notify(QObject*,
QEvent*) () from /usr/lib/octave/6.3.0/liboctgui.so.6
#37 0x00007f3bec1c03aa in QCoreApplication::notifyInternal2(QObject*,
QEvent*)
    () from /usr/lib/libQt5Core.so.5
#38 0x00007f3bec599210 in
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
() from /usr/lib/libQt5Gui.so.5
#39 0x00007f3bec56e7e5 in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() from /usr/lib/libQt5Gui.so.5
#40 0x00007f3be620afac in ?? () from /usr/lib/libQt5XcbQpa.so.5
#41 0x00007f3be931110c in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--
#42 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(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/libQt5Core.so.5
#45 0x00007f3bec1bed1c in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/libQt5Core.so.5
#46 0x00007f3bec1c7284 in QCoreApplication::exec() ()
   from /usr/lib/libQt5Core.so.5
#47 0x00007f3bf0247f67 in octave::qt_application::execute() ()
   from /usr/lib/octave/6.3.0/liboctgui.so.6
#48 0x000055bce3f9f22f in ?? ()
#49 0x00007f3bed90fb25 in __libc_start_main () from /usr/lib/libc.so.6
#50 0x000055bce3f9f50e in ?? ()

Another example of a piece of code that generates a segfault is running the
demo for isosurface.


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");


At this point attempt to rotate the generated image with the mouse and get a
segfault.  Similar to the first.  Backtrace from gdb follows.

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  0x00007f7e86cdd620 in ?? () from /usr/lib/dri/r600_dri.so
#2  0x00007f7e87686b9b in ?? () from /usr/lib/dri/r600_dri.so
#3  0x00007f7e86cb3869 in ?? () from /usr/lib/dri/r600_dri.so
#4  0x00007f7e86c52300 in ?? () from /usr/lib/dri/r600_dri.so
#5  0x00007f7e86c63265 in ?? () from /usr/lib/dri/r600_dri.so
#6  0x00007f7e86c005e2 in ?? () from /usr/lib/dri/r600_dri.so
#7  0x00007f7e8768d042 in ?? () from /usr/lib/dri/r600_dri.so
#8  0x00007f7e86c06265 in ?? () from /usr/lib/dri/r600_dri.so
#9  0x00007f7e86c0e869 in ?? () from /usr/lib/dri/r600_dri.so
#10 0x00007f7e867d94a3 in ?? () from /usr/lib/dri/r600_dri.so
#11 0x00007f7e86872bd3 in ?? () from /usr/lib/dri/r600_dri.so
#12 0x00007f7e86870de3 in ?? () from /usr/lib/dri/r600_dri.so
#13 0x00007f7e8698ff7c in ?? () from /usr/lib/dri/r600_dri.so
#14 0x00007f7e869902dd in ?? () from /usr/lib/dri/r600_dri.so
#15 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 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 0x00007f7eae3f2753 in octave::opengl_renderer::draw(graphics_object
const&, bool) () from /usr/lib/octave/6.3.0/liboctinterp.so.9
--Type <RET> for more, q to quit, c to continue without paging--
#20 0x00007f7eaecc1dba in octave::opengl_selector::draw(graphics_object
const&, bool) () from /usr/lib/octave/6.3.0/liboctgui.so.6
#21 0x00007f7eae40bc50 in
octave::opengl_renderer::draw_axes_children(axes::properties const&) () from
/usr/lib/octave/6.3.0/liboctinterp.so.9
#22 0x00007f7eae40c7e5 in octave::opengl_renderer::draw_axes(axes::properties
const&) () from /usr/lib/octave/6.3.0/liboctinterp.so.9
#23 0x00007f7eae3f2753 in octave::opengl_renderer::draw(graphics_object
const&, bool) () from /usr/lib/octave/6.3.0/liboctinterp.so.9
#24 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 0x00007f7eaec882c1 in QtHandles::GLCanvas::selectFromAxes(graphics_object
const&, QPoint const&) () from /usr/lib/octave/6.3.0/liboctgui.so.6
#27 0x00007f7eaec77342 in QtHandles::Canvas::select_object(graphics_object,
QMouseEvent*, graphics_object&, graphics_object&, bool,
std::vector<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > > >) () from
/usr/lib/octave/6.3.0/liboctgui.so.6
#28 0x00007f7eaec77fa5 in
QtHandles::Canvas::canvasMousePressEvent(QMouseEvent*) () from
/usr/lib/octave/6.3.0/liboctgui.so.6
#29 0x00007f7eab7c50be in QWidget::event(QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
--Type <RET> for more, q to quit, c to continue without paging--
#30 0x00007f7eab781d62 in QApplicationPrivate::notify_helper(QObject*,
QEvent*)
    () from /usr/lib/libQt5Widgets.so.5
#31 0x00007f7eab789ac9 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#32 0x00007f7eaed2a388 in octave::octave_qapplication::notify(QObject*,
QEvent*) () from /usr/lib/octave/6.3.0/liboctgui.so.6
#33 0x00007f7eaacad3aa in QCoreApplication::notifyInternal2(QObject*,
QEvent*)
    () from /usr/lib/libQt5Core.so.5
#34 0x00007f7eab78857b in QApplicationPrivate::sendMouseEvent(QWidget*,
QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool)
()
   from /usr/lib/libQt5Widgets.so.5
#35 0x00007f7eab7dea84 in ?? () from /usr/lib/libQt5Widgets.so.5
#36 0x00007f7eab7e1db5 in ?? () from /usr/lib/libQt5Widgets.so.5
#37 0x00007f7eab781d62 in QApplicationPrivate::notify_helper(QObject*,
QEvent*)
    () from /usr/lib/libQt5Widgets.so.5
#38 0x00007f7eaed2a388 in octave::octave_qapplication::notify(QObject*,
QEvent*) () from /usr/lib/octave/6.3.0/liboctgui.so.6
#39 0x00007f7eaacad3aa in QCoreApplication::notifyInternal2(QObject*,
QEvent*)
    () from /usr/lib/libQt5Core.so.5
#40 0x00007f7eab086210 in
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
() from /usr/lib/libQt5Gui.so.5
#41 0x00007f7eab05b7e5 in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() from /usr/lib/libQt5Gui.so.5
--Type <RET> for more, q to quit, c to continue without paging--
#42 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(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/libQt5Core.so.5
#47 0x00007f7eaacabd1c in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/libQt5Core.so.5
#48 0x00007f7eaacb4284 in QCoreApplication::exec() ()
   from /usr/lib/libQt5Core.so.5
#49 0x00007f7eaed34f67 in octave::qt_application::execute() ()
   from /usr/lib/octave/6.3.0/liboctgui.so.6
#50 0x000056161192022f in ?? ()
#51 0x00007f7eac3fcb25 in __libc_start_main () from /usr/lib/libc.so.6
#52 0x000056161192050e in ?? ()




    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?60987>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]