Re: [Dovecot] mailbox count folders issues

2009-10-30 Thread Nikita Koshikov
On Thu, 29 Oct 2009 12:38:22 -0400
Timo Sirainen t...@iki.fi wrote:

 On Thu, 2009-10-29 at 12:11 +0200, Nikita Koshikov wrote:
  On Wed, 28 Oct 2009 14:17:52 -0400
  Timo Sirainen t...@iki.fi wrote:
  
   On Wed, 2009-10-28 at 10:39 +0200, Nikita Koshikov wrote:
  Oct 26 15:26:38 IMAP(gozhd...@domain.com): Panic: data stack: Out 
  of memory when allocating 268435472 bytes
  Oct 26 15:26:38 IMAP(gozhd...@domain.com): Error: *** glibc 
  detected *** imap: double free or corruption (!prev): 0x0812ba00 ***
   
   Oh, the double free is because of broken handling of out-of-memory
   error. http://hg.dovecot.org/dovecot-1.2/rev/acfef2f0fec3 probably fixes
   that.
  
  Sorry, but this patch didn't help.
 
 Not with the out of memory, but did it get rid of the double free or
 corruption error?

The valgrind error is the same. I'll attach current valgrid output.
Also, I have noticed, that valgrind writes vgcore.* files in user's homedir, I 
attach gdb backtrace from that file. 

 
   Hmm. So I guess there's no memory corruption causing this, but I don't
   really see why it would try to allocate that much memory. 268435472 in
   hex is 0x1010, which is an interesting number but doesn't really
   help much either.
  268435456 is 256M which is max mail_process_size config setting, maybe this 
  values is in use ? 
 
 I guess it's just exponentially increasing the buffer size then until it
 reaches mail_process_size.
 
  I recompile dovecot binaries with debug symbols, but seemed that gdb 
  backtrace is broken.
 
 Yeah, it is. Hmm. Since the core isn't working, can you attach gdb to
 imap process while it's still running? So something like:
 
  - open the account so imap process starts
  - gdb -p imap process pid
  - gdb command: c
  - cause imap to crash - gdb should stop
  - gdb command: bt full
 
The problem, that webmail don't keep permanent connection, so when I login - 
there are about 2-3 imap-login\disconnected log entries. And when I try to get 
directory listing the new process created for this operation and then crushes.
Can gdb work in non-interactive mode ? so I can write wrapper to handle debug 
output ?

Also I enable imap_debug feature on webmail client, as you say - it stop 
working after client trying to access All virtual folder. The appropriate 
imap-session log part is also attached.

Note,
I can't reproduce panic with Thunderbird, this happens in roundcube only.

All virtual folder config is:

cat /var/mail/virtual/.all/dovecot-virtual
#All messages in all folders
*
  all


vcore-gdb.trace
Description: Binary data


dovecot-error.valgrind
Description: Binary data
=cut==
[30-Oct-2009 10:30:11 +0200]: S: * LIST (\HasNoChildren) / 1
[30-Oct-2009 10:30:11 +0200]: S: * LIST (\HasNoChildren) / Drafts
[30-Oct-2009 10:30:11 +0200]: S: * LIST (\HasChildren) / Dealers
[30-Oct-2009 10:30:11 +0200]: S: * LIST (\HasNoChildren) / Dealers/Kapriz
[30-Oct-2009 10:30:11 +0200]: S: * LIST (\HasNoChildren) / Dealers/1 Inbox
[30-Oct-2009 10:30:11 +0200]: S: * LIST (\HasNoChildren) / Dealers/2 Outbox
[30-Oct-2009 10:30:11 +0200]: S: * LIST (\HasNoChildren) / Spam
[30-Oct-2009 10:30:11 +0200]: S: * LIST (\HasNoChildren) / Trash
[30-Oct-2009 10:30:11 +0200]: S: * LIST (\HasNoChildren) / INBOX
[30-Oct-2009 10:30:11 +0200]: S: * LIST (\Noselect \HasChildren) / Company
[30-Oct-2009 10:30:11 +0200]: S: * LIST (\HasNoChildren) / Company/all
[30-Oct-2009 10:30:11 +0200]: S: * LIST (\HasNoChildren) / Company/favorites
[30-Oct-2009 10:30:11 +0200]: S: lmb OK List completed.
[30-Oct-2009 10:30:12 +0200]: C: lsb LSUB  *
[30-Oct-2009 10:30:12 +0200]: S: * LSUB () / Sent
[30-Oct-2009 10:30:12 +0200]: S: * LSUB () / Drafts
[30-Oct-2009 10:30:12 +0200]: S: * LSUB () / Spam
[30-Oct-2009 10:30:12 +0200]: S: * LSUB () / 1
[30-Oct-2009 10:30:12 +0200]: S: * LSUB () / INBOX
[30-Oct-2009 10:30:12 +0200]: S: * LSUB () / Business correspondence/Inbox
[30-Oct-2009 10:30:12 +0200]: S: * LSUB () / Business correspondence/Outbox
[30-Oct-2009 10:30:12 +0200]: S: * LSUB () / Trash
[30-Oct-2009 10:30:12 +0200]: S: lsb OK Lsub completed.
[30-Oct-2009 10:30:12 +0200]: C: sel1 SELECT INBOX
[30-Oct-2009 10:30:12 +0200]: S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk)
[30-Oct-2009 10:30:12 +0200]: S: * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk \*)] Flags permitted.
[30-Oct-2009 10:30:12 +0200]: S: * 37 EXISTS
[30-Oct-2009 10:30:12 +0200]: S: * 0 RECENT
[30-Oct-2009 10:30:12 +0200]: S: * OK [UIDVALIDITY 1245314909] UIDs valid
[30-Oct-2009 10:30:12 +0200]: S: * OK [UIDNEXT 39] Predicted next UID
[30-Oct-2009 10:30:12 +0200]: S: * OK [HIGHESTMODSEQ 1] Highest
[30-Oct-2009 10:30:12 +0200]: S: sel1 OK [READ-WRITE] Select completed.
[30-Oct-2009 10:30:12 +0200]: C: sel1 SELECT Drafts
[30-Oct-2009 10:30:12 +0200]: S: * OK [CLOSED] Previous mailbox closed.
[30-Oct-2009 10:30:12 +0200]: S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
[30-Oct-2009 10:30:12 +0200]: S: * OK 

