[Dovecot] Dovecot v1.2rc6 dict-server socket path problem & pgsql crash

Steffen Kaiser skdovecot at smail.inf.fh-brs.de
Thu Jun 25 15:46:55 EEST 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,

I find this in the logs:
2009-06-25 14:10:37 IMAP(dvtest) [29566]: Error: 
net_connect_unix(/usr/local/dovecot-1.2.rc6acl-hook2/var/run/dovecot/dict-server) 
failed: Permission denied
2009-06-25 14:10:37 IMAP(dvtest) [29566]: Error: acl: dict iteration 
failed, can't update dict

although base_dir is just /var/run/dovecot/ .

Dovecot v1.2 changeset:   9157:d14e8b8df025
Conf is attached.

I am trying to get ACL's shared dictionary running:

   acl_shared_dict: proxy::acl

dict:
   acl: 
pgsql:/usr/local/dovecot-1.2.rc6acl-hook2/etc/dovecot-dict-acl-sql.conf

============

I created the symlink to get map /var/run/dovecot under $install_dir, 
then I get a crash:

2009-06-25 14:26:53 dict: Error: pgsql: Connect failed to dovecot: could 
not open certificate file "/root/.postgresql/postgresql.crt": No such file 
or directory

==> /var/log/postgresql/postgresql-8.1-main.log <==
2009-06-25 14:26:53 CEST LOG:  could not accept SSL connection: peer did 
not return a certificate

==> /var/log/dovecot/dovecot-1.2.log <==
2009-06-25 14:26:58 dict: Error: pgsql: Connect failed to dovecot: could 
not open certificate file "/root/.postgresql/postgresql.crt": No such file 
or directory

==> /var/log/postgresql/postgresql-8.1-main.log <==
2009-06-25 14:26:58 CEST LOG:  could not accept SSL connection: peer did 
not return a certificate

==> /var/log/dovecot/dovecot-1.2.log <==
2009-06-25 14:27:03 dict: Error: dict sql iterate failed: Not connected to 
database
2009-06-25 14:27:03 IMAP(dvtest) [29801]: Error: 
read(/usr/local/dovecot-1.2.rc6acl-hook2/var/run/dovecot/dict-server) 
failed: Remote disconnected
2009-06-25 14:27:03 IMAP(dvtest) [29801]: Error: acl: dict commit failed
2009-06-25 14:27:03 dovecot: Error: child 29802 (dict) killed with signal 
11 (core dumps disabled)

My sql-dict.conf is:

connect = host=localhost dbname=dovecot user=dovecot # password=pass

[CUT samples for quota & expire]

# CREATE TABLE user_shares (
#   from_user varchar(100) not null,
#   to_user varchar(100) not null,
#   primary key (from_user, to_user)
# );

map {
   pattern = shared/shared-boxes/user/$to/$from
   table = user_shares

   fields {
     from_user = $from
     to_user = $to
   }
}

==================

So I changed the connect line into:

connect = dbname=dovecot user=dovecot

into forcing to use the local socket, which seems to work:

2009-06-25 14:37:24 dict: Info: pgsql: Connected to dovecot

but:

2009-06-25 14:37:24 dovecot: Error: child 29986 (dict) killed with signal 
11 (core dumped)
2009-06-25 14:37:24 IMAP(dvtest) [29985]: Error: 
read(/usr/local/dovecot-1.2.rc6acl-hook2/var/run/dovecot/dict-server) 
failed: Remote disconnected
2009-06-25 14:37:24 IMAP(dvtest) [29985]: Error: acl: dict commit failed

==> /var/log/postgresql/postgresql-8.1-main.log <==
2009-06-25 14:37:24 CEST LOG:  unexpected EOF on client connection

The core's bt full of this latter crash is:

