libceph: retry after authorization failure
authorSage Weil <sage@newdream.net>
Thu, 3 Mar 2011 20:14:53 +0000 (12:14 -0800)
committerSage Weil <sage@newdream.net>
Thu, 3 Mar 2011 21:47:40 +0000 (13:47 -0800)
If we mark the connection CLOSED we will give up trying to reconnect to
this server instance.  That is appropriate for things like a protocol
version mismatch that won't change until the server is restarted, at which
point we'll get a new addr and reconnect.  An authorization failure like
this is probably due to the server not properly rotating it's secret keys,
however, and should be treated as transient so that the normal backoff and
retry behavior kicks in.

Signed-off-by: Sage Weil <sage@newdream.net>
net/ceph/messenger.c

index 35b36b86d762892a118b7e34e88b654979db30a1..6bd5025f62204c97330443a941c50462a69cd636 100644 (file)
@@ -1248,8 +1248,6 @@ static int process_connect(struct ceph_connection *con)
                     con->auth_retry);
                if (con->auth_retry == 2) {
                        con->error_msg = "connect authorization failure";
-                       reset_connection(con);
-                       set_bit(CLOSED, &con->state);
                        return -1;
                }
                con->auth_retry = 1;