Bug 330772 - Crash after clicking on gradient editing button
Summary: Crash after clicking on gradient editing button
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: 2.9 Beta
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2014-02-04 20:50 UTC by Aurélien Léger
Modified: 2014-02-15 09:39 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 Aurélien Léger 2014-02-04 20:50:09 UTC
Application: krita (2.9 Pre-Alpha)
KDE Platform Version: 4.11.3
Qt Version: 4.8.4
Operating System: Linux 3.11.0-15-generic x86_64
Distribution: Ubuntu 13.10

-- Information about the crash:
Draw some lines, use CTRL+Z multiple times then click on gradient editing button - by mistake - and crash appear!

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

Thread 7 (Thread 0x7f8dcf537700 (LWP 14246)):
#0  0x00007f8de9e98f7d in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f8de0e8d6a4 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f8de0e8db0a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f8dd6f8fb66 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007f8de0eb20f5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f8de1365f6e in start_thread (arg=0x7f8dcf537700) at pthread_create.c:311
#6  0x00007f8de9ea59cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 6 (Thread 0x7f8dce44f700 (LWP 14247)):
#0  __GI___pthread_mutex_lock (mutex=0xd3b0b0) at pthread_mutex_lock.c:128
#1  0x00007f8de0ecd3a1 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f8de0e8d68a in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f8de0e8d7ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f8de0e8d7f9 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f8de0eb20f5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007f8de1365f6e in start_thread (arg=0x7f8dce44f700) at pthread_create.c:311
#7  0x00007f8de9ea59cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 5 (Thread 0x7f8dcd44d700 (LWP 14321)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f8de76ce406 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f8de76ca5eb in QSemaphore::acquire(int) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#3  0x00007f8de61af25c in waitForWork (this=0x12c0970) at /build/buildd/krita-testing-2+git20140131+r74947-46/krita/image/tiles3/kis_tile_data_pooler.cc:162
#4  KisTileDataPooler::run (this=0x12c0970) at /build/buildd/krita-testing-2+git20140131+r74947-46/krita/image/tiles3/kis_tile_data_pooler.cc:184
#5  0x00007f8de76cdf2f in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f8de1365f6e in start_thread (arg=0x7f8dcd44d700) at pthread_create.c:311
#7  0x00007f8de9ea59cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 4 (Thread 0x7f8db1ed1700 (LWP 14322)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f8de76ce406 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f8de76ca9f3 in QSemaphore::tryAcquire(int, int) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#3  0x00007f8de61dc973 in KisTileDataSwapper::waitForWork (this=<optimized out>) at /build/buildd/krita-testing-2+git20140131+r74947-46/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:86
#4  0x00007f8de61dcb9a in KisTileDataSwapper::run (this=0x12c09a8) at /build/buildd/krita-testing-2+git20140131+r74947-46/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:92
#5  0x00007f8de76cdf2f in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f8de1365f6e in start_thread (arg=0x7f8db1ed1700) at pthread_create.c:311
#7  0x00007f8de9ea59cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 3 (Thread 0x7f8d99ee7700 (LWP 14420)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f8de76ce406 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f8de869b086 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#3  0x00007f8de76cdf2f in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f8de1365f6e in start_thread (arg=0x7f8d99ee7700) at pthread_create.c:311
#5  0x00007f8de9ea59cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 2 (Thread 0x7f8d98fdc700 (LWP 14421)):
#0  0x00007f8de9e98f7d in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f8de0e8d6a4 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f8de0e8d7ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f8de77faa76 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f8de77cc5ef in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007f8de77cc8e5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f8de76cb88f in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f8de77add13 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f8de76cdf2f in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007f8de1365f6e in start_thread (arg=0x7f8d98fdc700) at pthread_create.c:311
#10 0x00007f8de9ea59cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 1 (Thread 0x7f8dea59d7c0 (LWP 14243)):
[KCrash Handler]
#5  0x00007f8de82cdd59 in QGradient::stops() const () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#6  0x00007f8db6850806 in KarbonGradientEditWidget::setGradient (this=this@entry=0x189ffb0, gradient=...) at /build/buildd/krita-testing-2+git20140131+r74947-46/karbon/ui/widgets/KarbonGradientEditWidget.cpp:289
#7  0x00007f8db6caf40b in KarbonGradientTool::createOptionWidgets (this=0x29bd940) at /build/buildd/krita-testing-2+git20140131+r74947-46/karbon/plugins/tools/KarbonGradientTool.cpp:492
#8  0x00007f8de47f170c in KoToolBase::optionWidgets (this=<optimized out>) at /build/buildd/krita-testing-2+git20140131+r74947-46/libs/flake/KoToolBase.cpp:174
#9  0x00007f8de480a932 in KoToolManager::Private::postSwitchTool (this=this@entry=0x196b040, temporary=temporary@entry=false) at /build/buildd/krita-testing-2+git20140131+r74947-46/libs/flake/KoToolManager.cpp:338
#10 0x00007f8de480b63b in KoToolManager::Private::switchTool (this=0x196b040, tool=0x29bd940, temporary=<optimized out>) at /build/buildd/krita-testing-2+git20140131+r74947-46/libs/flake/KoToolManager.cpp:262
#11 0x00007f8de480c548 in KoToolManager::Private::toolActivated (this=0x196b040, tool=0x242c9d0) at /build/buildd/krita-testing-2+git20140131+r74947-46/libs/flake/KoToolManager.cpp:431
#12 0x00007f8de4810c01 in KoToolManager::qt_static_metacall (_o=0x1542850, _c=<optimized out>, _id=<optimized out>, _a=0x7fff259e1f70) at /build/buildd/krita-testing-2+git20140131+r74947-46/obj-x86_64-linux-gnu/libs/flake/KoToolManager.moc:99
#13 0x00007f8de77e1a58 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#14 0x00007f8de4806ee3 in toolActivated (_t1=0x242c9d0, this=<optimized out>) at /build/buildd/krita-testing-2+git20140131+r74947-46/obj-x86_64-linux-gnu/libs/flake/KoToolManager_p.moc:103
#15 buttonPressed (this=<optimized out>) at /build/buildd/krita-testing-2+git20140131+r74947-46/libs/flake/KoToolManager_p.cpp:48
#16 ToolHelper::qt_static_metacall (_o=0x242c9d0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fff259e20b0) at /build/buildd/krita-testing-2+git20140131+r74947-46/obj-x86_64-linux-gnu/libs/flake/KoToolManager_p.moc:54
#17 0x00007f8de77e1a58 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#18 0x00007f8de880c732 in QAbstractButton::clicked(bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#19 0x00007f8de856ff73 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#20 0x00007f8de85710e3 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#21 0x00007f8de85711cc in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#22 0x00007f8de8627d9a in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#23 0x00007f8de820e31e in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#24 0x00007f8de81bedfc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#25 0x00007f8de81c55ad in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#26 0x00007f8de9350d07 in KoApplication::notify (this=<optimized out>, receiver=0x2d72d20, event=0x7fff259e25c0) at /build/buildd/krita-testing-2+git20140131+r74947-46/libs/main/KoApplication.cpp:604
#27 0x00007f8de77cd8bd in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#28 0x00007f8de81c4d63 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#29 0x00007f8de82397db in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#30 0x00007f8de8239079 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#31 0x00007f8de8260922 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#32 0x00007f8de0e8d3b6 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007f8de0e8d708 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#34 0x00007f8de0e8d7ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007f8de77faa55 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#36 0x00007f8de82609d6 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#37 0x00007f8de77cc5ef in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#38 0x00007f8de77cc8e5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#39 0x00007f8de77d1e5b in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#40 0x00007f8dea17b65c in kdemain (argc=<optimized out>, argv=<optimized out>) at /build/buildd/krita-testing-2+git20140131+r74947-46/krita/main.cc:101
#41 0x00007f8de9dccde5 in __libc_start_main (main=0x4006e0 <main(int, char**)>, argc=1, ubp_av=0x7fff259e2f78, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff259e2f68) at libc-start.c:260
#42 0x000000000040070e in _start ()

