Bug 442567

Summary: crash EXC_BAD_ACCESS QList, QWeakPointer
Product: [Applications] krita Reporter: vanyossi <ghevan>
Component: * UnknownAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: normal    
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Other   
OS: macOS   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description vanyossi 2021-09-16 23:10:59 UTC
Some crashes I encounter when launching krita. Some might be already fixed, and some could be glitches as I could never reproduce them again. I paste the backtrace in hopes of be certain the bug cannot happen again.

BACKTRACE

Process 64808 stopped
* thread #18, name = 'Thread (pooled)', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x000000010204ee2c libkritaflake.17.dylib`QList<QPointer<KoDocumentResourceManager> >::node_copy(QList<QPointer<KoDocumentResourceManager> >::Node*, QList<QPointer<KoDocumentResourceManager> >::Node*, QList<QPointer<KoDocumentResourceManager> >::Node*) [inlined] QWeakPointer<QObject>::QWeakPointer(this=0x000000010ca34490, other=<unavailable>) at qsharedpointer_impl.h:589:70 [opt]
   586      { return *this = QWeakPointer(ptr); }
   587  #endif
   588
-> 589      QWeakPointer(const QWeakPointer &other) Q_DECL_NOTHROW : d(other.d), value(other.value)
   590      { if (d) d->weakref.ref(); }
   591  #ifdef Q_COMPILER_RVALUE_REFS
   592      QWeakPointer(QWeakPointer &&other) Q_DECL_NOTHROW
Target 0: (krita) stopped.



