Bug 379681 - Crash after turning off compositions with Alt+Shift+F12
Summary: Crash after turning off compositions with Alt+Shift+F12
Status: RESOLVED NOT A BUG
Alias: None
Product: kwin
Classification: Plasma
Component: compositing (show other bugs)
Version: 5.12.2
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-05-10 02:13 UTC by Tony
Modified: 2018-10-23 18:42 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tony 2017-05-10 02:13:26 UTC
As the title says. 

I am no entirely sure it is a kwin issue, it may be a a driver one since i am using "amdgpu" driver on a r9 280x (tahiti) from padoka's ppa. Had to blacklist "radeon" in order to use it.

Application: kwin_x11 (kwin_x11), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f55741cb940 (LWP 1930))]

Thread 5 (Thread 0x7f552ffff700 (LWP 2069)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f5570c976f4 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#2  0x00007f5570c97739 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#3  0x00007f556d91a6ba in start_thread (arg=0x7f552ffff700) at pthread_create.c:333
#4  0x00007f5573cc182d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7f55357fa700 (LWP 2067)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f5549aaa9f6 in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#2  0x00007f556d91a6ba in start_thread (arg=0x7f55357fa700) at pthread_create.c:333
#3  0x00007f5573cc182d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f554bfff700 (LWP 2032)):
#0  0x00007ffd27dfdb32 in clock_gettime ()
#1  0x00007f5573ccfc86 in __GI___clock_gettime (clock_id=clock_id@entry=1, tp=tp@entry=0x7f554bffeaa0) at ../sysdeps/unix/clock_gettime.c:115
#2  0x00007f55719c7241 in qt_clock_gettime (ts=0x7f554bffeaa0, clock=<optimized out>) at tools/qelapsedtimer_unix.cpp:109
#3  do_gettime (frac=<synthetic pointer>, sec=<synthetic pointer>) at tools/qelapsedtimer_unix.cpp:164
#4  qt_gettime () at tools/qelapsedtimer_unix.cpp:173
#5  0x00007f5571b403d9 in QTimerInfoList::updateCurrentTime (this=this@entry=0x7f5540000980) at kernel/qtimerinfo_unix.cpp:91
#6  0x00007f5571b40945 in QTimerInfoList::timerWait (this=this@entry=0x7f5540000980, tm=...) at kernel/qtimerinfo_unix.cpp:388
#7  0x00007f5571b3f684 in QEventDispatcherUNIX::processEvents (this=0x7f55400008c0, flags=...) at kernel/qeventdispatcher_unix.cpp:485
#8  0x00007f5571aed0ba in QEventLoop::exec (this=this@entry=0x7f554bffec60, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#9  0x00007f557191cf64 in QThread::exec (this=this@entry=0x24bd6f0) at thread/qthread.cpp:507
#10 0x00007f556ca68bf5 in QQmlThreadPrivate::run (this=0x24bd6f0) at qml/ftw/qqmlthread.cpp:147
#11 0x00007f5571921b48 in QThreadPrivate::start (arg=0x24bd6f0) at thread/qthread_unix.cpp:368
#12 0x00007f556d91a6ba in start_thread (arg=0x7f554bfff700) at pthread_create.c:333
#13 0x00007f5573cc182d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f555c3b2700 (LWP 1932)):
#0  0x00007f5573cb5b5d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f5572dccc62 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f5572dce8d7 in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f555d076d79 in QXcbEventReader::run (this=0x232c8d0) at qxcbconnection.cpp:1343
#4  0x00007f5571921b48 in QThreadPrivate::start (arg=0x232c8d0) at thread/qthread_unix.cpp:368
#5  0x00007f556d91a6ba in start_thread (arg=0x7f555c3b2700) at pthread_create.c:333
#6  0x00007f5573cc182d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f55741cb940 (LWP 1930)):
[KCrash Handler]
#6  std::__atomic_base<QMutexData*>::compare_exchange_strong (__m2=<optimized out>, __m1=std::memory_order_acquire, __p2=<optimized out>, __p1=@0x7ffd27d9ff18: 0x0, this=0x20) at /usr/include/c++/5/bits/atomic_base.h:752
#7  std::atomic<QMutexData*>::compare_exchange_strong (__m=std::memory_order_acquire, __p2=<optimized out>, __p1=@0x7ffd27d9ff18: 0x0, this=0x20) at /usr/include/c++/5/atomic:475
#8  QAtomicOps<QMutexData*>::testAndSetAcquire<QMutexData*> (currentValue=<synthetic pointer>, newValue=<optimized out>, expectedValue=0x0, _q_value=...) at ../../include/QtCore/../../src/corelib/arch/qatomic_cxx11.h:290
#9  QBasicAtomicPointer<QMutexData>::testAndSetAcquire (currentValue=<synthetic pointer>, newValue=<optimized out>, expectedValue=0x0, this=0x20) at ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:259
#10 QBasicMutex::fastTryLock (current=<synthetic pointer>, this=0x20) at thread/qmutex.h:89
#11 QMutex::lock (this=this@entry=0x20) at thread/qmutex.cpp:225
#12 0x00007f55742e89af in QMutexLocker::QMutexLocker (m=0x20, this=<synthetic pointer>) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:137
#13 QDBusConnectionManager::busConnection (this=0x0, type=type@entry=QDBusConnection::SessionBus) at qdbusconnection.cpp:109
#14 0x00007f55742e9a5a in QDBusConnection::sessionBus () at qdbusconnection.cpp:1177
#15 0x00007f555aad3510 in QtCurve::Style::disconnectDBus (this=this@entry=0x238bb40) at /workspace/build/qt5/style/qtcurve.cpp:704
#16 0x00007f555aad93e0 in QtCurve::Style::disconnectDBus (this=0x238bb40) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:253
#17 QtCurve::Style::~Style (this=0x238bb40, __in_chrg=<optimized out>) at /workspace/build/qt5/style/qtcurve.cpp:736
#18 0x00007f555aad94b9 in QtCurve::Style::~Style (this=0x238bb40, __in_chrg=<optimized out>) at /workspace/build/qt5/style/qtcurve.cpp:744
#19 0x00007f555ab0afeb in QtCurve::StylePlugin::~StylePlugin (this=0x2360ad0, __in_chrg=<optimized out>) at /workspace/build/qt5/style/qtcurve_plugin.cpp:158
#20 0x00007f555ab0b109 in QtCurve::StylePlugin::~StylePlugin (this=0x2360ad0, __in_chrg=<optimized out>) at /workspace/build/qt5/style/qtcurve_plugin.cpp:165
#21 0x00007f5571ae4189 in QLibraryPrivate::unload (this=this@entry=0x236e980, flag=flag@entry=QLibraryPrivate::UnloadSys) at plugin/qlibrary.cpp:562
#22 0x00007f5571ada1a2 in QFactoryLoaderPrivate::~QFactoryLoaderPrivate (this=0x236e2c0, __in_chrg=<optimized out>) at plugin/qfactoryloader.cpp:86
#23 0x00007f5571ada2c9 in QFactoryLoaderPrivate::~QFactoryLoaderPrivate (this=0x236e2c0, __in_chrg=<optimized out>) at plugin/qfactoryloader.cpp:89
#24 0x00007f5571b2185c in QScopedPointerDeleter<QObjectData>::cleanup (pointer=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:60
#25 QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::~QScopedPointer (this=0x7f55728d8cc8 <(anonymous namespace)::Q_QGS_loader::innerFunction()::holder+8>, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:107
#26 QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:900
#27 0x00007f5571ad973a in QFactoryLoader::~QFactoryLoader (this=0x7f55728d8cc0 <(anonymous namespace)::Q_QGS_loader::innerFunction()::holder>, __in_chrg=<optimized out>) at plugin/qfactoryloader.cpp:205
#28 0x00007f55724451c9 in (anonymous namespace)::Q_QGS_loader::Holder::~Holder (this=<optimized out>, __in_chrg=<optimized out>) at styles/qstylefactory.cpp:72
#29 0x00007f5573bf4ff8 in __run_exit_handlers (status=status@entry=1, listp=0x7f5573f7e5f8 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:82
#30 0x00007f5573bf5045 in __GI_exit (status=status@entry=1) at exit.c:104
#31 0x00007f5573cbf425 in __GI_verrx (status=1, format=<optimized out>, ap=ap@entry=0x7ffd27da0348) at err.c:165
#32 0x00007f5573cbf547 in errx (status=<optimized out>, format=<optimized out>) at err.c:178
#33 0x00007f556d2146e3 in ?? () from /usr/lib/x86_64-linux-gnu/libepoxy.so.0
#34 0x00007f556d23a53d in ?? () from /usr/lib/x86_64-linux-gnu/libepoxy.so.0
#35 0x00007f5570dcd950 in KWin::BlurEffect::~BlurEffect (this=0x2b39cd0, __in_chrg=<optimized out>) at /workspace/build/effects/blur/blur.cpp:86
#36 0x00007f5570dcda19 in KWin::BlurEffect::~BlurEffect (this=0x2b39cd0, __in_chrg=<optimized out>) at /workspace/build/effects/blur/blur.cpp:89
#37 0x00007f5573852099 in KWin::EffectsHandlerImpl::unloadAllEffects (this=this@entry=0x2bb7d50) at /workspace/build/effects.cpp:241
#38 0x00007f557385216c in KWin::EffectsHandlerImpl::~EffectsHandlerImpl (this=0x2bb7d50, __in_chrg=<optimized out>) at /workspace/build/effects.cpp:224
#39 0x00007f55738522c9 in KWin::EffectsHandlerImpl::~EffectsHandlerImpl (this=0x2bb7d50, __in_chrg=<optimized out>) at /workspace/build/effects.cpp:225
#40 0x00007f557381394f in KWin::Compositor::finish (this=this@entry=0x2355f80) at /workspace/build/composite.cpp:395
#41 0x00007f55738142dc in KWin::Compositor::suspend (this=0x2355f80, reason=<optimized out>) at /workspace/build/composite.cpp:574
#42 0x00007f5571b1a1f6 in QtPrivate::QSlotObjectBase::call (a=0x7ffd27da0770, r=0x24179b0, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:101
#43 QMetaObject::activate (sender=sender@entry=0x24cec00, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffd27da0770) at kernel/qobject.cpp:3723
#44 0x00007f5571b1a837 in QMetaObject::activate (sender=sender@entry=0x24cec00, m=m@entry=0x7f55728a9e60 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffd27da0770) at kernel/qobject.cpp:3602
#45 0x00007f55723ce552 in QAction::triggered (this=this@entry=0x24cec00, _t1=false) at .moc/moc_qaction.cpp:369
#46 0x00007f55723d0ec0 in QAction::activate (this=0x24cec00, event=<optimized out>) at kernel/qaction.cpp:1170
#47 0x00007f556c3341b0 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5GlobalAccel.so.5
#48 0x00007f5571b19e89 in QMetaObject::activate (sender=0x24c92e0, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3740
#49 0x00007f556c3420e4 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5GlobalAccel.so.5
#50 0x00007f556c342870 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5GlobalAccel.so.5
#51 0x00007f55742f4923 in QDBusConnectionPrivate::deliverCall (this=<optimized out>, object=<optimized out>, msg=..., metaTypes=..., slotIdx=<optimized out>) at qdbusintegrator.cpp:995
#52 0x00007f5571b1ad99 in QObject::event (this=0x24c92e0, e=<optimized out>) at kernel/qobject.cpp:1263
#53 0x00007f55723d4ecc in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x24c92e0, e=0x7f554c00e790) at kernel/qapplication.cpp:3799
#54 0x00007f55723dc8c6 in QApplication::notify (this=0x7ffd27da11c0, receiver=0x24c92e0, e=0x7f554c00e790) at kernel/qapplication.cpp:3556
#55 0x00007f5571aef0c8 in QCoreApplication::notifyInternal2 (receiver=0x24c92e0, event=event@entry=0x7f554c00e790) at kernel/qcoreapplication.cpp:988
#56 0x00007f5571af178b in QCoreApplication::sendEvent (event=0x7f554c00e790, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#57 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x22fdf40) at kernel/qcoreapplication.cpp:1649
#58 0x00007f5571b3f1b7 in QEventDispatcherUNIX::processEvents (this=0x236c2a0, flags=flags@entry=...) at kernel/qeventdispatcher_unix.cpp:466
#59 0x00007f555d0ef85d in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:68
#60 0x00007f5571aed0ba in QEventLoop::exec (this=this@entry=0x7ffd27da10b0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#61 0x00007f5571af56cc in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261
#62 0x00007f5571e2a24c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1633
#63 0x00007f55723d4e25 in QApplication::exec () at kernel/qapplication.cpp:2975
#64 0x00007f5573f94142 in kdemain (argc=1, argv=0x7ffd27da1358) at /workspace/build/main_x11.cpp:466
#65 0x00007f5573bdb830 in __libc_start_main (main=0x400710 <main(int, char**)>, argc=1, argv=0x7ffd27da1358, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd27da1348) at ../csu/libc-start.c:291
#66 0x0000000000400749 in _start ()
Comment 1 Martin Flöser 2017-05-10 05:17:04 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.
Comment 2 Tony 2017-05-10 06:13:34 UTC
(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.
Comment 3 Martin Flöser 2017-05-10 15:13:13 UTC
Then we cannot do much. The XIO happens from a totally legit call - deleting the shader - and that one is done in many places.
Comment 4 Tony 2017-05-10 15:54:03 UTC
(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.....
Comment 5 Christoph Feck 2017-06-02 18:16:24 UTC

*** This bug has been marked as a duplicate of bug 352548 ***
Comment 6 A. Wilcox (awilfox) 2018-01-09 23:01:49 UTC
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 ()
Comment 7 Christoph Feck 2018-01-31 02:41:40 UTC
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.
Comment 8 Martin Flöser 2018-01-31 05:14:46 UTC
What exact git hash are you using?
Comment 9 A. Wilcox (awilfox) 2018-02-03 04:13:42 UTC
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]
Comment 10 A. Wilcox (awilfox) 2018-03-23 21:17:28 UTC
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.
Comment 11 Alexander Mentyu 2018-04-09 12:47:48 UTC
Related libepoxy issue https://github.com/anholt/libepoxy/issues/160
Comment 12 A. Wilcox (awilfox) 2018-04-10 04:04:17 UTC
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
Comment 13 David Edmundson 2018-10-23 10:04:08 UTC
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)
Comment 14 A. Wilcox (awilfox) 2018-10-23 18:42:38 UTC
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.