Project

General

Profile

Bug #43213

OSDMap::pg_to_up_acting etc specify primary as osd, not pg_shard_t(osd+shard)

Added by Sage Weil over 4 years ago.

Status:
New
Priority:
High
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

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

Description

The OSD methods to map a PG return primary as an int, not pg_shard_t (osd + shard).

Objecter compensates for this with

    if (pi->is_erasure()) {
      for (uint8_t i = 0; i < acting.size(); ++i) {
        if (acting[i] == acting_primary) {
          spgid.reset_shard(shard_id_t(i));
          break;
        }
      }
    }

which may be wrong if there are multiple shards on the same OSD and the primary isn't the first one.


Related issues

Related to RADOS - Bug #43189: pgs stuck in laggy state Resolved

History

#1 Updated by Sage Weil over 4 years ago

  • Related to Bug #43189: pgs stuck in laggy state added

Also available in: Atom PDF