Bug 420568 - Cannot select brush issue (5.0.0-prealpha git 42cc460)
Summary: Cannot select brush issue (5.0.0-prealpha git 42cc460)
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Resource Management (other bugs)
Version First Reported In: nightly build (please specify the git hash!)
Platform: Microsoft Windows Microsoft Windows
: NOR normal
Target Milestone: ---
Assignee: Halla Rempt
URL:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2020-04-25 12:47 UTC by Eliot
Modified: 2021-04-08 09:00 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eliot 2020-04-25 12:47:27 UTC
SUMMARY

Here is a video showing the issue and steps to reproduce:
https://youtu.be/-Yt81DM4VFE


Error thrown (in logs):

SAFE ASSERT (krita): "m_index.isEmpty()" in file C:\Packaging\workspace\Krita_Nightly_Windows_Build\krita\libs\image\tiles3\kis_memento_manager.cc, line 238

STEPS TO REPRODUCE
1. Select brush "pencil-6 quick shade" 
2. Open Brush Engine -> Brush tip
3. Change the brush tip image
4. Try to reset the brush it throws the above error
5  Select another brush and you won't be able to select "pencil-6 quick shade" again

OBSERVED RESULT
Brush cannot be reset and then cannot be selected.

EXPECTED RESULT
Brush should reset to original state and we should be able to use it after that.

SOFTWARE/OS VERSIONS
5.0.0-prealpha (git 42cc460)
Windows 10 (x86_64)
Comment 1 Halla Rempt 2020-05-06 13:57:30 UTC
Yes, things are pretty broken in the master branch right now. And we've got to focus on getting 4.3.0 out of the door, so that will stay for a while.
Comment 2 Tiar 2020-07-28 12:14:11 UTC
Right now it's not even possible to select another brush after changing one.

Note to developers: better reproduce in Brush Presets docker to not get the crash in a floating window.



ASSERT: "preset->valid()" in file /home/tymon/kritadev/krita/libs/ui/kis_canvas_resource_provider.cpp, line 198

Thread 1 "krita" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50	../sysdeps/unix/sysv/linux/raise.c: Nie ma takiego pliku ani katalogu.
(gdb) bt
#0  0x00007ffff3e7ced7 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff3e5e535 in __GI_abort () at abort.c:79
#2  0x00007ffff46468d7 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007ffff4645d59 in qt_assert_x(char const*, char const*, char const*, int) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff6ab9e8d in KisCanvasResourceProvider::setPreviousPaintOpPreset(QSharedPointer<KisPaintOpPreset>) (this=0x555559756170, preset=...) at /home/tymon/kritadev/krita/libs/ui/kis_canvas_resource_provider.cpp:198
#5  0x00007ffff6d9b29c in KisPaintopBox::setCurrentPaintop(QSharedPointer<KisPaintOpPreset>) (this=0x55555adf4f40, preset=...) at /home/tymon/kritadev/krita/libs/ui/kis_paintop_box.cc:618
#6  0x00007ffff6da00e7 in KisPaintopBox::resourceSelected(QSharedPointer<KoResource>) (this=0x55555adf4f40, resource=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:330
#7  0x00007ffff71290ef in KisPaintopBox::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x55555adf4f40, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:330
#8  0x00007ffff48596db in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007ffff711e8d2 in KisPaintOpPresetsChooserPopup::resourceSelected(QSharedPointer<KoResource>) (this=<optimized out>, _t1=...)
    at /home/tymon/kritadev/build/libs/ui/kritaui_autogen/IMAN36LHMA/moc_kis_paintop_presets_chooser_popup.cpp:182
#10 0x00007ffff712643f in KisPaintOpPresetsChooserPopup::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:330
#11 0x00007ffff48596db in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007ffff711ec82 in KisPresetChooser::resourceSelected(QSharedPointer<KoResource>) (this=<optimized out>, _t1=...) at /home/tymon/kritadev/build/libs/ui/kritaui_autogen/IMAN36LHMA/moc_kis_preset_chooser.cpp:180
#13 0x00007ffff7124aa9 in KisPresetChooser::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:330
#14 0x00007ffff48596db in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007ffff2e38cc2 in KisResourceItemChooser::resourceSelected(QSharedPointer<KoResource>) (this=this@entry=0x55555f1f4b20, _t1=...)
    at /home/tymon/kritadev/build/libs/resourcewidgets/kritaresourcewidgets_autogen/EWIEGA46WW/moc_KisResourceItemChooser.cpp:195
