From 894a02ef4d53010c59cf7304f935288c99356874 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 13 Jul 2007 10:40:53 +0000 Subject: r23863: handle NT_STATUS_RETRY and always print out the NTSTATUS string before calling ctdb_fatal() metze (This used to be commit 48ece3c21e3a5e9aa434c847eefaab59274a4e6f) --- source3/lib/ctdbd_conn.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'source3') diff --git a/source3/lib/ctdbd_conn.c b/source3/lib/ctdbd_conn.c index 7862a42652..d9d3421fa7 100644 --- a/source3/lib/ctdbd_conn.c +++ b/source3/lib/ctdbd_conn.c @@ -278,10 +278,13 @@ static NTSTATUS ctdb_read_req(struct ctdbd_connection *conn, uint32 reqid, if (NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_BUSY)) { /* EAGAIN */ goto again; + } else if (NT_STATUS_EQUAL(status, NT_STATUS_RETRY)) { + /* EAGAIN */ + goto again; } if (!NT_STATUS_IS_OK(status)) { - DEBUG(3, ("packet_fd_read failed: %s\n", nt_errstr(status))); + DEBUG(0, ("packet_fd_read failed: %s\n", nt_errstr(status))); cluster_fatal("ctdbd died\n"); } @@ -297,7 +300,7 @@ static NTSTATUS ctdb_read_req(struct ctdbd_connection *conn, uint32 reqid, } if (!NT_STATUS_IS_OK(status)) { - DEBUG(3, ("Could not read packet: %s\n", nt_errstr(status))); + DEBUG(0, ("Could not read packet: %s\n", nt_errstr(status))); cluster_fatal("ctdbd died\n"); } @@ -1088,11 +1091,19 @@ NTSTATUS ctdbd_traverse(uint32 db_id, status = packet_fd_read_sync(conn->pkt); + if (NT_STATUS_EQUAL(status, NT_STATUS_RETRY)) { + /* + * There might be more in the queue + */ + continue; + } + if (NT_STATUS_EQUAL(status, NT_STATUS_END_OF_FILE)) { status = NT_STATUS_OK; } if (!NT_STATUS_IS_OK(status)) { + DEBUG(0, ("packet_fd_read_sync failed: %s\n", nt_errstr(status))); cluster_fatal("ctdbd died\n"); } } -- cgit