v2.2.26 release candidate released

Tamsy
Fri, 21 Oct 2016 03:27:08 -0000

Timo Sirainen wrote on 20.10.2016 04:01:
> http://dovecot.org/releases/2.2/rc/dovecot-2.2.26.rc1.tar.gz
> http://dovecot.org/releases/2.2/rc/dovecot-2.2.26.rc1.tar.gz.sig
>
> There are quite a lot of changes since v2.2.25. Please try out this RC so
we can get a good and stable v2.2.26 out.
>
> 	* master: Removed hardcoded 511 backlog limit for listen(). The kernel
> 	  should limit this as needed.
> 	* doveadm import: Source user is now initialized the same as target
> 	  user. Added -U parameter to override the source user.
> 	* Mailbox names are no longer limited to 16 hierarchy levels. We'll
> 	  check another way to make sure mailbox names can't grow larger than
> 	  4096 bytes.
>
> 	+ Added a concept of "alternative usernames" by returning user_*
extra
> 	  field(s) in passdb. doveadm proxy list shows these alt usernames in
> 	  "doveadm proxy list" output. "doveadm director&proxy
kick" adds
> 	  -f <passdb field> parameter. The alt usernames don't have to
be
> 	  unique, so this allows creation of user groups and kicking them in
> 	  one command.
> 	+ auth: passdb/userdb dict allows now %variables in key settings.
> 	+ auth: If passdb returns noauthenticate=yes extra field, assume that
> 	  it only set extra fields and authentication wasn't actually
performed.
> 	+ auth: passdb static now supports password={scheme} prefix.
> 	+ imapc: Added imapc_max_line_length to limit maximum memory usage.
> 	+ imap, pop3: Added rawlog_dir setting to store IMAP/POP3 traffic logs.
> 	  This replaces at least partially the rawlog plugin.
> 	+ dsync: Added dsync_features=empty-header-workaround setting. This
> 	  makes incremental dsyncs work better for servers that randomly return
> 	  empty headers for mails. When an empty header is seen for an existing
> 	  mail, dsync assumes that it matches the local mail.
> 	+ doveadm sync/backup: Added -I <max size> parameter to skip too
> 	  large mails.
> 	+ doveadm sync/backup: Fixed -t parameter and added -e for "end
date".
> 	+ doveadm mailbox metadata: Added -s parameter to allow accessing
> 	  server metadata by using empty mailbox name.
>
> 	- master process's listener socket was leaked to all child processes.
> 	  This might have allowed untrusted processes to capture and prevent
> 	  "doveadm service stop" comands from working.
> 	- auth: userdb fields weren't passed to auth-workers, so %{userdb:*}
> 	  from previous userdbs didn't work there.
> 	- auth: Each userdb lookup from cache reset its TTL.
> 	- auth: Fixed auth_bind=yes + sasl_bind=yes to work together
> 	- auth: Blocking userdb lookups reset extra fields set by previous
> 	  userdbs.
> 	- auth: Cache keys didn't include %{passdb:*} and %{userdb:*}
> 	- auth-policy: Fixed crash due to using already-freed memory if policy
> 	  lookup takes longer than auth request exists.
> 	- lib-auth: Unescape passdb/userdb extra fields. Mainly affected
> 	  returning extra fields with LFs or TABs.
> 	- lmtp_user_concurrency_limit>0 setting was logging unnecessary
> 	  anvil errors.
> 	- lmtp_user_concurrency_limit is now checked before quota check with
> 	  lmtp_rcpt_check_quota=yes to avoid unnecessary quota work.
> 	- lmtp: %{userdb:*} variables didn't work in mail_log_prefix
> 	- autoexpunge settings for mailboxes with wildcards didn't work when
> 	  namespace prefix was non-empty.
> 	- Fixed writing >2GB to iostream-temp files (used by fs-compress,
> 	  fs-metawrap, doveadm-http)
> 	- director: Ignore duplicates in director_servers setting.
> 	- zlib, IMAP BINARY: Fixed internal caching when accessing multiple
> 	  newly created mails. They all had UID=0 and the next mail could have
> 	  wrongly used the previously cached mail.
> 	- doveadm stats reset wasn't reseting all the stats.
> 	- auth_stats=yes: Don't update num_logins, since it doubles them when
> 	  using with mail stats.
> 	- quota count: Fixed deadlocks when updating vsize header.
> 	- dict-quota: Fixed crashes happening due to memory corruption.
> 	- dict proxy: Fixed various timeout-related bugs.
> 	- doveadm proxying: Fixed -A and -u wildcard handling.
> 	- doveadm proxying: Fixed hangs and bugs related to printing.
> 	- imap: Fixed wrongly triggering assert-crash in
> 	  client_check_command_hangs.
> 	- imap proxy: Don't send ID command pipelined with nopipelining=yes
> 	- imap-hibernate: Don't execute quota_over_script or last_login after
> 	  un-hibernation.
> 	- imap-hibernate: Don't un-hibernate if client sends DONE+IDLE in one
> 	  IP packet.
> 	- imap-hibernate: Fixed various failures when un-hibernating.
> 	- fts: fts_autoindex=yes was broken in 2.2.25 unless
> 	  fts_autoindex_exclude settings existed.
> 	- fts-solr: Fixed searching multiple mailboxes (patch by x16a0)
> 	- doveadm fetch body.snippet wasn't working in 2.2.25. Also fixed a
> 	  crash with certain emails.
> 	- pop3-migration + dbox: Various fixes related to POP3 UIDL
> 	  optimization in 2.2.25.
> 	- pop3-migration: Fixed "truncated email header" workaround.

