v2.2.26 release candidate released

Aki Tuomi aki.tuomi at dovecot.fi
Fri Oct 21 04:34:56 UTC 2016


> On October 21, 2016 at 6:27 AM Tamsy <dovecot-list at mohtex.net> wrote:
> 
> 
> 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


This is an issue with either valgrind or openssl. See https://bugs.launchpad.net/ubuntu/+source/valgrind/+bug/1574437 

Aki


More information about the dovecot mailing list