Core was generated by `dict'.
Program terminated with signal 11, Segmentation fault.
#0  0xb7ebe463 in strlen () from /lib/tls/i686/cmov/libc.so.6
(gdb) bt full
#0  0xb7ebe463 in strlen () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#1  0x08065072 in str_append (str=0x806c168, cstr=0x0) at str.c:91
No locals.
#2  0x080509ef in sql_dict_set_query (build=0xbffe8c34) at dict-sql.c:536
         dict = (struct sql_dict *) 0x8076e08
         sql_fields = <value optimized out>
         extra_values = <value optimized out>
         i = 0
         prefix = (string_t *) 0x806c168
         suffix = (string_t *) 0x806c1d8
         __PRETTY_FUNCTION__ = "sql_dict_set_query"
#3  0x080518a4 in sql_dict_set (_ctx=0x8080028, key=0x806c032 
"shared/shared-boxes/user/dvtest2/dvtest", value=0x806c05a "1") at 
dict-sql.c:648
         build = {dict = 0x8076e08, fields = {arr = {buffer = 0x806c130, 
element_size = 8}, v = 0x806c130, v_modifiable = 0x806c130},
   extra_values = 0xbffe8c50, key1 = 115 's', inc = false}
         field = {map = 0x8076ed8, value = 0x806c05a "1"}
         query = <value optimized out>
         _data_stack_cur_id = 4
         ctx = <value optimized out>
         dict = <value optimized out>
         map = <value optimized out>
         values = {arr = {buffer = 0x806c0f0, element_size = 4}, v = 
0x806c0f0, v_modifiable = 0x806c0f0}
#4  0x08052460 in dict_set (ctx=0x8080028, key=0x806c032 
"shared/shared-boxes/user/dvtest2/dvtest", value=0x806c05a "1") at 
dict.c:168
         __PRETTY_FUNCTION__ = "dict_set"
#5  0x0804f355 in cmd_set (conn=0x8075bc8, line=0x8075df8 
"2\tshared/shared-boxes/user/dvtest2/dvtest\t1") at dict-server.c:288
         trans = (struct dict_server_transaction *) 0x8080118
#6  0x0804fbf9 in dict_client_connection_input (conn=0x8075bc8) at 
dict-server.c:458
         _data_stack_cur_id = 3
         line = 0x8075df7 "S2\tshared/shared-boxes/user/dvtest2/dvtest\t1"
         i = 6
         ret = <value optimized out>
#7  0x0805e2d0 in io_loop_handler_run (ioloop=0x8074a38) at 
ioloop-epoll.c:208
         ctx = <value optimized out>
         event = (const struct epoll_event *) 0x8074b80
         list = (struct io_list *) 0x8075da8
         io = (struct io_file *) 0x8075d80
         tv = {tv_sec = 2147483, tv_usec = 0}
         t_id = 2
         msecs = <value optimized out>
         ret = 1
         i = 0
         j = 0
         call = <value optimized out>
#8  0x0805d398 in io_loop_run (ioloop=0x8074a38) at ioloop.c:338
No locals.
#9  0x0805002f in main () at main.c:129
No locals.


- -- 
Steffen Kaiser
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iQEVAwUBSkNxwXWSIuGy1ktrAQKuyAgAn8NU8Y59qGV75VStW2MZQH/7HWLF2z9y
2L41g+NzX5LEw9o/B2ZjlAVEsNhVbqbew2A57uuvOAgV5K8iGgx1yPUjmQT9ud6X
uthcsBNQIVGu6ymCN2ufeh3XdNEkrOu1pLJaWkiVQjvc8FOczMp432Jhytc9Hpbo
jtMbnFuSbZmg0GX6bqJ50kOsjwme7B7ak/ubVeOwGXHU4MQ8PRXl+TXdVTlnFwKw
IUZj8xPB+Gi7nRdsJlkQItp//TgeAJ9lm+i/OWzH420qljADDs9NfrfKd/DDOo6i
u6W6I+5FUsJ5N7CHDAvHeDnTHPomPC+bnYAWpRyXF/kMVPaccaFxQw==
=O2WZ
-----END PGP SIGNATURE-----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dv.conf.gz
Type: application/octet-stream
Size: 1486 bytes
Desc: 
Url : http://dovecot.org/pipermail/dovecot/attachments/20090625/064f9991/attachment.obj 


More information about the dovecot mailing list