Ticket #1124 (closed defect: fixed)

Opened 5 years ago

Last modified 4 years ago

multisync_conflict_hybrid_choose test fails

Reported by: marka Owned by: dgollub
Priority: highest Milestone: OpenSync 0.40
Component: OpenSync: Testsuite Version: 0.39
Severity: critical Keywords:
Cc: bricks

Description

The multisync_conflict_hybrid_choose test fails on my system:

Running suite(s): "multisync"
Files newdata2 and data2/testdata differ
0%: Checks: 1, Failures: 1, Errors: 0
/home/marka/src/opensync/libopensync/tests/sync-tests/check_multisync.c:1080:F:multisync_conflict_hybrid_choose:function:0:
Assertion 'osync_testing_diff("newdata2", "data2/testdata")' failed

What I noticed from the logs is that the members are not initialized in numeric order but instead [ 1, 3, 2 ] (see Thread26056384-30799.log).

Then when the conflict_handler_choose_modified handler runs, it believes that member 3 is the "first" member with a MODIFIED change instead of 2. (see Thread26081824-30799.log) (I modified the code to print out the member IDs).

I'm not sure what the correct behavior is here. Are the members supposed to be initialized in member ID order? Or does multisync_conflict_hybrid_choose need to be a little smarter?

Attachments

multisync_conflict_hybrid_choose_FAILURE.tar.gz (91.3 KB) - added by marka 5 years ago.
failure logs
multisync_hybrid.diff (2.2 KB) - added by dgollub 4 years ago.
Make conflict resolution more reliable by choosing the conflict-winner by memberid

Change History

Changed 5 years ago by marka

failure logs

comment:1 Changed 5 years ago by dgollub

  • Status changed from new to assigned

comment:2 Changed 5 years ago by dgollub

  • Priority changed from normal to high
  • Severity changed from normal to critical
  • Milestone set to OpenSync 0.40

comment:3 Changed 5 years ago by dgollub

  • Owner dgollub deleted
  • Status changed from assigned to new
  • Component changed from OpenSync to OpenSync: Testsuite

comment:4 Changed 5 years ago by dgollub

  • Owner set to dgollub

comment:5 Changed 4 years ago by dgollub

  • Priority changed from high to highest
  • Status changed from new to assigned

Changed 4 years ago by dgollub

Make conflict resolution more reliable by choosing the conflict-winner by memberid

comment:6 Changed 4 years ago by dgollub

  • Cc bricks added

Björn, could you try this patch on gonzo? Does this test case still pass on gonzo?

comment:7 Changed 4 years ago by dgollub

  • Status changed from assigned to closed
  • Resolution set to fixed

(In [6002]) Make multisync_conflict_hybrid_choose more reliable by switching to a new conflict handler. Instead of taking the "first" modified entry we choose the modified entry of member 2.

For this a new conflict resolution function got introduced in the testsuite. The memberid get passed via userdata pointer.

The order of the mapping_engine list seems to be not sorted by memberid. TODO: How is this list of changes sorted?

fixes #1124

Note: See TracTickets for help on using tickets.