Project

General

Profile

Actions

Bug #14686

closed

OSDMap: reset osd_primary_affinity shared_ptr when deepish_copy_from

Added by Xinze Chi about 8 years ago. Updated over 7 years ago.

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

0%

Source:
Community (dev)
Tags:
Backport:
infernalis,hammer
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Base on current logic, OSDMonitor may call create_pending and
encode_pending twice for the some epoch.

In encode_pending:

tmp.deepish_copy_from(osdmap);
tmp.apply_incremental(pending_inc);

This Op would change the tmp osd_primary_affinity, but the osd_primary_affinity
is declared as ceph::shared_ptr, so this would change the osdmap too. When this
round encode_pending is proposed fail. We may call encode_pending again, but the
osdmap is changed last round, so the pending_inc would be wrong.


Related issues 2 (0 open2 closed)

Copied to Ceph - Backport #14719: infernalis: OSDMap: reset osd_primary_affinity shared_ptr when deepish_copy_fromRejectedLoïc DacharyActions
Copied to Ceph - Backport #14720: hammer: OSDMap: reset osd_primary_affinity shared_ptr when deepish_copy_fromResolvedNathan CutlerActions
Actions

Also available in: Atom PDF