Bug 106399 - [bisected] sddm-greeter: segfault in radeonsi_dri.so on dpms resume
Summary: [bisected] sddm-greeter: segfault in radeonsi_dri.so on dpms resume
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/radeonsi (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Default DRI bug account
QA Contact: Default DRI bug account
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-05-04 07:34 UTC by Johannes Hirte
Modified: 2018-05-09 14:05 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Johannes Hirte 2018-05-04 07:34:07 UTC
Since mesa 18.0, sddm-greeter segfaults on dpms resume.

Log entry:

sddm-greeter[23411]: segfault at 34 ip 00007f90d2588c9d sp 00007ffd045c0260 error 4 in radeonsi_dri.so[7f90d2184000+80e000]

bisect points at:

3160cb86aa9234ff78e11fe7a00f30bfb5cb8445 is the first bad commit
commit 3160cb86aa9234ff78e11fe7a00f30bfb5cb8445
Author: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Date:   Fri Oct 6 01:26:51 2017 -0400

    egl/x11: Re-allocate buffers if format is suboptimal
    
    If PresentCompleteNotify event says the pixmap was presented
    with mode PresentCompleteModeSuboptimalCopy, it means the pixmap
    could possibly have been flipped instead if allocated with a
    different format/modifier.
    
    Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
    Reviewed-by: Daniel Stone <daniels@collabora.com>

:040000 040000 938aabed7e3e5a41fd0e3167a6afdceac69a37fd 781dc1b092a4bac23a150a40c3b51c4e64bf7238 M      src

gdb output:

Thread 1 "sddm-greeter" received signal SIGSEGV, Segmentation fault.
pipe_reference_described (get_desc=<optimized out>, reference=0x7f336805396c, ptr=0x0) at /var/tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/gallium/auxiliary/util/u_inlines.h:83
83      /var/tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/gallium/auxiliary/util/u_inlines.h: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0  pipe_reference_described (get_desc=<optimized out>, reference=0x7f336805396c, ptr=0x0) at /var/tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/gallium/auxiliary/util/u_inlines.h:83
#1  pipe_resource_reference (tex=0x7f336805396c, ptr=0x556bf8cdcda0) at /var/tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/gallium/auxiliary/util/u_inlines.h:138
#2  dri2_allocate_textures (ctx=0x556bf8b101e0, drawable=0x556bf8cdcc80, statts=<optimized out>, statts_count=2) at /var/tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/gallium/state_trackers/dri/dri2.c:762
#3  0x00007f337dd550fd in dri_st_framebuffer_validate (stctx=<optimized out>, stfbi=<optimized out>, statts=0x556bf8cdd2d0, count=2, out=0x7ffc7491d250) at /var/tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/gallium/state_trackers/dri/dri_drawable.c:85
#4  0x00007f337db96a91 in st_framebuffer_validate (stfb=stfb@entry=0x556bf8cdcea0, st=st@entry=0x556bf8cd5330) at /var/tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/mesa/state_tracker/st_manager.c:201
#5  0x00007f337db9842b in st_manager_validate_framebuffers (st=0x556bf8cd5330) at /var/tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/mesa/state_tracker/st_manager.c:1117
#6  0x00007f337db53fe5 in st_validate_state (st=st@entry=0x556bf8cd5330, pipeline=pipeline@entry=ST_PIPELINE_CLEAR) at /var/tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/mesa/state_tracker/st_atom.c:203
#7  0x00007f337db5c10f in st_Clear (ctx=0x556bf8cacab0, mask=50) at /var/tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/mesa/state_tracker/st_cb_clear.c:379
#8  0x00007f338d953c4b in QSGBatchRenderer::Renderer::renderBatches (this=this@entry=0x556bf8423ea0) at scenegraph/coreapi/qsgbatchrenderer.cpp:2539
#9  0x00007f338d95968a in QSGBatchRenderer::Renderer::render (this=<optimized out>) at scenegraph/coreapi/qsgbatchrenderer.cpp:2763
#10 0x00007f338d949ab0 in QSGRenderer::renderScene (this=0x556bf8423ea0, bindable=...) at scenegraph/coreapi/qsgrenderer.cpp:244
#11 0x00007f338d949f4b in QSGRenderer::renderScene (this=<optimized out>, fboId=<optimized out>) at scenegraph/coreapi/qsgrenderer.cpp:197
#12 0x00007f338d9855b0 in QSGDefaultRenderContext::renderNextFrame (this=0x556bf8437500, renderer=0x556bf8423ea0, fboId=<optimized out>) at scenegraph/qsgdefaultrendercontext.cpp:180
#13 0x00007f338d9ed52f in QQuickWindowPrivate::renderSceneGraph (this=this@entry=0x556bf824e3b0, size=...) at items/qquickwindow.cpp:481
#14 0x00007f338d97722c in QSGGuiThreadRenderLoop::renderWindow (this=0x556bf82e0a30, window=<optimized out>) at scenegraph/qsgrenderloop.cpp:429
#15 0x00007f338d9f81de in QQuickWindow::event (this=0x556bf828de90, e=0x7ffc7491d980) at items/qquickwindow.cpp:1601
#16 0x00007f338bbcb42a in doNotify (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1140
#17 0x00007f338bbcb526 in QCoreApplication::notifyInternal2 (receiver=0x556bf828de90, event=0x7ffc7491d980) at kernel/qcoreapplication.cpp:1050
#18 0x00007f338c132f41 in QWindowPrivate::deliverUpdateRequest() () from /usr/lib64/libQt5Gui.so.5
#19 0x00007f338c1334b1 in QWindow::event(QEvent*) () from /usr/lib64/libQt5Gui.so.5
#20 0x00007f338d9f817d in QQuickWindow::event (this=0x556bf828de90, e=0x7ffc7491db30) at items/qquickwindow.cpp:1620
#21 0x00007f338bbcb42a in doNotify (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1140
#22 0x00007f338bbcb526 in QCoreApplication::notifyInternal2 (receiver=0x556bf828de90, event=event@entry=0x7ffc7491db30) at kernel/qcoreapplication.cpp:1050
#23 0x00007f338bc1f31b in QCoreApplication::sendEvent (event=0x7ffc7491db30, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#24 QTimerInfoList::activateTimers (this=0x556bf82580b0) at kernel/qtimerinfo_unix.cpp:643
#25 0x00007f338bc1fd29 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:182
#26 idleTimerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:229
#27 0x00007f3387a771ee in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#28 0x00007f3387a77465 in ?? () from /usr/lib64/libglib-2.0.so.0
#29 0x00007f3387a7752c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#30 0x00007f338bc2017f in QEventDispatcherGlib::processEvents (this=0x556bf8255c40, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#31 0x00007f33821d8231 in ?? () from /usr/lib64/libQt5XcbQpa.so.5
#32 0x00007f338bbca132 in QEventLoop::exec (this=this@entry=0x7ffc7491ddb0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#33 0x00007f338bbd2dd4 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1338
#34 0x0000556bf6cc73ce in main (argc=<optimized out>, argv=0x7ffc7491dfb8) at /var/tmp/portage/x11-misc/sddm-0.17.0-r2/work/sddm-0.17.0/src/greeter/GreeterApp.cpp:279


hardware: [AMD/ATI] Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
Comment 1 Michel Dänzer 2018-05-07 10:29:47 UTC
Does https://patchwork.freedesktop.org/patch/219923/ help by any chance?
Comment 2 Johannes Hirte 2018-05-07 16:55:39 UTC
(In reply to Michel Dänzer from comment #1)
> Does https://patchwork.freedesktop.org/patch/219923/ help by any chance?

Looks good, with this patch I've not observed a crash anymore.
Comment 3 Michel Dänzer 2018-05-09 14:05:52 UTC
Thanks for the report, fixed in Git master:

Commit: 6f81e07ecb8c0793dc482307d5d96fd3df95b7d2
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f81e07ecb8c0793dc482307d5d96fd3df95b7d2

Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Fri Apr 27 17:41:48 2018 +0200

dri3: Only update number of back buffers in loader_dri3_get_buffers


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.