[Kde-pim] Re: process akonadi_mixedmaildir_resource crashes

Guy Maurel guy-kde at maurel.de
Thu Jul 21 18:14:29 BST 2011


Hello Kevin!

On Wednesday, July 20, 2011 07:14:22 PM Kevin Krammer wrote:
> Hi Guy,
> 
> On Wednesday, 2011-07-20, Guy Maurel wrote:
> > Hello!
> > 
> > At the end of the kmail-migration, the process
> > akonadi_mixedmaildir_resource crashes.
> > 
> > This occurs in the method:
> >    SpecialCollectionsRequestJobPrivate::resourceScanResult( KJob *job )
> 
> Where in the mixed maildir resource is this called?
> I can't remember adding that.
  if ( qobject_cast<DefaultResourceJob*>( job ) ) {
    // This is the default resource.
    if ( resourceId != mSpecialCollections->d->defaultResourceId() ) {
      kError(0) << "Resource id's don't match: " << resourceId
                << mSpecialCollections->d->defaultResourceId();
      Q_ASSERT( false );
    }
> 
> > because of the test:
> >   if ( resourceId != mSpecialCollections->d->defaultResourceId() ) {
> > 
> > The variable resourceId has the value:
> >   akonadi_mixedmaildir_resource_0
> > The method mSpecialCollections->d->defaultResourceId() returns the value:
> >   akonadi_maildir_resource_0
> 
> You got a back trace that indicated this string comparion caused the crash?
Yes. But if I stop just before:
(gdb) bt 13
#0  Akonadi::SpecialCollectionsRequestJobPrivate::resourceScanResult (this=0x8e89d0, job=<value optimized out>) at guy-kde/kdesvn/kdepimlibs/akonadi/specialcollectionsrequestjob.cpp:205
#1  0x00007f266f1ef775 in Akonadi::SpecialCollectionsRequestJob::qt_metacall (this=0x8d59b0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff5ce72980) at guy-kde/kdesvn/build/kdepimlibs/akonadi/specialcollectionsrequestjob.moc:80
#2  0x00007f266eb24b7f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from guy-kde/qt4/lib/libQtCore.so.4
#3  0x00007f266e108a93 in KJob::result (this=0x8d1dd0, _t1=0x8d1dd0) at guy-kde/kdesvn/build/kdelibs/kdecore/kjob.moc:194
#4  0x00007f266e107f01 in KJob::emitResult (this=0x8d1dd0) at guy-kde/kdesvn/kdelibs/kdecore/jobs/kjob.cpp:312
#5  0x00007f266f1ea53a in Akonadi::ResourceScanJob::Private::fetchResult (this=0x8ecbb0, job=<value optimized out>) at guy-kde/kdesvn/kdepimlibs/akonadi/specialcollectionshelperjobs.cpp:154
#6  0x00007f266f1ea6e1 in Akonadi::ResourceScanJob::qt_metacall (this=0x8d1dd0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff5ce72cc0) at guy-kde/kdesvn/build/kdepimlibs/akonadi/specialcollectionshelperjobs_p.moc:72
#7  0x00007f266f1ec7f0 in Akonadi::DefaultResourceJob::qt_metacall (this=0x8d1dd0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff5ce72cc0) at guy-kde/kdesvn/build/kdepimlibs/akonadi/specialcollectionshelperjobs_p.moc:133
#8  0x00007f266eb24b7f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from guy-kde/qt4/lib/libQtCore.so.4
#9  0x00007f266e108a93 in KJob::result (this=0x8d84f0, _t1=0x8d84f0) at guy-kde/kdesvn/build/kdelibs/kdecore/kjob.moc:194
#10 0x00007f266e107f01 in KJob::emitResult (this=0x8d84f0) at guy-kde/kdesvn/kdelibs/kdecore/jobs/kjob.cpp:312
#11 0x00007f266f1b5a71 in Akonadi::Job::qt_metacall (this=0x8d84f0, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x823300) at guy-kde/kdesvn/build/kdepimlibs/akonadi/job.moc:91
#12 0x00007f266f1493a5 in Akonadi::CollectionFetchJob::qt_metacall (this=0x8d84f0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x823300) at guy-kde/kdesvn/build/kdepimlibs/akonadi/collectionfetchjob.moc:75

> 
> > The problem is (I think) that the variable:
> >   mDefaultResourceId
> > defined in specialcollections_p.h, has no setter-method.
> 
> Which means it has its default construction value, in the case of a QString an 
> empty QString object.
Yes. I found no code to change the value.
Should not the new value be told from some DBus-message? 
Coming from the migration? Is such a message sent?

This occurs at the end of the migration, as kmail-migrator is doing a "take over".
Bye
-- 
guy
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/



More information about the kde-pim mailing list