[dovecot/core] 446d84: lib-compress: Don't assume too early that gz file ...

GitHub noreply at github.com
Tue Oct 25 18:30:15 UTC 2016


  Branch: refs/heads/master-2.2
  Home:   https://github.com/dovecot/core
  Commit: 446d84d4d1d7eada12471916ae3b2c7eaa5e1bbb
      https://github.com/dovecot/core/commit/446d84d4d1d7eada12471916ae3b2c7eaa5e1bbb
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/lib-compression/istream-zlib.c

  Log Message:
  -----------
  lib-compress: Don't assume too early that gz file continues after a trailer.

Some istreams don't have EOF immediately set after the gz trailer. This
fixes errors like "missing gz trailer at 1675"


  Commit: 4b55ea6c3ba6d55a6d3598f234187ce778deccb9
      https://github.com/dovecot/core/commit/4b55ea6c3ba6d55a6d3598f234187ce778deccb9
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/lib-compression/test-compression.c

  Log Message:
  -----------
  lib-compression: Added file uncompression support for test-compression

This can be useful for debugging.


  Commit: 3c692ac90359d5872b33ae7f0239d8a8005539f6
      https://github.com/dovecot/core/commit/3c692ac90359d5872b33ae7f0239d8a8005539f6
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/lib-compression/test-compression.c

  Log Message:
  -----------
  lib-compression: Added unit tests for reading .gz files


  Commit: 769240367c7c2d4bbc59162da8f6f5a8e92feb6d
      https://github.com/dovecot/core/commit/769240367c7c2d4bbc59162da8f6f5a8e92feb6d
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/imap-login/imap-login-client.c

  Log Message:
  -----------
  imap-login: Skip NIL value in ID handler

NIL value can cause hard crash, depending what
the key is. For x-proxy-ttl, NIL will crash
on any system, x-originating-ip will crash on
some nss versions (e.g. centos 6.7).

Migitating factor here is that the NIL value is only
accepted from trusted network.


  Commit: 74fc4d6fac6c2c7e17603b7741e4d72f9f5fa66d
      https://github.com/dovecot/core/commit/74fc4d6fac6c2c7e17603b7741e4d72f9f5fa66d
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/lib-mail/mail-html2text.c

  Log Message:
  -----------
  lib-mail: Support decimal/hexadecimal encoded entities

Add support for &#nnn; and &#xnnn; entities.


  Commit: a9b39bd30b2fc597232d703f66496436ce8e8a9f
      https://github.com/dovecot/core/commit/a9b39bd30b2fc597232d703f66496436ce8e8a9f
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/lib-mail/test-mail-html2text.c

  Log Message:
  -----------
  lib-mail: Add tests for dec/hexdec encoded entities


  Commit: c98b47e54a6ff36066516efccb16dd44127e8a11
      https://github.com/dovecot/core/commit/c98b47e54a6ff36066516efccb16dd44127e8a11
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/doveadm-connection.c

  Log Message:
  -----------
  director: Code cleanup - allow commands handlers to stop processing input

Now returning 0 exits the input reading without disconnecting client.


  Commit: b99248eb9ad331e700734ac10be8ce7dfbdb5a95
      https://github.com/dovecot/core/commit/b99248eb9ad331e700734ac10be8ce7dfbdb5a95
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/director.c
    M src/director/director.h
    M src/director/main.c

  Log Message:
  -----------
  director: Call state_change_callback on user move timeout.


  Commit: 4d0d0b9ebb304ecef10f48ef374d00dd75b681a5
      https://github.com/dovecot/core/commit/4d0d0b9ebb304ecef10f48ef374d00dd75b681a5
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/director.c

  Log Message:
  -----------
  director: Code cleanup - Finish user move always in the same function.


  Commit: 4bc6ff052b650810685237f5c1341470e33cc6a9
      https://github.com/dovecot/core/commit/4bc6ff052b650810685237f5c1341470e33cc6a9
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/director.c
    M src/director/director.h
    M src/director/main.c

  Log Message:
  -----------
  director: Show in process title how many users are being moved.


  Commit: 30a1cb8754bef11738cc176218b21d43555eb9fc
      https://github.com/dovecot/core/commit/30a1cb8754bef11738cc176218b21d43555eb9fc
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/doveadm-connection.c

  Log Message:
  -----------
  director: Code cleanup - moved command handling to its own function.


  Commit: b7d3b04efff252c1ffe5fada92717366f6965391
      https://github.com/dovecot/core/commit/b7d3b04efff252c1ffe5fada92717366f6965391
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/doveadm-connection.c

  Log Message:
  -----------
  director: Make sure IP address parsing works in DIRECTOR-ADD/REMOVE

