Summary: | Crash after turning off compositions with Alt+Shift+F12 | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Tony <jodr666> |
Component: | compositing | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED NOT A BUG | ||
Severity: | crash | CC: | awilfox, kde, notuxius |
Priority: | NOR | ||
Version: | 5.12.2 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Tony
2017-05-10 02:13:26 UTC
There is an X error in libepoxy which terminates our application. Unfortunately the debug symbols for libepoxy are missing, so we don't see where exactly it goes into the X error condition. If you can reproduce, please install the debug package for libepoxy and attach a new backtrace. Ideally we can forward that to libepoxy developers afterwards. (In reply to Martin Flöser from comment #1) > There is an X error in libepoxy which terminates our application. > Unfortunately the debug symbols for libepoxy are missing, so we don't see > where exactly it goes into the X error condition. If you can reproduce, > please install the debug package for libepoxy and attach a new backtrace. > Ideally we can forward that to libepoxy developers afterwards. Sadly there is no "dbg" for that package on Neon. Then we cannot do much. The XIO happens from a totally legit call - deleting the shader - and that one is done in many places. (In reply to Martin Flöser from comment #3) > Then we cannot do much. The XIO happens from a totally legit call - deleting > the shader - and that one is done in many places. I found this: https://launchpad.net/ubuntu/+source/libepoxy I installed "libepoxy0-dbgsym_1.3.1-1_amd64.ddeb" Let's see now if i can make it crash again..... *** This bug has been marked as a duplicate of bug 352548 *** As the original filer of 352548, please reopen this bug; it isn't a duplicate. However, I *can* duplicate *this* bug myself. Every time I open `ffplay` (as noted in 388473), KWin seems to think it needs to disable compositing. And every time KWin tries to disable compositing, I receive this crash. I do have libepoxy debug symbols and I can provide a full backtrace from DrKonqi: Application: KWin (kwin_x11), signal: Segmentation fault [KCrash Handler] #8 0x00007fb8cd7cefdd in QQmlMetaType::qmlSingletonTypes() () from /usr/lib/libQt5Qml.so.5 #9 0x00007fb8cd7a56e7 in QQmlEngine::~QQmlEngine() () from /usr/lib/libQt5Qml.so.5 #10 0x00007fb8cd7a5791 in QQmlEngine::~QQmlEngine() () from /usr/lib/libQt5Qml.so.5 #11 0x00007fb8d5b2f09e in __funcs_on_exit () at src/exit/atexit.c:26 #12 0x00007fb8d5b2559a in exit (code=code@entry=1) at src/exit/exit.c:30 #13 0x00007fb8d5b31d95 in verrx (status=1, fmt=<optimized out>, ap=ap@entry=0x7ffecc3057e8) at src/legacy/err.c:34 #14 0x00007fb8d5b31ff7 in errx (status=status@entry=1, fmt=fmt@entry=0x7fb8ce4d7970 "Couldn't find current GLX or EGL context.\n") at src/legacy/err.c:65 #15 0x00007fb8ce490a73 in epoxy_get_proc_address (name=0x7fb8ce4e9fcb <entrypoint_strings+9515> "glDeleteProgram") at dispatch_common.c:780 #16 0x00007fb8ce4b8b95 in epoxy_glDeleteProgram_resolver () at gl_generated_dispatch.c:78351 #17 epoxy_glDeleteProgram_global_rewrite_ptr (program=16) at gl_generated_dispatch.c:45276 #18 0x00007fb8d2262a45 in KWin::BlurEffect::~BlurEffect (this=0x560887464680, __in_chrg=<optimized out>) at /usr/src/packages/user/kwin/src/kwin-5.8.7/effects/blur/blur.cpp:85 #19 0x00007fb8d2262b21 in KWin::BlurEffect::~BlurEffect (this=0x560887464680, __in_chrg=<optimized out>) at /usr/src/packages/user/kwin/src/kwin-5.8.7/effects/blur/blur.cpp:88 #20 0x00007fb8d55c4451 in KWin::EffectsHandlerImpl::unloadAllEffects (this=this@entry=0x56088841b260) at /usr/src/packages/user/kwin/src/kwin-5.8.7/effects.cpp:240 #21 0x00007fb8d55c451d in KWin::EffectsHandlerImpl::~EffectsHandlerImpl (this=0x56088841b260, __in_chrg=<optimized out>) at /usr/src/packages/user/kwin/src/kwin-5.8.7/effects.cpp:223 #22 0x00007fb8d55c4701 in KWin::EffectsHandlerImpl::~EffectsHandlerImpl (this=0x56088841b260, __in_chrg=<optimized out>) at /usr/src/packages/user/kwin/src/kwin-5.8.7/effects.cpp:224 #23 0x00007fb8d55847d5 in KWin::Compositor::finish (this=this@entry=0x56088746b920) at /usr/src/packages/user/kwin/src/kwin-5.8.7/composite.cpp:394 #24 0x00007fb8d5584f82 in KWin::Compositor::suspend (this=0x56088746b920, reason=<optimized out>) at /usr/src/packages/user/kwin/src/kwin-5.8.7/composite.cpp:573 #25 0x00007fb8d3038fd1 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5 #26 0x00007fb8d3d4bfdc in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x56088746b920, e=0x56088f571ea0) at kernel/qapplication.cpp:3717 #27 0x00007fb8d3d538d9 in QApplication::notify (this=0x7ffecc3060c0, receiver=0x56088746b920, e=0x56088f571ea0) at kernel/qapplication.cpp:3476 #28 0x00007fb8d300bfc0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5 #29 0x00007fb8d300ed9d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5 #30 0x00007fb8d305ec27 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5 #31 0x00007fb8be7f01bf in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at qunixeventdispatcher.cpp:68 #32 0x00007fb8d3009f2a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5 #33 0x00007fb8d3012f74 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5 #34 0x00007fb8d590a25c in kdemain (argc=<optimized out>, argv=0x7ffecc3061b8) at /usr/src/packages/user/kwin/src/kwin-5.8.7/main_x11.cpp:466 #35 0x00007fb8d5b2e866 in __libc_start_main (main=0x5608871776d0 <main>, argc=3, argv=0x7ffecc3061b8) at src/env/__libc_start_main.c:74 #36 0x0000560887177718 in _start_c (p=<optimized out>) at crt/crt1.c:17 #37 0x00005608871776f0 in _start () The error message is the same: "Couldn't find current GLX or EGL context". I have no idea why libepoxy fails to supply the context, but I will leave it to KWin maintainers to investigate. What exact git hash are you using? 5.8.7 release tarball with three backported patches from the 5.11 branch: 404f2675f8ca5496a5e528825078b1ce27669cd7 From: Marco Martin <notmart@gmail.com> Date: Mon, 20 Mar 2017 17:01:39 +0100 fix compilation on old gcc [ed: This is needed on gcc 6 as well on some platforms due to int being signed by default.] 052fa2e4ee329810f62c29e546254fb45bf8a375 From: Takahiro Hashimoto <kenya888@gmail.com> Date: Thu, 27 Oct 2016 09:43:21 +0900 [plugins/qpa] support use of modularized qtplatformsupport from Qt 5.8 [ed: We need this because we use Qt 5.9 LTS.] e302f87598de6853147c872b631e9a1fe4864f42 From: Fabian Vogt <fabian@ritter-vogt.de> Date: Sat, 23 Dec 2017 23:30:07 +0100 Properly detect Gallium drivers with newer Mesa [ed: We need this because otherwise R300 doesn't do NPOT workaround properly on Mesa 17.x] For what it's worth, I'm still seeing this every time I run `ffplay`, and I'm now running Plasma 5.12.2 LTS release tarballs with no patches applied. Related libepoxy issue https://github.com/anholt/libepoxy/issues/160 Completely unrelated. I'm using libepoxy 1.4.3. In fact, here's an exact version of every relevant package on this system (and yes, this is still happening every time I run ffplay): * Qt 5.9.3, vanilla, unpatched * Plasma Workspace/Desktop 5.12.2 LTS, vanilla, unpatched * Mesa 17.3.1, with a patch to make the build system use Python 3, and another patch to fix a stack overflow in disk_cache * libepoxy 1.4.3, vanilla, unpatched * X.Org Server 1.19.6, with a single unrelated patch related to musl on ARM (this is an x86_64 system) * xf86-video-amdgpu 1.4.0, vanilla, unpatched * Linux kernel 4.14.19, mc patchset, otherwise unpatched They're distro packages, but I'm the distro maintainer, and I run the build servers, so I'm confident enough this is close enough to "compiled sources". In fairness, the /segmentation fault/ isn't really KDE's fault; Qt Declarative sucks bad. It does a lot of unsafe things in its atexit handlers that it REALLY should not do. However, the only reason exit() is called is because of an interaction between Plasma's BlurEffect dtor and libepoxy. Which one is the culprit, I don't know, but I do know that the issue/patch (a8c3faaa1990d98047e3c566409200604105fa9c) is not relevant to this issue, for many reasons: * this is open source amdgpu * amd, not nvidia * 1.4.3, not 1.5.0 * epoxyinfo don't crash here There's some mess here:
The first report is about QtDBus, that's not our problem
The second is the crash in:
>#15 0x00007fb8ce490a73 in epoxy_get_proc_address (name=0x7fb8ce4e9fcb <entrypoint_strings+9515> "glDeleteProgram") at dispatch_common.c:780
Which we have lots of dupes of (The QtQuick is just a red herring, we're already crashing)
FWIW, I haven't seen this error once while using `ffplay` on ppc64 with the same GPU, so I think this is some arch-specific weirdness. I no longer own an x86_64 computer so I don't care any more anyway. |