Summary: | Crash in KoCompositeOpRegistry: The global static was used after being destroyed | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Tiar <tamtamy.tymona> |
Component: | General | Assignee: | Krita Bugs <krita-bugs-null> |
Status: | RESOLVED WORKSFORME | ||
Severity: | crash | CC: | dimula73, halla |
Priority: | NOR | ||
Version: | git master (please specify the git hash!) | ||
Target Milestone: | --- | ||
Platform: | Mint (Ubuntu based) | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Crash log for all threads
Crash log for all threads Screenshot of Krita after the crash |
Created attachment 136896 [details]
Crash log for all threads
I encountered the same crash on
86f9fd11ba Mon Feb 8 10:13:49 2021 +0000 Sharaf Zaman (HEAD) ResourceQueryMapper: cache the thumbnails
(+ I cherry-picked the autosave fix: f9a9ef8080 but since the original report was before I commited that fix, I believe it's unrelated)
Created attachment 136897 [details]
Screenshot of Krita after the crash
What I was doing before:
- I transformed some group
- then I toggled visibility quite fast for multiple layers and/or groups (not sure what exact course of action, but it was switching visibility).
- you can see in the attachment that the crash happened in the middle of updating (there are tears between content on tiles edges).
Note: the crash log is very different from bug 434601 which also mentions visibility. As far as I can tell, DRI triggers internal abort() or exit(1), which basically starts destroying all the static objects inside Krita: #19 0x00007ffff7040fb1 in KisPart::~KisPart() (this=0x7ffff7fc7410 <_ZZN12_GLOBAL__N_116Q_QGS_s_instance13innerFunctionEvE6holder>, __in_chrg=<optimized out>) at /usr/include/c++/8/bits/atomic_base.h:390 #20 0x00007ffff70413b9 in (anonymous namespace)::Q_QGS_s_instance::Holder::~Holder() (this=<optimized out>, __in_chrg=<optimized out>) at /media/tymon/Dane/Development/devthird/krita/libs/ui/KisPart.cpp:71 #21 0x00007ffff3d9e2ac in __run_exit_handlers (status=1, listp=0x7ffff3f3b718 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:108 #22 0x00007ffff3d9e3da in __GI_exit (status=<optimized out>) at exit.c:139 #23 0x00007fffe486afa3 in () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so So the problem is actually somewhere in DRI. Perhaps we failed to allocated a buffer somehow? E.g. due to a low-memory situation? If you can reproduce the crash somehow, could you please check the state of all the pointers in this function? It looks like some pointer became null for some reason. #34 0x00007ffff6e1c961 in KisTextureTile::update(KisTextureTileUpdateInfo const&, bool) (this=0x555577d503e0, updateInfo=..., blockMipmapRegeneration=<optimized out>) at /media/tymon/Dane/Development/devthird/krita/libs/ui/opengl/kis_texture_tile.cpp:286 i965: Failed to submit batchbuffer: Błędny adres [English: wrong address] Setting to needsinfo, since Tiar needs to provide the information Dmitry asked for. Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please mark the bug as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone! This bug has been in NEEDSINFO status with no change for at least 30 days. The bug is now closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging Thank you for helping us make KDE software even better for everyone! |
Created attachment 136571 [details] Crash log for all threads SUMMARY I'm not sure what I was doing then :( And the git hash - somewhere between 5c02e617 and 2bd49f34. STEPS TO REPRODUCE No known steps. OBSERVED RESULT Crash EXPECTED RESULT No crash! :) SOFTWARE/OS VERSIONS Krita Version: 5.0.0-prealpha (git eda033d) Languages: pl_PL, pl, pl_PL, pl Hidpi: true Qt: 5.11.1 ADDITIONAL INFORMATION i965: Failed to submit batchbuffer: Błędny adres [English: wrong address] ASSERT failure in Q_GLOBAL_STATIC: "The global static was used after being destroyed", file /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobalstatic.h, line 143 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. [English: no such file or directory; please ignore this part, it always shows up] (gdb) bt #0 0x00007ffff3d6eed7 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007ffff3d50535 in __GI_abort () at abort.c:79 #2 0x00007ffff45388d7 in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #3 0x00007ffff4537db3 in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007ffff28ffa25 in QGlobalStatic<KoCompositeOpRegistry, (anonymous namespace)::Q_QGS_registry::innerFunction, (anonymous namespace)::Q_QGS_registry::guard>::operator* (this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:1185 #5 0x00007ffff28ffa25 in KoCompositeOpRegistry::instance() () at /home/tymon/kritadev/krita/libs/pigment/KoCompositeOpRegistry.cpp:185 #6 0x00007ffff6cd537f in KisCompositeOpListModel::validate(KoColorSpace const*) (this=0x55555fe066a8, cs=0x5555597c8a10) at /home/tymon/kritadev/krita/libs/ui/kis_composite_ops_model.cc:77 #7 0x00007fffc6670018 in LayerBox::updateUI() (this=0x55555fd67c60) at /home/tymon/kritadev/krita/plugins/dockers/layerdocker/LayerBox.cpp:577 #8 0x00007fffc6672273 in LayerBox::slotModelReset() (this=0x55555fd67c60) at /home/tymon/kritadev/krita/plugins/dockers/layerdocker/LayerBox.cpp:623 #9 0x00007fffc66778fd in LayerBox::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x55555fd67c60, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /home/tymon/kritadev/build/plugins/dockers/layerdocker/kritalayerdocker_autogen/include/moc_LayerBox.cpp:246 #10 0x00007ffff474b6db in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #11 0x00007ffff46d682a in QAbstractItemModel::modelReset(QAbstractItemModel::QPrivateSignal) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #12 0x00007ffff6d4e177 in KisNodeModel::setDummiesFacade(KisDummiesFacadeBase*, KisWeakSharedPtr<KisImage>, KisShapeController*, KisSelectionActionsAdapter*, KisNodeManager*) (this=0x55555fdcc3b0, dummiesFacade=0x0, image=..., shapeController=<optimized out>, selectionActionsAdapter=<optimized out>, nodeManager=<optimized out>) at /home/tymon/kritadev/krita/libs/ui/kis_node_model.cpp:315 #13 0x00007fffc6670744 in LayerBox::setCanvas(KoCanvasBase*) (this=0x55555fd67c60, canvas=0x0) at /home/tymon/kritadev/krita/libs/global/kis_shared_ptr.h:429 #14 0x00007fffc6677803 in LayerBox::notifyImageDeleted() (this=0x55555fd67c60) at /home/tymon/kritadev/krita/plugins/dockers/layerdocker/LayerBox.cpp:526 #15 0x00007fffc6677803 in LayerBox::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x55555fd67c60, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /home/tymon/kritadev/build/plugins/dockers/layerdocker/kritalayerdocker_autogen/include/moc_LayerBox.cpp:236 #16 0x00007ffff474b6db in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #17 0x00007ffff700f5e8 in KisDocument::~KisDocument() (this=0x55555ab11eb0, __in_chrg=<optimized out>) at /home/tymon/kritadev/krita/libs/ui/KisDocument.cpp:634 #18 0x00007ffff700f789 in KisDocument::~KisDocument() (this=0x55555ab11eb0, __in_chrg=<optimized out>) at /home/tymon/kritadev/krita/libs/ui/KisDocument.cpp:611 #19 0x00007ffff704d471 in KisPart::~KisPart() (this=0x7ffff7fc6990 <_ZZN12_GLOBAL__N_116Q_QGS_s_instance13innerFunctionEvE6holder>, __in_chrg=<optimized out>) at /usr/include/c++/8/bits/atomic_base.h:390 #20 0x00007ffff704d879 in (anonymous namespace)::Q_QGS_s_instance::Holder::~Holder() (this=<optimized out>, __in_chrg=<optimized out>) at /home/tymon/kritadev/krita/libs/ui/KisPart.cpp:71 #21 0x00007ffff3d722ac in __run_exit_handlers (status=1, listp=0x7ffff3f0f718 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:108 #22 0x00007ffff3d723da in __GI_exit (status=<optimized out>) at exit.c:139 #23 0x00007fffe4822fa3 in () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #24 0x00007fffe48073bb in () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #25 0x00007fffe4977558 in () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #26 0x00007fffe49775f5 in () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #27 0x00007ffff6e1c233 in QOpenGLFunctions::glDrawArrays(unsigned int, int, int) (this=0x55556a6c0840, count=6, first=0, mode=4) at /usr/include/x86_64-linux-gnu/qt5/QtGui/qopenglfunctions.h:766 #28 0x00007ffff6e1c233 in KisOpenGLCanvas2::drawImage(QRect const&) (this=0x55556a6c0810, updateRect=...) at /home/tymon/kritadev/krita/libs/ui/opengl/kis_opengl_canvas2.cpp:981 #29 0x00007ffff6e1cbc3 in KisOpenGLCanvas2::renderCanvasGL(QRect const&) (this=0x55556a6c0810, updateRect=...) at /home/tymon/kritadev/krita/libs/ui/opengl/kis_opengl_canvas2.cpp:1078 #30 0x00007ffff6e1cdf0 in KisOpenGLCanvas2::paintGL() (this=0x55556a6c0810) at /home/tymon/kritadev/krita/libs/ui/opengl/kis_opengl_canvas2.cpp:444 #31 0x00007ffff513fead in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #32 0x00007ffff6e1e3f9 in KisOpenGLCanvas2::paintEvent(QPaintEvent*) (this=0x55556a6c0810, e=<optimized out>) at /home/tymon/kritadev/krita/libs/ui/opengl/kis_opengl_canvas2.cpp:475 #33 0x00007ffff511f7d8 in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #34 0x00007ffff50e14a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #35 0x00007ffff50e8ae0 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #36 0x00007ffff6ffa857 in KisApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x55556a6c0810, event=0x7fffffffd0d0) at /home/tymon/kritadev/krita/libs/ui/KisApplication.cpp:710 #37 0x00007ffff4722499 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #38 0x00007ffff511837a in QWidgetPrivate::sendPaintEvent(QRegion const&) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #39 0x00007ffff50f0392 in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #40 0x00007ffff50f0a29 in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #41 0x00007ffff5107af5 in QWidgetPrivate::syncBackingStore() () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #42 0x00007ffff511f908 in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #43 0x00007ffff5225f34 in QMainWindow::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #44 0x00007ffff27859cb in KMainWindow::event(QEvent*) (this=this@entry=0x555559a280a0, ev=ev@entry=0x555581eaed30) at /home/tymon/kritadev/krita/libs/widgetutils/xmlgui/kmainwindow.cpp:753 #45 0x00007ffff27c5589 in KXmlGuiWindow::event(QEvent*) (this=0x555559a280a0, ev=0x555581eaed30) at /home/tymon/kritadev/krita/libs/widgetutils/xmlgui/kxmlguiwindow.cpp:113 #46 0x00007ffff50e14a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #47 0x00007ffff50e8ae0 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #48 0x00007ffff6ffa857 in KisApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x555559a280a0, event=0x555581eaed30) at /home/tymon/kritadev/krita/libs/ui/KisApplication.cpp:710 #49 0x00007ffff4722499 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 ---Type <return> to continue, or q <return> to quit--- #50 0x00007ffff472548b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #51 0x00007ffff4774b23 in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #52 0x00007ffff0641d5e in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #53 0x00007ffff0641ff8 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #54 0x00007ffff064208c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #55 0x00007ffff4774143 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #56 0x00007fffea777e51 in () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #57 0x00007ffff472116b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #58 0x00007ffff47292e2 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #59 0x0000555555e2a21b in main (argc=<optimized out>, argv=0x7fffffffde48) at /home/tymon/kritadev/krita/krita/main.cc:663 #60 0x00007ffff3d51b6b in __libc_start_main (main=0x555555e28890 <main>, argc=1, argv=0x7fffffffde48, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffde38) at ../csu/libc-start.c:308 #61 0x0000555555e2b2da in _start () at /home/tymon/kritadev/krita/krita/main.cc:468