dovecot-2.0: dsync: Error handling fixes.
dovecot at dovecot.org
dovecot at dovecot.org
Mon Aug 9 21:59:22 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/88309dcfdab5
changeset: 11971:88309dcfdab5
user: Timo Sirainen <tss at iki.fi>
date: Mon Aug 09 19:59:19 2010 +0100
description:
dsync: Error handling fixes.
Mainly fixes quota of quota error while saving.
diffstat:
src/dsync/dsync-brain.c | 5 +++++
src/dsync/dsync-proxy-server.c | 4 +++-
src/dsync/dsync-worker.c | 4 +++-
3 files changed, 11 insertions(+), 2 deletions(-)
diffs (44 lines):
diff -r 59b0e70c8f14 -r 88309dcfdab5 src/dsync/dsync-brain.c
--- a/src/dsync/dsync-brain.c Mon Aug 09 18:14:48 2010 +0100
+++ b/src/dsync/dsync-brain.c Mon Aug 09 19:59:19 2010 +0100
@@ -879,6 +879,11 @@
while (brain->state != DSYNC_STATE_SYNC_END) {
old_state = brain->state;
dsync_brain_sync(brain);
+
+ if (dsync_worker_has_failed(brain->src_worker) ||
+ dsync_worker_has_failed(brain->dest_worker))
+ break;
+
i_assert(brain->state != old_state);
}
}
diff -r 59b0e70c8f14 -r 88309dcfdab5 src/dsync/dsync-proxy-server.c
--- a/src/dsync/dsync-proxy-server.c Mon Aug 09 18:14:48 2010 +0100
+++ b/src/dsync/dsync-proxy-server.c Mon Aug 09 19:59:19 2010 +0100
@@ -52,8 +52,10 @@
if ((ret = server->cur_cmd->func(server, server->cur_args)) == 0)
return 0;
- if (ret < 0)
+ if (ret < 0) {
i_error("command %s failed", server->cur_cmd->name);
+ return -1;
+ }
server->cur_cmd = NULL;
server->cur_args = NULL;
diff -r 59b0e70c8f14 -r 88309dcfdab5 src/dsync/dsync-worker.c
--- a/src/dsync/dsync-worker.c Mon Aug 09 18:14:48 2010 +0100
+++ b/src/dsync/dsync-worker.c Mon Aug 09 19:59:19 2010 +0100
@@ -228,7 +228,9 @@
void *context)
{
if (!worker->readonly) {
- if (!worker->failed) T_BEGIN {
+ if (worker->failed)
+ callback(context);
+ else T_BEGIN {
worker->v.msg_save(worker, msg, data,
callback, context);
} T_END;
More information about the dovecot-cvs
mailing list