* thread #18, name = 'Thread (pooled)', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x000000010204ee2c libkritaflake.17.dylib`QList<QPointer<KoDocumentResourceManager> >::node_copy(QList<QPointer<KoDocumentResourceManager> >::Node*, QList<QPointer<KoDocumentResourceManager> >::Node*, QList<QPointer<KoDocumentResourceManager> >::Node*) [inlined] QWeakPointer<QObject>::QWeakPointer(this=0x000000010ca34490, other=<unavailable>) at qsharedpointer_impl.h:589:70 [opt]
    frame #1: 0x000000010204ee2c libkritaflake.17.dylib`QList<QPointer<KoDocumentResourceManager> >::node_copy(QList<QPointer<KoDocumentResourceManager> >::Node*, QList<QPointer<KoDocumentResourceManager> >::Node*, QList<QPointer<KoDocumentResourceManager> >::Node*) [inlined] QWeakPointer<QObject>::QWeakPointer(this=0x000000010ca34490, other=<unavailable>) at qsharedpointer_impl.h:590 [opt]
    frame #2: 0x000000010204ee2c libkritaflake.17.dylib`QList<QPointer<KoDocumentResourceManager> >::node_copy(QList<QPointer<KoDocumentResourceManager> >::Node*, QList<QPointer<KoDocumentResourceManager> >::Node*, QList<QPointer<KoDocumentResourceManager> >::Node*) [inlined] QPointer<KoDocumentResourceManager>::QPointer(this=0x000000010ca34490, (null)=<unavailable>) at qpointer.h:53 [opt]
    frame #3: 0x000000010204ee2c libkritaflake.17.dylib`QList<QPointer<KoDocumentResourceManager> >::node_copy(QList<QPointer<KoDocumentResourceManager> >::Node*, QList<QPointer<KoDocumentResourceManager> >::Node*, QList<QPointer<KoDocumentResourceManager> >::Node*) [inlined] QPointer<KoDocumentResourceManager>::QPointer(this=0x000000010ca34490, (null)=<unavailable>) at qpointer.h:53 [opt]
    frame #4: 0x000000010204ee2c libkritaflake.17.dylib`QList<QPointer<KoDocumentResourceManager> >::node_copy(this=<unavailable>, from=0x000000010ca39850, to=<unavailable>, src=<unavailable>) at qlist.h:465 [opt]
    frame #5: 0x000000010204ec40 libkritaflake.17.dylib`QList<QPointer<KoDocumentResourceManager> >::detach_helper_grow(this=0x000000012c844360, i=<unavailable>, c=1) at qlist.h:761:9 [opt]
    frame #6: 0x000000010204d2d0 libkritaflake.17.dylib`QList<QPointer<KoDocumentResourceManager> >::append(this=0x000000012c844360, t=0x0000000170746a00) at qlist.h:585:19 [opt]
    frame #7: 0x000000010204d204 libkritaflake.17.dylib`KoShapeFactoryBase::newDocumentResourceManager(this=0x0000000128075760, manager=0x000000010ca34470) const at KoShapeFactoryBase.cpp:166:25 [opt]
    frame #8: 0x000000010202cbf0 libkritaflake.17.dylib`KoshapeControllerBasePrivate::KoshapeControllerBasePrivate(this=0x000000010ca23350) at KoShapeControllerBase.cpp:31:27 [opt]
    frame #9: 0x000000010202c9cc libkritaflake.17.dylib`KoShapeControllerBase::KoShapeControllerBase() [inlined] KoshapeControllerBasePrivate::KoshapeControllerBasePrivate(this=<unavailable>) at KoShapeControllerBase.cpp:27:5 [opt]
    frame #10: 0x000000010202c9c8 libkritaflake.17.dylib`KoShapeControllerBase::KoShapeControllerBase(this=0x000000010ca345a8) at KoShapeControllerBase.cpp:51 [opt]
    frame #11: 0x00000001008ddd58 libkritaui.17.dylib`KisShapeController::KisShapeController(this=0x000000010ca34590, nameServer=0x000000010ca0d260, undoStack=0x000000013dbbe0b0, parent=<unavailable>) at kis_shape_controller.cpp:61:21 [opt]
    frame #12: 0x0000000100c35c50 libkritaui.17.dylib`KisDocument::KisDocument(this=0x000000010cb82e90, addStorage=<unavailable>) at KisDocument.cpp:589:30 [opt]
    frame #13: 0x0000000100c87fd0 libkritaui.17.dylib`KisPart::createTemporaryDocument(this=<unavailable>) const at KisPart.cpp:219:28 [opt]
    frame #14: 0x0000000100b84788 libkritaui.17.dylib`KisFileIconCreator::createFileIcon(this=<unavailable>, path=QString @ 0x0000000170746c30, icon=0x0000000170746ca8, devicePixelRatioF=<unavailable>, iconSize=(wd = 96, ht = 96), dontUpsize=false) at KisFileIconCreator.cpp:118:44 [opt]
    frame #15: 0x0000000100b853d0 libkritaui.17.dylib`getFileIcon(gfip=GetFileIconParameters @ 0x0000000170746cb0) at KisRecentDocumentsModelWrapper.cpp:77:50 [opt]
    frame #16: 0x0000000100b88784 libkritaui.17.dylib`QtConcurrent::MappedEachKernel<SelfContainedIterator, QtConcurrent::FunctionWrapper1<KisRecentDocumentsModelWrapper::IconFetchResult, GetFileIconParameters> >::runIteration(SelfContainedIterator, int, KisRecentDocumentsModelWrapper::IconFetchResult*) [inlined] QtConcurrent::FunctionWrapper1<KisRecentDocumentsModelWrapper::IconFetchResult, GetFileIconParameters>::operator(this=<unavailable>, u=GetFileIconParameters @ 0x0000000170746c70)(GetFileIconParameters) at qtconcurrentfunctionwrappers.h:80:16 [opt]
    frame #17: 0x0000000100b88764 libkritaui.17.dylib`QtConcurrent::MappedEachKernel<SelfContainedIterator, QtConcurrent::FunctionWrapper1<KisRecentDocumentsModelWrapper::IconFetchResult, GetFileIconParameters> >::runIteration(this=<unavailable>, it=<unavailable>, (null)=<unavailable>, result=0x000000010ff04368) at qtconcurrentmapkernel.h:175 [opt]
    frame #18: 0x0000000100b888bc libkritaui.17.dylib`QtConcurrent::MappedEachKernel<SelfContainedIterator, QtConcurrent::FunctionWrapper1<KisRecentDocumentsModelWrapper::IconFetchResult, GetFileIconParameters> >::runIterations(this=0x000000013e57df60, sequenceBeginIterator=<unavailable>, begin=<unavailable>, end=7, results=<unavailable>) at qtconcurrentmapkernel.h:185:13 [opt]
    frame #19: 0x0000000100b88eb4 libkritaui.17.dylib`QtConcurrent::IterateKernel<SelfContainedIterator, KisRecentDocumentsModelWrapper::IconFetchResult>::forThreadFunction(this=0x000000013e57df60) at qtconcurrentiteratekernel.h:255:49 [opt]
Comment 1 vanyossi 2021-10-15 17:50:48 UTC
Closing as I could not reproduce or encounter it after a month.