Bug 321644 - kwin is crashing in virtualbox when switching to OpenGL and native mode
Summary: kwin is crashing in virtualbox when switching to OpenGL and native mode
Status: RESOLVED DUPLICATE of bug 321576
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: 4.10.4
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-06-26 15:47 UTC by Roman Bysh
Modified: 2013-06-26 17:47 UTC (History)
0 users

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 Roman Bysh 2013-06-26 15:47:32 UTC
Application: kwin (4.10.4)
KDE Platform Version: 4.10.4
Qt Version: 4.8.4
Operating System: Linux 3.10.0-rc4-1-desktop x86_64
Distribution: "openSUSE 13.1 Milestone 2 (x86_64)"

-- Information about the crash:
Tested with openSUSE Milestone 2

1. I installed the guest additions and restarted openSUSE 13.1 Milestone 2
2. Selected  Configure Desktop-->Desktop Effects-->Advanced tab
3. Switching from XRender to openGL and Native mode causes kwin to crash in the latest version of VirtualBox 4.2.14

The crash can be reproduced every time.

-- Backtrace:
Application: KWin (kwin), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fd34ee97780 (LWP 1077))]

Thread 8 (Thread 0x7fd333a1f700 (LWP 1091)):
#0  0x00007fd34970b964 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fd34af8c437 in ?? () from /usr/lib64/libQtScript.so.4
#2  0x00007fd34af8c469 in ?? () from /usr/lib64/libQtScript.so.4
#3  0x00007fd349707e0e in start_thread () from /lib64/libpthread.so.0
#4  0x00007fd34e6b3b9d in clone () from /lib64/libc.so.6

