Hello,
there seems to be an error writing into the expire database defined by dict.
dict {
expire = sqlite:/usr/dovecot/etc/dovecotbeta-dict-expire.conf
}
...
plugin {
...
expire = AutoCleanSpam 1d
expire_dict = proxy::expire
}
with dovecotbeta-dict-expire.conf:
connect = /test/addons/expire/expiresbeta.db
map {
pattern = shared/expire/$user/$mailbox
table = expires
value_field = expire_stamp
fields {
username = $user
mailbox = $mailbox
}
}
sqlite shows schema:
CREATE TABLE expires (
username varchar(100) not null,
mailbox varchar(255) not null,
expire_stamp integer not null,
primary key (username, mailbox)
);
CREATE TRIGGER mergeexpires BEFORE INSERT ON expires FOR EACH ROW
BEGIN
UPDATE expires SET expire_stamp=NEW.expire_stamp
WHERE username = NEW.username AND mailbox = NEW.mailbox;
SELECT raise(ignore)
WHERE (SELECT 1 FROM expires WHERE username =
NEW.username AND mailbox = NEW.mailbox) IS NOT NULL;
END;
Delivering of an email into folder AutoCleanSpam via sieve script works
fine.
error-log:
Apr 08 12:57:05 lda(account1): Debug: sieve: executing compiled script
/addons/sieve/account1.sieve
Apr 08 12:57:05 lda(account1): Debug: expire: Mails expire in 86400 secs
in mailbox: AutoCleanSpam
Apr 08 12:57:05 dict: Error: sqlite: exec(INSERT INTO expires
(expire_stamp,username,mailbox) VALUES
('1270810625','account1','AutoCleanSpam')) failed:
unable to open
database file (14)
Apr 08 12:57:05 master: Error: service(dict): child 10936 killed with
signal 11 (core not dumped - set drop_priv_before_exec=yes)
Apr 08 12:57:05 master: Error: service(dict): command startup failed,
throttling
deliver-log:
Apr 08 12:57:05 lda(account1): Error: read(/var/run/dovecot//dict)
failed: Remote disconnected
Apr 08 12:57:05 lda(account1): Info: sieve:
msgid=<4BBDB681.10003 at hu-berlin.de>: stored mail into mailbox
'AutoCleanSpam'
If I use a non existing database filename in
dovecotbeta-dict-expire.conf like
connect = /test/addons/expire/expiresbeta.dbbbbb
I see in the log
dict: Error: sqlite: open(/test/addons/expire/expiresbeta.dbbbbb)
failed: unable to open database file
So I'm sure, having the rigth config file.
Moreover how to start expire-tool now?
dovecot --exec-mail ... is no more valid.
Additional:
/usr/dovecotbeta/sbin/dovecot --build-options
Build options: ioloop=poll ipv6 openssl
Mail storages: cydir dbox maildir mbox mdbox raw shared
SQL drivers: sqlite
Passdb: checkpassword ldap pam passwd passwd-file shadow sql
Userdb: checkpassword ldap passwd prefetch passwd-file sql static
/usr/dovecotbeta/sbin/dovecot -n
# 2.0.beta4: /usr/dovecotbeta/etc/dovecot/dovecot.conf
# OS: SunOS 5.9 sun4u
auth_debug = yes
auth_username_chars =
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345
67890
auth_verbose = yes
base_dir = /var/run/dovecot/
debug_log_path = /var/log/dovecot-error
default_client_limit = 6144
dict {
expire = sqlite:/usr/dovecot/etc/dovecotbeta-dict-expire.conf
}
first_valid_gid = 20
first_valid_uid = 20
info_log_path = /var/log/dovecot-error
listen = 172.19.5.17
log_path = /var/log/dovecot-error
mail_access_groups = sysdov
mail_debug = yes
mail_gid = sysdov
mail_location = dbox:%h:INDEX=/addons/index/%u:CONTROL=~/Control:LAYOUT=fs
mail_privileged_group = sysdov
mail_uid = sysdov
mbox_write_locks = fcntl
passdb {
args = dovecot
driver = pam
}
plugin {
autocreate = AutoCleanSpam
autocreate1 = Junk
autocreate2 = Trash
autocreate3 = Sent
autocreate4 = Drafts
autosubscribe = AutoCleanSpam
autosubscribe1 = Junk
autosubscribe2 = Trash
autosubscribe3 = Sent
autosubscribe4 = Drafts
expire = AutoCleanSpam 1d
expire_dict = proxy::expire
sieve = /addons/sieve/%u.sieve
}
service pop3 {
process_limit = 0
}
ssl_cert = </opt/csw/etc/ssl/certs/mail.pem
ssl_key = </opt/csw/ssl/priv/mail.key
syslog_facility = local2
userdb {
args = /usr/dovecot/etc/sybldap.conf
driver = ldap
}
verbose_proctitle = yes
protocol imap {
log_path = /var/log/imap.log
mail_plugin_dir = /usr/dovecotbeta/lib/dovecot
mail_plugins = autocreate expire
}
protocol lda {
auth_socket_path = /var/run/dovecot/auth-master
info_log_path = /var/log/deliver.log
log_path = /var/log/deliver.log
mail_plugin_dir = /usr/dovecotbeta/lib/dovecot
mail_plugins = sieve autocreate expire
postmaster_address = postmaster at hu-berlin.de
sendmail_path = /opt/csw/sbin/sendmail
}
--
Burckhard Schmidt
Hello,
I like to share the inbox "INBOX" itself to other users and not only
folders.
But it looks like INBOX is not shareable? I have tried both dbox and
maildir.
I have used TB, SquirrelMail, Roundcube. TB shoes the shared INBOX
within the subscription dialog as subscripted but the per user file
"subsricptions" does not contain an entry. Any other
"normal" shared
folder I can (un-)subscribe and the entry within "subsricptions" will
be
updated.
dovecot 1.2.11
configuration:
mail_access_groups: sysdov
mail_privileged_group: sysdov
mail_uid: sysdov
mail_gid: sysdov
mail_location:
dbox:~/dbox:INDEX=/addons/index/%u:CONTROL=~/control:LAYOUT=fs
mail_plugins: autocreate expire acl imap_acl
namespace:
type: private
separator: /
inbox: yes
list: yes
subscriptions: yes
namespace:
type: shared
separator: /
prefix: FremdeOrdner/%%u/
location: dbox:%%h/dbox:CONTROL=~/control/FremdeOrdner/%%u:LAYOUT=fs
list: yes
plugin:
...
acl_shared_dict: file:/addons/acl/shared-folder
user "user2" shares "INBOX" and folder "Drafts" to
user "user1".
~user2/dbox/mailboxes/INBOX/dbox-Mails/dovecot-acl: user=user1 eilrwts
~user2/dbox/mailboxes/Drafts/dbox-Mails/dovecot-acl: user=user1 eilrwts
~user2/dbox/dovecot-acl-list:
1276766257 INBOX
1276762083 Drafts
/addons/acl/shared-folder:
shared/shared-boxes/user/user2/user1
1
Here some imap commands I have used to test it:
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
AUTH=PLAIN] Dovecot ready.
1 login user1 ********
1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT
IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE
QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS ACL
RIGHTS=texk] Logged in
1 list "" "*"
* LIST (\HasNoChildren) "/" "Drafts"
* LIST (\HasNoChildren) "/" "Sent"
* LIST (\HasNoChildren) "/" "AutoCleanSpam"
* LIST (\HasNoChildren) "/" "Trash"
* LIST (\HasNoChildren) "/" "INBOX"
* LIST (\Noselect \HasChildren) "/" "FremdeOrdner"
* LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user2"
* LIST (\HasNoChildren) "/" "FremdeOrdner/user2/Drafts"
1 OK List completed.
I'm right missing "FremdeOrdner/user2/INBOX" here? Or should an
IMAP-Client always try to select an "INBOX" as long as
"HasChildren" is
shown?
1 examine FremdeOrdner/user2/Drafts
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft nonjunk)
* OK [PERMANENTFLAGS ()] Read-only mailbox.
* 1 EXISTS
* 0 RECENT
* OK [UNSEEN 1] First unseen.
* OK [UIDVALIDITY 1273601955] UIDs valid
* OK [UIDNEXT 2] Predicted next UID
* OK [HIGHESTMODSEQ 3] Highest
1 OK [READ-ONLY] Select completed.
1 examine FremdeOrdner/user2/INBOX
* OK [CLOSED] Previous mailbox closed.
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS ()] Read-only mailbox.
* 3 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1273601954] UIDs valid
* OK [UIDNEXT 39] Predicted next UID
* OK [HIGHESTMODSEQ 1] Highest
1 OK [READ-ONLY] Select completed.
1 select FremdeOrdner/user2/INBOX
* OK [CLOSED] Previous mailbox closed.
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)]
Flags permitted.
* 3 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1273601954] UIDs valid
* OK [UIDNEXT 39] Predicted next UID
* OK [HIGHESTMODSEQ 1] Highest
1 OK [READ-WRITE] Select completed.
===========
Additional question
I have seen the comment for shared folder and dbox:
"You must not try to :INDEX= to have copies of index files."
This is still valid and within version 2.0 also?
Regards
Burckhard Schmidt
Burckhard Schmidt
2010-Jul-01 14:42 UTC
[Dovecot] dovecot 2.0, imap-login killed with signal 11
Hello,
I have 2.0.beta6 (3156315704ef) on Solaris.
A user can login, if he makes logout imap-login will be killed with
signal 11.
I tried both:
passdb driver ldap and userdb driver ldap,
or
passdb driver shadow and userdb driver passwd.
processes
dovecot 20236 20235 0 14:40:28 ? 0:00 dovecot/anvil
root 20237 20235 0 14:40:28 ? 0:00 dovecot/log
root 20235 1 0 14:40:28 ? 0:00
/usr/dovecotBeta6/sbin/dovecot -c /usr/dovecotBeta6/etc/dovecot/dovecot.conf
Login:
imap-login: Info: Login: user=<userx>, method=PLAIN, rip=..., lip=...,
mpid=20565, TLS
dovecot 20236 20235 0 14:40:28 ? 0:00 dovecot/anvil
root 20242 20235 0 14:41:59 ? 0:00 dovecot/config
root 20244 20235 0 14:41:59 ? 0:00 dovecot/ssl-params
nobody4 20241 20235 0 14:41:59 ? 0:00 dovecot/imap-login
dovecot 20243 20235 0 14:41:59 ? 0:00 dovecot/auth
root 20245 20244 1 14:41:59 ? 0:13 dovecot/ssl-params
root 20237 20235 0 14:40:28 ? 0:00 dovecot/log
root 20235 1 0 14:40:28 ? 0:00
/usr/dovecotBeta6/sbin/dovecot -c /usr/dovecotBeta6/etc/dovecot/dovecot.conf
sysdov 20246 20235 0 14:42:08 ? 0:00 dovecot/imap
Logout:
imap(userx): Info: Disconnected: Logged out byte...
master: Error: service(imap-login): child 20241 killed with signal 11
(core not dumped - set drop_priv_before_exec=yes)
master: Warning: Killed with signal 15 (by pid=20250 uid=0 code=kill)
dovecot 20236 1 0 14:40:28 ? 0:00 dovecot/anvil
root 20245 1 1 14:41:59 ? 1:39 dovecot/ssl-params
root 20237 1 0 14:40:28 ? 0:00 dovecot/log
dovecot -n
# 2.0.beta6 (3156315704ef): /usr/dovecotBeta6/etc/dovecot/dovecot.conf
# OS: SunOS 5.10 sun4v
auth_cache_ttl = 0 s
auth_debug = yes
auth_debug_passwords = yes
auth_username_chars = abcdefghijklmnopqrstuvwxyz01234567890
auth_verbose = yes
default_client_limit = 6244
default_login_user = nobody4
first_valid_gid = 20
first_valid_uid = 20
listen = 141.20.1.125
log_path = /var/log/dovecot
mail_gid = sysdov
mail_location =
maildir:~/maildir:INDEX=/addons/index/%u:CONTROL=~/control:LAYOUT=fs
mail_uid = sysdov
namespace {
inbox = yes
...
passdb {
args = /usr/dovecotBeta6/etc/ldapauth.conf
driver = ldap
}
...
service auth {
client_limit = 6244
unix_listener auth-userdb {
mode = 01204
}
}
...
userdb {
args = /usr/dovecotBeta6/etc/ldapuser.conf
driver = ldap
}
configure:
--prefix=/usr/dovecotBeta6 --exec-prefix=/usr/dovecotBeta6
CFLAGS="-I/opt/csw/include -I/usr/include/security"
LDFLAGS="-L/opt/csw/lib" LIBS="-llber" --with-gssapi=no
--with-sql=yes
--with-pgsql=no --with-mysql=no --with-sqlite=yes --with-bsdauth=no
--with-vpopmail=no -with-ssl=openssl -with-ssldir=/opt/csw/etc/ssl
--with-ldap=yes --with-pam=yes --with-nss=no --with-gnu-ld
Install prefix . : /usr/dovecotBeta6
File offsets ... : 64bit
I/O polling .... : poll
I/O notifys .... : none
SSL ............ : yes (OpenSSL)
GSSAPI ......... : no
passdbs ........ : static passwd passwd-file shadow pam checkpassword
ldap sql
: -bsdauth -sia -vpopmail
userdbs ........ : static prefetch passwd passwd-file checkpassword ldap sql
: -vpopmail -nss
SQL drivers .... : sqlite
: -pgsql -mysql
--
Burckhard Schmidt