Bug#790825: vlc crashes when laptop is undocked
Sebastian Ramacher
sramacher at debian.org
Sat Jul 4 13:48:15 UTC 2015
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 at entry=0x694320, pdev=pdev at entry=0x6d3eb0, rgn=..., offset=..., flags=flags at entry=4,
> sharedPainter=sharedPainter at entry=0x0, backingStore=0x6d8740) at kernel/qwidget.cpp:5552
> 5552 kernel/qwidget.cpp: Datei oder Verzeichnis nicht gefunden.
> #0 QWidgetPrivate::drawWidget (this=this at entry=0x694320, pdev=pdev at entry=0x6d3eb0, rgn=..., offset=..., flags=flags at entry=4,
> sharedPainter=sharedPainter at 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 at entry=0x6cf870, pdev=pdev at 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 at entry=5,
> sharedPainter=sharedPainter at 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 at 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 at entry=0x7fffffffdf60, event=event at entry=0x7fffffffd060) at kernel/qwidget.cpp:8962
> No locals.
> #7 0x00007ffff79d273e in QFrame::event (this=this at entry=0x7fffffffdf60, e=e at 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 at entry=0x61f7a0, receiver=receiver at entry=0x7fffffffdf60, e=e at 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 at entry=0x7fffffffdf60, event=event at 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 at entry=QWidgetBackingStore::UpdateNow, bufferState=bufferState at 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 at entry=0x69e030, signalOffset=<optimized out>, local_signal_index=local_signal_index at entry=0,
> argv=argv at 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 at entry=0x69e030, m=m at entry=0x7ffff771fbc0 <QWindow::staticMetaObject>,
> local_signal_index=local_signal_index at entry=0, argv=argv at entry=0x7fffffffd2d0) at kernel/qobject.cpp:3582
> No locals.
> #18 0x00007ffff72d7c2f in QWindow::screenChanged (this=this at entry=0x69e030, _t1=_t1 at entry=0x0) at .moc/moc_qwindow.cpp:626
> _a = {0x0, 0x7fffffffd2c8}
> #19 0x00007ffff72d8485 in QWindowPrivate::emitScreenChangedRecursion (this=this at entry=0x6b6a90, newScreen=newScreen at 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 at entry=0x639ee0, signalOffset=<optimized out>, local_signal_index=local_signal_index at entry=0,
> argv=argv at 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 at entry=0x639ee0, m=m at entry=0x7ffff71d9980 <QObject::staticMetaObject>,
> local_signal_index=local_signal_index at entry=0, argv=argv at entry=0x7fffffffd520) at kernel/qobject.cpp:3582
> No locals.
> #25 0x00007ffff6fd484f in QObject::destroyed (this=this at entry=0x639ee0, _t1=_t1 at 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 at 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 at entry=0x62c100, event=event at 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 at entry=0x61f7a0, receiver=receiver at entry=0x62c100, e=e at 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 at 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 at entry=0x0, event_type=event_type at 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 at entry=0x0, event_type=event_type at 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 at entry=0x7fffffffdee0, flags=..., flags at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20150704/8d06d298/attachment-0001.sig>
More information about the pkg-multimedia-maintainers
mailing list