Control: reassign -1 libqt5widgets5 5.4.2+dfsg-4 Control: affects -1 vlc On 2015-07-04 15:00:14, Michael Biebl wrote: > Am 03.07.2015 um 09:32 schrieb Sebastian Ramacher: > > Thanks. I think this is a Qt 5 issue. I am able to produce a similar > > backtrace > > with the following example program [1]: > > [example program] > > > Can you confirm that this example also crashes for you? > > Yes, this minimal program crashes as well when my system is undocked. > For completeness sake, backtrace is attached. > > So this looks like a Qt5 issue indeed. I don't remember seeing those > crashes with Qt4, so this looks like a regression.
Thanks! I'm reassigning the bug to Qt 5. Context for the Qt 5 maintainers: vlc and a very simple example program crash after undocking a laptop from the docking station. See below for the backtrace and the example program. Backtrace: > Starting program: /home/michael/bug/helloworld > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". > [New Thread 0x7fffece58700 (LWP 3741)] > > Program received signal SIGSEGV, Segmentation fault. > QWidgetPrivate::drawWidget (this=this@entry=0x694320, > pdev=pdev@entry=0x6d3eb0, rgn=..., offset=..., flags=flags@entry=4, > sharedPainter=sharedPainter@entry=0x0, backingStore=0x6d8740) at > kernel/qwidget.cpp:5552 > 5552 kernel/qwidget.cpp: Datei oder Verzeichnis nicht gefunden. > #0 QWidgetPrivate::drawWidget (this=this@entry=0x694320, > pdev=pdev@entry=0x6d3eb0, rgn=..., offset=..., flags=flags@entry=4, > sharedPainter=sharedPainter@entry=0x0, backingStore=0x6d8740) at > kernel/qwidget.cpp:5552 > paintEngine = 0x69e4b0 > grabbed = <optimized out> > asRoot = false > alsoOnScreen = false > toBePainted = {d = 0x6b0f30, static shared_empty = {ref = {atomic = > {_q_value = -1}}, qt_rgn = 0x7ffff7734a00 <qrp>}} > onScreen = false > recursive = true > alsoInvisible = false > #1 0x00007ffff78cecc1 in QWidgetPrivate::paintSiblingsRecursive > (this=this@entry=0x6cf870, pdev=pdev@entry=0x6d3eb0, siblings=..., > index=<optimized out>, > rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x6d8740) > at kernel/qwidget.cpp:5743 > wRegion = {d = 0x6b0f30, static shared_empty = {ref = {atomic = > {_q_value = -1}}, qt_rgn = 0x7ffff7734a00 <qrp>}} > w = <optimized out> > boundingRect = {x1 = <optimized out>, y1 = 0, x2 = <optimized out>, > y2 = 201} > dirtyBoundingRect = false > exludeOpaqueChildren = false > excludeNativeChildren = false > widgetPos = {xp = 1, yp = 1} > hasMask = false > #2 0x00007ffff78cdb07 in QWidgetPrivate::drawWidget (this=0x6cf870, > pdev=0x6d3eb0, rgn=..., offset=..., flags=flags@entry=5, > sharedPainter=sharedPainter@entry=0x0, backingStore=0x6d8740) at > kernel/qwidget.cpp:5600 > asRoot = true > alsoOnScreen = false > toBePainted = {d = 0x787250, static shared_empty = {ref = {atomic = > {_q_value = -1}}, qt_rgn = 0x7ffff7734a00 <qrp>}} > onScreen = <optimized out> > recursive = true > alsoInvisible = false > #3 0x00007ffff789e0bb in QWidgetBackingStore::doSync > (this=this@entry=0x6d8740) at kernel/qwidgetbackingstore.cpp:1230 > flags = 5 > repaintAllWidgets = false > inTopLevelResize = <optimized out> > tlwRect = <optimized out> > surfaceGeometry = <optimized out> > dirtyCopy = {d = 0x698e90, static shared_empty = {ref = {atomic = > {_q_value = -1}}, qt_rgn = 0x7ffff7734a00 <qrp>}} > updatesDisabled = <optimized out> > toClean = {d = 0x698e90, static shared_empty = {ref = {atomic = > {_q_value = -1}}, qt_rgn = 0x7ffff7734a00 <qrp>}} > opaqueNonOverlappedWidgets = {a = 32, s = 0, ptr = 0x7fffffffcb10, { > array = > "\000\000\000\000\000\000\000\000\020px\000\000\000\000\000\020px\000\000\000\000\000\020px\000\000\000\000\000\000\000\000\000\001\000\000\000\000\063P\244>\247\232\260`\337\377\377\377\177\000\000`\337\377\377\377\177\000\000\220\315\377\377\377\177\000\000\240\367a\000\000\000\000\000\001\004\000\000\000\000\000\000\240\337\377\377\377\177\000\000\005\000 > > \002\000\000\000\000\334\n\211\367\377\177\000\000`\337\377\377\377\177\000\000\220\315\377\377\377\177\000\000`\337\377\377\377\177\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\000\000\260_\211\367\377\177\000\000\000\000\000\000\000\000\000\000\067\311Q\367\377\177\000\000\240\367a\000\000\000\000\000\002\000\000\000\000\000\000\000 > \322\377\377\377\177\000\000"..., > q_for_alignment_1 = 0, q_for_alignment_2 = 0}} > beginPaintInfo = {wasFlushed = 0, nothingToPaint = 0, > backingStoreRecreated = 0} > #4 0x00007ffff789e459 in QWidgetBackingStore::sync (this=0x6d8740) at > kernel/qwidgetbackingstore.cpp:1036 > No locals. > #5 0x00007ffff78bf21f in QWidgetPrivate::syncBackingStore (this=0x6cf870) at > kernel/qwidget.cpp:1894 > No locals. > #6 0x00007ffff78d4218 in QWidget::event (this=this@entry=0x7fffffffdf60, > event=event@entry=0x7fffffffd060) at kernel/qwidget.cpp:8962 > No locals. > #7 0x00007ffff79d273e in QFrame::event (this=this@entry=0x7fffffffdf60, > e=e@entry=0x7fffffffd060) at widgets/qframe.cpp:526 > result = <optimized out> > #8 0x00007ffff7a5c333 in QAbstractScrollArea::event (this=0x7fffffffdf60, > e=0x7fffffffd060) at widgets/qabstractscrollarea.cpp:1142 > No locals. > #9 0x00007ffff7890adc in QApplicationPrivate::notify_helper > (this=this@entry=0x61f7a0, receiver=receiver@entry=0x7fffffffdf60, > e=e@entry=0x7fffffffd060) > at kernel/qapplication.cpp:3720 > consumed = <optimized out> > #10 0x00007ffff7895fb0 in QApplication::notify (this=0x7fffffffdfa0, > receiver=0x7fffffffdf60, e=0x7fffffffd060) at kernel/qapplication.cpp:3503 > w = 0x7fffffffdf60 > extra = <optimized out> > isProxyWidget = <optimized out> > res = <optimized out> > #11 0x00007ffff6fa33ab in QCoreApplication::notifyInternal > (this=0x7fffffffdfa0, receiver=receiver@entry=0x7fffffffdf60, > event=event@entry=0x7fffffffd060) > at kernel/qcoreapplication.cpp:935 > threadData = 0x61f910 > loopLevelCounter = {threadData = 0x61f910} > result = false > cbdata = {0x7fffffffdf60, 0x7fffffffd060, 0x7fffffffd00f} > d = <optimized out> > #12 0x00007ffff789f51f in sendEvent (event=0x7fffffffd060, > receiver=0x7fffffffdf60) at > ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228 > No locals. > #13 QWidgetBackingStore::sendUpdateRequest (this=<optimized out>, > widget=0x7fffffffdf60, updateTime=<optimized out>) at > kernel/qwidgetbackingstore.cpp:456 > event = {_vptr.QEvent = 0x7ffff71ddc70 <vtable for QEvent+16>, static > staticMetaObject = {d = {superdata = 0x0, > stringdata = 0x7ffff716a140 <qt_meta_stringdata_QEvent>, data = > 0x7ffff7169b80 <qt_meta_data_QEvent>, static_metacall = 0x0, > relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 77, > posted = 0, spont = 0, m_accept = 1, reserved = 13} > #14 0x00007ffff78a010d in QWidgetBackingStore::markDirty (this=0x6d8740, > rect=..., widget=<optimized out>, > updateTime=updateTime@entry=QWidgetBackingStore::UpdateNow, > bufferState=bufferState@entry=QWidgetBackingStore::BufferInvalid) > at kernel/qwidgetbackingstore.cpp:639 > widgetRect = {x1 = 0, y1 = 0, x2 = 201, y2 = 201} > translatedRect = {x1 = 0, y1 = 0, x2 = 201, y2 = 201} > #15 0x00007ffff78ebde4 in QWidgetWindow::repaintWindow (this=0x69e030) at > kernel/qwidgetwindow.cpp:648 > this = 0x69e030 > #16 0x00007ffff6fd412e in QMetaObject::activate > (sender=sender@entry=0x69e030, signalOffset=<optimized out>, > local_signal_index=local_signal_index@entry=0, > argv=argv@entry=0x7fffffffd2d0) at kernel/qobject.cpp:3717 > receiverInSameThread = <optimized out> > sw = {receiver = 0x69e030, previousSender = 0x7fffffffd4b0, > currentSender = {sender = 0x69e030, signal = 3, ref = 1}, switched = true} > callFunction = 0x7ffff7c3df70 > <QWidgetWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)> > receiver = 0x69e030 > method_relative = 1 > c = 0x695c50 > last = 0x695c50 > locker = {val = 140737339357136} > connectionLists = {connectionLists = 0x69a180} > list = <optimized out> > signal_index = 3 > empty_argv = {0x0} > currentThreadId = 0x7ffff7fb7780 > #17 0x00007ffff6fd47a7 in QMetaObject::activate > (sender=sender@entry=0x69e030, m=m@entry=0x7ffff771fbc0 > <QWindow::staticMetaObject>, > local_signal_index=local_signal_index@entry=0, > argv=argv@entry=0x7fffffffd2d0) at kernel/qobject.cpp:3582 > No locals. > #18 0x00007ffff72d7c2f in QWindow::screenChanged (this=this@entry=0x69e030, > _t1=_t1@entry=0x0) at .moc/moc_qwindow.cpp:626 > _a = {0x0, 0x7fffffffd2c8} > #19 0x00007ffff72d8485 in QWindowPrivate::emitScreenChangedRecursion > (this=this@entry=0x6b6a90, newScreen=newScreen@entry=0x0) at > kernel/qwindow.cpp:366 > No locals. > #20 0x00007ffff72dbbb3 in QWindowPrivate::setTopLevelScreen (this=0x6b6a90, > newScreen=0x0, recreate=<optimized out>) at kernel/qwindow.cpp:387 > shouldRecreate = <optimized out> > #21 0x00007ffff72dbd55 in QWindow::screenDestroyed (this=0x69e030, > object=<optimized out>) at kernel/qwindow.cpp:1720 > wasVisible = true > #22 0x00007ffff6fd3aba in call (a=0x7fffffffd520, r=0x69e030, this=0x6952d0) > at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:124 > No locals. > #23 QMetaObject::activate (sender=sender@entry=0x639ee0, > signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, > argv=argv@entry=0x7fffffffd520) at kernel/qobject.cpp:3702 > obj = {d = 0x6952d0} > receiverInSameThread = <optimized out> > sw = {receiver = 0x69e030, previousSender = 0x0, currentSender = > {sender = 0x639ee0, signal = 0, ref = 1}, switched = true} > callFunction = <optimized out> > receiver = 0x69e030 > method_relative = 0 > c = 0x693ba0 > last = 0x698840 > locker = {val = 140737339356968} > connectionLists = {connectionLists = 0x69a150} > list = <optimized out> > signal_index = 0 > empty_argv = {0x0} > currentThreadId = 0x7ffff7fb7780 > #24 0x00007ffff6fd47a7 in QMetaObject::activate > (sender=sender@entry=0x639ee0, m=m@entry=0x7ffff71d9980 > <QObject::staticMetaObject>, > local_signal_index=local_signal_index@entry=0, > argv=argv@entry=0x7fffffffd520) at kernel/qobject.cpp:3582 > No locals. > #25 0x00007ffff6fd484f in QObject::destroyed (this=this@entry=0x639ee0, > _t1=_t1@entry=0x639ee0) at .moc/moc_qobject.cpp:206 > _a = {0x0, 0x7fffffffd518} > #26 0x00007ffff6fdd1bb in QObject::~QObject (this=0x639ee0, > __in_chrg=<optimized out>) at kernel/qobject.cpp:903 > d = 0x639f00 > #27 0x00007ffff72fa589 in QScreen::~QScreen (this=0x639ee0, > __in_chrg=<optimized out>) at kernel/qscreen.cpp:77 > No locals. > #28 0x00007ffff72c0e2a in QPlatformScreen::~QPlatformScreen (this=0x63a4c0, > __in_chrg=<optimized out>) at kernel/qplatformscreen.cpp:57 > No locals. > #29 0x00007ffff7f32179 in QXcbScreen::~QXcbScreen (this=0x63a4c0, > __in_chrg=<optimized out>) at qxcbscreen.cpp:222 > No locals. > #30 0x00007ffff7f24fbb in QXcbConnection::updateScreens > (this=this@entry=0x62c100) at qxcbconnection.cpp:286 > i = 0 > activeScreens = {q_hash = {{d = 0x6d78e0, e = 0x6d78e0}}} > it = {data = 0x62db84, rem = 0, index = 864} > screenNumber = <optimized out> > xcbScreenNumber = <optimized out> > newScreens = {<QListSpecialMethods<QXcbScreen*>> = {<No data > fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = -1}}, alloc > = 0, > begin = 0, end = 0, array = {0x0}}, d = 0x6d7820}, d = > 0x6d7820}} > primaryScreen = <optimized out> > #31 0x00007ffff7f25c8d in QXcbConnection::handleXcbEvent > (this=this@entry=0x62c100, event=event@entry=0x7fffe8003e60) at > qxcbconnection.cpp:961 > change_event = <optimized out> > result = 0 > dispatcher = 0x64e2a0 > handled = false > response_type = 89 > #32 0x00007ffff7f26ecb in QXcbConnection::processXcbEvents (this=0x62c100) at > qxcbconnection.cpp:1303 > accepted = false > it = 0x7ffff707a430 <qt_array+48> > event = 0x7fffe8003e60 > eventGuard = {d = 0x7fffe8003e60} > response_type = <optimized out> > i = 0 > connection_error = <optimized out> > eventqueue = 0x637d98 > #33 0x00007ffff6fd4e8a in QObject::event (this=0x62c100, e=<optimized out>) > at kernel/qobject.cpp:1245 > mce = <optimized out> > sw = {receiver = 0x62c100, previousSender = 0x0, currentSender = > {sender = 0x637d80, signal = 5, ref = 1}, switched = true} > #34 0x00007ffff7890adc in QApplicationPrivate::notify_helper > (this=this@entry=0x61f7a0, receiver=receiver@entry=0x62c100, > e=e@entry=0x7fffe8003fb0) > at kernel/qapplication.cpp:3720 > consumed = <optimized out> > #35 0x00007ffff7895fb0 in QApplication::notify (this=0x7fffffffdfa0, > receiver=0x62c100, e=0x7fffe8003fb0) at kernel/qapplication.cpp:3503 > w = 0x62c100 > extra = <optimized out> > isProxyWidget = <optimized out> > res = <optimized out> > #36 0x00007ffff6fa33ab in QCoreApplication::notifyInternal > (this=0x7fffffffdfa0, receiver=0x62c100, event=event@entry=0x7fffe8003fb0) > at kernel/qcoreapplication.cpp:935 > threadData = 0x61f910 > loopLevelCounter = {threadData = 0x61f910} > result = false > cbdata = {0x62c100, 0x7fffe8003fb0, 0x7fffffffdbff} > d = <optimized out> > #37 0x00007ffff6fa541b in sendEvent (event=0x7fffe8003fb0, > receiver=<optimized out>) at > ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228 > No locals. > #38 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, > event_type=event_type@entry=0, data=0x61f910) > at kernel/qcoreapplication.cpp:1552 > e = 0x7fffe8003fb0 > pe = <optimized out> > r = <optimized out> > unlocker = {m = <synthetic pointer>} > event_deleter = {d = 0x7fffe8003fb0} > locker = {val = 6420792} > startOffset = 0 > i = @0x61f92c: 1 > cleanup = {receiver = 0x0, event_type = 0, data = 0x61f910, > exceptionCaught = true} > #39 0x00007ffff6fa5a18 in QCoreApplication::sendPostedEvents > (receiver=receiver@entry=0x0, event_type=event_type@entry=0) > at kernel/qcoreapplication.cpp:1410 > data = <optimized out> > #40 0x00007ffff6ffbf33 in postEventSourceDispatch (s=0x64e300) at > kernel/qeventdispatcher_glib.cpp:271 > source = 0x64e300 > #41 0x00007ffff5a0fc3d in g_main_context_dispatch () from > /lib/x86_64-linux-gnu/libglib-2.0.so.0 > No symbol table info available. > #42 0x00007ffff5a0ff20 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 > No symbol table info available. > #43 0x00007ffff5a0ffcc in g_main_context_iteration () from > /lib/x86_64-linux-gnu/libglib-2.0.so.0 > No symbol table info available. > #44 0x00007ffff6ffc347 in QEventDispatcherGlib::processEvents (this=0x64e2a0, > flags=...) at kernel/qeventdispatcher_glib.cpp:418 > d = 0x64abe0 > canWait = true > savedFlags = {i = 0} > result = <optimized out> > #45 0x00007ffff6fa0b62 in QEventLoop::exec (this=this@entry=0x7fffffffdee0, > flags=..., flags@entry=...) at kernel/qeventloop.cpp:204 > locker = {val = 6420992} > ref = {d = 0x69bf30, locker = @0x7fffffffde60, exceptionCaught = true} > d = 0x69bf30 > #46 0x00007ffff6fa87ac in QCoreApplication::exec () at > kernel/qcoreapplication.cpp:1188 > threadData = 0x61f910 > eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff71e1150 <vtable for > QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, > stringdata = 0x7ffff710dc80 <qt_meta_stringdata_QObject>, > data = 0x7ffff710db40 <qt_meta_data_QObject>, > static_metacall = 0x7ffff6fdd430 > <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, > relatedMetaObjects = 0x0, > extradata = 0x0}}, d_ptr = {d = 0x69bf30}, static > staticQtMetaObject = {d = {superdata = 0x0, > stringdata = 0x7ffff7155780 <qt_meta_stringdata_Qt>, data = > 0x7ffff7152f00 <qt_meta_data_Qt>, static_metacall = 0x0, > relatedMetaObjects = 0x0, extradata = 0x0}}}, static > staticMetaObject = {d = {superdata = 0x7ffff71d9980 > <QObject::staticMetaObject>, > stringdata = 0x7ffff7169740 <qt_meta_stringdata_QEventLoop>, > data = 0x7ffff71696c0 <qt_meta_data_QEventLoop>, > static_metacall = 0x7ffff7053550 > <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, > relatedMetaObjects = 0x0, > extradata = 0x0}}} > returnCode = <optimized out> > #47 0x0000000000401361 in main () > No symbol table info available. > A debugging session is active. > > Inferior 1 [process 3731] will be killed. > > Quit anyway? (y or n) Example program: > $ cat main.cpp > #include <QApplication> > #include <QGraphicsScene> > #include <QGraphicsView> > > int main(int argc, char** argv) > { > QApplication app(argc, argv); > > QGraphicsScene scene; > scene.setSceneRect(-100.0, -100.0, 200.0, 200.0); > scene.addText("Hello, world!"); > > QGraphicsView view(&scene); > view.setRenderHints(QPainter::Antialiasing); > view.show(); > > return app.exec(); > } > > $ cat CMakeLists.txt > cmake_minimum_required(VERSION 2.8.11) > project(testproject) > > set(CMAKE_INCLUDE_CURRENT_DIR ON) > set(CMAKE_AUTOMOC ON) > > find_package(Qt5Widgets) > > add_executable(helloworld main.cpp) > target_link_libraries(helloworld Qt5::Widgets) Cheers -- Sebastian Ramacher
signature.asc
Description: Digital signature