Bug 305131

Summary: Gwenview crash at exit when using the oxygen-transparent decoration
Product: [Applications] gwenview Reporter: margueritesu <i>
Component: generalAssignee: Gwenview Bugs <gwenview-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: hugo.pereira.da.costa, malte.e, xylem2020
Priority: NOR    
Version: 2.9.0   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:

Description margueritesu 2012-08-14 12:33:28 UTC
Application: gwenview (2.9.0)
KDE Platform Version: 4.9.00 "release 562"
Qt Version: 4.8.2
Operating System: Linux 3.4.6-1.1-desktop x86_64
Distribution: "openSUSE 12.2 (x86_64)"

-- Information about the crash:
- What I was doing when the application crashed:

* open any image
* close
* signal: Segmentation fault(11)

- Custom settings of the application:

It was triggered by Oxygen-transparent.

Oxygen or any other window decoration style doesn't have this problem.

So please bring OT dev in may help.

The crash can be reproduced every time.

-- Backtrace:
Application: Gwenview (gwenview), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f46fa9887c0 (LWP 2731))]

Thread 2 (Thread 0x7f46f4e41700 (LWP 2733)):
#0  0x00007f47070831dd in read () from /lib64/libc.so.6
#1  0x00007f47001164bc in ?? () from /usr/lib64/libGL.so.1
#2  0x00007f46fe75fb27 in ?? () from /usr/lib64/tls/libnvidia-tls.so.302.17
#3  0x00007f470367c75f in ?? () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f4703641259 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#5  0x00007f4703641672 in ?? () from /usr/lib64/libglib-2.0.so.0
#6  0x00007f47036417f4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#7  0x00007f47094cf3f6 in QEventDispatcherGlib::processEvents (this=0x7f46f00008e0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#8  0x00007f470949febf in QEventLoop::processEvents (this=this@entry=0x7f46f4e40cf0, flags=...) at kernel/qeventloop.cpp:149
#9  0x00007f47094a0148 in QEventLoop::exec (this=0x7f46f4e40cf0, flags=...) at kernel/qeventloop.cpp:204
#10 0x00007f47093a3ef0 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#11 0x00007f470948089f in QInotifyFileSystemWatcherEngine::run (this=0xabc2e0) at io/qfilesystemwatcher_inotify.cpp:248
#12 0x00007f47093a6e8b in QThreadPrivate::start (arg=0xabc2e0) at thread/qthread_unix.cpp:307
#13 0x00007f47001174d4 in ?? () from /usr/lib64/libGL.so.1
#14 0x00007f4705307e0e in start_thread () from /lib64/libpthread.so.0
#15 0x00007f470708f2bd in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f46fa9887c0 (LWP 2731)):
[KCrash Handler]
#5  0x00007f4707a2c529 in QRasterWindowSurface::~QRasterWindowSurface (this=0xb3d610, __in_chrg=<optimized out>) at painting/qwindowsurface_raster.cpp:117
#6  0x00007f4707a2c5a9 in QRasterWindowSurface::~QRasterWindowSurface (this=0xb3d610, __in_chrg=<optimized out>) at painting/qwindowsurface_raster.cpp:121
#7  0x00007f4707a451be in QWidgetBackingStore::~QWidgetBackingStore (this=0xaf89f0, __in_chrg=<optimized out>) at painting/qbackingstore.cpp:909
#8  0x00007f470787ccb9 in QWidgetBackingStoreTracker::destroy (this=0x1094470) at kernel/qwidget.cpp:217
#9  0x00007f470787ce02 in QWidgetPrivate::deleteExtra (this=this@entry=0xe24ae0) at kernel/qwidget.cpp:1831
#10 0x00007f470787d01d in QWidgetPrivate::~QWidgetPrivate (this=0xe24ae0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:357
#11 0x00007f470787d2a9 in QWidgetPrivate::~QWidgetPrivate (this=0xe24ae0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:362
#12 0x00007f47094b8a9c in cleanup (pointer=<optimized out>) at ../../src/corelib/tools/qscopedpointer.h:62
#13 ~QScopedPointer (this=0xe24ab8, __in_chrg=<optimized out>) at ../../src/corelib/tools/qscopedpointer.h:100
#14 QObject::~QObject (this=0xe24ab0, __in_chrg=<optimized out>) at kernel/qobject.cpp:817
#15 0x00007f470787f110 in QWidget::~QWidget (this=0xe24ab0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1552
#16 0x00007f470787f3c9 in QWidget::~QWidget (this=0xe24ab0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1701
#17 0x00007f4707de2035 in QGlobalStaticDeleter<QWidget>::~QGlobalStaticDeleter (this=0x7f470830cfa8 <_ZZL21globalStyleInfoWidgetvE7cleanup>, __in_chrg=<optimized out>) at ../../src/corelib/global/qglobal.h:1928
#18 0x00007f4706fe28b1 in __run_exit_handlers () from /lib64/libc.so.6
#19 0x00007f4706fe2935 in exit () from /lib64/libc.so.6
#20 0x00007f4706fcc45c in __libc_start_main () from /lib64/libc.so.6
#21 0x0000000000429b91 in _start ()