#16 0x00007ffff2e2f10a in KisResourceItemChooser::activated(QModelIndex const&) (this=0x55555f1f4b20, index=...) at /usr/include/c++/8/bits/atomic_base.h:295
#17 0x00007ffff2e3a3b9 in KisResourceItemChooser::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /home/tymon/kritadev/build/libs/resourcewidgets/kritaresourcewidgets_autogen/EWIEGA46WW/moc_KisResourceItemChooser.cpp:122
#18 0x00007ffff48596db in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007ffff2e38f45 in KisResourceItemListView::currentResourceChanged(QModelIndex const&) (this=this@entry=0x55555f1f6010, _t1=...)
    at /home/tymon/kritadev/build/libs/resourcewidgets/kritaresourcewidgets_autogen/EWIEGA46WW/moc_KisResourceItemListView.cpp:180
#20 0x00007ffff2e310fd in KisResourceItemListView::selectionChanged(QItemSelection const&, QItemSelection const&) (this=0x55555f1f6010, selected=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:241
#21 0x00007ffff543a991 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff48596db in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007ffff47f1a98 in QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection const&) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007ffff47f75f4 in QItemSelectionModel::emitSelectionChanged(QItemSelection const&, QItemSelection const&) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff47faa93 in QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007ffff54747da in QListView::setSelection(QRect const&, QFlags<QItemSelectionModel::SelectionFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007ffff543d2ab in QAbstractItemView::mousePressEvent(QMouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007ffff522e28f in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007ffff52d0e7e in QFrame::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007ffff544219b in QAbstractItemView::viewportEvent(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007ffff2e3155d in KisResourceItemListView::viewportEvent(QEvent*) (this=0x55555f1f6010, event=0x7fffffffd4a0) at /home/tymon/kritadev/krita/libs/resourcewidgets/KisResourceItemListView.cpp:93
#32 0x00007ffff48301ab in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x00007ffff51ef491 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007ffff51f6d28 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007ffff7015707 in KisApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x55555f1f6090, event=0x7fffffffd4a0) at /home/tymon/kritadev/krita/libs/ui/KisApplication.cpp:736
#36 0x00007ffff4830499 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#37 0x00007ffff51f6029 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007ffff5248304 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007ffff524ae8e in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007ffff51ef4a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007ffff51f6ae0 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007ffff7015707 in KisApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x555559c17070, event=0x7fffffffd920) at /home/tymon/kritadev/krita/libs/ui/KisApplication.cpp:736
#43 0x00007ffff4830499 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#44 0x00007ffff4c3553b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#45 0x00007ffff4c37435 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#46 0x00007ffff4c11b6b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
---Type <return> to continue, or q <return> to quit---
#47 0x00007fffea91be5b in  () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#48 0x00007ffff482f16b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#49 0x00007ffff48372e2 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#50 0x0000555555e28e2f in main (argc=<optimized out>, argv=0x7fffffffdec8) at /home/tymon/kritadev/krita/krita/main.cc:614
#51 0x00007ffff3e5fb6b in __libc_start_main (main=0x555555e27420 <main>, argc=1, argv=0x7fffffffdec8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdeb8) at ../csu/libc-start.c:308
#52 0x0000555555e29cca in _start () at /home/tymon/kritadev/krita/krita/main.cc:488
Comment 3 Halla Rempt 2020-07-28 12:28:15 UTC
I have managed to get yet another assert:

KoResourceSP KisResourceLocator::resource "/home/boud/.local/share/krita/brushes/MegaBrushPack2013_MarkMolnar.abr" "brushes" "MegaBrushPack2013_MarkMolnar_19"
ASSERT: "resource" in file /home/boud/dev/model-rewrite/libs/resources/KisResourceLocator.cpp, line 214
KCrash: crashing... crashRecursionCounter = 2



