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

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

[Octave-bug-tracker] [bug #56345] Octave crashes when closing two figure


From: anonymous
Subject: [Octave-bug-tracker] [bug #56345] Octave crashes when closing two figures with graphics_toolkit qt
Date: Sat, 18 May 2019 09:35:30 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0

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

                 Summary: Octave crashes when closing two figures with
graphics_toolkit qt
                 Project: GNU Octave
            Submitted by: None
            Submitted on: Sat 18 May 2019 01:35:29 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: Octave user
        Originator Email: address@hidden
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 5.1.0
        Operating System: GNU/Linux

    _______________________________________________________

Details:

If you run the attached script, octave crashes in QOpenGLFunctions::glClear:

$octave octave_figure_qt.m 
fatal: caught signal Segmentation fault -- stopping myself...
Segmentation fault


Running octave through valgrind does not show any errors before the
segmentation fault. So the bug could be also in Qt or it could be in the
nouveau display driver.
The problem appears only with the qt graphics toolkit, and only if more than
one qt figures are visible.
It does not matter if you run octave in gui mode or not.

This is my system configuration:

Qt version: 5.12.3
OS version: Linux 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13)
x86_64 GNU/Linux
Video driver: nouveau 1.3.1 20120801 for 0000:01:00.0 on minor 0


This is the backtrace from gdb:

Thread 1 "octave-gui" received signal SIGSEGV, Segmentation fault.
(gdb) bt full
#0  0x00007fffbf26c5b5 in ?? () from
/usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so
No symbol table info available.
#1  0x00007fffbefbc1a0 in ?? () from
/usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so
No symbol table info available.
#2  0x00007fffbefb83bb in ?? () from
/usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so
No symbol table info available.
#3  0x00007fffbefc1174 in ?? () from
/usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so
No symbol table info available.
#4  0x00007ffff3f377fa in QOpenGLFunctions::glClear (mask=16384,
this=0x555555ccf300) at
../../include/QtGui/../../src/gui/opengl/qopenglfunctions.h:646
No locals.
#5  QPlatformBackingStore::composeAndFlush (address@hidden,
address@hidden, region=..., offset=...,
address@hidden,
address@hidden) at
painting/qplatformbackingstore.cpp:354
        funcs = 0x555555ccf300
        deviceWindowRect = {x1 = -8896, y1 = 32767, x2 = 1434388176, y2 =
21845}
        deviceWindowOffset = <optimized out>
        canUseSrgb = <optimized out>
        textureId = <optimized out>
        origin = <optimized out>
#6  0x00007fffdb9bf8cf in QXcbBackingStore::composeAndFlush
(this=0x555555cc5d60, window=0x555555b9aaf0, region=..., offset=...,
textures=0x555555cccb10, translucentBackground=<optimized out>) at
qxcbbackingstore.cpp:890
        platformWindow = <optimized out>
        translucentBackground = false
        textures = 0x555555cccb10
        region = @0x7fffffffdc60: {d = 0x7ffff4349400 <QRegion::shared_empty>,
static shared_empty = {ref = {atomic = {_q_value = {<std::__atomic_base<int>>
= {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, qt_rgn =
0x7ffff4362740 <qrp>}}
        window = 0x555555b9aaf0
        this = 0x555555cc5d60
        offset = @0x7fffffffdc50: {xp = 0, yp = 0}
#7  0x00007ffff44cff84 in QWidgetBackingStore::qt_flush
(widget=0x555555a0e140, region=..., backingStore=<optimized out>,
tlw=<optimized out>, widgetTextures=<optimized out>,
widgetBackingStore=<optimized out>) at kernel/qwidgetbackingstore.cpp:155
        offset = {xp = 0, yp = 0}
        effectiveRegion = {d = 0x7ffff4349400 <QRegion::shared_empty>, static
shared_empty = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> =
{static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, qt_rgn =
0x7ffff4362740 <qrp>}}
        compositionWasActive = <optimized out>
        fpsDebug = false
        widgetBackingStore = <optimized out>
        widgetTextures = 0x555555cccb10
        tlw = <optimized out>
        backingStore = <optimized out>
        region = <optimized out>
        widget = 0x555555a0e140
        fpsDebug = false
#8  0x00007ffff44d388e in QWidgetBackingStore::sync (this=0x555555b31770,
exposedWidget=0x555555a0e140, exposedRegion=...) at
kernel/qwidgetbackingstore.cpp:1168
        tl = 0x555555cccb10
#9  0x00007ffff44ea68f in QWidgetPrivate::syncBackingStore
(address@hidden, region=...) at kernel/qwidget.cpp:1970
No locals.
#10 0x00007ffff451d262 in QWidgetWindow::handleExposeEvent
(address@hidden, address@hidden) at
kernel/qwidgetwindow.cpp:987
        exposed = <optimized out>
#11 0x00007ffff451dcdb in QWidgetWindow::event (this=0x555555b9aaf0,
event=0x7fffffffe040) at kernel/qwidgetwindow.cpp:328
No locals.
#12 0x00007ffff44c36fc in QApplicationPrivate::notify_helper (this=<optimized
out>, receiver=0x555555b9aaf0, e=0x7fffffffe040) at
kernel/qapplication.cpp:3736
        consumed = <optimized out>
        this = <optimized out>
        e = 0x7fffffffe040
        receiver = 0x555555b9aaf0
#13 0x00007ffff44ca7f0 in QApplication::notify (this=0x5555557f06d0,
receiver=0x555555b9aaf0, e=0x7fffffffe040) at kernel/qapplication.cpp:3483
        w = 0x555555b9aaf0
        extra = <optimized out>
        isProxyWidget = <optimized out>
        res = false