Thread 7 (Thread 0x7fd330a69700 (LWP 1098)):
#0  0x00007fd34e6af819 in syscall () from /lib64/libc.so.6
#1  0x00007fd34999cb64 in _q_futex (timeout=0x0, val=2, op=0, addr=0x1136030, addr2=<optimized out>, val2=<optimized out>) at thread/qmutex_unix.cpp:99
#2  QMutexPrivate::wait (this=0x1136030, timeout=<optimized out>) at thread/qmutex_unix.cpp:113
#3  0x00007fd349998d65 in QMutex::lockInternal (this=<optimized out>) at thread/qmutex.cpp:450
#4  0x00007fd34a1f9970 in lockInline (this=0x10fac38) at /usr/include/QtCore/qmutex.h:190
#5  QMutexLocker (m=0x10fac38, this=<synthetic pointer>) at /usr/include/QtCore/qmutex.h:109
#6  clear (this=0x10fac30) at /usr/src/debug/kdelibs-4.10.4/kdecore/services/kservicetypeprofile.cpp:43
#7  ~KServiceTypeProfiles (this=0x10fac30, __in_chrg=<optimized out>) at /usr/src/debug/kdelibs-4.10.4/kdecore/services/kservicetypeprofile.cpp:41
#8  destroy () at /usr/src/debug/kdelibs-4.10.4/kdecore/services/kservicetypeprofile.cpp:60
#9  0x00007fd34e602f31 in __run_exit_handlers () from /lib64/libc.so.6
#10 0x00007fd34e602fb5 in exit () from /lib64/libc.so.6
#11 0x00007fd348c90c18 in ?? () from /usr/lib64/libQtGui.so.4
#12 0x00007fd34e1a9d48 in KApplication::xioErrhandler(_XDisplay*) () from /usr/lib64/libkdeui.so.5
#13 0x00007fd34c750c4e in _XIOError () from /usr/lib64/libX11.so.6
#14 0x00007fd34c74ec4c in _XReply () from /usr/lib64/libX11.so.6
#15 0x00007fd34c733359 in XGetGeometry () from /usr/lib64/libX11.so.6
#16 0x00007fd331a1ae1a in ?? () from /usr/lib64/dri/vboxvideo_dri.so
#17 0x00007fd331a1ae75 in ?? () from /usr/lib64/dri/vboxvideo_dri.so
#18 0x00007fd3318488cb in crHashtableWalk () from /usr/lib64/VBoxOGLcrutil.so
#19 0x00007fd331a1af85 in ?? () from /usr/lib64/dri/vboxvideo_dri.so
#20 0x00007fd331a5152c in ?? () from /usr/lib64/dri/vboxvideo_dri.so
#21 0x00007fd331a5d67d in ?? () from /usr/lib64/dri/vboxvideo_dri.so
#22 0x00007fd349707e0e in start_thread () from /lib64/libpthread.so.0
#23 0x00007fd34e6b3b9d in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7fd32788a700 (LWP 1099)):
#0  0x00007fd34970b964 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fd32fa77f93 in ?? () from /usr/lib64/dri/swrast_dri.so
#2  0x00007fd349707e0e in start_thread () from /lib64/libpthread.so.0
#3  0x00007fd34e6b3b9d in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7fd327089700 (LWP 1100)):
#0  0x00007fd34970b964 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fd32fa77f93 in ?? () from /usr/lib64/dri/swrast_dri.so
#2  0x00007fd349707e0e in start_thread () from /lib64/libpthread.so.0
#3  0x00007fd34e6b3b9d in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7fd326888700 (LWP 1101)):
#0  0x00007fd34970b964 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fd32fa77f93 in ?? () from /usr/lib64/dri/swrast_dri.so
#2  0x00007fd349707e0e in start_thread () from /lib64/libpthread.so.0
#3  0x00007fd34e6b3b9d in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7fd326087700 (LWP 1102)):
#0  0x00007fd34970b964 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fd32fa77f93 in ?? () from /usr/lib64/dri/swrast_dri.so
#2  0x00007fd349707e0e in start_thread () from /lib64/libpthread.so.0
#3  0x00007fd34e6b3b9d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7fd33262d700 (LWP 1322)):
[KCrash Handler]
#5  0x00007fd34e71a488 in __memcmp_ssse3 () from /lib64/libc.so.6
#6  0x00007fd34999fadb in qstrcmp (str1=..., str2=...) at tools/qbytearray.cpp:346
#7  0x00007fd34a119163 in operator< (k2=..., k1=...) at /usr/src/debug/kdelibs-4.10.4/kdecore/config/kconfigdata.h:122
#8  qMapLessThanKey<KEntryKey> (key2=..., key1=...) at /usr/include/QtCore/qmap.h:107
#9  findNode (akey=..., this=0xf733a0) at /usr/include/QtCore/qmap.h:487
#10 find (akey=..., this=0xf733a0) at /usr/include/QtCore/qmap.h:608
#11 findEntry (flags=..., key=..., group=..., this=0xf733a0) at /usr/src/debug/kdelibs-4.10.4/kdecore/config/kconfigdata.h:224
#12 getEntryOption (option=KEntryMap::EntryImmutable, flags=..., key=..., group=..., this=0xf733a0) at /usr/src/debug/kdelibs-4.10.4/kdecore/config/kconfigdata.h:416
#13 KConfig::isGroupImmutableImpl (this=<optimized out>, aGroup=...) at /usr/src/debug/kdelibs-4.10.4/kdecore/config/kconfig.cpp:744
#14 0x00007fd34a122a22 in KConfigGroupPrivate (name=..., owner=..., this=0x19d94f0) at /usr/src/debug/kdelibs-4.10.4/kdecore/config/kconfiggroup.cpp:55
#15 KConfigGroup::KConfigGroup (this=0x7fd33262c930, master=..., _group=<optimized out>) at /usr/src/debug/kdelibs-4.10.4/kdecore/config/kconfiggroup.cpp:493
#16 0x00007fd34a26a543 in KSycocaPrivate::KSycocaPrivate (this=0x1610c50) at /usr/src/debug/kdelibs-4.10.4/kdecore/sycoca/ksycoca.cpp:106
#17 0x00007fd34a26a713 in KSycoca::KSycoca (this=0x1610e80) at /usr/src/debug/kdelibs-4.10.4/kdecore/sycoca/ksycoca.cpp:181
#18 0x00007fd34a26adcb in sycoca (this=0x11188c0) at /usr/src/debug/kdelibs-4.10.4/kdecore/sycoca/ksycoca.cpp:166
#19 KSycoca::self () at /usr/src/debug/kdelibs-4.10.4/kdecore/sycoca/ksycoca.cpp:295
#20 0x00007fd34a26dc41 in KSycocaFactory::KSycocaFactory (this=0x14698a0, factory_id=KST_KServiceTypeFactory) at /usr/src/debug/kdelibs-4.10.4/kdecore/sycoca/ksycocafactory.cpp:53
#21 0x00007fd34a1f8cce in KServiceTypeFactory::KServiceTypeFactory (this=0x14698a0) at /usr/src/debug/kdelibs-4.10.4/kdecore/services/kservicetypefactory.cpp:31
#22 0x00007fd34a1f8fe8 in self (this=0x11be950) at /usr/src/debug/kdelibs-4.10.4/kdecore/sycoca/ksycocafactory.h:200
#23 KServiceTypeFactory::self () at /usr/src/debug/kdelibs-4.10.4/kdecore/services/kservicetypefactory.cpp:65
#24 0x00007fd34a1f99bf in KServiceTypeProfiles::ensureParsed (this=0x10fac30) at /usr/src/debug/kdelibs-4.10.4/kdecore/services/kservicetypeprofile.cpp:71
#25 0x00007fd34a1fa639 in hasProfile (serviceType=..., this=0x10fac30) at /usr/src/debug/kdelibs-4.10.4/kdecore/services/kservicetypeprofile.cpp:50
#26 KServiceTypeProfile::hasProfile (serviceType=...) at /usr/src/debug/kdelibs-4.10.4/kdecore/services/kservicetypeprofile.cpp:173
#27 0x00007fd34a1fd31e in KServiceTypeTrader::query (this=0x10f96a0, serviceType=..., constraint=...) at /usr/src/debug/kdelibs-4.10.4/kdecore/services/kservicetypetrader.cpp:137
#28 0x00007fd34ea571ee in QtConcurrent::StoredConstMemberFunctionPointerCall2<QList<KSharedPtr<KService> >, KServiceTypeTrader, QString const&, QString, QString const&, QString>::runFunctor (this=0x19ee230) at /usr/include/QtCore/qtconcurrentstoredfunctioncall.h:638
#29 0x00007fd34ea58b66 in QtConcurrent::RunFunctionTask<QList<KSharedPtr<KService> > >::run (this=0x19ee230) at /usr/include/QtCore/qtconcurrentrunbase.h:106
#30 0x00007fd349991c8d in QThreadPoolThread::run (this=0x10b64c0) at concurrent/qthreadpool.cpp:107
#31 0x00007fd34999e0bc in QThreadPrivate::start (arg=0x10b64c0) at thread/qthread_unix.cpp:338
#32 0x00007fd349707e0e in start_thread () from /lib64/libpthread.so.0
#33 0x00007fd34e6b3b9d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7fd34ee97780 (LWP 1077)):
#0  0x00007fd34e6af819 in syscall () from /lib64/libc.so.6
#1  0x00007fd34999cb64 in _q_futex (timeout=0x0, val=2, op=0, addr=0x1136030, addr2=<optimized out>, val2=<optimized out>) at thread/qmutex_unix.cpp:99
#2  QMutexPrivate::wait (this=0x1136030, timeout=<optimized out>) at thread/qmutex_unix.cpp:113
#3  0x00007fd349998d65 in QMutex::lockInternal (this=<optimized out>) at thread/qmutex.cpp:450
#4  0x00007fd34a1fa631 in lockInline (this=0x10fac38) at /usr/include/QtCore/qmutex.h:190
#5  QMutexLocker (m=0x10fac38, this=<synthetic pointer>) at /usr/include/QtCore/qmutex.h:109
#6  hasProfile (serviceType=..., this=0x10fac30) at /usr/src/debug/kdelibs-4.10.4/kdecore/services/kservicetypeprofile.cpp:49
#7  KServiceTypeProfile::hasProfile (serviceType=...) at /usr/src/debug/kdelibs-4.10.4/kdecore/services/kservicetypeprofile.cpp:173
#8  0x00007fd34a1fd31e in KServiceTypeTrader::query (this=0x10f96a0, serviceType=..., constraint=...) at /usr/src/debug/kdelibs-4.10.4/kdecore/services/kservicetypetrader.cpp:137
#9  0x00007fd34ea5ed81 in KWin::Scripting::queryScriptsToLoad (this=this@entry=0x11d7820) at /usr/src/debug/kde-workspace-4.10.4/kwin/scripting/scripting.cpp:612
#10 0x00007fd34ea5f9a4 in KWin::Scripting::start (this=0x11d7820) at /usr/src/debug/kde-workspace-4.10.4/kwin/scripting/scripting.cpp:587
#11 0x00007fd34ea5fb45 in qt_static_metacall (_a=<optimized out>, _id=<optimized out>, _o=<optimized out>, _c=<optimized out>) at /usr/src/debug/kde-workspace-4.10.4/build/kwin/scripting.moc:343
#12 KWin::Scripting::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=0x7fff25476750) at /usr/src/debug/kde-workspace-4.10.4/build/kwin/scripting.moc:336
#13 0x00007fd349aae24f in QMetaObject::activate (sender=0x1090100, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3548
#14 0x00007fd34e9c2bda in KWin::Workspace::slotReconfigure (this=0x1090100) at /usr/src/debug/kde-workspace-4.10.4/kwin/workspace.cpp:1022
#15 0x00007fd34e9c386a in qt_static_metacall (_a=<optimized out>, _id=<optimized out>, _o=<optimized out>, _c=<optimized out>) at /usr/src/debug/kde-workspace-4.10.4/build/kwin/workspace.moc:318
#16 KWin::Workspace::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /usr/src/debug/kde-workspace-4.10.4/build/kwin/workspace.moc:234
#17 0x00007fd349aae24f in QMetaObject::activate (sender=0x10903d0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3548
#18 0x00007fd349ab354c in QObject::event (this=0x10903d0, e=<optimized out>) at kernel/qobject.cpp:1165
#19 0x00007fd348c2715c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#20 0x00007fd348c29acb in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#21 0x00007fd34e1adfb6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#22 0x00007fd349a99d1e in QCoreApplication::notifyInternal (this=0x7fff25477780, receiver=0x10903d0, event=0x7fff25477140) at kernel/qcoreapplication.cpp:946
#23 0x00007fd349acacf1 in sendEvent (event=0x7fff25477140, receiver=<optimized out>) at kernel/qcoreapplication.h:231
#24 QTimerInfoList::activateTimers (this=0xf31bd8) at kernel/qeventdispatcher_unix.cpp:637
#25 0x00007fd349acb330 in QEventDispatcherUNIX::activateTimers (this=this@entry=0xec7100) at kernel/qeventdispatcher_unix.cpp:894
#26 0x00007fd349acb488 in QEventDispatcherUNIX::processEvents (this=0xec7100, flags=...) at kernel/qeventdispatcher_unix.cpp:956
#27 0x00007fd348cc899f in ?? () from /usr/lib64/libQtGui.so.4
#28 0x00007fd349a98a6f in QEventLoop::processEvents (this=this@entry=0x7fff25477490, flags=...) at kernel/qeventloop.cpp:149
#29 0x00007fd349a98cf8 in QEventLoop::exec (this=0x7fff25477490, flags=...) at kernel/qeventloop.cpp:204
#30 0x00007fd349a9dec8 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218
#31 0x00007fd34e9e2b0a in kdemain (argc=3, argv=0x7fff254778c8) at /usr/src/debug/kde-workspace-4.10.4/kwin/main.cpp:537
#32 0x00007fd34e5eca15 in __libc_start_main () from /lib64/libc.so.6
#33 0x0000000000400761 in _start () at ../sysdeps/x86_64/start.S:123

Possible duplicates by query: bug 321164, bug 306806, bug 306405, bug 306155, bug 305361.

Reported using DrKonqi
Comment 1 Roman Bysh 2013-06-26 16:17:06 UTC
Follow Up

The Desktop Effects keeps switching back to XRender instead of OpenGL.
As a temporary fix I added the following to .bashrc

export KWIN_DIRECT_GL=1
export KWIN_COMPOSE=O2
#Note the "O" is the capital letter "O" NOT zero. 

The problem is that it worked for a while but when I added or switched effects, it triggered the crash.
Comment 2 Thomas Lübking 2013-06-26 17:36:33 UTC
Crash is because of concurrent kconfig accesses through ksycoco.
Fix is in production.

*** This bug has been marked as a duplicate of bug 321576 ***
Comment 3 Roman Bysh 2013-06-26 17:47:57 UTC
Thanks Thomas,

As far as openSUSE is concerned, we'll see this in openSUSE 13.1 Milestone 3.