Since v2.2.25 up to v2.2.26.rc1 on Ubuntu 16.04.1 LTS Dovecot is
compiling successfully but "make check" is throwing out the following:

make[2]: Leaving directory
'/usr/local/src/dovecot-2.2.26.rc1/src/lib-charset'
Making check in lib-ssl-iostream
make[2]: Entering directory
'/usr/local/src/dovecot-2.2.26.rc1/src/lib-ssl-iostream'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory
'/usr/local/src/dovecot-2.2.26.rc1/src/lib-ssl-iostream'
Making check in lib-dcrypt
make[2]: Entering directory
'/usr/local/src/dovecot-2.2.26.rc1/src/lib-dcrypt'
for bin in test-crypto test-stream; do \
   if ! /bin/sh ../../run-test.sh ../.. ./$bin; then exit 1; fi; \
done
test_cipher_test_vectors ............................................. : ok
test_cipher_aead_test_vectors ........................................ : ok
test_hmac_test_vectors ............................................... : ok
test_load_v1_keys .................................................... : ok
test_load_v1_key ..................................................... : ok
test_load_v1_public_key .............................................. : ok

vex: the `impossible' happened:
    isZeroU
vex storage: T total 586404328 bytes allocated
vex storage: P total 640 bytes allocated

valgrind: the 'impossible' happened:
    LibVEX called failure_exit().

host stacktrace:
==20179==    at 0x38083F48: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x38084064: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x380842A1: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x380842CA: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x3809F682: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x38148008: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x3815514D: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x38159272: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x38159EA6: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x3815BD68: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x3815CDB6: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x38145DEC: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x380A1C0B: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x380D296B: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x380D45CF: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==20179==    by 0x380E3946: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)

sched status:
   running_tid=1

Thread 1: status = VgTs_Runnable (lwpid 20179)
==20179==    at 0x5DE7E00: ??? (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)
==20179==    by 0x5DC70BF: EC_POINT_mul (in
/lib/x86_64-linux-gnu/libcrypto.so.1.0.0)
==20179==    by 0x5DC5F06: EC_POINT_new (in
/lib/x86_64-linux-gnu/libcrypto.so.1.0.0)
==20179==    by 0x5823876: dcrypt_openssl_load_private_key_dovecot_v2
(dcrypt-openssl.c:1196)
==20179==    by 0x5823876: dcrypt_openssl_load_private_key_dovecot
(dcrypt-openssl.c:1244)
==20179==    by 0x5823876: dcrypt_openssl_load_private_key
(dcrypt-openssl.c:1587)
==20179==    by 0x40FC08: test_load_v2_key (test-crypto.c:393)
==20179==    by 0x41120C: test_run_funcs (test-common.c:236)
==20179==    by 0x411B60: test_run (test-common.c:306)
==20179==    by 0x40A99E: main (test-crypto.c:779)


Note: see also the FAQ in the source distribution.
It contains workarounds to several common problems.
In particular, if Valgrind aborted or crashed after
identifying problems in your program, there's a good chance
that fixing those problems will prevent Valgrind aborting or
crashing, especially if it happened in m_mallocfree.c.

If that doesn't help, please report this bug to: www.valgrind.org

In the bug report, send all the above text, the valgrind
version, and what OS and version you are using.  Thanks.

Failed to run: ./test-crypto
Makefile:1019: recipe for target 'check-test' failed
make[2]: *** [check-test] Error 1
make[2]: Leaving directory
'/usr/local/src/dovecot-2.2.26.rc1/src/lib-dcrypt'
Makefile:494: recipe for target 'check-recursive' failed
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory '/usr/local/src/dovecot-2.2.26.rc1/src'
Makefile:620: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1