libceph: don't call reset_connection() on version/feature mismatches
A fault due to a version mismatch or a feature set mismatch used to be treated differently from other faults: the connection would get closed without trying to reconnect and there was a ->bad_proto() connection op for notifying about that. This changed a long time ago, see commits6384bb8b8e
("libceph: kill bad_proto ceph connection op") and0fa6ebc600
("libceph: fix protocol feature mismatch failure path"). Nowadays these aren't any different from other faults (i.e. we try to reconnect even though the mismatch won't resolve until the server is replaced). reset_connection() calls there are rather confusing because reset_connection() resets a session together an individual instance of the protocol. This is cleaned up in the next patch. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
Родитель
418af5b3bf
Коммит
90b6561a05
|
@ -2091,7 +2091,6 @@ static int process_connect(struct ceph_connection *con)
|
||||||
ceph_pr_addr(&con->peer_addr),
|
ceph_pr_addr(&con->peer_addr),
|
||||||
sup_feat, server_feat, server_feat & ~sup_feat);
|
sup_feat, server_feat, server_feat & ~sup_feat);
|
||||||
con->error_msg = "missing required protocol features";
|
con->error_msg = "missing required protocol features";
|
||||||
reset_connection(con);
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
case CEPH_MSGR_TAG_BADPROTOVER:
|
case CEPH_MSGR_TAG_BADPROTOVER:
|
||||||
|
@ -2102,7 +2101,6 @@ static int process_connect(struct ceph_connection *con)
|
||||||
le32_to_cpu(con->out_connect.protocol_version),
|
le32_to_cpu(con->out_connect.protocol_version),
|
||||||
le32_to_cpu(con->in_reply.protocol_version));
|
le32_to_cpu(con->in_reply.protocol_version));
|
||||||
con->error_msg = "protocol version mismatch";
|
con->error_msg = "protocol version mismatch";
|
||||||
reset_connection(con);
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
case CEPH_MSGR_TAG_BADAUTHORIZER:
|
case CEPH_MSGR_TAG_BADAUTHORIZER:
|
||||||
|
@ -2192,7 +2190,6 @@ static int process_connect(struct ceph_connection *con)
|
||||||
ceph_pr_addr(&con->peer_addr),
|
ceph_pr_addr(&con->peer_addr),
|
||||||
req_feat, server_feat, req_feat & ~server_feat);
|
req_feat, server_feat, req_feat & ~server_feat);
|
||||||
con->error_msg = "missing required protocol features";
|
con->error_msg = "missing required protocol features";
|
||||||
reset_connection(con);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче