Bug 319131

Summary: kmail preview pane hangs on "Retrieving..." when leaving email with ICS attachment
Product: [Applications] kmail2 Reporter: Vincent Petry <PVince81>
Component: message listAssignee: kdepim bugs <kdepim-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: montel, mschiff, searchfgold67899
Priority: NOR    
Version: 4.10.2   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 4.11
Sentry Crash Report:

Description Vincent Petry 2013-04-30 20:11:58 UTC
In my inbox (imap from Yahoo) I have many emails, one of them has an ICS file as an attachment. When I select any email except the one with the ICS file, the email appears fine in the preview box. When I select the one with the ICS file, the email appears fine. As soon as I select other emails, the message "Retrieving folder contents" appears and stays there, even if I try to select another message. I have to wait for a long time or kill kmail2 to be able to read other emails again.



Reproducible: Always

Steps to Reproduce:
1. Make sure to have at least 2 emails, plus one with an ICS attachment
2. Switch between the two 2 emails (non-ICS)
3. Click on the email that has the ICS attachment
4. Click back and switch between the two other emails
Actual Results:  
At step 3, the email with the ICS file appears fine.
At step 4, the preview pane shows the message "Retrieving folder contents"

Expected Results:  
At step 4, the selected message must be shown immediately.

Ideally, even though something might be loading/failing in the background, the client must stay responsive and show me the message I selected. Either this or cancel the background operation.

The weird thing is that it seems to start some background operation when I LEAVE the email with ICS attachment, not when I SELECT it.

When I clicked on the email that contains an ICS file:
kmail2(16495)/kdewebkit KWebPage::acceptNavigationRequest: url:  QUrl( "file:///" )  , type: 5 , frame: QWebFrame(0x1346320)                                                                                                      !10695
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::doJob: KIO::SimpleJob(0xdfbb70)
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::protoQ: creating ProtoQueue instance for "file"
kmail2(16495)/kio (Scheduler) KIO::ProtoQueue::ProtoQueue: m_maxConnectionsTotal: 5 m_maxConnectionsPerHost: 5
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::doJob: KIO::SimpleJob(0x1d854f0)
kmail2(16495)/kio (KIOConnection) KIO::ConnectionServer::listenForRemote: Listening on  "local:/tmp/ksocket-vincent/kmail2q16495.slave-socket"
kmail2(16495)/kio (Slave) KIO::Slave::createSlave: createSlave "file" for KUrl("file:////usr/share/kde4/apps/libmessageviewer/pics/quicklistOpened.png")
kmail2(16495)/kio (KIOConnection) KIO::ConnectionServer::listenForRemote: Listening on  "local:/tmp/ksocket-vincent/kmail2c16495.slave-socket"
kmail2(16495)/kio (Slave) KIO::Slave::createSlave: createSlave "file" for KUrl("file:///usr/share/icons/oxygen/16x16/mimetypes/text-calendar.png")
kmail2(16495)/kio (KIOConnection) KIO::ConnectionServer::listenForRemote: Listening on  "local:/tmp/ksocket-vincent/kmail2V16495.slave-socket"
kmail2(16495)/kio (KIOJob) KIO::TransferJob::slotFinished: KUrl("file:////usr/share/kde4/apps/libmessageviewer/pics/quicklistOpened.png")
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::jobFinished: KIO::TransferJob(0xdfbb70) KIO::Slave(0x15234b0)
kmail2(16495)/kio (KIOJob) KIO::TransferJob::slotFinished: KUrl("file:///usr/share/icons/oxygen/16x16/mimetypes/text-calendar.png")
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::jobFinished: KIO::TransferJob(0x1d854f0) KIO::Slave(0x15232e0)

