Bug 427121 - kdiff3 crashes with segfault on enabling word wrap on big files
Summary: kdiff3 crashes with segfault on enabling word wrap on big files
Status: RESOLVED WORKSFORME
Alias: None
Product: kdiff3
Classification: Applications
Component: application (show other bugs)
Version: 1.8.4
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: michael
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-09-29 16:42 UTC by Andrew
Modified: 2022-11-11 05:21 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew 2020-09-29 16:42:57 UTC
The crash can be reproduced every time.
How to reproduce:
- have big (~11 MBytes) saved Facebook feed html file (also has very long lines)
- make copy of the previous file with small change
- call "kdiff3 a.html b.html"
- toggle "Diffview" -> "Word Wrap Diff Windows"
- observe segfault


Application: kdiff3 (1.8.4 (64-bit))
Qt Version: 5.14.2
Frameworks Version: 5.70.0
Operating System: Linux 5.8.11-200.fc32.x86_64 x86_64
Windowing system: X11
Distribution: "Fedora release 32 (Thirty Two)"


-- Backtrace:
Application: KDiff3 (kdiff3), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fa62ad34900 (LWP 12484))]

Thread 10 (Thread 0x7fa5ec245700 (LWP 12496)):
#0  0x00007fa62dda11b8 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fa62eadbd0a in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /lib64/libQt5Core.so.5
#2  0x00007fa62eadbe0b in QWaitCondition::wait(QMutex*, unsigned long) () from /lib64/libQt5Core.so.5
#3  0x00007fa62ead9f45 in QThreadPoolThread::run() () from /lib64/libQt5Core.so.5
#4  0x00007fa62ead6690 in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5
#5  0x00007fa62dd9a432 in start_thread () from /lib64/libpthread.so.0
#6  0x00007fa62e611913 in clone () from /lib64/libc.so.6

Thread 9 (Thread 0x7fa5f0071700 (LWP 12495)):
#0  0x00007fa62dda11b8 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fa62eadbd0a in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /lib64/libQt5Core.so.5
#2  0x00007fa62eadbe0b in QWaitCondition::wait(QMutex*, unsigned long) () from /lib64/libQt5Core.so.5
#3  0x00007fa62ead9f45 in QThreadPoolThread::run() () from /lib64/libQt5Core.so.5
#4  0x00007fa62ead6690 in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5
#5  0x00007fa62dd9a432 in start_thread () from /lib64/libpthread.so.0
#6  0x00007fa62e611913 in clone () from /lib64/libc.so.6

Thread 8 (Thread 0x7fa609a7b700 (LWP 12491)):
#0  0x00007fa62dda0e92 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fa61567389b in util_queue_thread_func () from /usr/lib64/dri/r600_dri.so
#2  0x00007fa61567336b in impl_thrd_routine () from /usr/lib64/dri/r600_dri.so
#3  0x00007fa62dd9a432 in start_thread () from /lib64/libpthread.so.0
#4  0x00007fa62e611913 in clone () from /lib64/libc.so.6

