Timo Sirainen [Wed, 10 Apr 2013 13:50:34 +0000 (16:50 +0300)]
lib-index: Assert-crashfix on some rare situations.
mail_index_modseq_get_next_log_offset() might have returned e.g. (seq=4,
offset=40) to point to the beginning of a next file. The view itself could
still have been pointing to seq=3 end of file. Now calling
mail_transaction_log_view_set() with these two positions (that are basically
the same) should result in an empty view instead of assert crash.
Timo Sirainen [Wed, 10 Apr 2013 10:40:57 +0000 (13:40 +0300)]
dsync: Don't fail the sync if attribute couldn't be set.
It's probably a system configuration mismatch where some/all attributes
don't work in one system but do on another. This might or might not be a
problem, so it deserves an error message, but probably doesn't deserve
failing entirely.
Timo Sirainen [Mon, 8 Apr 2013 15:14:32 +0000 (18:14 +0300)]
dsync: Commit large transactions every 100 new messages.
This way if the dsync crashes or transaction fails in the middle, the next
run can finish faster. Also the rollbacking finishes faster.
Timo Sirainen [Mon, 8 Apr 2013 11:38:30 +0000 (14:38 +0300)]
replicator: doveadm commands and user list export may have skipped some users.
The users were exported from the queue, but they are temporarily removed
from there while the user is being replicated. The users always exist in the
hash table though.
Timo Sirainen [Mon, 8 Apr 2013 10:09:52 +0000 (13:09 +0300)]
restrict_process_count(): Don't die if process count can't be changed.
SELinux has hard limits and doesn't allow root to increase them. The admin
should fix the error one way or another, but it's not a total failure just
leaving it.
Timo Sirainen [Sun, 7 Apr 2013 17:28:31 +0000 (20:28 +0300)]
Added ssl_client_ca_file to specify the CA certs as a file instead of as a dir.
This is required for Redhat-based systems where there isn't a CA directory
like in Debian/Ubuntu.
Timo Sirainen [Sun, 7 Apr 2013 15:49:32 +0000 (18:49 +0300)]
lib-storage: dovecot.mailbox.log should have used file permissions, not dir
Although this didn't actually make any difference since 0666 mask was used.
Timo Sirainen [Sun, 7 Apr 2013 12:36:35 +0000 (15:36 +0300)]
dsync: Fixed talking to earlier dsync without mailbox attribute support.
Most importantly it can now be used as an example how to add more features
to dsync.
Timo Sirainen [Sun, 7 Apr 2013 12:10:36 +0000 (15:10 +0300)]
connection_disconnect(): Explicitly close input/output stream.
This makes sure that if the ostream has some data pending and is still
referenced, the io_remove() won't be called after fd is already closed.
Timo Sirainen [Sat, 6 Apr 2013 18:01:41 +0000 (21:01 +0300)]
replicator: Don't create replicator-doveadm socket by default.
Also removed the service replicator { process_min_avail=1 } requirement.
This new way allows replicator to give a flag to dsync so it will try to
notify the replicator process when user gets synced, which can be silently
ignored even if it fails (replica server doesn't need to have replicator
or even Dovecot itself running).
Timo Sirainen [Fri, 5 Apr 2013 13:37:45 +0000 (16:37 +0300)]
lib-index: Add timestamps and value lengths to attribute change records in transaction log.
The timestamps will be useful for dsync, and value lengths will be useful
for metadata quota.
Timo Sirainen [Thu, 4 Apr 2013 12:40:08 +0000 (15:40 +0300)]
lib-ssl-iostream: If handshake callback fails, close the iostreams immediately.
This way the callback itself doesn't have to do it. Also fixes errors caused
by it, since they didn't close the ostream.
Timo Sirainen [Thu, 4 Apr 2013 12:21:00 +0000 (15:21 +0300)]
lib-ssl-iostream: ssl_iostream_set_handshake_callback() API changed.
The callback can now return the error message to caller instead of having to
log it itself.