View Revisions: Issue #3972

Summary 0003972: Tables become out of sync due incorrect conflict detection (and/or invalid conflict resolution)
Revision 2019-05-20 12:20 by kraynopp
Steps To Reproduce I have two nodes - master and slave. In case of conflict master node has priority.
1. Make two installations of SymmetricDS on the same PC - master and slave.
2. copy files from attachement into conf and engines direcories (master - in master installation, slave - in slave installation).
3. Copy create_sample.xml and insert_sample.sql into bin directory of master installation.
4. In bin directory of master installation execute:
  ./dbimport --format XML --alter-case create_sample.xml
  ./symadmin create-sym-tables
  ./dbimport insert_sample.sql
5. start both SymmetricDS instances.
6. execute
  ./symadmin reload-node 001
  from master bin directory.
7. wait. On both nodes table testtable must appear:
ID | DATA1 | DATA2
1 | data | data
8. now execute statement
update testtable set data1='master';
on master node and
update testtable set data2='slave';
on slave node.
After syncronization execute select * from testtable on both nodes. You will see on master node:
ID | DATA1 | DATA2
1 | master | data
and on slave node:
ID | DATA1 | DATA2
1 | master | slave

So the table testtable is out of sync now. In log file you will see conflict detection (however there is no conflict because of different fields is updated).
Revision 2020-03-12 12:59 by elong
Steps To Reproduce I have two nodes - master and slave. In case of conflict master node has priority.
1. Make two installations of SymmetricDS on the same PC - master and slave.
2. copy files from attachement into conf and engines direcories (master - in master installation, slave - in slave installation).
3. Copy create_sample.xml and insert_sample.sql into bin directory of master installation.
4. In bin directory of master installation execute:
  ./dbimport --format XML --alter-case create_sample.xml
  ./symadmin create-sym-tables
  ./dbimport insert_sample.sql
5. start both SymmetricDS instances.
6. execute
  ./symadmin reload-node 001
  from master bin directory.
7. wait. On both nodes table testtable must appear:
ID | DATA1 | DATA2
1 | data | data
8. now execute statement
update testtable set data1='master';
on master node and
update testtable set data2='slave';
on slave node.
After syncronization execute select * from testtable on both nodes. You will see on master node:
ID | DATA1 | DATA2
1 | master | data
and on slave node:
ID | DATA1 | DATA2
1 | master | slave

So the table testtable is out of sync now. In log file you will see conflict detection (however there is no conflict because of different fields is updated).
Revision 2019-05-20 12:20 by kraynopp
Additional Information I have made some little investigation and discovered that this bug is introduced in version 3.9.5 of SymmetricDS. In versions 3.9.4 and earlier changes are merged successfully and statement select * from testtable returns the same result on both nodes:
ID | DATA1 | DATA2
1 | master | slave
Revision 2020-03-12 12:59 by elong
Additional Information I have made some little investigation and discovered that this bug is introduced in version 3.9.5 of SymmetricDS. In versions 3.9.4 and earlier changes are merged successfully and statement select * from testtable returns the same result on both nodes:
ID | DATA1 | DATA2
1 | master | slave