Thread 7 (Thread 0x7fa60a27c700 (LWP 12490)):
#0  0x00007fa62dda0e92 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fa61567389b in util_queue_thread_func () from /usr/lib64/dri/r600_dri.so
#2  0x00007fa61567336b in impl_thrd_routine () from /usr/lib64/dri/r600_dri.so
#3  0x00007fa62dd9a432 in start_thread () from /lib64/libpthread.so.0
#4  0x00007fa62e611913 in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7fa60aa7d700 (LWP 12489)):
#0  0x00007fa62dda0e92 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fa61567389b in util_queue_thread_func () from /usr/lib64/dri/r600_dri.so
#2  0x00007fa61567336b in impl_thrd_routine () from /usr/lib64/dri/r600_dri.so
#3  0x00007fa62dd9a432 in start_thread () from /lib64/libpthread.so.0
#4  0x00007fa62e611913 in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7fa60b27e700 (LWP 12488)):
#0  0x00007fa62dda0e92 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fa61567389b in util_queue_thread_func () from /usr/lib64/dri/r600_dri.so
#2  0x00007fa61567336b in impl_thrd_routine () from /usr/lib64/dri/r600_dri.so
#3  0x00007fa62dd9a432 in start_thread () from /lib64/libpthread.so.0
#4  0x00007fa62e611913 in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7fa6150dd700 (LWP 12487)):
#0  0x00007fa62dda0e92 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fa61567389b in util_queue_thread_func () from /usr/lib64/dri/r600_dri.so
#2  0x00007fa61567336b in impl_thrd_routine () from /usr/lib64/dri/r600_dri.so
#3  0x00007fa62dd9a432 in start_thread () from /lib64/libpthread.so.0
#4  0x00007fa62e611913 in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7fa617fff700 (LWP 12486)):
#0  0x00007fa62e606aaf in poll () from /lib64/libc.so.6
#1  0x00007fa62d2d7aae in g_main_context_iterate.constprop () from /lib64/libglib-2.0.so.0
#2  0x00007fa62d2d7be3 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x00007fa62ecb6b8b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#4  0x00007fa62ec6991b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#5  0x00007fa62ead5427 in QThread::exec() () from /lib64/libQt5Core.so.5
#6  0x00007fa62e08c51b in QDBusConnectionManager::run() () from /lib64/libQt5DBus.so.5
#7  0x00007fa62ead6690 in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5
#8  0x00007fa62dd9a432 in start_thread () from /lib64/libpthread.so.0
#9  0x00007fa62e611913 in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7fa61da63700 (LWP 12485)):
#0  0x00007fa62e606aaf in poll () from /lib64/libc.so.6
#1  0x00007fa62ce2a38a in _xcb_conn_wait () from /lib64/libxcb.so.1
#2  0x00007fa62ce2c71a in xcb_wait_for_event () from /lib64/libxcb.so.1
#3  0x00007fa61dc31c78 in QXcbEventQueue::run() () from /lib64/libQt5XcbQpa.so.5
#4  0x00007fa62ead6690 in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5
#5  0x00007fa62dd9a432 in start_thread () from /lib64/libpthread.so.0
#6  0x00007fa62e611913 in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7fa62ad34900 (LWP 12484)):
[KCrash Handler]
#4  0x00005624cd5523c9 in DiffTextWindow::convertDiff3LineIdxToLine(int) ()
#5  0x00005624cd5478f0 in KDiff3App::slotFinishRecalcWordWrap(int) ()
#6  0x00007fa62ec92b5e in QObject::event(QEvent*) () from /lib64/libQt5Core.so.5
#7  0x00007fa62f6f03b2 in QFrame::event(QEvent*) () from /lib64/libQt5Widgets.so.5
#8  0x00007fa62f606063 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5
#9  0x00007fa62ec6afc0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt5Core.so.5
#10 0x00007fa62ec6dc47 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib64/libQt5Core.so.5
#11 0x00007fa62ecb70a7 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /lib64/libQt5Core.so.5
#12 0x00007fa62d2d778f in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#13 0x00007fa62d2d7b18 in g_main_context_iterate.constprop () from /lib64/libglib-2.0.so.0
#14 0x00007fa62d2d7be3 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#15 0x00007fa62ecb6be0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#16 0x00005624cd594d1c in ProgressDialog::recalc(bool) ()
#17 0x00007fa62ec92b5e in QObject::event(QEvent*) () from /lib64/libQt5Core.so.5
#18 0x00007fa62f606063 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5
#19 0x00007fa62ec6afc0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt5Core.so.5
#20 0x00007fa62ec6dc47 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib64/libQt5Core.so.5
#21 0x00007fa62ecb70a7 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /lib64/libQt5Core.so.5
#22 0x00007fa62d2d778f in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#23 0x00007fa62d2d7b18 in g_main_context_iterate.constprop () from /lib64/libglib-2.0.so.0
#24 0x00007fa62d2d7be3 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#25 0x00007fa62ecb6b73 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#26 0x00007fa62ec6991b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#27 0x00007fa62ec715a6 in QCoreApplication::exec() () from /lib64/libQt5Core.so.5
#28 0x00005624cd517dbd in main ()
[Inferior 1 (process 12484) detached]
Comment 1 michael 2020-10-08 02:28:32 UTC
Are you able install symbols for kdiff3? This would provide additional information on what is happening here.
Comment 2 Justin Zobel 2022-10-12 03:50:03 UTC
Thank you for reporting this crash in KDE software. As it has been a while since this issue was reported, can we please ask you to see if you can reproduce the crash with a recent software version?

If you can reproduce the issue, please change the status to "CONFIRMED" when replying. Thank you!
Comment 3 Bug Janitor Service 2022-10-27 05:05:02 UTC
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
mark the bug 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!
Comment 4 Bug Janitor Service 2022-11-11 05:21:40 UTC
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!