Summary: | Dolphin crashed after closing when using the oxygen-transparent widget style | ||
---|---|---|---|
Product: | [Applications] dolphin | Reporter: | Ruslan <virus84> |
Component: | general | Assignee: | Frank Reininghaus <frank78ac> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | daban8, fede.mangus, frank78ac, gregpitta19, hugo.pereira.da.costa, hugo, misora, theunfor |
Priority: | NOR | ||
Version: | 2.0.95 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/kdelibs/e9b1714f408f708237cb3ae445f734419d00a4a0 | Version Fixed In: | 4.9.1 |
Attachments: | New crash information added by DrKonqi |
Description
Ruslan
2012-07-07 21:49:21 UTC
Thanks for the bug report! We had earlier reports about this crash (see bug 264923), which seems to be due to issues in the style used and in KModifierKeyInfo. Which style do you use? Oxygen Transparent theme Thanks. Maybe KModifierKeyInfo in kdelibs should really be changed to inherit from QObject rather than QWidget in order to prevent such crashes in the future. Just to say, oxygen transparent makes kmix crash on exit also, so is this a oxygen-transparent bug or kwin's? Is OT still manteined? (In reply to comment #4) > Just to say, oxygen transparent makes kmix crash on exit also, so is this a > oxygen-transparent bug or kwin's? Is OT still manteined? It is still maintained, AFAICS. If you are sure it is oxygen-transparent that makes kmix crashing everytime, do no hesitate reporting the crash. Whatever, adding the maintainter of oxygen-transparent into the CC list. Same problem here KDE 4.9.00, also using the oxygen transparent theme, has the issue been reported on oxygen transparent? There is *nothing* in the crash report, that relates to oxygen-transparent. Now this might be caused by oxygen-transparent setting the ARGB flag on windows. (which we have to, to get transparency). But this would be a Qt bug and should be reported there. you might want to - see if you also can reproduce with bespin (setting transparency on) - see if you can reproduce using the "native" graphicssystem (dolphin -graphicssystem native) In any case, most likely this is a bug +triggered by+ oxygen transparent, but not an oxygen transparent bug. Hugo (oxygen dev) Thanks for showing up here Hugo, you can understand better what's going on here. Here's my testing results as you suggested: - I can't reproduce the bug with bespin with transparency and blur on , dolphin and kmix exits regulary, using raster. - Using OT the bug is not showing up with native graphicssystem (dolphin -graphicssystem native) Setting 'native' in kwin systemsetting configuration doesn't help , I thought it would be a desktop-wide setting but it seems related to kwin only. Seems to me that OT triggers something in qt raster system that bespin doesn't , but only in certain applications (dolphin and kmix for me). Kate , konsole , kwrite or systemesettings are fine. Sadly I don't have debug symbols here: Application: Dolphin (kdeinit4), signal: Segmentation fault Using host libthread_db library "/lib/libthread_db.so.1". [Current thread is 1 (Thread 0x7f182b8b7780 (LWP 24897))] Thread 2 (Thread 0x7f180f4a3700 (LWP 24926)): #0 0x00007ffffcbff8bf in clock_gettime () #1 0x00007f18260d9f8d in clock_gettime () from /lib/librt.so.1 #2 0x00007f182a46b544 in ?? () from /lib/libQtCore.so.4 #3 0x00007f182a53f44d in ?? () from /lib/libQtCore.so.4 #4 0x00007f182a53f793 in ?? () from /lib/libQtCore.so.4 #5 0x00007f182a53e30c in ?? () from /lib/libQtCore.so.4 #6 0x00007f182a53e3b5 in ?? () from /lib/libQtCore.so.4 #7 0x00007f1825e28f7f in g_main_context_prepare () from /lib/libglib-2.0.so.0 #8 0x00007f1825e2966b in ?? () from /lib/libglib-2.0.so.0 #9 0x00007f1825e29864 in g_main_context_iteration () from /lib/libglib-2.0.so.0 #10 0x00007f182a53ec46 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/libQtCore.so.4 #11 0x00007f182a50f77f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/libQtCore.so.4 #12 0x00007f182a50fa08 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/libQtCore.so.4 #13 0x00007f182a412700 in QThread::exec() () from /lib/libQtCore.so.4 #14 0x00007f182a4f01af in ?? () from /lib/libQtCore.so.4 #15 0x00007f182a41569b in ?? () from /lib/libQtCore.so.4 #16 0x00007f18192bc4d4 in ?? () from /lib/libGL.so.1 #17 0x00007f182a185e0f in start_thread () from /lib/libpthread.so.0 #18 0x00007f1828f1904d in clone () from /lib/libc.so.6 Thread 1 (Thread 0x7f182b8b7780 (LWP 24897)): [KCrash Handler] #5 0x00007f182989cfd9 in QRasterWindowSurface::~QRasterWindowSurface() () from /lib/libQtGui.so.4 #6 0x00007f182989d059 in QRasterWindowSurface::~QRasterWindowSurface() () from /lib/libQtGui.so.4 #7 0x00007f18298b5c6e in ?? () from /lib/libQtGui.so.4 #8 0x00007f18296ed5d9 in ?? () from /lib/libQtGui.so.4 #9 0x00007f18296ed722 in QWidgetPrivate::deleteExtra() () from /lib/libQtGui.so.4 #10 0x00007f18296ed93d in QWidgetPrivate::~QWidgetPrivate() () from /lib/libQtGui.so.4 #11 0x00007f18296edbc9 in QWidgetPrivate::~QWidgetPrivate() () from /lib/libQtGui.so.4 #12 0x00007f182a526fac in QObject::~QObject() () from /lib/libQtCore.so.4 #13 0x00007f18296efa30 in QWidget::~QWidget() () from /lib/libQtGui.so.4 #14 0x00007f182b3eb71f in ?? () from /lib/libkdeui.so.5 #15 0x00007f182b3eb749 in ?? () from /lib/libkdeui.so.5 #16 0x00007f182b3166a1 in KModifierKeyInfo::~KModifierKeyInfo() () from /lib/libkdeui.so.5 #17 0x00007f182b3166b9 in KModifierKeyInfo::~KModifierKeyInfo() () from /lib/libkdeui.so.5 #18 0x00007f1828e6cb31 in __run_exit_handlers () from /lib/libc.so.6 #19 0x00007f1828e6cbb5 in exit () from /lib/libc.so.6 #20 0x00000000004082b9 in _start () Let me know if you need some more specs @mangus yeah I can reproduce all that you describe above on my intel card (its been a while since I actually used oxygen-transparent). I'll investigate why it crashes with oxygen transparent and not bespin. side notes: - oxygen makes no access to the underlying graphicssystem, and the exact same code is used for native and raster. So the bug has to be upstream somehow. Will see if I can find a workaround. - indeed kwin's engine settings only apply to kwin. there is an app on kde-look.org to change system wide engine if you look it up. (can't remember the name atm) - one thing I'd like to have feedback too: when using okular + oxygen transparent + raster engine, to open a *postscript* file, does it work ? here postscript visualization is corrupted. It looks good only if using native engine ... Thanks for the feedback, Hugo I can confirm the postcript issue as you exposed. Thanks, I really love OT :) Created attachment 72945 [details]
New crash information added by DrKonqi
dolphin (2.1) on KDE Platform 4.9.00 using Qt 4.8.2
- What I was doing when the application crashed:
Nothing. Just opened dolphin and closed it.
- Custom settings of the application:
I'm also using oygen-transparent. Seems I can confirm this bug.
-- Backtrace (Reduced):
#5 0x00007fa003ddc869 in QRasterWindowSurface::~QRasterWindowSurface() () from /usr/lib64/qt4/libQtGui.so.4
#6 0x00007fa003ddc8e9 in QRasterWindowSurface::~QRasterWindowSurface() () from /usr/lib64/qt4/libQtGui.so.4
[...]
#9 0x00007fa003c26199 in QWidgetPrivate::deleteExtra() () from /usr/lib64/qt4/libQtGui.so.4
#10 0x00007fa003c263dc in QWidgetPrivate::~QWidgetPrivate() () from /usr/lib64/qt4/libQtGui.so.4
#11 0x00007fa003c266e9 in QWidgetPrivate::~QWidgetPrivate() () from /usr/lib64/qt4/libQtGui.so.4
I'm going to commit https://git.reviewboard.kde.org/r/105920/, which makes crashes with the backtraces provided here impossible. It could be that it's not really the root cause of this issue, and that a combination of a bug in Qt and something unusual in some styles actually has something to do with it. Nonetheless, I'm going to close this report with my commit. If someone feels like investigating more, feel free to reopen, but reassign the report to something else please ;-) Git commit e9b1714f408f708237cb3ae445f734419d00a4a0 by Frank Reininghaus. Committed on 09/08/2012 at 22:57. Pushed by freininghaus into branch 'KDE/4.9'. Make KModifierKeyInfoProvider inherit QObject, rather than QWidget This makes crashes like the one I'm closing with this report impossible, even though the root cause might be somehing else, possibly related to Qt and particular settings of certain styles. In any case, that class does not need anything from QWidget any more, so this change would make sense even without the crash. Thanks to Aurelién Gâteau and David Faure, both for coming up with the idea to fix it this way in the first place and for explaining why deriving the class from QWidget did make sense in the past. FIXED-IN: 4.9.1 REVIEW: 105920 M +1 -1 kdeui/util/kmodifierkeyinfoprovider_p.h M +1 -1 kdeui/util/kmodifierkeyinfoprovider_x11.cpp http://commits.kde.org/kdelibs/e9b1714f408f708237cb3ae445f734419d00a4a0 Thanks Frank ! I'll still investigate the oxygen-transparent side of the issue I've opened the related bug for kmix here: https://bugs.kde.org/show_bug.cgi?id=304889 thanks all. *** Bug 305043 has been marked as a duplicate of this bug. *** *** Bug 305696 has been marked as a duplicate of this bug. *** Git commit 731ce67e2d24e11a09471e7a87404ad7c6a0dcfe by Hugo Pereira Da Costa. Committed on 29/08/2012 at 15:59. Pushed by hpereiradacosta into branch 'master'. Do not set argb X property on widget's window, if not created. Related: bug 304889, bug 305131 M +2 -1 style/oxygenargbhelper.cpp http://commits.kde.org/oxygen-transparent/731ce67e2d24e11a09471e7a87404ad7c6a0dcfe commit in previous comment fixes it on oxygen-transparent side. So that this bug is now fixed *twice* |