Ticket #1109 (new defect)

Opened 5 years ago

CHANGETYPE_DELETED and conflicts

Reported by: ianmartin Owned by: dgollub
Priority: normal Milestone:
Component: OpenSync: Engine Version: 0.38
Severity: normal Keywords:
Cc:

Description

When a conflict is found in osync_mapping_engine_check_conflict the loop which identifies identical changes is exited. If we have 3 or more changes and a conflicting change is found before all changes have been compared the engine never identifies the possible remaining identical changes.

Then when osync_mapping_engine_multiply is called we may propagate the same change as was sent by a member back to it. For most change types this is not a problem as we just write back the same information to the member.

For change type deleted the engine is asking a member to delete a non-existant entry. For mock-format and I guess file-sync this fails.

Either:

  • we must check all entries in a mapping to identify identical changes (would also avoid unnecessary updates for other change types)
  • check for change type deleted in existing and master change in osync_mapping_engine_multiply
  • connector plugins must all be able to deal with deleting already deleted entries

r5624 adds test multisync_conflict_dual_delete that highlights the problem

Note: See TracTickets for help on using tickets.