Possible duplicates by query: bug 295018, bug 294229, bug 294100, bug 294033, bug 292398.

Reported using DrKonqi
Comment 1 margueritesu 2012-08-14 12:40:39 UTC
The problem still happens after I have implemented the fix in revision e9b1714f provided by kdelibs dev in bug 303169.
Comment 2 Hugo Pereira Da Costa 2012-08-29 13:17:17 UTC
... as a workaround you can run with Qt's native graphics system.
gwenview -graphicssystem native

I'm working on finding a better workaround in oxygen-transparent.
Comment 3 margueritesu 2012-08-29 13:31:02 UTC
(In reply to comment #2)
> ... as a workaround you can run with Qt's native graphics system.
> gwenview -graphicssystem native

Thanks for informing! I'll give it a try.

> 
> I'm working on finding a better workaround in oxygen-transparent.

feel free to mark this as fixed when you're ready...
Comment 4 Hugo Pereira Da Costa 2012-08-29 14:02:12 UTC
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 303169, bug 304889

M  +2    -1    style/oxygenargbhelper.cpp

http://commits.kde.org/oxygen-transparent/731ce67e2d24e11a09471e7a87404ad7c6a0dcfe
Comment 5 Hugo Pereira Da Costa 2012-08-29 14:04:44 UTC
That fixes it. Get latest oxygen-transparent and double-check.
closing.
Comment 6 Malte Eggers 2014-04-13 06:12:20 UTC
I would like to reopen this bug. Somehow the exact same problem described is still (again?) in the latest git master that I just updated to 10 minutes ago. Same workaround (-graphicssystem native) fixes the problem.
Comment 7 Malte Eggers 2014-04-13 06:13:39 UTC
I would like to reopen this bug. Somehow the exact same problem described is still (again?) in the latest git master that I just updated to 10 minutes ago. Same workaround (-graphicssystem native) fixes the problem.
Comment 8 Gethyn ThomasQuail 2014-05-31 22:10:24 UTC
This bug needs to be reopened as I also expierence the same crash: 

Application: Gwenview (gwenview), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f7f747a4900 (LWP 22031))]

Thread 2 (Thread 0x7f7f68af3700 (LWP 22036)):
#0  0x00000035fb2ea9dd in poll () from /lib64/libc.so.6
#1  0x00000035fde495b4 in g_main_context_iterate.isra () from /lib64/libglib-2.0.so.0
#2  0x00000035fde496dc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x0000003d3b5b5af6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#4  0x0000003d3b58595f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#5  0x0000003d3b585cad in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#6  0x0000003d3b479e8f in QThread::exec() () from /lib64/libQtCore.so.4
#7  0x0000003d3b5662e3 in QInotifyFileSystemWatcherEngine::run() () from /lib64/libQtCore.so.4
#8  0x0000003d3b47c6bf in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#9  0x00000035fb607f33 in start_thread () from /lib64/libpthread.so.0
#10 0x00000035fb2f4ded in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f7f747a4900 (LWP 22031)):
[KCrash Handler]
#5  0x00000030815c8ae9 in QRasterWindowSurface::~QRasterWindowSurface() () from /lib64/libQtGui.so.4
#6  0x00000030815c8b69 in QRasterWindowSurface::~QRasterWindowSurface() () from /lib64/libQtGui.so.4
#7  0x00000030815e172c in QWidgetBackingStore::~QWidgetBackingStore() () from /lib64/libQtGui.so.4
#8  0x0000003081410ab9 in QWidgetBackingStoreTracker::destroy() () from /lib64/libQtGui.so.4
#9  0x0000003081410c69 in QWidgetPrivate::deleteExtra() () from /lib64/libQtGui.so.4
#10 0x0000003081410e7d in QWidgetPrivate::~QWidgetPrivate() () from /lib64/libQtGui.so.4
#11 0x0000003081411109 in QWidgetPrivate::~QWidgetPrivate() () from /lib64/libQtGui.so.4
#12 0x0000003d3b5a09e5 in QObject::~QObject() () from /lib64/libQtCore.so.4
#13 0x000000308141a10c in QWidget::~QWidget() () from /lib64/libQtGui.so.4
#14 0x000000308141a3a9 in QWidget::~QWidget() () from /lib64/libQtGui.so.4
#15 0x0000003081994d15 in QGlobalStaticDeleter<QWidget>::~QGlobalStaticDeleter() () from /lib64/libQtGui.so.4
#16 0x00000035fb2394c9 in __run_exit_handlers () from /lib64/libc.so.6
#17 0x00000035fb239515 in exit () from /lib64/libc.so.6
#18 0x00000035fb221d6c in __libc_start_main () from /lib64/libc.so.6
#19 0x00000000004278c9 in _start ()