Hello all!
dovecot 1.1.6
Use lazy_expunge plugin call core on connect.
Core:
bt full
#0 lazy_expunge_mail_expunge (_mail=0x2ac06e9b89e8) at
lazy-expunge-plugin.c:103
lt = (struct lazy_expunge_transaction *) 0x2ac06e9b86e0
deststorage = <value optimized out>
#1 0x000000000041cefc in imap_expunge (box=0x2ac06e988de8,
next_search_arg=0x0) at imap-expunge.c:31
ctx = (struct mail_search_context *) 0x2ac06e9b87d0
t = (struct mailbox_transaction_context *) 0x2ac06e9aed10
mail = (struct mail *) 0x2ac06e9b89e8
search_arg = {next = 0x0, type = SEARCH_FLAGS, value = {subargs
= 0x0, seqset = 0x0, str = 0x0, time = 0, size = 0,
flags = MAIL_DELETED, keywords = 0x0}, context = 0x0, hdr_field_name
= 0x0, not = 0, match_always = 0, result = -1}
failed = <value optimized out>
#2 0x00000000004171da in cmd_expunge (cmd=0x2ac06e982378) at
cmd-expunge.c:62
client = (struct client *) 0x2ac06e982000
#3 0x000000000041b53c in client_command_input (cmd=0x2ac06e982378) at
client.c:580
client = (struct client *) 0x2ac06e982000
command = <value optimized out>
__PRETTY_FUNCTION__ = "client_command_input"
#4 0x000000000041b5f2 in client_command_input (cmd=0x2ac06e982378) at
client.c:629
client = (struct client *) 0x2ac06e982000
command = (struct command *) 0x0
__PRETTY_FUNCTION__ = "client_command_input"
#5 0x000000000041bdaf in client_handle_input (client=0x2ac06e982000) at
client.c:670
_data_stack_cur_id = 3
ret = <value optimized out>
remove_io = <value optimized out>
handled_commands = false
#6 0x000000000041bfd3 in client_input (client=0x2ac06e982000) at
client.c:725
cmd = <value optimized out>
output = (struct ostream *) 0x2ac06e982298
bytes = 11
__PRETTY_FUNCTION__ = "client_input"
#7 0x000000000048c568 in io_loop_handler_run (ioloop=<value optimized
out>) at ioloop-epoll.c:203
ctx = <value optimized out>
event = (const struct epoll_event *) 0x2ac06e93edc0
list = (struct io_list *) 0x2ac06e981cb0
io = (struct io_file *) 0x2ac06e981c50
tv = {tv_sec = 1799, tv_usec = 999456}
events_count = <value optimized out>
t_id = 2
msecs = <value optimized out>
ret = 1
i = 0
call = <value optimized out>
#8 0x000000000048b6ad in io_loop_run (ioloop=0x2ac06e93eb60) at
ioloop.c:320
No locals.
#9 0x0000000000423471 in main (argc=<value optimized out>, argv=0x0,
envp=0x49a7f7) at main.c:293
Config:
dovecot -n
# 1.1.6: /etc/dovecot.conf
# OS: Linux 2.6.18-92.1.13.el5 x86_64 CentOS release 5.2 (Final)
base_dir: /var/run/dovecot/
log_path: /var/log/dovecot/dovecot.log
info_log_path: /var/log/dovecot/dovecot.info.log
protocols: imap imaps pop3 pop3s managesieve
listen: *
ssl_listen: *
ssl_cipher_list: ALL:!LOW:!SSLv2
disable_plaintext_auth: yes
verbose_ssl: yes
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_executable(managesieve): /usr/libexec/dovecot/managesieve-login
login_greeting_capability(default): yes
login_greeting_capability(imap): yes
login_greeting_capability(pop3): no
login_greeting_capability(managesieve): no
verbose_proctitle: yes
mail_access_groups: vmail
mail_uid: vmail
mail_gid: vmail
mail_location:
maildir:~/:INBOX=~/.INBOX:INDEX=/data/maildata/dovecot/INDEX/%Lu/mail-indexes
maildir_stat_dirs: yes
maildir_copy_preserve_filename: yes
mail_drop_priv_before_exec: yes
mail_executable(default): /usr/local/bin/dovecot-imap-proxy
mail_executable(imap): /usr/local/bin/dovecot-imap-proxy
mail_executable(pop3): /usr/local/bin/dovecot-pop3-proxy
mail_executable(managesieve): /usr/local/bin/dovecot-managesieve-proxy
mail_plugins(default): quota imap_quota expire fts fts_squat listescape
acl antispam zlib autocreate trash
mail_plugins(imap): quota imap_quota expire fts fts_squat listescape acl
antispam zlib autocreate trash lazy_expunge
mail_plugins(pop3): quota expire
mail_plugins(managesieve):
mail_plugin_dir(default): /usr/lib64/dovecot/imap
mail_plugin_dir(imap): /usr/lib64/dovecot/imap
mail_plugin_dir(pop3): /usr/lib64/dovecot/pop3
mail_plugin_dir(managesieve): /usr/lib64/dovecot/managesieve
imap_client_workarounds(default): outlook-idle delay-newmail
imap_client_workarounds(imap): outlook-idle delay-newmail
imap_client_workarounds(pop3):
imap_client_workarounds(managesieve):
pop3_client_workarounds(default):
pop3_client_workarounds(imap):
pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh
pop3_client_workarounds(managesieve):
dict_db_config: /etc/dovecot/dovecot-db.conf
sieve_storage(default):
sieve_storage(imap):
sieve_storage(pop3):
sieve_storage(managesieve): /data/maildata/dovecot/sieve/%u
sieve(default):
sieve(imap):
sieve(pop3):
sieve(managesieve): ~/.dovecot.sieve
namespace:
type: private
separator: /
inbox: yes
list: yes
subscriptions: yes
namespace:
type: private
separator: /
prefix: Archive/
location:
maildir:~/archive:INDEX=/data/maildata/dovecot/INDEX/%Lu/archive-indexes:CONTROL=/data/maildata/dovecot/CONTROL/%Lu/archive-control
list: yes
subscriptions: yes
namespace:
type: private
separator: /
prefix: EXPUNGED/
location: maildir:~/expunged
list: yes
subscriptions: yes
namespace:
type: private
separator: /
prefix: DELETED/
location: maildir:~/deleted
list: yes
subscriptions: yes
namespace:
type: private
separator: /
prefix: DELETED/EXPUNGED/
location: maildir:~/deleted/expunged
list: yes
subscriptions: yes
namespace:
type: public
separator: /
prefix: Public/
location:
maildir:/data/maildata/mailboxes/%d/public/:INDEX=/data/maildata/dovecot/INDEX/%Lu/public
list: yes
namespace:
type: public
separator: /
prefix: Public/info/
location:
maildir:/data/maildata/mailboxes/%Ld/info:INDEX=/data/maildata/dovecot/INDEX/%Lu/public-info
list: yes
namespace:
type: public
separator: /
prefix: Public/fax/
location:
maildir:/data/maildata/mailboxes/abn.ru/fax:INDEX=/data/maildata/dovecot/INDEX/%Lu/public-fax
list: yes
namespace:
type: public
separator: /
prefix: Public/info/Archive/
location:
maildir:/data/maildata/mailboxes/%Ld/info/archive:INDEX=/data/maildata/dovecot/INDEX/%Lu/public-info-archive
list: yes
namespace:
type: public
separator: /
prefix: Admins/
location:
maildir:/data/maildata/mailboxes/abn.ru/root/:INDEX=/data/maildata/dovecot/INDEX/%Lu/root-indexes
list: yes
namespace:
type: public
separator: /
prefix: Users/
location:
maildir:/data/maildata/mailboxes/%d/shared_users/:INDEX=/data/maildata/dovecot/INDEX/%Lu/shared_users
list: yes
subscriptions: yes
auth default:
mechanisms: plain login
realms: abn.ru
default_realm: abn.ru
cache_size: 1000
cache_negative_ttl: 0
username_format: %Lu
master_user_separator: *
worker_max_request_count: 500
passdb:
driver: passwd-file
args: /etc/dovecot/passwd.masterusers
pass: yes
master: yes
passdb:
driver: passwd-file
args: username_format=%Ln /etc/dovecot/passwd.static
passdb:
driver: pam
args: cache_key=%u%r username=%Ln nochangeuser=yes dovecot
userdb:
driver: static
args: allow_all_users=yes uid=501 gid=501 username=%Ln domain=%Ld
home=/data/maildata/mailboxes/%Ld/%Ln
socket:
type: listen
client:
path: /var/spool/postfix/private/dovecot-smtp-auth
mode: 432
user: postfix
group: postfix
master:
path: /var/run/dovecot/auth-master
mode: 438
user: vmail
group: vmail
plugin:
quota: dict:user:%u:proxy::quotadict
quota_rule: *:storage=5G
quota_rule2: Trash:storage=500M
quota_rule3: spam:ignore
quota_rule4: Spam:ignore
quota_warning: storage=95%% /usr/local/bin/quota-warn.sh 95
quota_warning2: storage=80%% /usr/local/bin/quota-warn.sh 80
acl: vfile:/data/maildata/dovecot/dovecot-acls:cache_secs=300
trash: /etc/dovecot/trash.conf
expire: Trash 7 Trash/* 7 Spam 14 spam 14 spam/* 14
expire_dict: proxy::expiredict
lazy_expunge: EXPUNGED/ DELETED/ DELETED/EXPUNGED/
autocreate: spam
autosubscribe: spam
fts: squat
fts_squat: partial=4 full=10
antispam_trash: trash;Trash;Deleted Items;
antispam_spam: SPAM;spam;Spam;Junk;&BB0ENQQ2BDUEOwQwBE~E8-
&BD8EPgRHBEIEMA-;junk
antispam_mail_sendmail: /usr/local/bin/spam-train
antispam_mail_sendmail_args: --for;%u
antispam_mail_spam: spam
antispam_mail_notspam: ham
antispam_mail_tmpdir: /tmp
dict:
quotadict: mysql:/etc/dovecot/dovecot-dict-quota.conf
expiredict: mysql:/etc/dovecot/dovecot-dict-expire.conf