Bug 308937

Summary: Crash while tweaking HSV value on a huge file
Product: [Applications] krita Reporter: Philippe Nicloux <phil.nicloux>
Component: GeneralAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash CC: dimula73, halla
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Philippe Nicloux 2012-10-24 16:08:37 UTC
Application: krita (2.6 Alpha)
KDE Platform Version: 4.9.2 (Compiled from sources)
Qt Version: 4.8.2
Operating System: Linux 3.2.0-33-generic x86_64
Distribution: Ubuntu 12.04.1 LTS

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

I have just opened a document (4960*3508) and was tweaking the hsv value with the hsv filter. after a few manipulations, ka-boom.

The crash can be reproduced every time.

-- Backtrace:
Application: Krita (kdeinit4), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f70bc6c6780 (LWP 2929))]

Thread 8 (Thread 0x7f7094881700 (LWP 2930)):
#0  0x00007f70b78d3d84 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f70bb20958b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f70bb2053c4 in QSemaphore::acquire(int) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#3  0x00007f709e04bc4e in KisTileDataPooler::waitForWork (this=0x2958700) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/tiles3/kis_tile_data_pooler.cc:162
#4  0x00007f709e04c3a4 in KisTileDataPooler::run (this=0x2958700) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/tiles3/kis_tile_data_pooler.cc:184
#5  0x00007f70bb20907b in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f70b78cfe9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#7  0x00007f70b9ef2cbd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#8  0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f7094080700 (LWP 2931)):
#0  0x00007f70b78d40fe in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f70bb207d48 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f70bb208540 in QThread::msleep(unsigned long) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#3  0x00007f709e0697ba in KisTileDataSwapper::run (this=0x2958738) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:97
#4  0x00007f70bb20907b in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007f70b78cfe9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#6  0x00007f70b9ef2cbd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f7091315700 (LWP 2941)):
#0  0x00007f70b78d3d84 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f70bb20958b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f70bab939a4 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#3  0x00007f70bb20907b in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f70b78cfe9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#5  0x00007f70b9ef2cbd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f709099f700 (LWP 2942)):
#0  0x00007f70b9eec023 in select () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f70bb334846 in qt_safe_select(int, fd_set*, fd_set*, fd_set*, timeval const*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f70bb339c92 in QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timeval*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#3  0x00007f70bb33a183 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f70bb306e42 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007f70bb307097 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f70bb206057 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f70bb2e6b4f in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f70bb20907b in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007f70b78cfe9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#10 0x00007f70b9ef2cbd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f706c8cf700 (LWP 2944)):
#0  0x00007fff477ff8de in ?? ()
#1  0x00007f70b72aa15d in clock_gettime () from /lib/x86_64-linux-gnu/librt.so.1
#2  0x00007f70bb25fc64 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#3  0x00007f70bb33806d in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f70bb3383a3 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007f70bb33a211 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f70bb306e42 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f70bb307097 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f70bb206057 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007f70bb2e6b4f in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#10 0x00007f70bb20907b in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#11 0x00007f70b78cfe9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#12 0x00007f70b9ef2cbd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#13 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f7091b16700 (LWP 2947)):
#0  0x00007f70b9eeeed9 in syscall () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f70bb207b4b in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f70bb20391d in QMutex::lockInternal() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#3  0x00007f709e0d9398 in lockInline (this=0x2f1d0a8) at /usr/include/qt4/QtCore/qmutex.h:190
#4  QMutexLocker (m=0x2f1d0a8, this=0x7f7091b15b50) at /usr/include/qt4/QtCore/qmutex.h:109
#5  KisSimpleUpdateQueue::optimize (this=0x2f1d0a0) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_simple_update_queue.cpp:222
#6  0x00007f70bb31c761 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f70bb31c761 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f709e0478e2 in KisUpdateJobItem::run (this=0x2f1d5f0) at /home/philippe/sources/krita/calligra/calligra-build/krita/image/../../../calligra-src/krita/image/kis_update_job_item.h:65
#9  0x00007f70bb1fc5a2 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#10 0x00007f70bb20907b in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#11 0x00007f70b78cfe9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#12 0x00007f70b9ef2cbd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#13 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f7083e3d700 (LWP 2948)):
[KCrash Handler]
#6  0x00007f709e0c7158 in KisFilterMask::changeRect (this=0x16f98570, rect=..., pos=KisNode::N_FILTHY) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_filter_mask.cpp:165
#7  0x00007f709e0f42a0 in KisLayer::masksChangeRect (this=<optimized out>, masks=..., requestedRect=..., rectVariesFlag=@0x7f7083e3c99f: false) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_layer.cc:349
#8  0x00007f709e0f43aa in KisLayer::changeRect (this=0x2f1e1e0, rect=..., pos=<optimized out>) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_layer.cc:511
#9  0x00007f709e0da3b9 in calculateChecksum (requestedRect=..., node=...) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_base_rects_walker.h:378
#10 checksumValid (this=0xc410d28) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_base_rects_walker.h:131
#11 KisSimpleUpdateQueue::processOneJob (this=0x2f1d0a0, updaterContext=...) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_simple_update_queue.cpp:96
#12 0x00007f709e0dae3b in KisSimpleUpdateQueue::processQueue (this=0x2f1d0a0, updaterContext=...) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_simple_update_queue.cpp:80
#13 0x00007f709e0ddab6 in KisUpdateScheduler::tryProcessUpdatesQueue (this=0x2f1cd80) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_update_scheduler.cpp:313
#14 0x00007f709e0dddd8 in processQueues (this=0x2f1cd80) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_update_scheduler.cpp:274
#15 KisUpdateScheduler::processQueues (this=0x2f1cd80) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_update_scheduler.cpp:251
#16 0x00007f70bb31c761 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#17 0x00007f70bb31c761 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#18 0x00007f709e0478ea in KisUpdateJobItem::run (this=0x2f1d910) at /home/philippe/sources/krita/calligra/calligra-build/krita/image/../../../calligra-src/krita/image/kis_update_job_item.h:66
#19 0x00007f70bb1fc5a2 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#20 0x00007f70bb20907b in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#21 0x00007f70b78cfe9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#22 0x00007f70b9ef2cbd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#23 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f70bc6c6780 (LWP 2929)):
#0  0x00007f70b9eeeed9 in syscall () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f70bb207b4b in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f70bb20391d in QMutex::lockInternal() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#3  0x00007f709e0d9712 in lockInline (this=0x2f1d0a8) at /usr/include/qt4/QtCore/qmutex.h:190
#4  QMutexLocker (m=0x2f1d0a8, this=0x7fff477638f0) at /usr/include/qt4/QtCore/qmutex.h:109
#5  KisSimpleUpdateQueue::tryMergeJob (this=0x2f1d0a0, node=..., rc=..., cropRect=..., type=KisBaseRectsWalker::UPDATE) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_simple_update_queue.cpp:186
#6  0x00007f709e0d984a in KisSimpleUpdateQueue::addJob (this=0x2f1d0a0, node=..., rc=..., cropRect=..., type=KisBaseRectsWalker::UPDATE) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_simple_update_queue.cpp:125
#7  0x00007f709e0da09b in KisSimpleUpdateQueue::trySplitJob (this=0x2f1d0a0, node=..., rc=..., cropRect=..., type=KisBaseRectsWalker::UPDATE) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_simple_update_queue.cpp:176
#8  0x00007f709e0d97fa in KisSimpleUpdateQueue::addJob (this=0x2f1d0a0, node=..., rc=..., cropRect=..., type=KisBaseRectsWalker::UPDATE) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_simple_update_queue.cpp:124
#9  0x00007f709e0da196 in KisSimpleUpdateQueue::addUpdateJob (this=<optimized out>, node=..., rc=..., cropRect=...) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_simple_update_queue.cpp:112
#10 0x00007f709e0de5cb in KisUpdateScheduler::updateProjection (this=0x2f1cd80, node=..., rc=..., cropRect=...) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_update_scheduler.cpp:135
#11 0x00007f709e0e521e in KisImage::requestProjectionUpdate (this=0x2ecb960, node=0x2f1e1e0, rect=...) at /home/philippe/sources/krita/calligra/calligra-src/krita/image/kis_image.cc:1428
#12 0x00007f709e52a1c8 in KisFilterDialog::updatePreview (this=0xcddb790) at /home/philippe/sources/krita/calligra/calligra-src/krita/ui/dialogs/kis_dlg_filter.cpp:118
#13 0x00007f709e52b415 in KisFilterDialog::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /home/philippe/sources/krita/calligra/calligra-build/krita/ui/kis_dlg_filter.moc:62
#14 0x00007f70bb31c761 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#15 0x00007f70bb31c761 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#16 0x00007f70bb31c761 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#17 0x00007f70bb321659 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#18 0x00007f70ba6897b4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#19 0x00007f70ba68e583 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#20 0x00007f70a7427dee in KoApplication::notify (this=<optimized out>, receiver=0x1657d478, event=0x7fff47764710) at /home/philippe/sources/krita/calligra/calligra-src/libs/main/KoApplication.cpp:504
#21 0x00007f70bb30830c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#22 0x00007f70bb3396d2 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#23 0x00007f70bb33a194 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#24 0x00007f70ba732b78 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#25 0x00007f70bb306e42 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#26 0x00007f70bb307097 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#27 0x00007f70bb30c3e7 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#28 0x00007f70a7971b9d in kdemain (argc=<optimized out>, argv=<optimized out>) at /home/philippe/sources/krita/calligra/calligra-src/krita/main.cc:74
#29 0x0000000000408744 in _start ()

Possible duplicates by query: bug 285278.

Reported using DrKonqi
Comment 1 Halla Rempt 2012-10-27 10:09:37 UTC
Hi Philippe,

I wonder what's going on here -- I cannot reproduce it myself, but that might just be because my computer is quite fast. Maybe Dmitry has an idea?
Comment 2 Halla Rempt 2012-10-27 10:12:49 UTC
It's also quite strange, the crash is on the line

filteredRect = filter->changedRect(rect, m_d->filterConfig);

Which suggests that filter is 0, and that can only be caused because the filter cannot be found -- but that's impossible.

Since you compile krita yourself and can reproduce this issue, could you try the following changes:
open calligra/krita/image/kis_filter_mask.cc

And instead of the line above, use these three lines:

        if (filter) {
            filteredRect = filter->changedRect(rect, m_d->filterConfig);
        }

Compile and install, then try to reproduce again.
Comment 3 Dmitry Kazakov 2012-10-27 14:25:18 UTC
It must be a problem of a filter configuration lifetime. I've created a separate bug for it.

*** This bug has been marked as a duplicate of bug 309099 ***