Problems with Cyrus IMAP 2.2.5 on Solaris 9 on production server

Simon Matter simon.matter at ch.sauter-bc.com
Wed Jun 2 00:20:18 EDT 2004


> I'm having all kinds of problems with Cyrus IMAP 2.2.5 on Solaris 9.
> System I/O errors, imap processing dying, IOERRORs.
>
> Does anyone have suggestions on what could be the cause?  Has anyone
> gotten version 2.2.5 working on Solaris (SPARC) 9?
>
>   -Shawn
>
> May 30 17:52:57 cyrus lmtpunix[14954]: [ID 240394 local6.error] IOERROR:
> opening quota file /var/imap/quota/m/user.macey2: Too many open files
> May 30 17:52:57 cyrus lmtpunix[14954]: [ID 335833 local6.error] DBERROR:
> error fetching user.macey2: cyrusdb error
> May 30 17:52:57 cyrus lmtpunix[14954]: [ID 860734 local6.debug]
> verify_user(user.macey2) failed: System I/O error
> May 30 17:53:20 cyrus lmtpunix[14954]: [ID 240394 local6.error] IOERROR:
> opening quota file /var/imap/quota/s/user.sdhugg: Too many open files
> May 30 17:53:20 cyrus lmtpunix[14954]: [ID 335833 local6.error] DBERROR:
> error fetching user.sdhugg: cyrusdb error
> May 30 17:53:20 cyrus lmtpunix[14954]: [ID 860734 local6.debug]
> verify_user(user.sdhugg) failed: System I/O error
> May 30 17:53:40 cyrus lmtpunix[14954]: [ID 240394 local6.error] IOERROR:
> opening quota file /var/imap/quota/s/user.samuel2: Too many open files
> May 30 17:53:40 cyrus lmtpunix[14954]: [ID 335833 local6.error] DBERROR:
> error fetching user.samuel2: cyrusdb error
> May 30 17:53:40 cyrus lmtpunix[14954]: [ID 860734 local6.debug]
> verify_user(user.samuel2) failed: System I/O error
> May 30 17:54:05 cyrus lmtpunix[14954]: [ID 240394 local6.error] IOERROR:
> opening quota file /var/imap/quota/b/user.balaisi2: Too many open files
> May 30 17:54:05 cyrus lmtpunix[14954]: [ID 335833 local6.error] DBERROR:
> error fetching user.balaisi2: cyrusdb error
> May 30 17:54:05 cyrus lmtpunix[14954]: [ID 860734 local6.debug]
> verify_user(user.balaisi2) failed: System I/O error
>
> Jun  1 08:42:19 cyrus master[21185]: [ID 970914 local6.error] process
> 21886 exited, signaled to death by 11
> Jun  1 08:43:26 cyrus master[21185]: [ID 970914 local6.error] process
> 20660 exited, signaled to death by 11
> Jun  1 08:43:43 cyrus master[21185]: [ID 970914 local6.error] process
> 20133 exited, signaled to death by 11
> Jun  1 08:47:02 cyrus master[21185]: [ID 970914 local6.error] process
> 23236 exited, signaled to death by 11
> Jun  1 08:47:20 cyrus master[21185]: [ID 970914 local6.error] process
> 23972 exited, signaled to death by 11
> Jun  1 08:47:58 cyrus master[21185]: [ID 970914 local6.error] process
> 23751 exited, signaled to death by 11
> Jun  1 08:48:05 cyrus master[21185]: [ID 970914 local6.error] process
> 21258 exited, signaled to death by 11
> Jun  1 08:49:53 cyrus master[21185]: [ID 970914 local6.error] process
> 19939 exited, signaled to death by 11
> Jun  1 08:51:27 cyrus master[21185]: [ID 970914 local6.error] process
> 24807 exited, signaled to death by 11
> Jun  1 08:51:37 cyrus master[21185]: [ID 970914 local6.error] process
> 23457 exited, signaled to death by 11
>
> I grepped for the process id's that exited in the log file and see that
> they are all imapd processes from various users.  I've been
> reconstructing their mailboxes hoping that was the cause, but I was
> wondering if there is a way to get a better trace of what is happening.
> It seems hard to get an strace or truss on the imap process since you
> don't know which one will die.  Is there any technique to watching these
> processes?   Is there anything else I should be looking for?  Below is
> the configure commands I used to build imap and sasl.  I used gcc 3.3.2
> on Solaris SPARC 9.

Hi,

I'm not an expert on these things but I had success lately debugging some
problems on linux. First I used strace in ltrace on follow mode:
strace -f /path_to_cyrus/master
ltrace -f /path_to_cyrus/master
While it produces lots of output, you can easily catch it in a file and
examine single processes by grepping the pid.
Then, I tried creating a backstracke of killed imapd processes. I
installed a debugging imapd binary in /path_to_cyrus/ and set 'ulimit -c
100000000' to make it dump core. Then I started cyrus-imapd until various
core files showed up in the imap spool directories. Now I ran gdb on the
core file and produced a backtrace which showed the exact place where the
problem in the code was.
I'm not sure about the equivalent commands on Solaris 9 but I'm sure
you'll find out.

