[dovecot/core] 0b6924: lib: Add i_stream_set_blocking()

GitHub noreply at github.com
Thu Oct 5 12:30:09 EEST 2017


  Branch: refs/heads/master
  Home:   https://github.com/dovecot/core
  Commit: 0b6924ad1943fe5c6917fc49f675d8f316b0d939
      https://github.com/dovecot/core/commit/0b6924ad1943fe5c6917fc49f675d8f316b0d939
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

  Changed paths:
    M src/lib/istream.c
    M src/lib/istream.h

  Log Message:
  -----------
  lib: Add i_stream_set_blocking()


  Commit: 874f31bbdca027b71371f03ea3646c31f0a05c01
      https://github.com/dovecot/core/commit/874f31bbdca027b71371f03ea3646c31f0a05c01
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

  Changed paths:
    M src/lib/test-istream-unix.c

  Log Message:
  -----------
  lib: test-istream-unix - Use i_stream_set_blocking()


  Commit: 03915cfec4eb1b5a65e5b6b676c8f4151bc80351
      https://github.com/dovecot/core/commit/03915cfec4eb1b5a65e5b6b676c8f4151bc80351
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

  Changed paths:
    M src/lib/istream-file.c
    M src/lib/istream-unix.c

  Log Message:
  -----------
  lib: istream-file/unix - don't ignore EINTR for blocking istream reads

Just fail the istream read entirely. Although there's a small possibility
that this interrupt was unwanted and should be retried, it's more likely
that a blocking istream is hanging and admin wants to stop the process.
If the EINTR is ignored all the time, it's not possible to abort a
blocking read with ^C or anything else than SIGKILL.


  Commit: f363414461e991a478d015861344974714620f3b
      https://github.com/dovecot/core/commit/f363414461e991a478d015861344974714620f3b
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

  Changed paths:
    M src/lib/istream-file.c

  Log Message:
  -----------
  lib: istream-file - set blocking=TRUE automatically for blocking sockets

This fixes it to be correct with various doveadm commands.


  Commit: 312213260e384239ac93c77951c2f1f5f3d3611e
      https://github.com/dovecot/core/commit/312213260e384239ac93c77951c2f1f5f3d3611e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

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

  Log Message:
  -----------
  director: Don't crash if DIRECTOR-REMOVE is received for itself

This triggers the director removal from the ring, which causes the
connection to be destroyed. But since we're still in the middle of handling
the connection it needs refcounting.


  Commit: 5c340190af02d8ec26838b27a83e74fb6d234c0b
      https://github.com/dovecot/core/commit/5c340190af02d8ec26838b27a83e74fb6d234c0b
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

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

  Log Message:
  -----------
  director: Don't crash on doveadm director ring remove for unknown director

Ring syncing isn't started, so it shouldn't try to wait for ring sync.

Fixes:
Panic: file doveadm-connection.c: line 859 (doveadm_connection_cmd_run): assertion failed: (conn->dir->right == NULL && conn->dir->left == NULL)


  Commit: b0421c7397be2146988ee3afb5dcc491c01206cc
      https://github.com/dovecot/core/commit/b0421c7397be2146988ee3afb5dcc491c01206cc
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

  Changed paths:
    M src/director/director.c

  Log Message:
  -----------
  director: Allow doveadm director ring remove for the same director

Fixes:
Panic: file doveadm-connection.c: line 859 (doveadm_connection_cmd_run): assertion failed: (conn->dir->right == NULL && conn->dir->left == NULL)


Compare: https://github.com/dovecot/core/compare/47fa7b222e19...b0421c7397be


More information about the dovecot-cvs mailing list