[Kde-pim] Review Request 109186: work around a file descriptor leak when using QFileSystemWatcher

Wolfgang Rohdewald wolfgang at rohdewald.de
Wed Feb 27 10:55:30 GMT 2013



> On Feb. 27, 2013, 10:16 a.m., Laurent Montel wrote:
> > If KDirWatch leak fd, we must fix kdirwatch and not workaround no ?
> > If it leaks it will leak in other kde components.
> > 
> > So for me we must to fix kdirwatch first

KDirWatch uses QFileSystemWatcher, and that one leaks. Finding out what is the problem with QFileSystemWatcher and fixing that might take much more effort. I want to look closer at QFileSystemWatcher - but even if I can produce a fix, qt has a different release cycle so I think this workaround is still helpful.

The warning messages are coming from QFileSystemWatcher, like

QFileSystemWatcher: failed to add paths: /home/wr/.local/share/akonadi_maildir_resource_1/inbox/cur


- Wolfgang


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/109186/#review28194
-----------------------------------------------------------


On Feb. 27, 2013, 9:32 a.m., Wolfgang Rohdewald wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/109186/
> -----------------------------------------------------------
> 
> (Updated Feb. 27, 2013, 9:32 a.m.)
> 
> 
> Review request for KDEPIM.
> 
> 
> Description
> -------
> 
> this cleans up some code and avoids warnings from QFileSystemWatcher when many mails are moved between folders. QFileSystemWatcher leaks four file descriptors for every moved mail because removeDir does not close the fd (as can be seen in /proc/X/fd where X is the process id of akonadi_agent_launcher akonadi_maildir_resource). On my system (kubuntu 12.10) warnings start when 1024 file descriptors are open.
> 
> I did not yet investigate which notifying method QFileSystemWatcher actually uses.
> 
> This has 3 commits:
> 
> 1. factor out common code
> 2. add a missing restore command in an error path
> 3. do not use removeDir/addDir but stopDirScan/restartDirScan
> 
> 
> Diffs
> -----
> 
>   resources/maildir/maildirresource.h f792b23f49cd493f128602649384d2a790ec3b47 
>   resources/maildir/maildirresource.cpp 6485f99d8f81cc46913cc473978ace818cbd114d 
> 
> Diff: http://git.reviewboard.kde.org/r/109186/diff/
> 
> 
> Testing
> -------
> 
> moving mails between folders. Needed time is about the same as before (like 50 seconds for 900 mails)
> 
> 
> Thanks,
> 
> Wolfgang Rohdewald
> 
>

_______________________________________________
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