https://bugs.kde.org/show_bug.cgi?id=435500

Igor Kushnir <igor...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|FIXED                       |---
            Version|21.03.80                    |5.80.0
             Status|RESOLVED                    |REOPENED
          Component|general                     |general
                 CC|                            |igor...@gmail.com
            Product|kate                        |frameworks-ktexteditor

--- Comment #4 from Igor Kushnir <igor...@gmail.com> ---
Got the same crash in KDevelop. 100%-reproducible when I drag a specific
half-line of code in one of my C++ projects. Qt 5.15.2, ktexteditor 5.80.0-1,
X11, Manjaro stable. After I applied the fix as a patch, the crash is still
100% reproducible in the same way, but the backtrace is different.

Without the patch:
-- Backtrace:
Application: KDevelop (kdevelop), signal: Segmentation fault

[KCrash Handler]
#4  KateLineLayout::viewLineCount() const (this=0x0) at
/home/Mint14_home/igor/Install/abs/ktexteditor/src/ktexteditor-5.80.0/src/render/katelinelayout.cpp:165
#5  0x00007f9efa8d7896 in KateLayoutCache::viewLine(KTextEditor::Cursor const&)
(this=this@entry=0x56406b36cef0, realCursor=...) at
/usr/include/qt/QtCore/qshareddata.h:160
#6  0x00007f9efa8d7937 in KateLayoutCache::textLayout(KTextEditor::Cursor
const&) (this=0x56406b36cef0, realCursor=...) at
/home/Mint14_home/igor/Install/abs/ktexteditor/src/ktexteditor-5.80.0/src/render/katelayoutcache.cpp:328
#7  0x00007f9efa9318db in KateViewInternal::doDrag() (this=0x564068599b50) at
/home/Mint14_home/igor/Install/abs/ktexteditor/src/ktexteditor-5.80.0/src/view/kateviewinternal.cpp:3522
#8  0x00007f9efd1beb0e in QWidget::event(QEvent*) (this=0x564068599b50,
event=0x7ffda979f6f0) at kernel/qwidget.cpp:9019
#9  0x00007f9efd17d752 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=this@entry=0x564068597c40, receiver=receiver@entry=0x564068599b50,
e=e@entry=0x7ffda979f6f0) at kernel/qapplication.cpp:3632
#10 0x00007f9efd18487b in QApplication::notify(QObject*, QEvent*)
(this=0x7ffda979f3f0, receiver=0x564068599b50, e=0x7ffda979f6f0) at
kernel/qapplication.cpp:3076
#11 0x00007f9efc4dcafa in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x564068599b50, event=0x7ffda979f6f0) at
kernel/qcoreapplication.cpp:1063
#12 0x00007f9efd18387e in QApplicationPrivate::sendMouseEvent(QWidget*,
QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool)
(receiver=receiver@entry=0x564068599b50, event=event@entry=0x7ffda979f6f0,
alienWidget=alienWidget@entry=0x564068599b50, nativeWidget=0x564068d79b60,
buttonDown=buttonDown@entry=0x7f9efd6b6350 <qt_button_down>,
lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at
kernel/qapplication.cpp:2614
#13 0x00007f9efd1d7249 in QWidgetWindow::handleMouseEvent(QMouseEvent*)
(this=0x564069514c90, event=0x7ffda979f9b0) at kernel/qwidgetwindow.cpp:683
#14 0x00007f9efd1da63f in QWidgetWindow::event(QEvent*) (this=0x564069514c90,
event=0x7ffda979f9b0) at kernel/qwidgetwindow.cpp:300
#15 0x00007f9efd17d752 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=<optimized out>, receiver=0x564069514c90, e=0x7ffda979f9b0) at
kernel/qapplication.cpp:3632
#16 0x00007f9efc4dcafa in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x564069514c90, event=0x7ffda979f9b0) at
kernel/qcoreapplication.cpp:1063
#17 0x00007f9efc9a4594 in
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
(e=0x56406cc2d490) at kernel/qguiapplication.cpp:2282
#18 0x00007f9efc979bb5 in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#19 0x00007f9ee833216c in xcbSourceDispatch(GSource*, GSourceFunc, gpointer)
(source=<optimized out>) at qxcbeventdispatcher.cpp:105
#20 0x00007f9ef706cf9c in g_main_context_dispatch () at
/usr/lib/libglib-2.0.so.0
#21 0x00007f9ef70c0a49 in  () at /usr/lib/libglib-2.0.so.0
#22 0x00007f9ef706a6f1 in g_main_context_iteration () at
/usr/lib/libglib-2.0.so.0
#23 0x00007f9efc535761 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x56406865bac0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#24 0x00007f9efc4db47c in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7ffda979fce0, flags=..., flags@entry=...) at
../../include/QtCore/../../src/corelib/global/qflags.h:69
#25 0x00007f9efc4e3914 in QCoreApplication::exec() () at
../../include/QtCore/../../src/corelib/global/qflags.h:121
#26 0x00007f9efc99784e in QGuiApplication::exec() () at
kernel/qguiapplication.cpp:1867
#27 0x00007f9efd17d6c6 in QApplication::exec() () at
kernel/qapplication.cpp:2824
#28 0x000056406793d3bf in main(int, char**) (argc=<optimized out>,
argv=0x7ffda979fe48) at /usr/src/debug/kdevelop/app/main.cpp:855
[Inferior 1 (process 201082) detached]

