[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/
- [Octave-bug-tracker] [bug #56345] Octave crashes when closing two figures with graphics_toolkit qt,
anonymous <=