v2.2.19 release candidate released

Timo Sirainen
Wed, 23 Sep 2015 22:07:22 -0000

> On 23 Sep 2015, at 18:26, Marcin Miros?aw <marcin at mejor.pl> wrote:
>
> W dniu 23.09.2015 o 15:30, Timo Sirainen pisze:
>> http://dovecot.org/releases/2.2/rc/dovecot-2.2.19.rc1.tar.gz
>> http://dovecot.org/releases/2.2/rc/dovecot-2.2.19.rc1.tar.gz.sig
>>
>> A lot of changes since v2.2.18, so here's a release candidate
first. If no bugs are reported, I'm planning on making the final release
sometimes this week. The most interesting new features here are the
imap-hibernate process, quota count backend and director/proxy improvements.
>
> Hi!
> I'm seeing:
> Sep 23 17:23:43 mail dovecot: dict: Panic: file driver-pgsql.c: line 463
> (do_query): assertion failed: (SQL_DB_IS_READY(&db->api))
> Sep 23 17:23:43 mail dovecot: dict: Fatal: master: service(dict): child
> 23430 killed with signal 6 (core dumped)
> Sep 23 17:23:43 mail dovecot: dict: Panic: file driver-pgsql.c: line 463
> (do_query): assertion failed: (SQL_DB_IS_READY(&db->api))
> Sep 23 17:23:43 mail dovecot: dict: Fatal: master: service(dict): child
> 23321 killed with signal 6 (core dumped)

It's because dict-sql started actually doing an asynchronous commits now,
which were broken with pgsql. These should fix it:

http://hg.dovecot.org/dovecot-2.2/rev/59e4fcaa0f76
http://hg.dovecot.org/dovecot-2.2/rev/9ceeb1a5c492
http://hg.dovecot.org/dovecot-2.2/rev/beb3b8496b7d

I think this also means that you could have only a couple of dict processes,
since all the queries should now be done asynchronously. So if you had for
example:

quota = dict:User quota::proxy::sqlquota

you could now have:

quota = dict:User quota::proxy:dict-async:sqlquota

You'd also probably need to change the service dict-async { unix_listener
dict-async { permissions } }.

Then again, it might not work. I haven't really tested this case. :)