https://bugs.kde.org/show_bug.cgi?id=450804
Bug ID: 450804
Summary: SEGV when updating modes
Product: kwin
Version: git master
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: wayland-generic
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Seems like we are calling a null pointer to the layer
(pipeline->pending->layer)
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007fafec6fa799 in KWin::DrmPipeline::commitPipelinesAtomic
(pipelines=..., mode=KWin::DrmPipeline::CommitMode::Test, unusedObjects=...) at
/home/apol/devel/frameworks/kwin/src/backends/drm/drm_pipeline.cpp:131
131 if (!pipeline->pending.layer->testBuffer()) {
[Current thread is 1 (Thread 0x7fafedbfda80 (LWP 989))]
(gdb) p pipeline
$1 = (KWin::DrmPipeline * const&) @0x555d39189460: 0x555d3902d240
(gdb) p pipeline->pending
$2 = {crtc = 0x555d38f6dde0, active = true, enabled = true, mode = {value =
0x555d3a600ed0, d = 0x555d3a600ec0}, overscan = 0, rgbRange =
KWin::AbstractWaylandOutput::RgbRange::Automatic, syncMode =
KWin::RenderLoopPrivate::SyncMode::Fixed, gamma = {value = 0x555d3aba53b0, d =
0x555d3aba53a0}, layer = {value = 0x0, d = 0x0}, cursorPos = {xp = 3170,
yp = 1530}, cursorHotspot = {xp = 6, yp = 6}, cursorBo = {value =
0x555d3972cfb0, d = 0x555d3972cfa0}, bufferTransformation = {i = 1},
sourceTransformation = {i = 1}}
(gdb) p pipeline->pending->layer
$3 = {value = 0x0, d = 0x0}
(gdb) where
#0 0x00007fafec6fa799 in
KWin::DrmPipeline::commitPipelinesAtomic(QVector<KWin::DrmPipeline*> const&,
KWin::DrmPipeline::CommitMode, QVector<KWin::DrmObject*> const&)
(pipelines=..., mode=KWin::DrmPipeline::CommitMode::Test, unusedObjects=...) at
/home/apol/devel/frameworks/kwin/src/backends/drm/drm_pipeline.cpp:131
#1 0x00007fafec6fa1b9 in
KWin::DrmPipeline::commitPipelines(QVector<KWin::DrmPipeline*> const&,
KWin::DrmPipeline::CommitMode, QVector<KWin::DrmObject*> const&)
(pipelines=..., mode=KWin::DrmPipeline::CommitMode::Test, unusedObjects=...) at
/home/apol/devel/frameworks/kwin/src/backends/drm/drm_pipeline.cpp:103
#2 0x00007fafec6dbf77 in KWin::DrmOutput::updateModes() (this=0x555d39184960)
at /home/apol/devel/frameworks/kwin/src/backends/drm/drm_output.cpp:310
#3 0x00007fafec6e6d03 in KWin::DrmGpu::updateOutputs() (this=0x555d38e812c0)
at /home/apol/devel/frameworks/kwin/src/backends/drm/drm_gpu.cpp:267
#4 0x00007fafec6b7951 in KWin::DrmBackend::updateOutputs()
(this=0x555d38e4c7b0) at
/home/apol/devel/frameworks/kwin/src/backends/drm/drm_backend.cpp:314
#5 0x00007fafec6b8eb9 in KWin::DrmBackend::handleUdevEvent()
(this=0x555d38e4c7b0) at
/home/apol/devel/frameworks/kwin/src/backends/drm/drm_backend.cpp:256
#6 0x00007fafec6c2208 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>,
QtPrivate::List<>, void, void (KWin::DrmBackend::*)()>::call(void
(KWin::DrmBackend::*)(), KWin::DrmBackend*, void**) (f=(void
(KWin::DrmBackend::*)(KWin::DrmBackend * const)) 0x7fafec6b87c0
<KWin::DrmBackend::handleUdevEvent()>, o=0x555d38e4c7b0, arg=0x7ffc20031df0)
at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:152
#7 0x00007fafec6c216d in QtPrivate::FunctionPointer<void
(KWin::DrmBackend::*)()>::call<QtPrivate::List<>, void>(void
(KWin::DrmBackend::*)(), KWin::DrmBackend*, void**) (f=(void
(KWin::DrmBackend::*)(KWin::DrmBackend * const)) 0x7fafec6b87c0
<KWin::DrmBackend::handleUdevEvent()>, o=0x555d38e4c7b0, arg=0x7ffc20031df0)
at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:185
#8 0x00007fafec6c20b2 in QtPrivate::QSlotObject<void (KWin::DrmBackend::*)(),
QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*,
void**, bool*) (which=1, this_=0x555d38e820e0, r=0x555d38e4c7b0,
a=0x7ffc20031df0, ret=0x0) at
/home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:418
#9 0x00007faff3d9c293 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
(a=0x7ffc20031df0, r=0x555d38e4c7b0, this=0x555d38e820e0) at
../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
#10 doActivate<false>(QObject*, int, void**) (sender=0x555d38e809d0,
signal_index=3, argv=0x7ffc20031df0) at
/home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886
#11 0x00007faff3d9575f in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) (sender=sender@entry=0x555d38e809d0, m=m@entry=0x7faff403c140
<QSocketNotifier::staticMetaObject>,
local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc20031df0)
at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3946
#12 0x00007faff3d9f77f in QSocketNotifier::activated(QSocketDescriptor,
QSocketNotifier::Type, QSocketNotifier::QPrivateSignal)
(this=this@entry=0x555d38e809d0, _t1=..., _t2=<optimized out>, _t3=...) at
.moc/moc_qsocketnotifier.cpp:178
#13 0x00007faff3d9ff7b in QSocketNotifier::event(QEvent*) (this=0x555d38e809d0,
e=0x7ffc20031f10) at
/home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qsocketnotifier.cpp:302
#14 0x00007faff28f36cf in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=<optimized out>, receiver=0x555d38e809d0, e=0x7ffc20031f10) at
/home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3632
#15 0x00007faff3d65aca in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x555d38e809d0, event=0x7ffc20031f10) at
/home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1064
#16 0x00007faff3dba4eb in
QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x555d38e12fc0) at
/home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:304
#17 0x00007faff3dba94b in
QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=<optimized out>, flags=...) at
/home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:511
#18 0x0000555d3894b71d in
QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=<optimized out>, flags=...) at
/home/apol/devel/frameworks/qt5/qtbase/src/platformsupport/eventdispatchers/qunixeventdispatcher.cpp:63
#19 0x00007faff3d644cb in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7ffc200320a0, flags=..., flags@entry=...) at
../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:69
#20 0x00007faff3d6c7a0 in QCoreApplication::exec() () at
../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:121
#21 0x0000555d3880c392 in main(int, char**) (argc=14, argv=0x7ffc20032bb8) at
/home/apol/devel/frameworks/kwin/src/main_wayland.cpp:727
--
You are receiving this mail because:
You are watching all bug changes.