#14 0x00007ffff7a4169b in octave::octave_qapplication::notify (this=<optimized
out>, receiver=<optimized out>, ev=<optimized out>) at
../octave-5.1.0/libgui/src/main-window.cc:2795
No locals.
#15 0x00007ffff31991d8 in QCoreApplication::notifyInternal2
(receiver=0x555555b9aaf0, event=0x7fffffffe040) at
kernel/qcoreapplication.cpp:1060
        selfRequired = true
        result = false
        cbdata = {0x555555b9aaf0, 0x7fffffffe040, 0x7fffffffdfcf}
        d = <optimized out>
        threadData = 0x5555557dcee0
        scopeLevelCounter = {threadData = 0x5555557dcee0}
#16 0x00007ffff319939e in QCoreApplication::sendSpontaneousEvent
(address@hidden, address@hidden) at
kernel/qcoreapplication.cpp:1462
No locals.
#17 0x00007ffff3c85202 in QGuiApplicationPrivate::processExposeEvent
(e=0x555556229f80) at kernel/qguiapplication.cpp:3066
        p = 0x555555b9ac90
        exposeEvent = {<QEvent> = {_vptr.QEvent = 0x7ffff434c5a0 <vtable for
QExposeEvent+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata
= 0x7ffff3383c20 <qt_meta_stringdata_QEvent>, data = 0x7ffff3383660
<qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0,
extradata = 0x0}}, d = 0x0, t = 206, posted = 0, spont = 1, m_accept = 1,
reserved = 0}, rgn = {d = 0x555556235d80, static shared_empty = {ref = {atomic
= {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i =
-1}, <No data fields>}}}, qt_rgn = 0x7ffff4362740 <qrp>}}}
#18 0x00007ffff3c8542d in QGuiApplicationPrivate::processWindowSystemEvent
(address@hidden) at kernel/qguiapplication.cpp:1902
No locals.
#19 0x00007ffff3c60deb in QWindowSystemInterface::sendWindowSystemEvents
(flags=..., address@hidden) at kernel/qwindowsysteminterface.cpp:1151
        event = 0x555556229f80
        nevents = 1
#20 0x00007fffdb9ca69a in xcbSourceDispatch (source=<optimized out>) at
qxcbeventdispatcher.cpp:105
        xcbEventSource = <optimized out>
        flags = {i = 36}
#21 0x00007fffe807b7f7 in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#22 0x00007fffe807ba60 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#23 0x00007fffe807bb0c in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#24 0x00007ffff31f054f in QEventDispatcherGlib::processEvents
(this=0x5555558958e0, flags=...) at kernel/qeventdispatcher_glib.cpp:422
        d = 0x555555895940
        canWait = true
        savedFlags = {i = 0}
        result = <optimized out>
#25 0x00007ffff3197b3a in QEventLoop::exec (address@hidden,
flags=..., address@hidden) at kernel/qeventloop.cpp:225
        d = 0x5555559ff000
        locker = {val = 93824994889680}
        ref = {d = 0x5555559ff000, locker = @0x7fffffffe290, exceptionCaught =
true}
#26 0x00007ffff31a04e0 in QCoreApplication::exec () at
kernel/qcoreapplication.cpp:1363
        threadData = 0x5555557dcee0
        eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff36b0328 <vtable for
QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata =
0x7ffff3388300 <qt_meta_stringdata_QObject>, data = 0x7ffff33881e0
<qt_meta_data_QObject>, static_metacall = 0x7ffff31cce00
<QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x5555559ff000},
static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff338b220
<qt_meta_stringdata_Qt>, data = 0x7ffff3388420 <qt_meta_data_Qt>,
static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static
staticMetaObject = {d = {superdata = 0x7ffff36a8860
<QObject::staticMetaObject>, stringdata = 0x7ffff3382d40
<qt_meta_stringdata_QEventLoop>, data = 0x7ffff3382ce0
<qt_meta_data_QEventLoop>, static_metacall = 0x7ffff3197880
<QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}}
        returnCode = <optimized out>