Then once I clicked on another mail:
kmail2(16495)/kdewebkit KWebPage::acceptNavigationRequest: url:  QUrl( "file:///usr/share/kde4/apps/kmail2/about/main.html" )  , type: 5 , frame: QWebFrame(0x1346320)                                                            !10695
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::doJob: KIO::SimpleJob(0x139a630)
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::doJob: KIO::SimpleJob(0x1e24450)
kmail2(16495)/kio (KIOJob) KIO::TransferJob::slotFinished: KUrl("file:///usr/share/kde4/apps/kdeui/about/kde_infopage.css")
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::jobFinished: KIO::TransferJob(0x139a630) KIO::Slave(0x15232e0)
kmail2(16495)/kio (KIOJob) KIO::TransferJob::slotFinished: KUrl("file:///usr/share/kde4/apps/kmail2/about/kmail.css")
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::jobFinished: KIO::TransferJob(0x1e24450) KIO::Slave(0x15234b0)
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::doJob: KIO::SimpleJob(0x1341cd0)
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::doJob: KIO::SimpleJob(0x1da78b0)
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::doJob: KIO::SimpleJob(0x125fc90)
kmail2(16495)/kio (Slave) KIO::Slave::createSlave: createSlave "file" for KUrl("file:///usr/share/kde4/apps/kmail2/about/top-left-kmail.png")
kmail2(16495)/kio (KIOConnection) KIO::ConnectionServer::listenForRemote: Listening on  "local:/tmp/ksocket-vincent/kmail2n16495.slave-socket"
kmail2(16495)/kio (KIOJob) KIO::SlaveInterface::dispatch: error  111   "/usr/share/kde4/apps/kdeui/about/top-middle.png"
kmail2(16495)/kio (KIOJob) KIO::TransferJob::slotFinished: KUrl("file:///usr/share/kde4/apps/kdeui/about/top-middle.png")
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::jobFinished: KIO::TransferJob(0x1da78b0) KIO::Slave(0x15232e0)
kmail2(16495)/kio (AccessManager) KDEPrivate::AccessManagerReply::jobError: KIO::ERR_DOES_NOT_EXIST -> QNetworkReply::ContentNotFoundError
kmail2(16495)/kio (KIOJob) KIO::TransferJob::slotFinished: KUrl("file:///usr/share/kde4/apps/kmail2/about/top-left-kmail.png")
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::jobFinished: KIO::TransferJob(0x125fc90) KIO::Slave(0x1da3ff0)
kmail2(16495)/kio (KIOJob) KIO::TransferJob::slotFinished: KUrl("file:///usr/share/kde4/apps/kdeui/about/body-background.jpg")
kmail2(16495)/kio (Scheduler) KIO::SchedulerPrivate::jobFinished: KIO::TransferJob(0x1341cd0) KIO::Slave(0x15234b0)

After a while, when timeout occurs, this appears:

kmail2(16495) MessageViewer::MemoryCalendarMemento::slotSearchJobFinished: Unable to fetch incidences: "Unable to fetch item from backend (collection 24) : Unable to retrieve item from resource: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken." 
kmail2(16495)/kdewebkit KWebPage::acceptNavigationRequest: url:  QUrl( "file:///" )  , type: 5 , frame: QWebFrame(0x1346320)

After the timeout, I can use kmail2 again, it will display the messages.

Not sure whether it's related with: https://bugs.kde.org/show_bug.cgi?id=297930
Comment 1 Vincent Petry 2013-04-30 20:14:23 UTC
Note: I didn't attach anything to this report. It seems Bugzilla is replacing the word "attachment" in my description with weird links. It also added a "[detail]" link for step 2 and step 4 which doesn't make sense. Please ignore those.

Please let me know if you need more information.
Comment 2 Laurent Montel 2013-07-26 08:05:58 UTC
Git commit b974dc2e7ec13ae190ef451ee8f8fd9ff1068eb2 by Montel Laurent.
Committed on 26/07/2013 at 08:05.
Pushed by mlaurent into branch 'KDE/4.11'.

Fix Bug 319131 - kmail preview pane hangs on "Retrieving..." when leaving email with ICS attachment

FIXED-IN: 4.11

M  +1    -2    plugins/messageviewer/bodypartformatter/memorycalendarmemento.cpp

http://commits.kde.org/kdepim/b974dc2e7ec13ae190ef451ee8f8fd9ff1068eb2
Comment 3 Marc Schiffbauer 2013-07-29 14:23:24 UTC
It *seems* that this fixes my long standing problem with kmail described in bug 316107 , and maybe bug 301178 and bug 311184

I will see if it happens again in the next couple of days or not
Comment 4 searchfgold67899 2014-01-21 00:07:23 UTC
This is still a bug in 4.11.3.