Project

General

Profile

Actions

Bug #506

closed

objecter: handle disconnects from osds

Added by Sage Weil over 13 years ago. Updated over 13 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
-
Target version:
% Done:

0%

Source:
Tags:
Backport:
Regression:
Severity:
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

The kclient is smart about osd disconnect: if there are outstanding requests, it reopens the connection. Objecter does not appear to be:

void Objecter::ms_handle_reset(Connection *con)
{
  if (con->get_peer_type() == CEPH_ENTITY_TYPE_OSD)
    maybe_request_map();
}

This is mitigated by the fact that we send a ping to any OSD with outstanding requests, but it does mean there is a built-in delay before we "notice" a disconnect.

While we're at it, double-check the locking is correct (is ms_handle_reset called by dispatcher, or manually invoked by the parent's ms_handle_reset method?).

Actions #1

Updated by Sage Weil over 13 years ago

  • Status changed from New to Resolved

Actually, it wasn't handling osd reconnects at all. Doh.

Fixed by 814f9dbdc57238d4e10c8e93fc298e9d3744516b

Actions

Also available in: Atom PDF