Bug#640574: libcyrus-imap-perl22: Cyrus::SIEVE::managesieve leaks file handles
Jörg Ludwig
joerg.ludwig at iserv.eu
Mon Sep 5 19:42:56 UTC 2011
Subject: libcyrus-imap-perl22: Cyrus::SIEVE::managesieve leaks file handles
Package: libcyrus-imap-perl22
Version: 2.2.13-19+squeeze1
Severity: normal
*** Please type your report below this line ***
I noticed that the sieve_put_file_withdest function from
Cyrus::SIEVE::managesieve leaves one file handle open on each call.
Hence I can call it only 1021 times before it fails. I attached a small
perl script to show the error.
#!/usr/bin/perl
use strict;
use warnings;
use Cyrus::SIEVE::managesieve;
my $fn = "/tmp/sieve_fh_bug";
my $script = "sieve";
my $act = "test1";
my $pw = "12345";
system "touch", $fn and die $!;
for (1..999999)
{
print "$_\n";
my $h = sieve_get_handle("localhost",
sub {$act}, sub {"cyrus"}, sub {$pw}, sub {""})
or die "cannot connect to sieve server as user $act\n";
sieve_put_file_withdest($h, $fn, $script) and die sieve_get_error($h);
sieve_logout($h) and die sieve_get_error($h);
}
strace outputs:
open("/tmp/sieve_fh_bug", O_RDONLY) = 1022
...
open("/tmp/sieve_fh_bug", O_RDONLY) = 1023
...
open("/tmp/sieve_fh_bug", O_RDONLY) = -1 EMFILE (Too many open files)
As a workaround you can set the file handle limit to high values.
I reported this bug to pkg-cyrus-imapd-debian-devel in mid 2008 and just
found out that it is still in Debian squeeze.
-- System Information:
Debian Release: 6.0.2
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.26-2-xen-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages libcyrus-imap-perl22 depends on:
ii libc6 2.11.2-10 Embedded GNU C Library:
Shared lib
ii libdb4.7 4.7.25-9 Berkeley v4.7 Database
Libraries [
ii libsasl2-2 2.1.23.dfsg1-7 Cyrus SASL - authentication
abstra
ii libssl0.9.8 0.9.8o-4squeeze1 SSL shared libraries
ii perl 5.10.1-17squeeze2 Larry Wall's Practical
Extraction
ii perl-base [perlapi-5.1 5.10.1-17squeeze2 minimal Perl system
libcyrus-imap-perl22 recommends no packages.
libcyrus-imap-perl22 suggests no packages.
-- no debconf information
--
Mit freundlichen Grüßen
Jörg Ludwig
IServ GmbH
Rebenring 33
38106 Braunschweig
Telefon: 0531-2243666-0
Fax: 0531-2243666-9
Mobil: 0179-9101055
E-Mail: joerg.ludwig at iserv.eu
Internet: iserv.eu
USt.-IdNr.: DE265149425
Registergericht: Amtsgericht Braunschweig
Registernummer: HRB 201822
Geschäftsführer: Jörg Ludwig
More information about the Pkg-Cyrus-imapd-Debian-devel
mailing list