We were passing the entire string through to net_addr2ip(). It seems that
inet_aton() stops at whitespace though, so this wasn't actually causing
errors at least on Linux.


  Commit: 9bf84e4140fe32e6a556d6156db7ce8b1e663ff4
      https://github.com/dovecot/core/commit/9bf84e4140fe32e6a556d6156db7ce8b1e663ff4
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/doveadm-connection.c

  Log Message:
  -----------
  director: USER-MOVE didn't handle non-hash username correctly.

The entire command line was being hashed instead of just the username.


  Commit: d4845ae4564ba34e9e1082e233b554c521bb703e
      https://github.com/dovecot/core/commit/d4845ae4564ba34e9e1082e233b554c521bb703e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/doveadm-connection.c

  Log Message:
  -----------
  director: Code cleanup - Give tab-unescaped args to all doveadm command handlers.


  Commit: 7322a8911f79677200c5df1ab6aab6d95f066ff9
      https://github.com/dovecot/core/commit/7322a8911f79677200c5df1ab6aab6d95f066ff9
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/director-connection.c
    M src/director/director-host.h

  Log Message:
  -----------
  director: If SYNCs are received during handshake, send them later.

This fixes delays during handshake:
Error: Ring SYNC appears to have got lost, resending


  Commit: 5a8bc5b29256e01c7f6c5b0b1a740576d79d45fb
      https://github.com/dovecot/core/commit/5a8bc5b29256e01c7f6c5b0b1a740576d79d45fb
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/director-connection.c

  Log Message:
  -----------
  director: Fix sending up/down state in handshakes.

They were never sent, because HOSTs were sent before director had waited for
the remote to send its version number. So sender thought that the remote's
minor_version was too old and it didn't send the up/down state at all.

This caused errors like:

Warning: director(10.0.0.30:9090/left): Host 10.0.0.30 is being updated before previous update had finished (up -> down) - setting to state=down vhosts=100
Error: director(10.0.0.30:9090/left): Director 10.0.0.30 SYNC request hosts don't match us - resending hosts (seq=6, remote hosts_hash=262126213, my hosts_hash=2458934259)


  Commit: e235070817370d41159cbd5f14b2ca27720d48bf
      https://github.com/dovecot/core/commit/e235070817370d41159cbd5f14b2ca27720d48bf
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/doveadm/doveadm-director.c

  Log Message:
  -----------
  doveadm director: Invalid parameters cause doveadm to fail silently.

doveadm_cmd_context.cmd doesn't point directly to doveadm_cmd_director.


  Commit: e275b15161fd2eb4d23a7d99d4e72cb7acfae2a2
      https://github.com/dovecot/core/commit/e275b15161fd2eb4d23a7d99d4e72cb7acfae2a2
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/director-connection.c
    M src/director/user-directory.c
    M src/director/user-directory.h

  Log Message:
  -----------
  director: Log user's kill_state with a human-readable string.


  Commit: 535c94c686520f4dc19cee94306104f9c0cec5dd
      https://github.com/dovecot/core/commit/535c94c686520f4dc19cee94306104f9c0cec5dd
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/director.c

  Log Message:
  -----------
  director: If user move times out, log the state it was in at the time.


  Commit: 4a9870f2bb188d9cfa20e9576a8812368ddefd9e
      https://github.com/dovecot/core/commit/4a9870f2bb188d9cfa20e9576a8812368ddefd9e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/doveadm-connection.c
    M src/director/doveadm-connection.h
    M src/director/main.c
    M src/director/user-directory.h

  Log Message:
  -----------
  director: HOST-RESET-USERS moves users more slowly now.