#4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#5  0x00007fc3a772d8b1 in __GI_abort () at abort.c:79
#6  0x00007fc3a815868b in qt_message_fatal (context=..., message=<synthetic pointer>...) at global/qlogging.cpp:1914
#7  QMessageLogger::fatal (this=this@entry=0x7ffff081e190, msg=msg@entry=0x7fc3a84589a0 "ASSERT: \"%s\" in file %s, line %d") at global/qlogging.cpp:893
#8  0x00007fc3a8157e81 in qt_assert (assertion=assertion@entry=0x7fc3a9efd55d "resource", file=file@entry=0x7fc3a9efacd8 "/home/boud/dev/model-rewrite/libs/resources/KisResourceLocator.cpp", line=line@entry=214) at global/qglobal.cpp:3342
#9  0x00007fc3a9e798d6 in KisResourceLocator::resource (this=0x55911f859230, storageLocation=..., resourceType=..., filename=...) at /home/boud/dev/model-rewrite/libs/resources/KisResourceLocator.cpp:214
#10 0x00007fc3a9e79c28 in KisResourceLocator::resourceForId (this=0x55911f859230, resourceId=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:60
#11 0x00007fc3a9e85dca in KisAllResourcesModel::resourceForFilename (this=<optimized out>, filename=...) at /home/boud/dev/model-rewrite/libs/resources/KisResourceModel.cpp:349
#12 0x00007fc3a9e861d8 in KisResourceModel::resourceForFilename (this=<optimized out>, fileName=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:60
#13 0x00007fc3a9ef4b0d in (anonymous namespace)::GlobalResourcesSource::resourceForFilename (this=<optimized out>, filename=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:60
#14 0x00007fc3a707b5c1 in KisResourcesInterface::TypedResourceSourceAdapter<KisBrush>::resourceForFilename (this=<synthetic pointer>, filename=...) at /home/boud/dev/model-rewrite/libs/resources/KisResourcesInterface.h:79
#15 KisPredefinedBrushFactory::createBrush (this=<optimized out>, brushDefinition=..., resourcesInterface=...) at /home/boud/dev/model-rewrite/libs/brush/kis_predefined_brush_factory.cpp:43
#16 0x00007fc3a708977d in KisBrushRegistry::createBrush (this=0x7fc3a72c92e0 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder>, element=..., resourcesInterface=...) at /usr/include/c++/9/bits/atomic_base.h:318
#17 0x00007fc3a7083df0 in KisBrush::fromXML (element=..., resourcesInterface=...) at /usr/include/c++/9/bits/atomic_base.h:318
#18 0x00007fc363bb9fed in KisBrushOptionProperties::prepareLinkedResourcesImpl (this=this@entry=0x7ffff081e7b0, settings=settings@entry=0x559124f3d5f0, resourcesInterface=...) at /usr/include/c++/9/bits/atomic_base.h:318
#19 0x00007fc363bac6f2 in KisPaintopPropertiesCanvasResourcesBase::prepareLinkedResources<KisPinnedSharedPtr<KisPaintOpSettings> > (resourcesInterface=..., settings=..., this=<optimized out>) at /usr/include/c++/9/bits/atomic_base.h:318
#20 KisBrushBasedPaintOp::prepareLinkedResources (settings=..., resourcesInterface=...) at /home/boud/dev/model-rewrite/plugins/paintops/libpaintop/kis_brush_based_paintop.cpp:122
#21 0x00007fc3636c5b06 in detail::prepareLinkedResources<KisBrushOp> (resourcesInterface=..., settings=...) at /usr/include/c++/9/bits/atomic_base.h:318
#22 KisSimplePaintOpFactory<KisBrushOp, KisBrushOpSettings, KisBrushOpSettingsWidget>::prepareLinkedResources (this=<optimized out>, settings=..., resourcesInterface=...) at /home/boud/dev/model-rewrite/plugins/paintops/libpaintop/kis_simple_paintop_factory.h:147
#23 0x00007fc3aa36add0 in KisPaintOpPreset::linkedResources (this=0x559124da12e0, globalResourcesInterface=...) at /usr/include/c++/9/bits/atomic_base.h:318
#24 0x00007fc3a9eb8120 in KoResource::requiredResources (this=this@entry=0x559124da12e0, globalResourcesInterface=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:158
#25 0x00007fc3a9e78662 in KisResourceLocator::loadRequiredResources (this=0x55911f859230, resource=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:306
#26 0x00007fc3a9e797fc in KisResourceLocator::resource (this=0x55911f859230, storageLocation=..., resourceType=..., filename=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:324
#27 0x00007fc3a9e79c28 in KisResourceLocator::resourceForId (this=0x55911f859230, resourceId=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:60
#28 0x00007fc3a9e818f1 in KisAllResourcesModel::resourceForId (this=<optimized out>, id=367) at /home/boud/dev/model-rewrite/libs/resources/KisResourceModel.cpp:318
#29 0x00007fc3a9e81c62 in non-virtual thunk to KisAllResourcesModel::resourceForIndex(QModelIndex) const () at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:158
#30 0x00007fc3a9e822f4 in non-virtual thunk to KisResourceModel::resourceForIndex(QModelIndex) const () at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:311
#31 0x00007fc3abb5d564 in non-virtual thunk to KisPresetChooser::PaintOpFilterModel::resourceForIndex(QModelIndex) const () from /home/boud/dev/i-model-rewrite/lib/x86_64-linux-gnu/libkritaui.so.17
#32 0x00007fc3a9e89eb8 in KisTagFilterResourceProxyModel::resourceForIndex (this=0x559128cb9480, index=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:311
#33 0x00007fc3a5496002 in KisResourceItemChooser::resourceFromModelIndex (this=this@entry=0x5591289fc1e0, index=...) at /home/boud/dev/model-rewrite/libs/resourcewidgets/KisResourceItemChooser.cpp:442
#34 0x00007fc3a5497033 in KisResourceItemChooser::activated (this=0x5591289fc1e0, index=...) at /home/boud/dev/model-rewrite/libs/resourcewidgets/KisResourceItemChooser.cpp:354
#35 0x00007fc3a548d327 in KisResourceItemChooser::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /home/boud/dev/b-model-rewrite/libs/resourcewidgets/kritaresourcewidgets_autogen/EWIEGA46WW/moc_KisResourceItemChooser.cpp:123
#36 0x00007fc3a83a74b9 in doActivate<false> (sender=0x559127a5c3d0, signal_index=16, argv=0x7ffff081f0b0) at kernel/qobject.cpp:3882
#37 0x00007fc3a83a1f92 in QMetaObject::activate (sender=sender@entry=0x559127a5c3d0, m=m@entry=0x7fc3a56ad8e0 <KisResourceItemListView::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffff081f0b0) at kernel/qobject.cpp:3930
#38 0x00007fc3a548c2b5 in KisResourceItemListView::currentResourceChanged (this=this@entry=0x559127a5c3d0, _t1=...) at /home/boud/dev/b-model-rewrite/libs/resourcewidgets/kritaresourcewidgets_autogen/EWIEGA46WW/moc_KisResourceItemListView.cpp:185
#39 0x00007fc3a549911d in KisResourceItemListView::selectionChanged (this=0x559127a5c3d0, selected=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:253
#40 0x00007fc3a94b7ce1 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007fc3a83a74b9 in doActivate<false> (sender=0x5591289db0c0, signal_index=3, argv=0x7ffff081f220) at kernel/qobject.cpp:3882
#42 0x00007fc3a83a1f92 in QMetaObject::activate (sender=sender@entry=0x5591289db0c0, m=m@entry=0x7fc3a8839180 <QItemSelectionModel::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffff081f220) at kernel/qobject.cpp:3930
#43 0x00007fc3a8315917 in QItemSelectionModel::selectionChanged (this=this@entry=0x5591289db0c0, _t1=..., _t2=...) at .moc/moc_qitemselectionmodel.cpp:459
#44 0x00007fc3a831aa65 in QItemSelectionModel::emitSelectionChanged (this=this@entry=0x5591289db0c0, newSelection=..., oldSelection=...) at itemmodels/qitemselectionmodel.cpp:1928
#45 0x00007fc3a831d4d3 in QItemSelectionModel::select (this=0x5591289db0c0, selection=..., command=...) at itemmodels/qitemselectionmodel.cpp:1338
#46 0x00007fc3a831792c in QItemSelectionModel::select (this=this@entry=0x5591289db0c0, index=..., command=command@entry=...) at itemmodels/qitemselectionmodel.cpp:1188
#47 0x00007fc3a8315cb4 in QItemSelectionModel::setCurrentIndex (this=0x5591289db0c0, index=..., command=...) at itemmodels/qitemselectionmodel.cpp:1413
#48 0x00007fc3a94b3929 in QAbstractItemView::setCurrentIndex(QModelIndex const&) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#49 0x00007fc3a94bbf77 in QAbstractItemView::rowsAboutToBeRemoved(QModelIndex const&, int, int) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007fc3a94f82ce in QListView::rowsAboutToBeRemoved(QModelIndex const&, int, int) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#51 0x00007fc3a94b7cca in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#52 0x00007fc3a83a74b9 in doActivate<false> (sender=0x559128cb9480, signal_index=14, argv=0x7ffff081f750) at kernel/qobject.cpp:3882
#53 0x00007fc3a83a1f92 in QMetaObject::activate (sender=sender@entry=0x559128cb9480, m=m@entry=0x7fc3a8839080 <QAbstractItemModel::staticMetaObject>, local_signal_index=local_signal_index@entry=11, argv=argv@entry=0x7ffff081f750) at kernel/qobject.cpp:3930
#54 0x00007fc3a8307e7e in QAbstractItemModel::rowsAboutToBeRemoved (this=this@entry=0x559128cb9480, _t1=..., _t2=<optimized out>, _t2@entry=25, _t3=<optimized out>, _t3@entry=34, _t4=...) at .moc/moc_qabstractitemmodel.cpp:599
#55 0x00007fc3a830f11b in QAbstractItemModel::beginRemoveRows (this=0x559128cb9480, parent=..., first=25, last=34) at itemmodels/qabstractitemmodel.cpp:2791
#56 0x00007fc3a83394f5 in QSortFilterProxyModelPrivate::remove_proxy_interval (emit_signal=true, orient=Qt::Vertical, proxy_parent=..., proxy_end=34, proxy_start=25, proxy_to_source=..., source_to_proxy=..., this=0x559128cb94d0) at itemmodels/qsortfilterproxymodel.cpp:784
#57 QSortFilterProxyModelPrivate::remove_source_items (this=this@entry=0x559128cb94d0, source_to_proxy=..., proxy_to_source=..., source_items=..., source_parent=..., orient=orient@entry=Qt::Vertical, emit_signal=true) at itemmodels/qsortfilterproxymodel.cpp:765
#58 0x00007fc3a833b044 in QSortFilterProxyModelPrivate::handle_filter_changed (orient=Qt::Vertical, source_parent=..., proxy_to_source=..., source_to_proxy=..., this=0x559128cb94d0) at itemmodels/qsortfilterproxymodel.cpp:1344
#59 QSortFilterProxyModelPrivate::filter_changed (this=0x559128cb94d0, source_parent=...) at itemmodels/qsortfilterproxymodel.cpp:1277
#60 0x00007fc3a833c02a in QSortFilterProxyModel::invalidateFilter (this=<optimized out>) at itemmodels/qsortfilterproxymodel.cpp:2970
#61 0x00007fc3a548ce01 in KisResourceTaggingManager::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /home/boud/dev/b-model-rewrite/libs/resourcewidgets/kritaresourcewidgets_autogen/EWIEGA46WW/moc_KisResourceTaggingManager.cpp:86
#62 0x00007fc3a83a74b9 in doActivate<false> (sender=0x559128966150, signal_index=7, argv=0x7ffff081faa0) at kernel/qobject.cpp:3882
#63 0x00007fc3a83a1f92 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7fc3a56ad760 <KisTagFilterWidget::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffff081faa0) at kernel/qobject.cpp:3930
#64 0x00007fc3a548c0b2 in KisTagFilterWidget::filterTextChanged (this=<optimized out>, _t1=...) at /home/boud/dev/b-model-rewrite/libs/resourcewidgets/kritaresourcewidgets_autogen/EWIEGA46WW/moc_KisTagFilterWidget.cpp:160
#65 0x00007fc3a549b635 in KisTagFilterWidget::onTextChanged (this=<optimized out>, lineEditText=...) at /home/boud/dev/model-rewrite/libs/resourcewidgets/KisTagFilterWidget.cpp:127
#66 0x00007fc3a548c849 in KisTagFilterWidget::qt_static_metacall (_c=QMetaObject::InvokeMetaMethod, _a=<optimized out>, _id=<optimized out>, _o=<optimized out>) at /home/boud/dev/b-model-rewrite/libs/resourcewidgets/kritaresourcewidgets_autogen/EWIEGA46WW/moc_KisTagFilterWidget.cpp:93
#67 KisTagFilterWidget::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /home/boud/dev/b-model-rewrite/libs/resourcewidgets/kritaresourcewidgets_autogen/EWIEGA46WW/moc_KisTagFilterWidget.cpp:85
#68 0x00007fc3a83a74b9 in doActivate<false> (sender=0x559128969350, signal_index=7, argv=0x7ffff081fbf0) at kernel/qobject.cpp:3882
#69 0x00007fc3a9399172 in QLineEdit::textChanged(QString const&) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#70 0x00007fc3a939f889 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#71 0x00007fc3a83a74b9 in doActivate<false> (sender=0x559128969390, signal_index=6, argv=0x7ffff081fd60) at kernel/qobject.cpp:3882
#72 0x00007fc3a93a04c5 in QWidgetLineControl::textChanged(QString const&) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#73 0x00007fc3a93a3811 in QWidgetLineControl::finishChange(int, bool, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#74 0x00007fc3a93a6ab1 in QWidgetLineControl::processKeyEvent(QKeyEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#75 0x00007fc3a939926a in QLineEdit::keyPressEvent(QKeyEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#76 0x00007fc3a929d107 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#77 0x00007fc3a939f0fa in QLineEdit::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#78 0x00007fc3a925b9ac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#79 0x00007fc3a9263bd2 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#80 0x00007fc3abc48539 in KisApplication::notify (this=<optimized out>, receiver=0x559128969350, event=0x7ffff08205c0) at /home/boud/dev/model-rewrite/libs/ui/KisApplication.cpp:747
#81 0x00007fc3a836c4a8 in QCoreApplication::notifyInternal2 (receiver=0x559128969350, event=0x7ffff08205c0) at kernel/qcoreapplication.cpp:1075
#82 0x00007fc3a92b9dd5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#83 0x00007fc3a925b9ac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#84 0x00007fc3a9262bb0 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#85 0x00007fc3abc48539 in KisApplication::notify (this=<optimized out>, receiver=0x5591212429d0, event=0x7ffff08205c0) at /home/boud/dev/model-rewrite/libs/ui/KisApplication.cpp:747
#86 0x00007fc3a836c4a8 in QCoreApplication::notifyInternal2 (receiver=0x5591212429d0, event=0x7ffff08205c0) at kernel/qcoreapplication.cpp:1075
#87 0x00007fc3a896605b in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#88 0x00007fc3a896a9c5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#89 0x00007fc3a89431cb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#90 0x00007fc39828ef9a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#91 0x00007fc39f4b6417 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#92 0x00007fc39f4b6650 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#93 0x00007fc39f4b66dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#94 0x00007fc3a83cb7ac in QEventDispatcherGlib::processEvents (this=0x55911da7f4d0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#95 0x00007fc3a836ad2a in QEventLoop::exec (this=this@entry=0x7ffff08208c0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#96 0x00007fc3a83744a0 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1383
#97 0x000055911a8bf265 in main (argc=<optimized out>, argv=0x7ffff0820bd8) at /home/boud/dev/model-rewrite/krita/main.cc:614
[Inferior 1 (process 20884) detached]
Comment 4 Tiar 2021-03-28 02:56:32 UTC
While lots of those issues are fixed now, there is still an issue that when the resource is in the database but cannot be loaded for whatever reason, switching to it won't do anything. It might look like the preset is selected but it will still paint like the previous preset. (This behaviour is shown on the video 0:40).

I must admit I haven't checked if the memento safe assert still happens in that particular instance, but I doubt it - there were lots of those asserts some time ago but now I haven't seen them for a long time, so I would guess it's fixed already.

Resetting the brush is fixed already, too, so the original steps to reproduce don't lead to the bug anymore.

Possible steps to reproduce:
1. Put a bundle file into resource folder.
2. Open and close Krita.
3. Move the bundle to the bundles/ folder (I did it to get brushes in Krita 4).
4. Open Krita, try to select a brush from the bundle.

EXPECTED
Brush paints as it should.

ACTUAL
It paints just as the previous one.
Comment 5 Halla Rempt 2021-04-08 09:00:48 UTC
This works now. Tested with db68e2d55e.