Summary: | KWin crashes when closing an image in Adobe Photoshop CS2 using Wine | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Toby Fox <tobyfox> |
Component: | general | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED WORKSFORME | ||
Severity: | crash | CC: | b7.10110111, blitzkriegbop, christian_weilbach, executable, figtree7nts, franciscoadriansanchez, maured9, myriam |
Priority: | NOR | Keywords: | triaged |
Version First Reported In: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Toby Fox
2011-12-08 06:53:38 UTC
looks similar to bug 216879 yes, looks - but aside fragile Qt code, it's rather meaningless ;-) @Toby: what window decoration (titlebar theme) are you using Hi there - the window decoration is Oxygen (as is the widget style). Perhaps I'll try a different window decoration theme and see if the crashes don't happen or happen differently. Thanks for looking into it! no, the aurorae decoration has a reported issue on closing windows. if you can reproduce this crash for somewhat certain, try "kwin --graphicssystem native --replace &" and please in case the crashes stop afterwards (notice that you'll have to do that after _each_ login) I still haven't found a surefire way to reproduce the crash, but the crash does still occur even with KWin running with --graphicssystem native. The backtrace was identical as far as I can tell. If it's of any relevance, when I run kwin from a terminal, regardless of the --graphicssystem option, I get 'kwin(27291): Shaders are not supported' after the rest of the output about my system. Let me know if there's any other info I can give, or anything else to try. -- Backtrace: Application: KWin (kwin), signal: Segmentation fault [Current thread is 1 (Thread 0x7f2f7f7977a0 (LWP 27291))] Thread 3 (Thread 0x7f2f652c7700 (LWP 27296)): #0 0x00007f2f7efe2143 in select () at ../sysdeps/unix/syscall-template.S:82 #1 0x00007f2f7b43d32c in qt_safe_select (nfds=15, fdread=0x217d980, fdwrite=0x217dc18, fdexcept=0x217deb0, orig_timeout=<value optimized out>) at kernel/qcore_unix.cpp:82 #2 0x00007f2f7b4423d0 in QEventDispatcherUNIXPrivate::doSelect (this=0x217d7c0, flags=..., timeout=0x0) at kernel/qeventdispatcher_unix.cpp:219 #3 0x00007f2f7b44304a in QEventDispatcherUNIX::processEvents (this=0x217d0c0, flags=...) at kernel/qeventdispatcher_unix.cpp:919 #4 0x00007f2f7b414882 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149 #5 0x00007f2f7b414abc in QEventLoop::exec (this=0x7f2f652c6db0, flags=...) at kernel/qeventloop.cpp:201 #6 0x00007f2f7b32b924 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:492 #7 0x00007f2f7b3f6c2f in QInotifyFileSystemWatcherEngine::run (this=0x217c560) at io/qfilesystemwatcher_inotify.cpp:248 #8 0x00007f2f7b32e175 in QThreadPrivate::start (arg=0x217c560) at thread/qthread_unix.cpp:320 #9 0x00007f2f7560dd8c in start_thread (arg=0x7f2f652c7700) at pthread_create.c:304 #10 0x00007f2f7efea04d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #11 0x0000000000000000 in ?? () Thread 2 (Thread 0x7f2f64a03700 (LWP 27297)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162 #1 0x00007f2f7de482a2 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7f2f7e161180) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359 #2 0x00007f2f7de482d9 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0x7f2f7e16f254) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464 #3 0x00007f2f7560dd8c in start_thread (arg=0x7f2f64a03700) at pthread_create.c:304 #4 0x00007f2f7efea04d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #5 0x0000000000000000 in ?? () Thread 1 (Thread 0x7f2f7f7977a0 (LWP 27291)): [KCrash Handler] #6 height (this=0x7f2f7f2932d8, p=..., ignoreChildrenInDestructor=false) at ../../include/QtCore/../../src/corelib/tools/qrect.h:307 #7 rect (this=0x7f2f7f2932d8, p=..., ignoreChildrenInDestructor=false) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:1007 #8 pointInsideRectAndMask (this=0x7f2f7f2932d8, p=..., ignoreChildrenInDestructor=false) at ../../include/QtGui/private/../../../src/gui/kernel/qwidget_p.h:987 #9 QWidgetPrivate::childAt_helper (this=0x7f2f7f2932d8, p=..., ignoreChildrenInDestructor=false) at kernel/qwidget.cpp:9839 #10 0x00007f2f7a8550d8 in QETWidget::translateMouseEvent (this=0x27c0350, event=<value optimized out>) at kernel/qapplication_x11.cpp:4546 #11 0x00007f2f7a853ab7 in QApplication::x11ProcessEvent (this=0x7fff0ddcc2f0, event=0x7fff0ddcc0b0) at kernel/qapplication_x11.cpp:3680 #12 0x00007f2f7a87d224 in QEventDispatcherX11::processEvents (this=0x1cc22e0, flags=...) at kernel/qeventdispatcher_x11.cpp:132 #13 0x00007f2f7b414882 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149 #14 0x00007f2f7b414abc in QEventLoop::exec (this=0x7fff0ddcc230, flags=...) at kernel/qeventloop.cpp:201 #15 0x00007f2f7b418ecb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008 #16 0x00007f2f7f2f2fbe in kdemain () from /usr/lib/kde4/libkdeinit/libkdeinit4_kwin.so #17 0x00007f2f7ef22eff in __libc_start_main (main=0x400730 <_start+256>, argc=4, ubp_av=0x7fff0ddcc958, init=<value optimized out>, fini=<value optimized out>, rtld_fini=<value optimized out>, stack_end=0x7fff0ddcc948) at libc-start.c:226 #18 0x0000000000400659 in _start () Ok, please try an/other decoration/s (i'd advocate including bespin, because i know it does not use kcommondecoration, maybe qtcurve or skultpture do neither) to rule out a bug in the oxygen decoration. Also ensure: "oxygen" like in "oxyen" - not sth. like "oxygen-air \ by <some guy>" (latter are aurorae themes) It was definitely the plain old "Oxygen" decoration that is enabled by default in KDE that I was using. I'm now using Bespin and I haven't gotten the same crash yet, but I still haven't figured out how to reproduce the crash so I might just be getting lucky. Unfortunately I'm really busy right now so I don't have time to figure how to reliably reproduce the crash, but when I get the time I'll post my results here. *** Bug 294814 has been marked as a duplicate of this bug. *** Unfortunately the crash report is still missing a clear way on how to reproduce the issue and whether this crash is related to KCommonDecoration (e.g. Oxygen) compared to KDecoration (e.g. bespin). For further investigation we should also consider that this crash and the dup happened on ubuntu. *** Bug 317720 has been marked as a duplicate of this bug. *** *** Bug 317720 has been marked as a duplicate of this bug. *** *** Bug 320497 has been marked as a duplicate of this bug. *** *** Bug 321013 has been marked as a duplicate of this bug. *** *** Bug 299480 has been marked as a duplicate of this bug. *** translateMouseEvents passes events following a MotionNotify to installed eventfilters and afterwards tries to access it's internalWinId() which returns a member of the QWidget dptr. -> We either cause deletion of the ETWidget or corrupt memory by one of those events. If somebody can reproduce this halfwise reliably and inject a patch into kwin: please raise hands. (Maybe running kwin in valgrind might show sth. as well) -------------------------------------------------------------------------------------------------------------------------------------- if (event->type == MotionNotify) { // mouse move if (event->xmotion.root != RootWindow(X11->display, x11Info().screen()) && ! qt_xdnd_dragging) return false; XMotionEvent lastMotion = event->xmotion; while(XPending(X11->display)) { // compress mouse moves XNextEvent(X11->display, &nextEvent); if (nextEvent.type == ConfigureNotify || nextEvent.type == PropertyNotify || nextEvent.type == Expose || nextEvent.type == GraphicsExpose || nextEvent.type == NoExpose || nextEvent.type == KeymapNotify || ((nextEvent.type == EnterNotify || nextEvent.type == LeaveNotify) && qt_button_down == this) || (nextEvent.type == ClientMessage && (nextEvent.xclient.message_type == ATOM(_QT_SCROLL_DONE) || (nextEvent.xclient.message_type == ATOM(WM_PROTOCOLS) && (Atom)nextEvent.xclient.data.l[0] == ATOM(_NET_WM_SYNC_REQUEST))))) { // Pass the event through the event dispatcher filter so that applications // which install an event filter on the dispatcher get to handle it first. if (!QAbstractEventDispatcher::instance()->filterEvent(&nextEvent)) qApp->x11ProcessEvent(&nextEvent); continue; I assume one of them causes the KWin eventFilter to conditionally either *** Bug 325159 has been marked as a duplicate of this bug. *** Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days, the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please set the bug status as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone! Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 30 days. The bug is now closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging Thank you for helping us make KDE software even better for everyone! |