By default only 100 users can be moved in parallel. This can be overridden
with HOST-RESET-USERS parameter.

This delaying is especially useful when director_flush_socket is used to
avoid huge floods to the script service. Even without the socket it's still
good for avoiding unnecessary load spikes when all users are kicked at once
and they reconnect back at the same time.


  Commit: 2e52280f8738ebf0739fa3e72e515e28a7bd27c3
      https://github.com/dovecot/core/commit/2e52280f8738ebf0739fa3e72e515e28a7bd27c3
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/doveadm/doveadm-director.c

  Log Message:
  -----------
  doveadm director flush: Added --max-parallel parameter.


  Commit: 50d96a7656432f1c22014664798ed98a2647bc67
      https://github.com/dovecot/core/commit/50d96a7656432f1c22014664798ed98a2647bc67
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/director-connection.c

  Log Message:
  -----------
  director: If user host conflict is detected, make sure new host is sent back.

USER-KICK-HASH was sent, but the sender didn't get back a USER reply with
the new host. This could have increased how long user's host differred in
directors.

Avoids repeating this error:
Error: User hash 2957018085 is being redirected to two hosts: 10.0.0.30 and 10.0.0.201 (old_ts=1477338836)


  Commit: 50d882ded1a22d5d8e286bada75aeecfa0258ac9
      https://github.com/dovecot/core/commit/50d882ded1a22d5d8e286bada75aeecfa0258ac9
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/director.c
    M src/director/user-directory.c
    M src/director/user-directory.h

  Log Message:
  -----------
  director: Prevent race conditions by adding USER_KILL_STATE_FLUSHING

In theory it's possible that a user is freed during a flush and added back
before flush is finished, possibly even being moved again. This check makes
sure that we don't finish such move unless we're actually at the correct
flushing state. (If there's another flush also running for the user it'll
be ignored.)

This is also useful for logging purposes.


  Commit: 9eba5d4ca4ac239115bf21456b82fc07c342167a
      https://github.com/dovecot/core/commit/9eba5d4ca4ac239115bf21456b82fc07c342167a
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/director-connection.c
    M src/director/director.c

  Log Message:
  -----------
  director: Fix user move hangs when another move is triggered early.

Running "doveadm director flush" before the previous flush hadn't fully
finished could have caused users to hang until their move timeout:

director: Error: Finishing user 3249070169 move timed out, its state may now be inconsistent (state=waiting-for-everyone)


  Commit: b59011b74dbfc8904f78ed513ec39f68cba58db6
      https://github.com/dovecot/core/commit/b59011b74dbfc8904f78ed513ec39f68cba58db6
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/director-connection.c
    M src/director/director.c

  Log Message:
  -----------
  director: Improve debug logging output.


  Commit: 58722083c71c2372e6ffc22ff203f32c265c8c65
      https://github.com/dovecot/core/commit/58722083c71c2372e6ffc22ff203f32c265c8c65
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/director/director.c
    M src/director/user-directory.h

  Log Message:
  -----------
  director: Execute director_flush_socket only from one director.

Having each director do it would be redundant since they're all supposed to
be performing the same flush task to the same backend.


  Commit: 7929dac291e26cec6c4f256670a0651ae980f67e
      https://github.com/dovecot/core/commit/7929dac291e26cec6c4f256670a0651ae980f67e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-25 (Tue, 25 Oct 2016)

  Changed paths:
    M src/doveadm/doveadm-director.c

  Log Message:
  -----------
  doveadm director dump: Fixed output to include LFs

Otherwise all the output will be mixed up in the same line.


Compare: https://github.com/dovecot/core/compare/60cc5afcaef1...7929dac291e2


More information about the dovecot-cvs mailing list