Re: [Dovecot] expire plugin + --exec-mail in 1.2.6 version

2009-10-30 Thread Nikita Koshikov
On Thu, 29 Oct 2009 13:10:37 -0400
Timo Sirainen t...@iki.fi wrote:

 On Wed, 2009-10-28 at 10:30 +0200, Nikita Koshikov wrote:
  The  problem that some users have their own quotas stored in ldap. 
 
 So the quota_rule should be returned by userdb lookup from ldap, right?

Yes, and it's working fine with deliver and general imap process, it only 
failed(reset to general quota_rule) after expire-rool.sh script finished his 
duties.

 
  Info: auth input: uid=8
  Info: auth input: gid=12
  Info: auth input: home=/data/mail/domain.com/koshikov.n
  Info: auth input: mail=maildir:~/data
 
 This should have listed quota_rule.
 
The problematic user is sr, and it has quota_rule option(running with --test)

(Thu Oct 29 07:45:18 2009)
Info: auth input: quota_rule=*:bytes=1048576
^ returned from ldap
Info: auth input: uid=8
Info: auth input: gid=12
Info: auth input: home=/data/mail/domain.com/sr
Info: auth input: mail=maildir:~/data
Info: Namespace: type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, 
subscriptions=yes
Info: maildir: data=~/data
Info: maildir++: root=/data/mail/domain.com/sr/data, index=, control=, 
inbox=/data/mail/domain.com/sr/data
Info: Namespace: type=private, prefix=Agromat/, sep=/, inbox=no, hidden=no, 
list=yes, subscriptions=no
Info: virtual: data=/var/mail/virtual:INDEX=MEMORY:LAYOUT=maildir++
Info: maildir++: root=/var/mail/virtual, index=, control=, inbox=
Info: Namespace : Using permissions from /data/mail/domain.com/sr/data: 
mode=0700 gid=-1
Info: trash plugin: Added 'Trash' with priority 1
Info: trash plugin: Added 'Spam' with priority 2
Info: s...@domain.com/Spam: seq=1 uid=405: Expunge
Info: s...@domain.com/Spam: seq=2 uid=406: Expunge
Info: s...@domain.com/Spam: seq=3 uid=407: Expunge
Info: s...@domain.com/Spam: timestamp 1256710764 (Wed Oct 28 08:19:24 2009) - 
125698 (Sat Oct 31 11:06:40 2009)

  If dovecot -n output is needed, please let me know.
 
 If the above doesn't help, then yeah, dovecot -n and dovecot-ldap.conf
 contents.
 
dovecot -n:
# 1.2.6: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.26-gentoo-r4 i686 Gentoo Base System release 1.12.11.1 
log_path: /var/log/dovecot/dovecot-error.log
info_log_path: /var/log/dovecot/dovecot.log
protocols: imaps managesieve
ssl_cert_file: /etc/ssl/dovecot/imaps.crt
ssl_key_file: /etc/ssl/dovecot/imaps.key
login_dir: /var/run/dovecot/login
login_executable(default): /usr/libexec/dovecot/imap-login
login_executable(imap): /usr/libexec/dovecot/imap-login
login_executable(managesieve): /usr/libexec/dovecot/managesieve-login
login_greeting: Server ready.
login_processes_count: 20
login_max_processes_count: 512
mail_max_userip_connections(default): 20
mail_max_userip_connections(imap): 20
mail_max_userip_connections(managesieve): 10
first_valid_uid: 8
last_valid_uid: 8
first_valid_gid: 12
last_valid_gid: 12
mail_drop_priv_before_exec: yes
mail_executable(default): /usr/libexec/dovecot/imap
mail_executable(imap): /usr/libexec/dovecot/imap
mail_executable(managesieve): /usr/libexec/dovecot/managesieve
mail_plugins(default): quota imap_quota trash expire zlib autocreate virtual
mail_plugins(imap): quota imap_quota trash expire zlib autocreate virtual
mail_plugins(managesieve): 
mail_plugin_dir(default): /usr/lib/dovecot/imap
mail_plugin_dir(imap): /usr/lib/dovecot/imap
mail_plugin_dir(managesieve): /usr/lib/dovecot/managesieve
imap_client_workarounds(default): delay-newmail
imap_client_workarounds(imap): delay-newmail
imap_client_workarounds(managesieve): 
namespace:
  type: private
  separator: /
  location: maildir:~/data
  inbox: yes
  list: yes
  subscriptions: yes