With the 4775bd1ffe272a1e3367510ff6d440bf1b8f2a13.patch applied:
-- Backtrace:
Application: KDevelop (kdevelop), signal: Segmentation fault

[KCrash Handler]
#4  std::__atomic_base<int>::operator++() (this=0x0) at
/usr/include/c++/10.2.0/bits/atomic_base.h:325
#5  QAtomicOps<int>::ref<int>(std::atomic<int>&) (_q_value=...) at
/usr/include/qt/QtCore/qatomic_cxx11.h:283
#6  QBasicAtomicInteger<int>::ref() (this=0x0) at
/usr/include/qt/QtCore/qbasicatomic.h:118
#7 
QExplicitlySharedDataPointer<KateLineLayout>::QExplicitlySharedDataPointer(KateLineLayout*)
(adata=0x0, this=0x7ffe6dc83140) at /usr/include/qt/QtCore/qshareddata.h:285
#8  KateLineLayout::viewLine(int) const (this=this@entry=0x0, viewLine=0) at
/home/Mint14_home/igor/Install/abs/ktexteditor/src/ktexteditor-5.80.0/src/render/katelinelayout.cpp:175
#9  0x00007f6904d94965 in KateLayoutCache::textLayout(KTextEditor::Cursor
const&) (this=0x55d01786dc00, realCursor=...) at
/home/Mint14_home/igor/Install/abs/ktexteditor/src/ktexteditor-5.80.0/src/render/katelayoutcache.cpp:328
#10 0x00007f6904dee8a8 in KateViewInternal::doDrag() (this=0x55d016481560) at
/home/Mint14_home/igor/Install/abs/ktexteditor/src/ktexteditor-5.80.0/src/view/kateviewinternal.cpp:3527
#11 0x00007f690767bb0e in QWidget::event(QEvent*) (this=0x55d016481560,
event=0x7ffe6dc83760) at kernel/qwidget.cpp:9019
#12 0x00007f690763a752 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=this@entry=0x55d014a99c40, receiver=receiver@entry=0x55d016481560,
e=e@entry=0x7ffe6dc83760) at kernel/qapplication.cpp:3632
#13 0x00007f690764187b in QApplication::notify(QObject*, QEvent*)
(this=0x7ffe6dc83460, receiver=0x55d016481560, e=0x7ffe6dc83760) at
kernel/qapplication.cpp:3076
#14 0x00007f6906999afa in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x55d016481560, event=0x7ffe6dc83760) at
kernel/qcoreapplication.cpp:1063
#15 0x00007f690764087e in QApplicationPrivate::sendMouseEvent(QWidget*,
QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool)
(receiver=receiver@entry=0x55d016481560, event=event@entry=0x7ffe6dc83760,
alienWidget=alienWidget@entry=0x55d016481560, nativeWidget=0x55d01527a930,
buttonDown=buttonDown@entry=0x7f6907b73350 <qt_button_down>,
lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at
kernel/qapplication.cpp:2614
#16 0x00007f6907694249 in QWidgetWindow::handleMouseEvent(QMouseEvent*)
(this=0x55d015a182c0, event=0x7ffe6dc83a20) at kernel/qwidgetwindow.cpp:683
#17 0x00007f690769763f in QWidgetWindow::event(QEvent*) (this=0x55d015a182c0,
event=0x7ffe6dc83a20) at kernel/qwidgetwindow.cpp:300
#18 0x00007f690763a752 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=<optimized out>, receiver=0x55d015a182c0, e=0x7ffe6dc83a20) at
kernel/qapplication.cpp:3632
#19 0x00007f6906999afa in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x55d015a182c0, event=0x7ffe6dc83a20) at
kernel/qcoreapplication.cpp:1063
#20 0x00007f6906e61594 in
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
(e=0x55d019dad9c0) at kernel/qguiapplication.cpp:2282
#21 0x00007f6906e36bb5 in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#22 0x00007f68f27ef16c in xcbSourceDispatch(GSource*, GSourceFunc, gpointer)
(source=<optimized out>) at qxcbeventdispatcher.cpp:105
#23 0x00007f6901529f9c in g_main_context_dispatch () at
/usr/lib/libglib-2.0.so.0
#24 0x00007f690157da49 in  () at /usr/lib/libglib-2.0.so.0
#25 0x00007f69015276f1 in g_main_context_iteration () at
/usr/lib/libglib-2.0.so.0
#26 0x00007f69069f2761 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x55d014b9a230, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#27 0x00007f690699847c in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7ffe6dc83d50, flags=..., flags@entry=...) at
../../include/QtCore/../../src/corelib/global/qflags.h:69
#28 0x00007f69069a0914 in QCoreApplication::exec() () at
../../include/QtCore/../../src/corelib/global/qflags.h:121
#29 0x00007f6906e5484e in QGuiApplication::exec() () at
kernel/qguiapplication.cpp:1867
#30 0x00007f690763a6c6 in QApplication::exec() () at
kernel/qapplication.cpp:2824
#31 0x000055d0145e63bf in main(int, char**) (argc=<optimized out>,
argv=0x7ffe6dc83eb8) at /usr/src/debug/kdevelop/app/main.cpp:855
[Inferior 1 (process 207004) detached]

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to