v2.2.26 release candidate released

Eric Broch ebroch at whitehorsetc.com
Fri Oct 21 05:52:09 UTC 2016


On 10/20/2016 10:34 PM, Aki Tuomi wrote:

>> 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

I had an error (below) during make check as well on CentOS 5 (no issues 
with 6 and 7) and commented the following 'sed' commands (Removing Rpath 
from this page: https://fedoraproject.org/wiki/Packaging:Guidelines ) in 
the spec file resulting in a successful build:
#sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' 
libtool
#sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool

<make check error>

make[3]: Leaving directory 
`/usr/src/redhat/BUILD/dovecot-2.2.26.rc1/src/lib-storage'
for bin in test-mail-search-args-imap test-mail-search-args-simplify 
test-mailbox-get; do \
           if ! /bin/sh ../../run-test.sh ../.. ./$bin; then exit 1; fi; \
         done
/usr/src/redhat/BUILD/dovecot-2.2.26.rc1/src/lib-storage/.libs/lt-test-mail-search-args-imap: 
symbol lookup error: 
/usr/src/redhat/BUILD/dovecot-2.2.26.rc1/src/lib-storage/.libs/lt-test-mail-search-args-imap: 
undefined symbol: message_search_more_get_decoded
==12372== Invalid read of size 8
==12372==    at 0x3EABB0B925: ??? (in /lib64/libc-2.5.so)
==12372==    by 0x3EABB0B79A: ??? (in /lib64/libc-2.5.so)
==12372==    by 0x3EABB0BDF1: ??? (in /lib64/libc-2.5.so)
==12372==    by 0x48024E8: _vgnU_freeres (vg_preloaded.c:62)
==12372==    by 0x3EAB60D33B: _dl_signal_error (in /lib64/ld-2.5.so)
==12372==    by 0x3EAB60D3D3: _dl_signal_cerror (in /lib64/ld-2.5.so)
==12372==    by 0x3EAB609CEF: _dl_lookup_symbol_x (in /lib64/ld-2.5.so)
==12372==    by 0x3EAB60A9D4: _dl_relocate_object (in /lib64/ld-2.5.so)
==12372==    by 0x3EAB603629: dl_main (in /lib64/ld-2.5.so)
==12372==    by 0x3EAB6134EA: _dl_sysdep_start (in /lib64/ld-2.5.so)
==12372==    by 0x3EAB601389: _dl_start (in /lib64/ld-2.5.so)
==12372==    by 0x3EAB600A77: ??? (in /lib64/ld-2.5.so)
==12372==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==12372==
==12372==
==12372== Process terminating with default action of signal 11 (SIGSEGV)
==12372==  Access not within mapped region at address 0x0
==12372==    at 0x3EABB0B925: ??? (in /lib64/libc-2.5.so)
==12372==    by 0x3EABB0B79A: ??? (in /lib64/libc-2.5.so)
==12372==    by 0x3EABB0BDF1: ??? (in /lib64/libc-2.5.so)
==12372==    by 0x48024E8: _vgnU_freeres (vg_preloaded.c:62)
==12372==    by 0x3EAB60D33B: _dl_signal_error (in /lib64/ld-2.5.so)
==12372==    by 0x3EAB60D3D3: _dl_signal_cerror (in /lib64/ld-2.5.so)
==12372==    by 0x3EAB609CEF: _dl_lookup_symbol_x (in /lib64/ld-2.5.so)
==12372==    by 0x3EAB60A9D4: _dl_relocate_object (in /lib64/ld-2.5.so)
==12372==    by 0x3EAB603629: dl_main (in /lib64/ld-2.5.so)
==12372==    by 0x3EAB6134EA: _dl_sysdep_start (in /lib64/ld-2.5.so)
==12372==    by 0x3EAB601389: _dl_start (in /lib64/ld-2.5.so)
==12372==    by 0x3EAB600A77: ??? (in /lib64/ld-2.5.so)
==12372==  If you believe this happened as a result of a stack
==12372==  overflow in your program's main thread (unlikely but
==12372==  possible), you can try to increase the size of the
==12372==  main thread stack using the --main-stacksize= flag.
==12372==  The main thread stack size used in this run was 10485760.
Failed to run: ./test-mail-search-args-imap
make[2]: *** [check-test] Error 1
make[2]: Leaving directory 
`/usr/src/redhat/BUILD/dovecot-2.2.26.rc1/src/lib-storage'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/usr/src/redhat/BUILD/dovecot-2.2.26.rc1/src'
make: *** [check-recursive] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.69652 (%check)


RPM build errors:
     Bad exit status from /var/tmp/rpm-tmp.69652 (%check)

</make check error>


More information about the dovecot mailing list