Summary: | Crash while using mouse scroll wheel for horizontal scrolling, usecase Konversation | ||
---|---|---|---|
Product: | [Unmaintained] kdelibs | Reporter: | Hebert <hebert.soares> |
Component: | kdeui | Assignee: | kdelibs bugs <kdelibs-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | b.buschinski, cfeck, hebert.soares, hein, kde-bugs, myriam, oss+kde+bugzilla, rdnetto, richard.llom |
Priority: | NOR | ||
Version: | 4.11.3 | ||
Target Milestone: | --- | ||
Platform: | Fedora RPMs | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Hebert
2013-01-29 15:32:52 UTC
As I can not reproduce it... can we have another backtrace? WITH debuggingsymbols installed for konversation and Qt? maybe, are you using some weird Qt theme that causes it? if yes, can you please retry with oxygen for example I'm using a different Qt theme 'Glossy'. I've switched back to 'oxygen' and was able to reproduce the problem, this time with debugging symbols installed. Core was generated by `/usr/bin/konversation -session 10ded4696c000135947304100000012750024_1360277319'. Program terminated with signal 11, Segmentation fault. #0 0x44ffd9c9 in data (this=<optimized out>) at ../../src/corelib/tools/qscopedpointer.h:135 135 return d; Thread 1 (Thread 0xb76f4780 (LWP 1377)): #0 0x44ffd9c9 in data (this=<optimized out>) at ../../src/corelib/tools/qscopedpointer.h:135 No locals. #1 qGetPtrHelper<QScopedPointer<QObjectData> > (p=...) at ../../src/corelib/global/qglobal.h:2455 No locals. #2 d_func (this=<optimized out>) at kernel/qapplication.h:390 No locals. #3 QApplication::notify (this=0xbf820c20, receiver=0x91fe7c0, e=0xbf0225bc) at kernel/qapplication.cpp:3830 res = <error reading variable res (Cannot access memory at address 0xbf021f72)> #4 0x428bba82 in KApplication::notify (this=0xbf820c20, receiver=0x91fe7c0, event=0xbf0225bc) at /usr/src/debug/kdelibs-4.9.5/kdeui/kernel/kapplication.cpp:311 No locals. #5 0x4210408e in QCoreApplication::notifyInternal (this=0xbf820c20, receiver=0x91fe7c0, event=0xbf0225bc) at kernel/qcoreapplication.cpp:946 threadData = 0x8d11a18 returnValue = <optimized out> result = false cbdata = {0x91fe7c0, 0xbf0225bc, 0xbf022203} d = <optimized out> #6 0x429bbfb4 in sendEvent (event=0xbf0225bc, receiver=<optimized out>) at /usr/include/QtCore/qcoreapplication.h:231 No locals. #7 wheelEvent (event=0xbf0225bc, this=0x91fd3b8) at /usr/src/debug/kdelibs-4.9.5/kdeui/widgets/ktabwidget.cpp:472 No locals. #8 KTabWidget::wheelEvent (this=0x91fd3b8, event=0xbf0225bc) at /usr/src/debug/kdelibs-4.9.5/kdeui/widgets/ktabwidget.cpp:469 No locals. #9 0x45052e0b in QWidget::event (this=0x91fd3b8, event=0xbf0225bc) at kernel/qwidget.cpp:8394 No locals. #10 0x454ddb16 in QTabWidget::event (this=0x91fd3b8, ev=0xbf0225bc) at widgets/qtabwidget.cpp:1069 No locals. #11 0x44ff906c in QApplicationPrivate::notify_helper (this=0x90c12c8, receiver=0x91fd3b8, e=0xbf0225bc) at kernel/qapplication.cpp:4562 consumed = <optimized out> #12 0x44ffe267 in QApplication::notify (this=0xbf0225bc, receiver=0x91fe7c0, e=0xbf022acc) at kernel/qapplication.cpp:4160 we = {<QInputEvent> = {<QEvent> = {_vptr.QEvent = 0x45976018 <vtable for QWheelEvent+8>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x421ff560 <qt_meta_stringdata_QEvent> "QEvent", data = 0x421fff60 <qt_meta_data_QEvent>, extradata = 0x0}}, d = 0x0, t = 31, posted = 0, spont = 0, m_accept = 1, reserved = 0}, modState = {i = 0}}, p = {xp = 225, yp = 2527845}, g = {xp = 230, yp = 772}, d = 120, mouseState = {i = 0}, o = Qt::Horizontal} w = 0x91fd3b8 relpos = {xp = 225, yp = 2527845} eventAccepted = false res = true hm, I still can not reproduce it... and the backtrace shows no konversation code "maybe" can you update to konversation git master? and see if the problem is still present? or, if possible, update to Qt 4.8.4? Downloaded konversation from git and compiled version 1.4-master #4212 Qt is already 4.8.4. I'm still able to reproduce it, although the backtrace changed a little bit. You can see the application crashed while trying to process a mouse QWheelEvent. Although it looks more like a Qt/KDE problem than konversation itself, I'm only able to trigger this crash using konversation. Core was generated by `/usr/local/bin/konversation -caption Konversation --icon konversation'. Program terminated with signal 11, Segmentation fault. #0 0x454dd050 in QTabWidget::count (this=0x9148870) at widgets/qtabwidget.cpp:1152 1152 return d->tabs->count(); Thread 1 (Thread 0xb77239c0 (LWP 16997)): #0 0x454dd050 in QTabWidget::count (this=0x9148870) at widgets/qtabwidget.cpp:1152 d = 0x9139020 #1 0x42a52d5e in KTabWidget::Private::isEmptyTabbarSpace (this=0x91383d8, point=...) at /usr/src/debug/kdelibs-4.9.5/kdeui/widgets/ktabwidget.cpp:87 No locals. #2 0x42a52f67 in KTabWidget::wheelEvent (this=0x9148870, event=0xbf76940c) at /usr/src/debug/kdelibs-4.9.5/kdeui/widgets/ktabwidget.cpp:471 No locals. #3 0x45052e0b in QWidget::event (this=0x9148870, event=0xbf76940c) at kernel/qwidget.cpp:8394 No locals. #4 0x454ddb16 in QTabWidget::event (this=0x9148870, ev=0xbf76940c) at widgets/qtabwidget.cpp:1069 No locals. #5 0x44ff906c in QApplicationPrivate::notify_helper (this=0x900ca40, receiver=0x9148870, e=0xbf76940c) at kernel/qapplication.cpp:4562 consumed = <optimized out> #6 0x44ffe267 in QApplication::notify (this=0xbf76940c, receiver=0x9139f30, e=0xbf76991c) at kernel/qapplication.cpp:4160 we = {<QInputEvent> = {<QEvent> = {_vptr.QEvent = 0x45976018 <vtable for QWheelEvent+8>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x421ff560 <qt_meta_stringdata_QEvent> "QEvent", data = 0x421fff60 <qt_meta_data_QEvent>, extradata = 0x0}}, d = 0x0, t = 31, posted = 0, spont = 0, m_accept = 1, reserved = 0}, modState = {i = 0}}, p = {xp = 197, yp = 2526330}, g = {xp = 202, yp = 821}, d = 120, mouseState = {i = 0}, o = Qt::Horizontal} w = 0x9148870 relpos = {xp = 197, yp = 2526330} eventAccepted = false res = true #7 0x42952a82 in KApplication::notify (this=0xbff665d0, receiver=0x9139f30, event=0xbf76991c) at /usr/src/debug/kdelibs-4.9.5/kdeui/kernel/kapplication.cpp:311 No locals. #8 0x4210408e in QCoreApplication::notifyInternal (this=0xbff665d0, receiver=0x9139f30, event=0xbf76991c) at kernel/qcoreapplication.cpp:946 threadData = 0x8c0fa18 returnValue = <optimized out> result = false cbdata = {0x9139f30, 0xbf76991c, 0xbf769563} d = <optimized out> #9 0x42a52fb4 in sendEvent (event=0xbf76991c, receiver=<optimized out>) at /usr/include/QtCore/qcoreapplication.h:231 No locals. #10 wheelEvent (event=0xbf76991c, this=0x9148870) at /usr/src/debug/kdelibs-4.9.5/kdeui/widgets/ktabwidget.cpp:472 No locals. #11 KTabWidget::wheelEvent (this=0x9148870, event=0xbf76991c) at /usr/src/debug/kdelibs-4.9.5/kdeui/widgets/ktabwidget.cpp:469 No locals. #12 0x45052e0b in QWidget::event (this=0x9148870, event=0xbf76991c) at kernel/qwidget.cpp:8394 No locals. I can't reproduce this here with current 1.5.rc1-25 (1.5 master #4300) from git, Using KDE 4.10.2 and Qt 4.8.4 on Kubuntu 13.04 beta 2, and I use the mouse wheel all the time. Your backtrace actually shows a problem with kdelibs -> kdeui -> KTabWidget. Could you eventually upgrade your KDE to current 4.10.x? This is most likely not Konversation specific. Updated KDE to 4.10.2 Qt is alredy 4.8.4 Using Fedora 18 Update konversation from git to 1.5-master #4300. Still able to reproduce it. One of the things I should mention is that I reproduce it using the mouse wheel by doing horizontal scrolling. If I scroll the list of channels horizontally all the way to the right, it will crash when it is scrolled back to the left. New backtrace: Thread 1 (Thread 0xb68ac780 (LWP 6451)): #0 0x433a49c9 in data (this=<optimized out>) at ../../src/corelib/tools/qscopedpointer.h:135 No locals. #1 qGetPtrHelper<QScopedPointer<QObjectData> > (p=...) at ../../src/corelib/global/qglobal.h:2455 No locals. #2 d_func (this=<optimized out>) at kernel/qapplication.h:390 No locals. #3 QApplication::notify (this=0xbfab8c00, receiver=0x977cab0, e=0xbf2bb52c) at kernel/qapplication.cpp:3830 res = <error reading variable res (Cannot access memory at address 0xbf2baee2)> #4 0xb6e8cb62 in KApplication::notify (this=0xbfab8c00, receiver=0x977cab0, event= 0xbf2bb52c) at /usr/src/debug/kdelibs-4.10.2/kdeui/kernel/kapplication.cpp:311 No locals. #5 0x42b360be in QCoreApplication::notifyInternal (this=0xbfab8c00, receiver= 0x977cab0, event=0xbf2bb52c) at kernel/qcoreapplication.cpp:946 threadData = 0x9200cb0 returnValue = <optimized out> result = false cbdata = {0x977cab0, 0xbf2bb52c, 0xbf2bb173} d = <optimized out> #6 0xb6f8d3d4 in sendEvent (event=0xbf2bb52c, receiver=<optimized out>) at /usr/include/QtCore/qcoreapplication.h:231 No locals. #7 wheelEvent (event=0xbf2bb52c, this=0x977b550) at /usr/src/debug/kdelibs-4.10.2/kdeui/widgets/ktabwidget.cpp:472 No locals. #8 KTabWidget::wheelEvent (this=0x977b550, event=0xbf2bb52c) at /usr/src/debug/kdelibs-4.10.2/kdeui/widgets/ktabwidget.cpp:469 No locals. #9 0x433f9e0b in QWidget::event (this=0x977b550, event=0xbf2bb52c) at kernel/qwidget.cpp:8394 No locals. #10 0x43884b16 in QTabWidget::event (this=0x977b550, ev=0xbf2bb52c) at widgets/qtabwidget.cpp:1069 No locals. #11 0x433a006c in QApplicationPrivate::notify_helper (this=0x960a748, receiver= 0x977b550, e=0xbf2bb52c) at kernel/qapplication.cpp:4562 consumed = <optimized out> #12 0x433a5267 in QApplication::notify (this=0xbf2bb52c, receiver=0x977cab0, e= 0xbf2bba3c) at kernel/qapplication.cpp:4160 we = {<QInputEvent> = {<QEvent> = { _vptr.QEvent = 0x43d1d018 <vtable for QWheelEvent+8>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x42c31580 <qt_meta_stringdata_QEvent> "QEvent", data = 0x42c31f80 <qt_meta_data_QEvent>, extradata = 0x0}}, d = 0x0, t = 31, posted = 0, spont = 0, m_accept = 1, reserved = 0}, modState = {i = 0}}, p = {xp = 322, yp = 2526687}, g = {xp = 327, yp = 787}, d = -120, mouseState = {i = 0}, o = Qt::Horizontal} w = 0x977b550 relpos = {xp = 322, yp = 2526687} eventAccepted = false res = true #13 0xb6e8cb62 in KApplication::notify (this=0xbfab8c00, receiver=0x977cab0, event= 0xbf2bba3c) at /usr/src/debug/kdelibs-4.10.2/kdeui/kernel/kapplication.cpp:311 No locals. #14 0x42b360be in QCoreApplication::notifyInternal (this=0xbfab8c00, receiver= 0x977cab0, event=0xbf2bba3c) at kernel/qcoreapplication.cpp:946 threadData = 0x9200cb0 returnValue = <optimized out> result = false cbdata = {0x977cab0, 0xbf2bba3c, 0xbf2bb683} d = <optimized out> #15 0xb6f8d3d4 in sendEvent (event=0xbf2bba3c, receiver=<optimized out>) at /usr/include/QtCore/qcoreapplication.h:231 No locals. #16 wheelEvent (event=0xbf2bba3c, this=0x977b550) at /usr/src/debug/kdelibs-4.10.2/kdeui/widgets/ktabwidget.cpp:472 Thank you for the fast feedback. That really looks like a problem with KTabWidget rather than with Konversation who just happens to use that library. Reassigning, Konversation is a good usecase for it. I think the problem is that sendEvent() will send the event to the parent object, if the receiver is not interested in it, causing some unhandled recursion inside Qt. Can you reproduce a crash and test a patch? Unfortunately, my system has no mouse wheel, I use a stylus, so I cannot test. *** Bug 327764 has been marked as a duplicate of this bug. *** Can somebody who can reproduce please test this patch for kdelibs? I cannot test it (see comment #8). diff --git a/kdeui/widgets/ktabwidget.cpp b/kdeui/widgets/ktabwidget.cpp index 49dc293..30a9a6c 100644 --- a/kdeui/widgets/ktabwidget.cpp +++ b/kdeui/widgets/ktabwidget.cpp @@ -468,7 +468,8 @@ void KTabWidget::dropEvent( QDropEvent *event ) #ifndef QT_NO_WHEELEVENT void KTabWidget::wheelEvent( QWheelEvent *event ) { - if ( d->isEmptyTabbarSpace( event->pos() ) ) + if ( !( event->orientation() == Qt::Horizontal ) + && d->isEmptyTabbarSpace( event->pos() ) ) QCoreApplication::sendEvent( tabBar(), event ); else QTabWidget::wheelEvent( event ); I can also reproduce this on openSUSE Factory (slightly newer than openSUSE 13.1). I'm just building a package with the patch from comment 10 and will report back in the next days. Good news: the patch works - I can no longer crash Konversation :-) Thanks for testing :) If you see regressions with applications that used wheel on tabs, please report them. Tested patch on 4.11.3 on Fedora 19. Konversation no longer crashes. I've managed to crash it again. But after the patch, it doesn't crash as easily as before. Thread 1 (Thread 0x7fa6624678c0 (LWP 1506)): #0 QGestureManager::filterEvent (this=0x22ece20, receiver=receiver@entry=0x20e3660, event=event@entry=0x7ffffad04570) at kernel/qgesturemanager.cpp:467 No locals. #1 0x0000003d76bce8fe in QApplication::notify (this=this@entry=0x7ffffb503090, receiver=receiver@entry=0x20e3660, e=e@entry=0x7ffffad04570) at kernel/qapplication.cpp:3910 d = 0x20d55d0 res = <optimized out> #2 0x0000003b3d83fe9a in KApplication::notify (this=0x7ffffb503090, receiver=0x20e3660, event=0x7ffffad04570) at /usr/src/debug/kdelibs-4.11.3/kdeui/kernel/kapplication.cpp:311 No locals. #3 0x0000003d7537a26d in QCoreApplication::notifyInternal (this=0x7ffffb503090, receiver=0x20e3660, event=0x7ffffad04570) at kernel/qcoreapplication.cpp:949 threadData = 0x1be0970 returnValue = <optimized out> result = false cbdata = {0x20e3660, 0x7ffffad04570, 0x7ffffad0437f} d = <optimized out> #4 0x0000003d76c176ec in QWidget::event (this=0x20e1de0, event=0x7ffffad04570) at kernel/qwidget.cpp:8395 No locals. #5 0x0000003d76bc84dc in QApplicationPrivate::notify_helper (this=this@entry=0x20d55d0, receiver=receiver@entry=0x20e1de0, e=e@entry=0x7ffffad04570) at kernel/qapplication.cpp:4562 consumed = <optimized out> #6 0x0000003d76bcfaf4 in QApplication::notify (this=this@entry=0x7ffffb503090, receiver=receiver@entry=0x20e3660, e=e@entry=0x7ffffad04870) at kernel/qapplication.cpp:4160 we = {<QInputEvent> = {<QEvent> = {_vptr.QEvent = 0x3d77668c30 <vtable for QWheelEvent+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x3d7546a2a0 <qt_meta_stringdata_QEvent> "QEvent", data = 0x3d7546aca0 <qt_meta_data_QEvent>, extradata = 0x0}}, d = 0x0, t = 31, posted = 0, spont = 0, m_accept = 1, reserved = 0}, modState = {i = 0}}, p = {xp = 476, yp = 4343393}, g = {xp = 476, yp = 1406}, d = 120, mouseState = {i = 0}, o = Qt::Horizontal} w = 0x20e1de0 wheel = 0x7ffffad04870 relpos = {xp = 476, yp = 4343393} eventAccepted = <optimized out> d = 0x20d55d0 res = false #7 0x0000003b3d83fe9a in KApplication::notify (this=0x7ffffb503090, receiver=0x20e3660, event=0x7ffffad04870) at /usr/src/debug/kdelibs-4.11.3/kdeui/kernel/kapplication.cpp:311 No locals. #8 0x0000003d7537a26d in QCoreApplication::notifyInternal (this=0x7ffffb503090, receiver=0x20e3660, event=0x7ffffad04870) at kernel/qcoreapplication.cpp:949 threadData = 0x1be0970 returnValue = <optimized out> result = false cbdata = {0x20e3660, 0x7ffffad04870, 0x7ffffad0467f} d = <optimized out> #9 0x0000003d76c176ec in QWidget::event (this=0x20e1de0, event=0x7ffffad04870) at kernel/qwidget.cpp:8395 No locals. #10 0x0000003d76bc84dc in QApplicationPrivate::notify_helper (this=this@entry=0x20d55d0, receiver=receiver@entry=0x20e1de0, e=e@entry=0x7ffffad04870) at kernel/qapplication.cpp:4562 consumed = <optimized out> #11 0x0000003d76bcfaf4 in QApplication::notify (this=this@entry=0x7ffffb503090, receiver=receiver@entry=0x20e3660, e=e@entry=0x7ffffad04b70) at kernel/qapplication.cpp:4160 we = {<QInputEvent> = {<QEvent> = {_vptr.QEvent = 0x3d77668c30 <vtable for QWheelEvent+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x3d7546a2a0 <qt_meta_stringdata_QEvent> "QEvent", data = 0x3d7546aca0 <qt_meta_data_QEvent>, extradata = 0x0}}, d = 0x0, t = 31, posted = 0, spont = 0, m_accept = 0, reserved = 0}, modState = {i = 0}}, p = {xp = 476, yp = 4342995}, g = {xp = 476, yp = 1406}, d = 120, mouseState = {i = 0}, o = Qt::Horizontal} w = 0x20e1de0 wheel = 0x7ffffad04b70 relpos = {xp = 476, yp = 4342995} eventAccepted = <optimized out> d = 0x20d55d0 res = false #12 0x0000003b3d83fe9a in KApplication::notify (this=0x7ffffb503090, receiver=0x20e3660, event=0x7ffffad04b70) at /usr/src/debug/kdelibs-4.11.3/kdeui/kernel/kapplication.cpp:311 No locals. #13 0x0000003d7537a26d in QCoreApplication::notifyInternal (this=0x7ffffb503090, receiver=0x20e3660, event=0x7ffffad04b70) at kernel/qcoreapplication.cpp:949 threadData = 0x1be0970 returnValue = <optimized out> result = false cbdata = {0x20e3660, 0x7ffffad04b70, 0x7ffffad0497f} d = <optimized out> #14 0x0000003d76c176ec in QWidget::event (this=0x20e1de0, event=0x7ffffad04b70) at kernel/qwidget.cpp:8395 No locals. #15 0x0000003d76bc84dc in QApplicationPrivate::notify_helper (this=this@entry=0x20d55d0, receiver=receiver@entry=0x20e1de0, e=e@entry=0x7ffffad04b70) at kernel/qapplication.cpp:4562 consumed = <optimized out> #16 0x0000003d76bcfaf4 in QApplication::notify (this=this@entry=0x7ffffb503090, receiver=receiver@entry=0x20e3660, e=e@entry=0x7ffffad04e70) at kernel/qapplication.cpp:4160 we = {<QInputEvent> = {<QEvent> = {_vptr.QEvent = 0x3d77668c30 <vtable for QWheelEvent+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x3d7546a2a0 <qt_meta_stringdata_QEvent> "QEvent", data = 0x3d7546aca0 <qt_meta_data_QEvent>, extradata = 0x0}}, d = 0x0, t = 31, posted = 0, spont = 0, m_accept = 0, reserved = 0}, modState = {i = 0}}, p = {xp = 476, yp = 4342597}, g = {xp = 476, yp = 1406}, d = 120, mouseState = {i = 0}, o = Qt::Horizontal} w = 0x20e1de0 wheel = 0x7ffffad04e70 relpos = {xp = 476, yp = 4342597} eventAccepted = <optimized out> d = 0x20d55d0 res = false #17 0x0000003b3d83fe9a in KApplication::notify (this=0x7ffffb503090, receiver=0x20e3660, event=0x7ffffad04e70) at /usr/src/debug/kdelibs-4.11.3/kdeui/kernel/kapplication.cpp:311 No locals. #18 0x0000003d7537a26d in QCoreApplication::notifyInternal (this=0x7ffffb503090, receiver=0x20e3660, event=0x7ffffad04e70) at kernel/qcoreapplication.cpp:949 threadData = 0x1be0970 returnValue = <optimized out> result = false cbdata = {0x20e3660, 0x7ffffad04e70, 0x7ffffad04c7f} d = <optimized out> #19 0x0000003d76c176ec in QWidget::event (this=0x20e1de0, event=0x7ffffad04e70) at kernel/qwidget.cpp:8395 No locals. #20 0x0000003d76bc84dc in QApplicationPrivate::notify_helper (this=this@entry=0x20d55d0, receiver=receiver@entry=0x20e1de0, e=e@entry=0x7ffffad04e70) at kernel/qapplication.cpp:4562 consumed = <optimized out> I have this problem, too. If you need something? *** Bug 335347 has been marked as a duplicate of this bug. *** I just tested with the latest Konversation (1.6) on KDE5 (on openSUSE Tumbleweed) and can no longer reproduce the crash. Dear Bug Submitter, This bug has been stagnant for a long time. Could you help us out and re-test if the bug is valid in the latest version? I am setting the status to NEEDSINFO pending your response, please change the Status back to REPORTED when you respond. Thank you for helping us make KDE software even better for everyone! This was fixed when the code was ported to kde 5. Horizontal scroll events are now processed and change the window to a different tab. |