namespace:
  type: private
  separator: /
  prefix: Company/
  location: virtual:/var/mail/virtual:INDEX=MEMORY:LAYOUT=maildir++
  list: yes
lda:
  postmaster_address: postmas...@domain.com
  hostname: mail.domain.com
  mail_plugins: quota trash expire sieve virtual
  quota_full_tempfail: yes
  sendmail_path: /usr/sbin/sendmail
  auth_socket_path: /var/run/dovecot/auth-master
  log_path: /var/log/dovecot/dovecot-deliver.log
  info_log_path: /var/log/dovecot/dovecot-deliver.log
  global_script_path: /etc/dovecot/sieve/default.sieve
  sieve_global_dir: /etc/dovecot/sieve
auth default:
  mechanisms: plain login
  default_realm: domain.com
  cache_size: 10240
  cache_negative_ttl: 0
  user: dovecot_auth
  master_user_separator: *
  worker_max_count: 50
  passdb:
driver: passwd-file
args: /etc/dovecot/passdb/master.pwd
master: yes
  passdb:
driver: passwd-file
args: /etc/dovecot/passdb/users.pwd
  passdb:
driver: ldap
args: /etc/dovecot/dovecot-ldap.conf
  userdb:
driver: prefetch
  userdb:
driver: ldap
args: /etc/dovecot/dovecot-userdb-ldap.conf
  userdb:
driver: passwd-file
args: /etc/dovecot/passdb/users.pwd
  socket:
type: listen
client:
  path: /var/run/dovecot/auth-client
  mode: 432
  user: mail
  group: dovecot_auth
master:
   

Re: [Dovecot] How to see if sieve is active ?

2009-10-30 Thread Koenraad Lelong

Steffen Kaiser schreef:

On Thu, 29 Oct 2009, Thomas Leuxner wrote:


put something in the LDA section like this to record the activities:



  log_path = /var/log/dovecot-deliver.log
  info_log_path = /var/log/dovecot-deliver.log


The user deliver runs as probably may not write to this location, for 
testing you should chown a+rw these files or use syslog.




Hi,

This morning I enabled dovecot as virtual transport, and everything 
seemed OK, until I got complaints ;-). After investigation I found that 
when aliasses are mapped to multiple recipients I get following error :


