Bug 407520 - Assert when the g'mic plugin tries to return the image
Summary: Assert when the g'mic plugin tries to return the image
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: G'Mic for Krita (show other bugs)
Version: git master (please specify the git hash!)
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords: regression, release_blocker
Depends on:
Blocks:
 
Reported: 2019-05-14 10:51 UTC by Halla Rempt
Modified: 2019-05-17 08:13 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 Halla Rempt 2019-05-14 10:51:57 UTC
I tried one of the B&W filters, but it doesn't seem to matter.

Thread 1 (Thread 0x7f6b0d368840 (LWP 6224)):
[KCrash Handler]
#6  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#7  0x00007f6b07d62801 in __GI_abort () at abort.c:79
#8  0x00007f6b08737e7b in QMessageLogger::fatal(char const*, ...) const () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007f6b08737671 in qt_assert(char const*, char const*, int) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007f6b0a9520a7 in KisStroke::endStroke (this=this@entry=0x560726080fa0) at /home/boud/dev/krita/libs/image/kis_stroke.cpp:144
#11 0x00007f6b0a952f91 in KisStrokesQueue::endStroke (this=0x56072417b440, id=...) at /home/boud/dev/krita/libs/image/kis_strokes_queue.cpp:358
#12 0x00007f6b0a962570 in KisUpdateScheduler::endStroke (this=0x560723dba570, id=...) at /home/boud/dev/krita/libs/image/kis_update_scheduler.cpp:223
#13 0x00007f6b0a98ca00 in KisImage::endStroke (this=<optimized out>, id=...) at /home/boud/dev/krita/libs/image/kis_image.cc:1508
#14 0x00007f6b0aaacea6 in KisProcessingApplicator::end (this=<optimized out>) at /home/boud/dev/krita/libs/image/kis_processing_applicator.cpp:330
#15 0x00007f6abda6671c in KisQmicApplicator::finish (this=0x560722e44ad0) at /home/boud/dev/krita/plugins/extensions/qmic/kis_qmic_applicator.cpp:118
#16 0x00007f6abda5df6d in QMic::slotStartApplicator (this=this@entry=0x560722e24110, gmicImages=...) at /home/boud/dev/krita/plugins/extensions/qmic/QMic.cpp:388
#17 0x00007f6abda60918 in QMic::connected (this=0x560722e24110) at /home/boud/dev/krita/plugins/extensions/qmic/QMic.cpp:252
#18 0x00007f6abda816bd in QMic::qt_static_metacall (_o=0x560722e24110, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /home/boud/dev/b-krita/plugins/extensions/qmic/kritaqmic_autogen/EWIEGA46WW/moc_QMic.cpp:113
#19 0x00007f6b08963e25 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007f6b02f31956 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Network.so.5
#21 0x00007f6b08963e25 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007f6b08970678 in QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007f6b08970a32 in QSocketNotifier::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007f6b0972a8ac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007f6b09731e40 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007f6b0c033537 in KisApplication::notify (this=<optimized out>, receiver=0x56072c09aac0, event=0x7ffe0b9585b0) at /home/boud/dev/krita/libs/ui/KisApplication.cpp:639
#27 0x00007f6b08934328 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007f6b08991da8 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007f6b00006417 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007f6b00006650 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007f6b000066dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007f6b0899113f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x00007f6b0893264a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007f6b0893b800 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#35 0x0000560715de9751 in main (argc=<optimized out>, argv=0x7ffe0b958ae8) at /home/boud/dev/krita/krita/main.cc:546
Comment 1 Dmitry Kazakov 2019-05-16 12:43:11 UTC
I can reproduce
Comment 2 Dmitry Kazakov 2019-05-16 12:51:16 UTC
Git commit 57686d84d4ee5d37e482274d57159599bb501dce by Dmitry Kazakov.
Committed on 16/05/2019 at 12:50.
Pushed by dkazakov into branch 'master'.

Fix logic of the stroke lifetime in QMic

We shouldn't try to end the same stroke multiple times. The patch
also makes sure KisProcessingApplicator is owned by a scoped pointer
instead of manual handling.

M  +1    -1    libs/image/kis_stroke.cpp
M  +0    -1    plugins/extensions/qmic/QMic.cpp
M  +10   -19   plugins/extensions/qmic/kis_qmic_applicator.cpp
M  +2    -2    plugins/extensions/qmic/kis_qmic_applicator.h

https://invent.kde.org/kde/krita/commit/57686d84d4ee5d37e482274d57159599bb501dce
Comment 3 Halla Rempt 2019-05-17 08:13:00 UTC
Git commit 23e4782ab8dd771ed281aa1cb933093f604ceeef by Boudewijn Rempt, on behalf of Dmitry Kazakov.
Committed on 17/05/2019 at 08:12.
Pushed by rempt into branch 'krita/4.2'.

Fix logic of the stroke lifetime in QMic

We shouldn't try to end the same stroke multiple times. The patch
also makes sure KisProcessingApplicator is owned by a scoped pointer
instead of manual handling.

M  +1    -1    libs/image/kis_stroke.cpp
M  +0    -1    plugins/extensions/qmic/QMic.cpp
M  +10   -19   plugins/extensions/qmic/kis_qmic_applicator.cpp
M  +2    -2    plugins/extensions/qmic/kis_qmic_applicator.h

https://invent.kde.org/kde/krita/commit/23e4782ab8dd771ed281aa1cb933093f604ceeef