#27 0x00007ffff3c7a75c in QGuiApplication::exec () at
kernel/qguiapplication.cpp:1779
No locals.
#28 0x00007ffff44c3655 in QApplication::exec () at
kernel/qapplication.cpp:2893
No locals.
#29 0x00007ffff7a37265 in octave::octave_qt_app::exec
(address@hidden) at
../octave-5.1.0/libgui/src/main-window.cc:2933
No locals.
#30 0x00007ffff7a50709 in octave::gui_application::execute
(this=0x7fffffffe460) at ../octave-5.1.0/libgui/src/octave-gui.cc:64
        oct_qt_app = {<QObject> = {_vptr.QObject = 0x7ffff7dc80c8 <vtable for
octave::octave_qt_app+16>, static staticMetaObject = {d = {superdata = 0x0,
stringdata = 0x7ffff3388300 <qt_meta_stringdata_QObject>, data =
0x7ffff33881e0 <qt_meta_data_QObject>, static_metacall = 0x7ffff31cce00
<QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x5555557ef800},
static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff338b220
<qt_meta_stringdata_Qt>, data = 0x7ffff3388420 <qt_meta_data_Qt>,
static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static
staticMetaObject = {d = {superdata = 0x7ffff36a8860
<QObject::staticMetaObject>, stringdata = 0x7ffff7adb720
<qt_meta_stringdata_octave__octave_qt_app>, data = 0x7ffff7adb540
<qt_meta_data_octave__octave_qt_app>, static_metacall = 0x7ffff7aac8e0
<octave::octave_qt_app::qt_static_metacall(QObject*, QMetaObject::Call, int,
void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_app_context =
@0x7fffffffe460, m_argc = 1, m_argv = 0x5555557ef710, m_qt_app =
0x5555557f06d0, m_qt_tr = 0x5555557ef880, m_gui_tr = 0x5555557ef970, m_qsci_tr
= 0x5555557efa60, m_translators_installed = true, m_octave_qt_link =
0x5555557efb50, m_interpreter = 0x5555557f0080, m_main_thread =
0x5555557f0120, m_main_window = 0x0}
#31 0x0000555555555386 in main (argc=1, argv=0x7fffffffe788) at
../octave-5.1.0/src/main-gui.cc:103
        app = {<octave::application> = {_vptr.application = 0x7ffff7dc5a08
<vtable for octave::gui_application+16>, static instance = 0x7fffffffe460,
m_program_invocation_name =
"/usr/local/libexec/octave/5.1.0/exec/x86_64-pc-linux-gnu/octave-gui",
m_program_name = "octave-gui", m_argv =
{<Array<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >> = {_vptr.Array = 0x7ffff7dc5430 <vtable for
string_vector+16>, dimensions = {rep = 0x7fffc40f3ed0}, rep = 0x7fffc40f4070,
slice_data = 0x7fffc40f3718, slice_len = 0}, <No data fields>}, m_options =
{m_debug_jit = false, m_echo_commands = false, m_gui = false,
m_forced_interactive = false, m_forced_line_editing = false,
m_inhibit_startup_message = false, m_jit_compiler = false, m_line_editing =
true, m_no_window_system = false, m_persist = false, m_read_history_file =
true, m_read_init_files = true, m_read_site_files = true, m_set_initial_path =
true, m_traditional = false, m_verbose_flag = false, m_code_to_eval = "",
m_command_line_path = empty std::__cxx11::list, m_docstrings_file = "",
m_doc_cache_file = "", m_exec_path = "", m_image_path = "", m_info_file = "",
m_info_program = "", m_texi_macros_file = "", m_all_args =
{<Array<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >> = {_vptr.Array = 0x7ffff7dc5430 <vtable for
string_vector+16>, dimensions = {rep = 0x5555557ef630}, rep = 0x5555557ef650,
slice_data = 0x5555557ef678, slice_len = 1}, <No data fields>},
m_remaining_args = {<Array<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >> = {_vptr.Array =
0x7ffff7dc5430 <vtable for string_vector+16>, dimensions = {rep =
0x5555557ef6b0}, rep = 0x5555557ef6d0, slice_data = 0x5555557ef6f8, slice_len
= 0}, <No data fields>}}, m_have_eval_option_code = false, m_have_script_file
= false, m_is_octave_program = false, m_interpreter = 0x7fffc4001ed0}, m_argc
= 2, m_argv = 0x555555755bb8, m_gui_running = false}




    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Sat 18 May 2019 01:35:29 PM UTC  Name: octave_figure_qt.m  Size: 139B  
By: None

<http://savannah.gnu.org/bugs/download.php?file_id=46924>

    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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