Ticket #1124 (closed defect: fixed)
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
Change History
Changed 4 years ago by marka
- Attachment multisync_conflict_hybrid_choose_FAILURE.tar.gz added
comment:2 Changed 4 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 4 years ago by dgollub
- Owner dgollub deleted
- Status changed from assigned to new
- Component changed from OpenSync to OpenSync: Testsuite
comment:5 Changed 3 years ago by dgollub
- Priority changed from high to highest
- Status changed from new to assigned
Changed 3 years ago by dgollub
- Attachment multisync_hybrid.diff added
Make conflict resolution more reliable by choosing the conflict-winner by memberid
comment:6 Changed 3 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 3 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

failure logs