Bug 292472 - big problem with animated brush
Summary: big problem with animated brush
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-26 15:30 UTC by Philippe Nicloux
Modified: 2012-01-27 09:46 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philippe Nicloux 2012-01-26 15:30:52 UTC
Application: krita (2.4 Beta 6)
KDE Platform Version: 4.6.5 (4.6.5) (Compiled from sources)
Qt Version: 4.7.2
Operating System: Linux 2.6.38-13-generic x86_64
Distribution: Linux Mint 11 Katya

-- Information about the crash:
- What I was doing when the application crashed:I was in the edit brush mode, in the custom brush window, and I change "regular" to "animated".

The crash can be reproduced every time.

-- Backtrace:
Application: Krita (krita), signal: Segmentation fault
[Current thread is 1 (Thread 0x7ffad96d87a0 (LWP 3764))]

Thread 7 (Thread 0x7ffac97b3700 (LWP 3765)):
#0  0x00007ffad11a83c4 in pthread_mutex_lock () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007ffad06c8669 in g_main_context_acquire () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffad06c9f21 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffad06ca9f2 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffaca112c44 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#5  0x00007ffad06f13e4 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007ffad11a5d8c in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#7  0x00007ffad14a304d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#8  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7ffab2e53700 (LWP 3767)):
#0  0x00007ffad11aabac in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007ffad8cfb82b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007ffad8cf8235 in QSemaphore::acquire(int) () from /usr/lib/libQtCore.so.4
#3  0x00007ffad83510be in KisTileDataPooler::waitForWork (this=0x1370970) at /home/filou/source-to-compile/calligra/calligra-src/krita/image/tiles3/kis_tile_data_pooler.cc:162
#4  0x00007ffad83517a4 in KisTileDataPooler::run (this=0x1370970) at /home/filou/source-to-compile/calligra/calligra-src/krita/image/tiles3/kis_tile_data_pooler.cc:184
#5  0x00007ffad8cfb175 in ?? () from /usr/lib/libQtCore.so.4
#6  0x00007ffad11a5d8c in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#7  0x00007ffad14a304d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#8  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7ffab2652700 (LWP 3768)):
#0  0x00007ffad11aabac in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007ffad8cfb82b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007ffad8cf8469 in QSemaphore::tryAcquire(int, int) () from /usr/lib/libQtCore.so.4
#3  0x00007ffad83727da in KisTileDataSwapper::run (this=0x13709a8) at /home/filou/source-to-compile/calligra/calligra-src/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:92
#4  0x00007ffad8cfb175 in ?? () from /usr/lib/libQtCore.so.4
#5  0x00007ffad11a5d8c in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#6  0x00007ffad14a304d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7ffab15e2700 (LWP 3773)):
#0  0xffffffffff60017b in ?? ()
#1  0x00007ffab15e1bd0 in ?? ()
#2  0x00007fffed7ad7b2 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 3 (Thread 0x7ffaabb6f700 (LWP 3784)):
#0  0x00007ffad11aabac in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007ffad8cfb82b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007ffad2f457d4 in ?? () from /usr/lib/libQtGui.so.4
#3  0x00007ffad8cfb175 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007ffad11a5d8c in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#5  0x00007ffad14a304d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7ffaaab6d700 (LWP 3785)):
#0  0xffffffffff60017b in ?? ()
#1  0x00007ffaaab6cad0 in ?? ()
#2  0x00007fffed7ad7b2 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0x7ffad96d87a0 (LWP 3764)):
[KCrash Handler]
#6  0x00007ffab37b8d8d in KisImagePipeBrush::KisImagePipeBrush (this=0x54f1240, name=<value optimized out>, w=2480, h=3508, devices=..., modes=<value optimized out>) at /home/filou/source-to-compile/calligra/calligra-src/krita/plugins/paintops/libbrush/kis_imagepipe_brush.cpp:71
#7  0x00007ffab3a273ed in KisCustomBrushWidget::createBrush (this=0x4ee9b30) at /home/filou/source-to-compile/calligra/calligra-src/krita/plugins/paintops/libpaintop/kis_custom_brush_widget.cpp:248
#8  0x00007ffab3a2911c in KisCustomBrushWidget::slotUpdateCurrentBrush (this=0x4ee9b30) at /home/filou/source-to-compile/calligra/calligra-src/krita/plugins/paintops/libpaintop/kis_custom_brush_widget.cpp:98
#9  0x00007ffab3a293cb in KisCustomBrushWidget::qt_metacall (this=0x4ee9b30, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffed6df240) at /home/filou/source-to-compile/calligra/calligra-build/krita/plugins/paintops/libpaintop/kis_custom_brush_widget.moc:136
#10 0x00007ffad8df75f8 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#11 0x00007ffad2e26721 in QComboBox::activated(int) () from /usr/lib/libQtGui.so.4
#12 0x00007ffad2e267a2 in ?? () from /usr/lib/libQtGui.so.4
#13 0x00007ffad2e27737 in ?? () from /usr/lib/libQtGui.so.4
#14 0x00007ffad2e2abc7 in QComboBox::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtGui.so.4
#15 0x00007ffad8df75f8 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#16 0x00007ffad30c4952 in ?? () from /usr/lib/libQtGui.so.4
#17 0x00007ffad2e21e81 in ?? () from /usr/lib/libQtGui.so.4
#18 0x00007ffad8de2627 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#19 0x00007ffad2a4b9c1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#20 0x00007ffad2a50dc3 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#21 0x00007ffad376f6c6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#22 0x00007ffad8de249c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#23 0x00007ffad2a4ca1d in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#24 0x00007ffad2ace3e4 in ?? () from /usr/lib/libQtGui.so.4
#25 0x00007ffad2accab7 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#26 0x00007ffad2af6224 in ?? () from /usr/lib/libQtGui.so.4
#27 0x00007ffad8de1882 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#28 0x00007ffad8de1abc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#29 0x00007ffad8de5ecb in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#30 0x00007ffad91ed34d in kdemain (argc=<value optimized out>, argv=<value optimized out>) at /home/filou/source-to-compile/calligra/calligra-src/krita/main.cc:71
#31 0x00007ffad13dbeff in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#32 0x0000000000400899 in _start ()

Reported using DrKonqi
Comment 1 LukasT 2012-01-27 07:53:21 UTC
Hi Philippe, thank you for the report!
I reproduced the crash and I confirm the bug.
Comment 2 LukasT 2012-01-27 09:46:37 UTC
Git commit e0fac440564b2794aa2794965c5d6f3a28531339 by Lukáš Tvrdý.
Committed on 27/01/2012 at 10:41.
Pushed by lukast into branch 'master'.

Fix crash for animated image pipe brushes

Global selection was made to be a mask.
The code expected that the first child
was a layer, but it was a mask.

Thanks to Dmitry with help regarding the
iteration over layers.

M  +11   -6    krita/plugins/paintops/libpaintop/kis_custom_brush_widget.cpp

http://commits.kde.org/calligra/e0fac440564b2794aa2794965c5d6f3a28531339