Project

General

Profile

Bug #48954

the results of _merge_object_divergent_entries on Primary and Replica are inconsistent?

Added by wb song 5 months ago.

Status:
New
Priority:
Normal
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

Primary: log(387'58 404'59]
Replica: log(387'58 401'59]

On primary, it's going to case 4 [1]. On replica, it's going to case 1 [2].

We think the reason for the different results is that the authoritative log have merged before call `_merge_divergent_entries()` on replica.

And the correct order is to process the divergent log first, and then merge the authoritative log.

[1] https://github.com/ceph/ceph/blob/master/src/osd/PGLog.h#L1156
[2] https://github.com/ceph/ceph/blob/master/src/osd/PGLog.h#L1055
[3] https://github.com/ceph/ceph/blob/master/src/osd/PGLog.cc#L469

Also available in: Atom PDF