Oct 30 09:25:19 lace3 postfix/pipe[19729]: 8A77E2D5B5B: 
to=some.b...@some.where.org, relay=dovecot, delay=2390, 
delays=2390/0.04/0/0.01, dsn=4.3.5, status=deferred (mail system 
configuration error)
Oct 30 09:25:19 lace3 postfix/pipe[19729]: warning: pipe flag `D' 
requires dovecot_destination_recipient_limit = 1


At the same time I made dovecot the virtual transport I did add :
dovecot_destination_recipient_limit = 1

This is what I use in postfix's master.cf :
dovecot	unix - n n - - pipe flags=DRhu user=vmail:vmail 
argv=/usr/lib/dovecot/deliver -d $(recipient)


Dovecot logfiles don't show anything. The errors are in the postfix log.

Any help ?


Regards,

Koenraad Lelong.


Re: [Dovecot] How to see if sieve is active ?

2009-10-30 Thread Charles Marcus
On 10/30/2009, Koenraad Lelong (dove...@ace-electronics.be) wrote:
 At the same time I made dovecot the virtual transport I did add :
 dovecot_destination_recipient_limit = 1 

Postconf -n output?


Re: [Dovecot] How to see if sieve is active ?

2009-10-30 Thread Charles Marcus
On 10/30/2009 6:25 AM, Charles Marcus wrote:
 On 10/30/2009, Koenraad Lelong (dove...@ace-electronics.be) wrote:
 At the same time I made dovecot the virtual transport I did add :
 dovecot_destination_recipient_limit = 1 
 
 Postconf -n output?

Nevermind, I forgot postconf -n doesn't 'see' this parameter...


Re: [Dovecot] How to see if sieve is active ?

2009-10-30 Thread Koenraad Lelong

Charles Marcus schreef:

On 10/30/2009 6:25 AM, Charles Marcus wrote:

On 10/30/2009, Koenraad Lelong (dove...@ace-electronics.be) wrote:

At the same time I made dovecot the virtual transport I did add :
dovecot_destination_recipient_limit = 1 

Postconf -n output?


Nevermind, I forgot postconf -n doesn't 'see' this parameter...


Hi Charles,

Included is the full main.cf.
Don't forget I reverted back to virtual transport until I know what's 
wrong with the dovecot transport.


Regards,

Koenraad Lelong.
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
myhostname = mailbox.ace-electronics.be
mydomain = ace-electronics.be
local_recipient_maps =
unknown_local_recipient_reject_code = 550
mynetworks = 192.168.0.0/20, 127.0.0.0/8
relayhost = out.telenet.be
home_mailbox = Maildir/
header_checks = pcre:/etc/postfix/maps/header_checks.short
nested_header_checks =
debug_peer_level = 2
debugger_command =
 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
 xxgdb $daemon_directory/$process_name $process_id  sleep 5
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = maildrop
html_directory = /usr/share/doc/packages/postfix/html
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/packages/postfix/samples
readme_directory = /usr/share/doc/packages/postfix/README_FILES
inet_protocols = all
biff = no
mail_spool_directory = /var/mail
canonical_maps = hash:/etc/postfix/canonical
relocated_maps = hash:/etc/postfix/relocated
transport_maps = hash:/etc/postfix/transport
virtual_alias_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, 
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, 
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
virtual_mailbox_domains = 
proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = 
proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, 
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
virtual_mailbox_limit = 1024
virtual_gid_maps = static:97
virtual_mailbox_base = /net/mail
virtual_transport = virtual
dovecot_destination_recipient_limit = 1 
virtual_uid_maps = static:499
virtual_minimum_uid = 499
sender_canonical_maps = hash:/etc/postfix/sender_canonical
masquerade_exceptions = root
masquerade_classes = envelope_sender, header_sender, header_recipient
program_directory = /usr/lib/postfix
masquerade_domains = 
mydestination = $myhostname, localhost.$mydomain
defer_transports = 
disable_dns_lookups = no
mailbox_command = 
mailbox_transport = 
strict_8bitmime = no
disable_mime_output_conversion = no
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/spammers
strict_rfc821_envelopes = no
smtpd_recipient_restrictions = 
permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,reject_rbl_client
 zen.spamhaus.org
smtp_sasl_auth_enable = no
alias_maps = hash:/etc/aliases
mailbox_size_limit = 0
message_size_limit = 1024
content_filter = smtp-amavis:[127.0.0.1]:10024
disable_vrfy_command = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_localdomain = 
broken_sasl_auth_clients = yes
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_key_file = /etc/postfix/certificate/mailboxkey.pem
smtpd_tls_cert_file = /etc/postfix/certificate/mailbox.pem
smtpd_tls_CAfile = /etc/postfix/certificate/cacert.org.pem
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom


[Dovecot] Dovecot in-house benchmarking

2009-10-30 Thread Joseba Torre
Hi,

Before some major changes in our infrastructure, I was interested in 
the performance impact of moving indexes to our NAS (Emc Celerra 
v5.5). So I downloaded both dovecot-1.1.19 and dovecot-1.2.6, compiled 
them and wrote 2 confs for each of them, one with local indexes and 
another with indexes in the NAS.

Then I created 19 pam users, and tested system performance this way:
- uninstall current installed version
- install a new version
- start dovecot
- for each user run:
imaptest user=user pass=pass host=localhost port=143
mbox=${MBOX} seed=123 secs=300 | tail -1  file
- stop dovecot

I'm not sure if these tests are real, but our results are:
* In our conf, 1.1.19 and 1.2.6 performance are roughly the same
* Moving the indexes to our NAS makes the system 3 times slower

As we currently only have 1 system accessing mails or indexes, I tried 
later with nfs_* = no, and mmap_disable = no. This makes performance 
10% better in any situation.

Our testing setup (very close to the real one)
- Dell PowerEdge 2850, 2 P4 Xeon 3GHz, 3GB RAM
- RHEL 4.7 (not sure about this, the last RHEL4) 32 bits
- mailboxes are always in a nfs filesystem
- for testing mbox file I've used dovecot-cvs.mbox

I've attached a couple of graphs to show this results (I've a lot of 
them, but result are pretty close from one to another). Also, dovecot 
-n output for 1.2.6 with indexes in the NAS. Only needed changes have 
been applied from one conf to another.

If you feel that the benchmark can be more real with some changes, 
just tell me. Also, if you are interested in the rest of graphs or 
date, tell me.

Next week I'll be quite busy, but as soon as possible I'll test with 
an iSCSI disk for indexes.

Aaagur.
-- 
Joseba Torre. Vicegerencia de TICs, área de Explotación
attachment: nfs_test_126.pngattachment: local vs nas indexes-fetch.png# 1.2.6: /usr/local/etc/dovecot.conf
# OS: Linux 2.6.9-89.0.11.ELsmp i686 Red Hat Enterprise Linux AS release 4 
(Nahant Update 8) 
syslog_facility: local1
protocols: imap imaps pop3 pop3s
listen(default): *:143
listen(imap): *:143
listen(pop3): *:110
ssl_listen(default): *:993
ssl_listen(imap): *:993
ssl_listen(pop3): *:995
ssl_cert_file: /usr/share/ssl/certs/lgux51.pem
ssl_key_file: /usr/share/ssl/certs/lgux51.pem
disable_plaintext_auth: no
login_dir: /usr/local/var/run/dovecot/login
login_executable(default): /usr/local/libexec/dovecot/imap-login
login_executable(imap): /usr/local/libexec/dovecot/imap-login
login_executable(pop3): /usr/local/libexec/dovecot/pop3-login
login_process_per_connection: no
login_max_processes_count: 256
max_mail_processes: 1024
mail_max_userip_connections: 1000
first_valid_uid: 100
mail_location: 
maildir:~/Maildir:INDEX=/var/dovecot-nas/%u/indices:CONTROL=/var/dovecot-nas/%u/control
lock_method: dotlock
mail_executable(default): /usr/local/libexec/dovecot/imap
mail_executable(imap): /usr/local/libexec/dovecot/imap
mail_executable(pop3): /usr/local/libexec/dovecot/pop3
mail_plugin_dir(default): /usr/local/lib/dovecot/imap
mail_plugin_dir(imap): /usr/local/lib/dovecot/imap
mail_plugin_dir(pop3): /usr/local/lib/dovecot/pop3
pop3_uidl_format(default): %08Xu%08Xv
pop3_uidl_format(imap): %08Xu%08Xv
pop3_uidl_format(pop3): %v.%u
lda:
  postmaster_address: joseba.to...@ehu.es
  mail_plugins: quota cmusieve
  mail_plugins_dir: /usr/local/lib/dovecot/lda
  log_path: 
  info_log_path: 
  syslog_facility: local2
auth default:
  cache_size: 1000
  cache_ttl: 6000
  master_user_separator: *
  debug: yes
  passdb:
driver: ldap
args: /usr/local/etc/dovecot-ldap.conf
  passdb:
driver: pam
  passdb:
driver: passwd-file
args: /usr/local/etc/dovecot-master.conf
master: yes
  userdb:
driver: prefetch
  userdb:
driver: passwd
  socket:
type: listen
master:
  path: /var/run/dovecot/auth-master
  mode: 384
plugin:
  quota: fs


Re: [Dovecot] expire plugin + --exec-mail in 1.2.6 version

2009-10-30 Thread Nikita Koshikov
On Thu, 29 Oct 2009 13:10:37 -0400
Timo Sirainen t...@iki.fi wrote:

 On Wed, 2009-10-28 at 10:30 +0200, Nikita Koshikov wrote:
  The  problem that some users have their own quotas stored in ldap. 
 
 So the quota_rule should be returned by userdb lookup from ldap, right?
 
One more clean example.
For user koshiko...@domain.com I change quota in AD to 600M(default user quota 
is 512M,). After successful login to imap account, maildirsize is(first 2 
lines):

629145600S
260658345 5484

So, quota value read from ldap database and applied to user's mailbox.
Then I run /usr/sbin/dovecot --exec-mail ext 
/usr/libexec/dovecot/expire-tool.sh --test:

Info: Loading modules from directory: /usr/lib/dovecot/imap
Info: Module loaded: /usr/lib/dovecot/imap/lib10_quota_plugin.so
Info: Module loaded: /usr/lib/dovecot/imap/lib11_trash_plugin.so
Info: Module loaded: /usr/lib/dovecot/imap/lib20_autocreate_plugin.so
Info: Module loaded: /usr/lib/dovecot/imap/lib20_expire_plugin.so
Info: Module loaded: /usr/lib/dovecot/imap/lib20_virtual_plugin.so
Info: Module loaded: /usr/lib/dovecot/imap/lib20_zlib_plugin.so
Info: Quota root: name=Mailbox quota backend=maildir args=
Info: Quota rule: root=Mailbox quota mailbox=* bytes=524288000 messages=0
Info: Quota rule: root=Mailbox quota mailbox=Trash bytes=52428800 (10%) 
messages=0
Info: Quota warning: bytes=471859200 (90%) messages=0 
command=/etc/dovecot/plugins/quota_warning.sh 90
Info: expire: pattern=Trash type=expunge secs=2592000
Info: expire: pattern=Spam type=expunge secs=2592000
Info: auth input: quota_rule=*:bytes=629145600
Info: auth input: uid=8
Info: auth input: gid=12
Info: auth input: home=/data/mail/domain.com/koshikov.n
Info: auth input: mail=maildir:~/data
Info: Namespace: type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, 
subscriptions=yes
Info: maildir: data=~/data
Info: maildir++: root=/data/mail/domain.com/koshikov.n/data, index=, control=, 
inbox=/data/mail/domain.com/koshikov.n/data
Info: Namespace: type=private, prefix=Agromat/, sep=/, inbox=no, hidden=no, 
list=yes, subscriptions=no
Info: virtual: data=/var/mail/virtual:INDEX=MEMORY:LAYOUT=maildir++
Info: maildir++: root=/var/mail/virtual, index=, control=, inbox=
Info: Namespace : Using permissions from /data/mail/domain.com/koshikov.n/data: 
mode=0700 gid=-1
Info: trash plugin: Added 'Trash' with priority 1
Info: trash plugin: Added 'Spam' with priority 2
Info: koshiko...@domain.com/Spam: seq=1 uid=1933: Expunge
Info: koshiko...@domain.com/Spam: timestamp 1256902423 (Fri Oct 30 13:33:43 
2009) - 1256903611 (Fri Oct 30 13:53:31 2009)

Quota_rule are different from auth section and quota root\rule section. After 
expire-tool expunges e-mails, the maildirsize file become:

524288000S
260686038 5487

Which is default quota_rule value, not from ldap database.



[Dovecot] Author wanted for Dovecot article in Linux Magazine (Germany)

2009-10-30 Thread Markus Feilner
Hi list,
I am an editor at the German Linux Magazine and I am searching for an author or 
input on Dovecot, 
its advantages and especially the recent features. I had organized some 
authors, but unfortunately 
they don't have time right now. :-) Nevertheless I heard many positive comments 
on Dovecot.

I can write or help writing the article, but I would love to have some input 
from an experienced 
dovecot admin - perhaps with some stunning, unusual setup that might interest 
our readers (most of 
them are skilled admins and programmers...) Something that can't be easily done 
with other mail 
servers would be great, something spectacular that is suitable to convince an 
mail admin why he 
should migrate to Dovecot.

It won't be long, just about 2-3 pages (a maximum of 15000 characters) 
including screen shots and/or 
listings, code,  10 Links and an author's biography with photo. 

Anybody interested? That would be great, feel free to send me a mail to:
mfeil...@linuxnewmedia.de

Unfortunately, we don't have much time, there's only two weeks left, but I will 
help and do a lot of 
work for the article. And don't worry about language! :-)

Thanks a lot!

-- 

Best Regards - Mit freundlichen Gruessen
Markus Feilner

-
Feilner IT Linux  GIS
Linux Solutions, Training, Seminare und Workshops - auch Inhouse
Koetztingerstr 6c93057 Regensburg
Telefon:+49 941 8 10 79 89
Mobil:  +49 170 3 02 70 92
WWW: www.feilner-it.net mail: mfeil...@feilner-it.net
Bei Xing: http://www.xing.com/profile/Markus_Feilner
--
My OpenVPN book - OPENVPN : Building and Integrating Virtual Private Networks
http://www.packtpub.com/openvpn/book
My new book - Out now: SCALIX Linux Administrator's Guide
http://www.packtpub.com/scalix/book


Re: [Dovecot] expire plugin + --exec-mail in 1.2.6 version

2009-10-30 Thread Timo Sirainen
On Fri, 2009-10-30 at 14:03 +0200, Nikita Koshikov wrote:
   The  problem that some users have their own quotas stored in ldap. 

See if the attached patch helps? I'm a bit afraid that it could also
break something. If it does, there's really no easy way to get this
fixed before v2.0.

diff -r a0d72e0d88dd src/plugins/expire/expire-tool.c
--- a/src/plugins/expire/expire-tool.c	Thu Oct 29 17:40:33 2009 -0400
+++ b/src/plugins/expire/expire-tool.c	Fri Oct 30 13:15:45 2009 -0400
@@ -52,6 +52,7 @@
 		/* user no longer exists */
 		return 0;
 	}
+	module_dir_init(modules);
 
 	ctx-mail_user = mail_user_init(user);
 	mail_user_set_home(ctx-mail_user, getenv(HOME));
@@ -64,6 +65,7 @@
 {
 	mail_user_unref(ctx-mail_user);
 	i_free_and_null(ctx-user);
+	module_dir_deinit(modules);
 }
 
 static int
@@ -265,8 +267,6 @@
 	mail_storage_register_all();
 	mailbox_list_register_all();
 
-	module_dir_init(modules);
-
 	expire_get_global_mail_ids();
 
 	base_dir = getenv(BASE_DIR);


signature.asc
Description: This is a digitally signed message part


[Dovecot] More dovecot-2.0.alpha2 problems

2009-10-30 Thread Mike Abbott
1.  My earlier patch to fix a typo in array.h was not good enough.   
Here's one that not only compiles, but also doesn't crash:
--- dovecot-2.0.alpha2/src/lib/array.h	2009-10-08 10:04:35.0  
-0500

+++ dovecot/src/lib/array.h 2009-10-29 20:47:47.0 -0500
@@ -72,8 +72,7 @@
 (elem)++)
 #  define array_foreach_modifiable(array, elem) \
for (elem = ARRAY_TYPE_CAST_MODIFIABLE(array) \
-   buffer_get_modifiable_data((array)-arr.buffer, NULL)) 
+ \
-   (array)-arr.buffer-used; \
+   buffer_get_modifiable_data((array)-arr.buffer, NULL); \
 	 elem != CONST_PTR_OFFSET(*(array)-v, (array)-arr.buffer- 
used); \

 (elem)++)
 #endif

2.  Sometimes I see a flood of these errors in the log:
[...]
Fri Oct 30 14:45:23 server dovecot[9585]: imap: service(imap): dup2s  
failed
Fri Oct 30 14:45:23 server dovecot[9585]: imap-login: Login:  
user=userX, method=PLAIN, rip=192.168.1.8, lip=192.168.1.7, pid=11362
Fri Oct 30 14:45:23 server dovecot[9585]: imap(pid 11362 user userX):  
Connection closed bytes=118/934
Fri Oct 30 14:45:23 server dovecot[9585]: imap: dup2(-1, 5) failed:  
Bad file descriptor
Fri Oct 30 14:45:23 server dovecot[9585]: imap: service(imap): dup2s  
failed
Fri Oct 30 14:45:23 server dovecot[9585]: imap-login: Login:  
user=userY, method=PLAIN, rip=192.168.1.8, lip=192.168.1.7, pid=11363
Fri Oct 30 14:45:23 server dovecot[9585]: imap(pid 11363 user userY):  
Connection closed bytes=118/972
Fri Oct 30 14:45:23 server dovecot[9585]: imap: dup2(-1, 5) failed:  
Bad file descriptor
Fri Oct 30 14:45:23 server dovecot[9585]: imap: service(imap): dup2s  
failed

[...]

3.  imap crashed when using mdbox:
Fri Oct 30 14:54:49 server dovecot[11491]: imap(pid 11938 user userZ):  
dbox /Volumes/Mail/userZ/mailboxes/INBOX/Sent/dbox-Mails: map  
uidvalidity mismatch (1256918863 vs 1256919073)
Fri Oct 30 14:54:49 server dovecot[11491]: imap(pid 11938 user userZ):  
Disconnected: Internal error occurred. Refer to server log for more  
information. [2009-10-30 14:54:49] bytes=553447/2146313
Fri Oct 30 14:54:49 server dovecot[11491]: imap(pid 11938 user userZ):  
dbox /Volumes/Mail/userZ/storage: rebuilding indexes
Fri Oct 30 14:54:49 server dovecot[11491]: imap(pid 11938 user user):  
Panic: file dbox-file.c: line 308 (dbox_file_get_mail_stream):  
assertion failed: (file-input != NULL)


0   libSystem.B.dylib   0x7fff875f4eba __kill + 10
1   libSystem.B.dylib   0x7fff875f4eac kill + 14
2   libSystem.B.dylib   0x7fff87683519 raise + 25
3   libSystem.B.dylib   0x7fff876a4e12 abort + 90
4   libdovecot.0.dylib  0x0001000e8027  
i_set_failure_file + 275
5   libdovecot.0.dylib  0x0001000e6eef  
i_set_failure_internal + 103

6   libdovecot.0.dylib  0x0001000e76d2 i_debug + 0
7   libdovecot-storage.0.dylib  0x00010005768a  
dbox_file_seek_next + 0
8   libdovecot-storage.0.dylib  0x00010005772a  
dbox_file_seek_next + 160
9   libdovecot-storage.0.dylib  0x000100084266  
mdbox_storage_rebuild + 1406
10  libdovecot-storage.0.dylib  0x000100085617  
mdbox_mailbox_alloc + 1271
11  libdovecot-storage.0.dylib  0x0001000271e1  
mail_storage_unref + 93
12  libdovecot-storage.0.dylib  0x000100023386  
mail_namespace_get_storage_name + 162
13  libdovecot-storage.0.dylib  0x000100023429  
mail_namespaces_deinit + 35
14  libdovecot-storage.0.dylib  0x000100028c39  
mail_user_alloc + 311
15  libdovecot-storage.0.dylib  0x00010002889a  
mail_user_unref + 40
16  imap0x00017fa4  
client_destroy + 404
17  imap0x00016eb3  
client_input + 87
18  libdovecot.0.dylib  0x0001000eca50  
io_loop_handler_run + 224
19  libdovecot.0.dylib  0x0001000ed55a io_loop_run  
+ 56
20  libdovecot.0.dylib  0x0001000e393d  
master_service_run + 27

21  imap0x0001fb45 main + 557
22  imap0x00010dd0 start + 52

Hope this helps.


Re: [Dovecot] pop3-login: Fatal: io_loop_handle_add: epoll_ctl(1, 5):

2009-10-30 Thread Victor Benincasa
I'm having this same issue in one of my servers since I updated my Dovecot 
from 1.2.4 to 1.2.5. The problem still with 1.2.6 too.


I cannot find what is triggering the problem, but it happens aleatory and I 
need to restart the dovecot daemon to make the service run properly.


My info:

$ dovecot -n
# 1.2.6: /etc/dovecot.conf
# OS: Linux 2.6.18-164.el5PAE i686 CentOS release 5.4 (Final)
protocols: imap imaps pop3 pop3s
listen: xx.xx.xx.xx
ssl_cert_file: /etc/httpd/conf/ssl.crt/server.crt
ssl_key_file: /etc/httpd/conf/ssl.key/server.key
disable_plaintext_auth: no
login_dir: /var/run/dovecot/login
login_executable(default): /usr/libexec/dovecot/imap-login
login_executable(imap): /usr/libexec/dovecot/imap-login
login_executable(pop3): /usr/libexec/dovecot/pop3-login
login_processes_count: 16
verbose_proctitle: yes
mail_access_groups: mail
mail_location: maildir:~/Maildir
mail_executable(default): /usr/libexec/dovecot/imap
mail_executable(imap): /usr/libexec/dovecot/imap
mail_executable(pop3): /usr/libexec/dovecot/pop3
mail_plugins(default): quota imap_quota
mail_plugins(imap): quota imap_quota
mail_plugins(pop3):
mail_plugin_dir(default): /usr/lib/dovecot/imap
mail_plugin_dir(imap): /usr/lib/dovecot/imap
mail_plugin_dir(pop3): /usr/lib/dovecot/pop3
auth default:
 username_chars: 
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@

 verbose: yes
 passdb:
   driver: passwd-file
   args: username_format=%n /etc/virtual/%d/passwd
 userdb:
   driver: passwd-file
   args: username_format=%n /etc/virtual/%d/passwd
plugin:
 quota: maildir
 quota_rule: *:storage=200M
 quota_rule2: Trash:storage=100%%


Something else I can help? Or additional information that I can provide?


--
Victor Benincasa 



[Dovecot] Another 2.0.alpha2 panic

2009-10-30 Thread Mike Abbott

This time using maildir instead of mdbox.

Fri Oct 30 21:08:16 server dovecot[27407]: lda(pid 27407 user userW):  
Panic: file istream.c: line 104 (i_stream_read): assertion failed:  
((size_t)ret+old_size == _stream-pos - _stream-skip)

0   libSystem.B.dylib   0x7fff875f4eba __kill + 10
1   libSystem.B.dylib   0x7fff875f4eac kill + 14
2   libSystem.B.dylib   0x7fff87683519 raise + 25
3   libSystem.B.dylib   0x7fff876a4e12 abort + 90
4   libdovecot.0.dylib	0x0001000d1027  
i_set_failure_file + 275
5   libdovecot.0.dylib	0x0001000d03ec  
i_syslog_error_handler + 0

6   libdovecot.0.dylib  0x0001000d06d2 i_debug + 0
7   libdovecot.0.dylib	0x0001000d9c00 i_stream_read +  
392
8   libdovecot.0.dylib	0x0001000d8104  
i_stream_create_limit + 436

9   libdovecot.0.dylib  0x0001000d9ab7 i_stream_read + 63
10  libdovecot.0.dylib	0x0001000d9cf1  
i_stream_read_data + 103
11  libdovecot.0.dylib	0x0001000c4bef  
message_parse_header_next + 145
12  libdovecot.0.dylib	0x0001000c646f  
message_parser_init_from_parts + 287
13  libdovecot.0.dylib	0x0001000c5a4b  
message_parser_parse_next_block + 133
14  libdovecot.0.dylib	0x0001000c5bc8  
message_parser_parse_header + 64
15  libdovecot-storage.0.dylib	0x000100043883  
index_mail_parse_headers + 189
16  libdovecot-storage.0.dylib	0x000100043b53  
index_mail_get_header_stream + 597
17  libdovecot-storage.0.dylib	0x000100043f89  
index_mail_get_first_header + 49
18  libdovecot-storage.0.dylib	0x000100011d1d  
mail_get_first_header + 15
19  dovecot-lda   	0x00012eda  
mail_deliver_get_address + 24

20  dovecot-lda 0x000120f0 main + 2484
21  dovecot-lda 0x00011734 start + 52



Re: [Dovecot] Another 2.0.alpha2 panic

2009-10-30 Thread Timo Sirainen

On Oct 30, 2009, at 11:30 PM, Mike Abbott wrote:

Fri Oct 30 21:08:16 server dovecot[27407]: lda(pid 27407 user  
userW): Panic: file istream.c: line 104 (i_stream_read): assertion  
failed: ((size_t)ret+old_size == _stream-pos - _stream-skip)


Was this called with something like:

dovecot-lda  file

or

cat file | dovecot-lda

i.e. was the input stream seekable?

Anyway, I did fixes to both of them recently:

http://hg.dovecot.org/dovecot-2.0/rev/65c6568515ce
http://hg.dovecot.org/dovecot-2.0/rev/891d8650f3f8
http://hg.dovecot.org/dovecot-2.0/rev/86110f830311


Re: [Dovecot] pop3-login: Fatal: io_loop_handle_add: epoll_ctl(1, 5):

2009-10-30 Thread Timo Sirainen

On Oct 30, 2009, at 7:08 PM, Victor Benincasa wrote:

I'm having this same issue in one of my servers since I updated my  
Dovecot from 1.2.4 to 1.2.5. The problem still with 1.2.6 too.


Today I started thinking it has to be because some file descriptor is  
opened as fd 5 initially, but it's set close-on-exec flag and so when  
login process execs it probably opens epoll fd as 5 and then trying to  
epoll_ctl() it it fails. But I kind of forgot to check it today.  
Although in any way that would require something like SIGHUP to happen  
just before the failure starts..


Can you anyway check if reversing this patch solves the problem for  
you?  http://dovecot.org/list/dovecot/2009-October/044140.html