Bug 287424

Summary: Stream parser exception fills hard drive
Product: [Frameworks and Libraries] Akonadi Reporter: Corey Schuhen <corey_bugs>
Component: IMAP resourceAssignee: Kevin Ottens <ervin>
Status: RESOLVED FIXED    
Severity: major CC: kdepim-bugs, vasyabelkin5, vkrause
Priority: NOR    
Version: 4.7   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:

Description Corey Schuhen 2011-11-24 02:56:31 UTC
Version:           4.7 (using KDE 4.7.2) 
OS:                Linux


I have one IMAP account setup, it started to download my email and all seemed ok until I realise that my hard drive is full. After investigating, it appears that KDE is writing the following string to my ~/.xsession-errors file:

The stream parser raised an exception: Inconsistent state, probably due to some packet loss


This is really really bad because even after nulling it, it fills up REALLY fast. Putting an error message in such a fast loop seems really bad design to me, regardless of what the root cause is. The file is growing at a rate of about 6MB/sec.



Reproducible: Always

Steps to Reproduce:
Setup a single account using IMAP. It's an exchange server. Works fine with the old kmail1. There is about 10G of mail, which it was downloading ok initially. 

Actual Results:  
No new mail downloaded and hard drive fills up causing MANY things to break. Even my text editor refused to run because it could not create a temporary file.

Expected Results:  
!Actual Results

I did actually loose some data because the first time that it happened I could not save some files that I had open.

Regardless of if the root cause is found or not, something needs to be done to at least slow down those messages. Even if a dirty sleep was placed, it would limit the messages such that the hard drive would almost never fill up.
Comment 1 Vasya Belkin 2011-12-04 20:37:01 UTC
Reproduced on Arch Linux 64b. with KDE 4.7.3
Comment 2 Kevin Ottens 2012-02-11 22:58:18 UTC
Git commit 2bc7588fc206e14a625b629998318938e25ed43b by Kevin Ottens.
Committed on 11/02/2012 at 23:57.
Pushed by ervin into branch 'master'.

Handle properly inconsistent parser state by closing the session

M  +5    -2    kimap/sessionthread.cpp
M  +33   -0    kimap/tests/testsession.cpp

http://commits.kde.org/kdepimlibs/2bc7588fc206e14a625b629998318938e25ed43b
Comment 3 Kevin Ottens 2012-02-11 23:00:09 UTC
Git commit 1b5f32d94d4873b14ded6db1e62b8169d6fd3937 by Kevin Ottens.
Committed on 11/02/2012 at 23:57.
Pushed by ervin into branch 'KDE/4.8'.

Handle properly inconsistent parser state by closing the session
(cherry picked from commit 2bc7588fc206e14a625b629998318938e25ed43b)

M  +5    -2    kimap/sessionthread.cpp
M  +33   -0    kimap/tests/testsession.cpp

http://commits.kde.org/kdepimlibs/1b5f32d94d4873b14ded6db1e62b8169d6fd3937