Bug 508628 - Layers docker doesn't refresh after new layer shortcut, then krita crashes
Summary: Layers docker doesn't refresh after new layer shortcut, then krita crashes
Status: CONFIRMED
Alias: None
Product: krita
Classification: Applications
Component: * Unknown (other bugs)
Version First Reported In: git master (please specify the git hash!)
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-08-23 06:25 UTC by Ming Chuan
Modified: 2025-09-29 22:27 UTC (History)
1 user (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 Ming Chuan 2025-08-23 06:25:58 UTC
SUMMARY

Layer docker stops updating and eventually crashes. Probably a rare race condition that leads to memory corruption, so this report is just filed for record.

The only krita code location appear in stack trace is `operator() at libs/ui/input/KisPopupWidgetAction.cpp:73`

STEPS TO REPRODUCE
1. Use the shortcut key configured to create a new paint layer.
2. Observe that the new paint layer does not appear in the docker. Other things seems to be normal (e.g. drawing making stroke on canvas)
3. Attempt to save and close the file, krita crashes

OBSERVED RESULT


EXPECTED RESULT


SOFTWARE/OS VERSIONS
Qt Version: 6.9.1
Krita:  665e6a795cea86f382e6e0929501df5a4e14b82b  (or, to be more accurate, https://invent.kde.org/graphics/krita/-/merge_requests/2447 , I don't think the MR matters)

ADDITIONAL INFORMATION

```
#0  0x00007ffff2798362 in __memmove_avx512_unaligned_erms () from /nix/store/lmn7lwydprqibdkghw7wgcn21yhllz13-glibc-2.40-66/lib/libc.so.6
#1  0x00007ffff4414ffd in QArrayDataPointer<QAction*>::reallocateAndGrow(QArrayData::GrowthPosition, long long, QArrayDataPointer<QAction*>*) ()
   from /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/lib/libQt6Widgets.so.6
#2  0x00007ffff45b8a7a in QMenu::clear() () from /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/lib/libQt6Widgets.so.6
#3  0x00007ffff7a60269 in operator() (__closure=0x348d71e0) at /home/user/sources/krita/libs/ui/input/KisPopupWidgetAction.cpp:73
#4  operator() (__closure=<optimized out>) at /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/include/QtCore/qobjectdefs_impl.h:116
#5  QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<long unsigned int>, QtPrivate::List<>, void, KisPopupWidgetAction::end(QEvent*)::<lambda()> >::call(KisPopupWidgetAction::end(QEvent*)::<lambda()>&, void**)::<lambda()> > (args=<optimized out>, fn=...) at /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/include/QtCore/qobjectdefs_impl.h:65
#6  QtPrivate::FunctorCall<std::integer_sequence<long unsigned int>, QtPrivate::List<>, void, KisPopupWidgetAction::end(QEvent*)::<lambda()> >::call (f=..., arg=<optimized out>)
    at /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/include/QtCore/qobjectdefs_impl.h:115
#7  QtPrivate::FunctorCallable<KisPopupWidgetAction::end(QEvent*)::<lambda()> >::call<QtPrivate::List<>, void> (f=..., arg=<optimized out>)
    at /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/include/QtCore/qobjectdefs_impl.h:337
#8  QtPrivate::QCallableObject<KisPopupWidgetAction::end(QEvent*)::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x348d71d0,
    r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/include/QtCore/qobjectdefs_impl.h:547
#9  0x00007ffff3016f0a in QObject::event(QEvent*) () from /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/lib/libQt6Core.so.6
#10 0x00007ffff43a1c2d in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/lib/libQt6Widgets.so.6
#11 0x00007ffff7b0acae in KisApplication::notify (this=0x7ffffffd8f00, receiver=0x35e8210, event=0x347ffe80) at /home/user/sources/krita/libs/ui/KisApplication.cpp:820
#12 0x00007ffff2fb8098 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/lib/libQt6Core.so.6
#13 0x00007ffff2fbbf88 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/lib/libQt6Core.so.6
#14 0x00007ffff32e5f3f in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/lib/libQt6Core.so.6
#15 0x00007ffff2503f6d in g_main_context_dispatch_unlocked () from /nix/store/kww24b3s330m61gy3n7fdl6517vpayv6-glib-2.84.3/lib/libglib-2.0.so.0
#16 0x00007ffff25062b8 in g_main_context_iterate_unlocked.isra () from /nix/store/kww24b3s330m61gy3n7fdl6517vpayv6-glib-2.84.3/lib/libglib-2.0.so.0
#17 0x00007ffff2506b4f in g_main_context_iteration () from /nix/store/kww24b3s330m61gy3n7fdl6517vpayv6-glib-2.84.3/lib/libglib-2.0.so.0
#18 0x00007ffff32e55d3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/lib/libQt6Core.so.6
#19 0x00007ffff2fc6e4b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/lib/libQt6Core.so.6
#20 0x00007ffff2fc1ea1 in QCoreApplication::exec() () from /nix/store/a7vlrrzdya0qsnsbwddmgpw873xj5mdb-qtbase-6.9.1/lib/libQt6Core.so.6
#21 0x0000000000409fce in main (argc=<optimized out>, argv=<optimized out>) at /home/user/sources/krita/krita/main.cc:802
```
Comment 1 Freya Lupen 2025-09-29 22:27:27 UTC
Can confirm, actually. I've encountered this a few times, as far back as 2023 (unsure which version). There's some threads on the forum about it:
https://krita-artists.org/t/cant-create-new-layer-no-matter-what-i-do/98095
https://krita-artists.org/t/layers-are-missing/100510