Simon

>
> Thanks in advance for any advice,
>
>  -Shawn Sivy
>   The College of New Jersey
>
> For Imap 2.2.5
> -------------------
> CC=gcc \
> CPPFLAGS="-I/local/BerkeleyDB-4.2.52/include -I/local/cyrus/include" \
> LDFLAGS="-L/local/BerkeleyDB-4.2.52/lib -R/local/BerkeleyDB-4.2.52/lib" \
> LIBS="-lsocket -lnsl" \
> ./configure \
> --prefix=/local/cyrus \
> --with-cyrus-prefix=/local/cyrus \
> --with-cyrus-user=cyrus \
> --with-cyrus-group=mail \
> --with-auth=unix \
> --enable-netscapehack \
> --with-perl=/local/perl/bin/perl \
> --enable-murder \
> --with-libwrap=/usr/sfw \
> --with-openssl=/local/openssl-0.9.7d \
> --with-dbdir=/local/BerkeleyDB-4.2.52 \
> --with-sasl=/local/sasl2
>
> For Sasl 2.1.18
> -------------------
> CC=gcc \
> LDFLAGS="-L/local/Berkeley-4.2.52/lib -R/local/Berkeley-4.2.52/lib" \
> CPPFLAGS="-I/local/Berkeley-4.2.52/include" \
> LIBS="-lsocket -lnsl" \
> ./configure --prefix=/local/sasl2 \
> --with-pwcheck \
> --with-pam \
> --enable-plain \
> --enable-login \
> --disable-gssapi \
> --disable-otp \
> --disable-digest \
> --disable-cram \
> --with-ldap=/local/openldap-2.1.30 \
> --with-openssl=/local/openssl-0.9.7d
>
> Here's my /etc/cyrus.conf
> ----------------------------------
> # standard standalone server implementation
>
> START {
>  # do not delete this entry!
>  recover       cmd="ctl_cyrusdb -r"
>
>  # this is only necessary if using idled for IMAP IDLE
> #  idled                cmd="idled"
> }
>
> # UNIX sockets start with a slash and are put into /var/imap/socket
> SERVICES {
>  # add or remove based on preferences
>  imap          cmd="imapd" listen="imap" prefork=20
>  imaps         cmd="imapd -s" listen="imaps" prefork=5
>  pop3          cmd="pop3d" listen="pop3" prefork=0
>  pop3s         cmd="pop3d" -s" listen="pop3s" prefork=0
>  sieve         cmd="timsieved" listen="sieve" prefork=1
>
>  # at least one LMTP is required for delivery
> #  lmtp         cmd="lmtpd" listen="lmtp" prefork=0
>  lmtpunix      cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0
>
>  # this is only necessary if using notifications
> #  notify       cmd="notifyd" listen="/var/imap/socket/notify"
> proto="udp" prefork=1
> }
>
> EVENTS {
>  # this is required
>  checkpoint    cmd="ctl_cyrusdb -c" period=30
>
>  # this is only necessary if using duplicate delivery suppression
>  delprune      cmd="ctl_deliver -E 3" at=0400
>
>  # this is only necessary if caching TLS sessions
>  tlsprune      cmd="tls_prune" at=0400
> }
>
>
> And my imapd.conf
> --------------------------
> configdirectory: /var/imap
> partition-default: /var/spool/imap
> partition-imap2: /var/spool/imap2
> partition-imap3: /var/spool/imap3
> defaultpartition: default
> admins: cyrus
> #sasl_pwcheck_method: pwcheck
> #pwcheck_method: pwcheck
> sasl_pwcheck_method: saslauthd
> pwcheck_method: saslauthd
> sasl_ldap_servers: ldap://159.91.15.182/ ldap://159.91.15.179/
> sasl_ldap_filter: uid=%u
> sasl_ldap_auth_method: bind
> sasl_ldap_search_base: ou=People,dc=tcnj,dc=edu
> sasl_ldap_scope: one
> ldap_uri: ldap://159.91.15.182/ ldap://159.91.15.179/
> ldap_filter: uid=%u
> ldap_auth_method: bind
> ldap_search_base: ou=People,dc=tcnj,dc=edu
> ldap_scope: one
> netscapeurl: http://managemail.tcnj.edu/
> tls_ca_file: /var/imap/ssl/ca-bundle.crt
> tls_cert_file: /var/imap/ssl/imap2003.pem
> tls_key_file: /var/imap/ssl/imap2003.pem
> sievedir: /var/imap/sieve
> # Modified 11/17/02 - BC - 35 is just over the base setting. Base is
> unknown.
> # Modified 3/18/03 - BC - Changed to 50 - see man page for imapd.conf
> #sieve_maxscriptsize: 32
> #            Maximum size (in kilobytes) any sieve script can  be,
> #            enforced at submission by timsieved(8).
> sieve_maxscriptsize: 50
> quotawarn: 90
> lmtp_over_quota_perm_failure: 1
> quota_db: quotalegacy
>
> ---
> Cyrus Home Page: http://asg.web.cmu.edu/cyrus
> Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
> List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html
>
>


---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html




More information about the Info-cyrus mailing list