Reported using DrKonqi
Comment 1 Halla Rempt 2014-02-06 15:09:37 UTC
Hi Enyriel,

Thanks for your report. I cannot reproduce, though -- and the backtrace shows something really weird is going on...
Comment 2 Aurélien Léger 2014-02-06 15:37:09 UTC
Thanks for your anwser.

I'm not sure how this append and maybe my processor and/or memory was a bit "fully" when the crash appear.

I will try to make the crash again to see if I can reproduce it.
Comment 3 Halla Rempt 2014-02-06 15:40:02 UTC
Thanks for the effort!
Comment 4 Halla Rempt 2014-02-15 09:38:46 UTC
Git commit 5591d0e828a21f21e81a20d5917e33f14fe421a2 by Boudewijn Rempt.
Committed on 15/02/2014 at 09:37.
Pushed by rempt into branch 'calligra/2.8'.

if m_gradient is 0, we shouldn't pass *m_gradient as a const QGradient&
parameter.

The mixing of pointers and references when using QGradients in flake
and karbon is something that needs a thorough overhault, though.

M  +8    -2    karbon/plugins/tools/KarbonGradientTool.cpp

http://commits.kde.org/calligra/5591d0e828a21f21e81a20d5917e33f14fe421a2
Comment 5 Halla Rempt 2014-02-15 09:39:14 UTC
Git commit 88c662766967eab7bceffdb8e1300f2c0dcd935d by Boudewijn Rempt.
Committed on 15/02/2014 at 09:37.
Pushed by rempt into branch 'master'.

if m_gradient is 0, we shouldn't pass *m_gradient as a const QGradient&
parameter.

The mixing of pointers and references when using QGradients in flake
and karbon is something that needs a thorough overhault, though.

M  +8    -2    karbon/plugins/tools/KarbonGradientTool.cpp

http://commits.kde.org/calligra/88c662766967eab7bceffdb8e1300f2c0dcd935d