View Issue Details

IDProjectCategoryView StatusLast Update
0006661SymmetricDSBugpublic2024-12-02 22:00
Reporterpmarzullo Assigned Topmarzullo  
Prioritynormal 
Status resolvedResolutionfixed 
Product Version3.14.0 
Target Version3.14.18Fixed in Version3.14.18 
Summary0006661: Logging of exceptions on data load can show values used in the wrong order when conflict resolution is in play
DescriptionWhen conflict resolution is attempted, and an exception occurs while executing the conflict resolution, the values that are used when logging the DML statement and the value types and the values show the values in the wrong order when the original statement that was attempted is a different event type than the statement that was executed to resolve the conflict, causing a lot of confusion.

For example, the captured data change is an update, and an update is attempted. The update updates 0 rows.
If USE_CHANGED_DATA is the conflict detection, then another update is attempted using only the primary key values in the where clause (USE_CHANGED_DATA adds changed columns to the where clause in addition to the primary key values).
If 0 rows are updated, then an insert is attempted. With this attempt, the data values are reordered to match the insert statement specification of the columns.
If there is an exception executing the insert statement, then logging occurs displaying the statement, the values, and the value types.
The problem is that the values that are used are the values that were used in the original statement.
Steps To Reproduce1. Set up synchronization using USE_CHANGED_DATA as conflict detection and NEWER_WINS as conflict resolution.
2. Make sure that a column on the source will cause an issue at the target when inserted at the target (string value on the source, numeric value at the target).
3. Create a situation where an update on the source will update 0 rows at the target.
4. Target will attempt the update with a where clause using primary key values and changed column values, and should update 0 rows.
5. Then target will attempt the update with a where clause using primary key values only, and should update 0 rows.
6. Then target will attempt an insert with all columns, and the string value will attempted to be converted to a numeric value at the target and fail.
7 The logging of the error will show the values used in the insert statement in the wrong order.
Tagsdata sync, logging

Relationships

related to 0006662 closedpmarzullo Logging of exceptions on data load can show values used in the wrong order when conflict resolution is in play 
related to 0006663 resolvedpmarzullo Logging of exceptions on data load can show values used in the wrong order when conflict resolution is in play 

Activities

There are no notes attached to this issue.

Related Changesets

SymmetricDS: 3.14 07050e9c

2024-12-02 19:19:45

pmarzullo

Details Diff
0006661: Logging of exceptions on data load can show values used in the
wrong order when conflict resolution is in play
Affected Issues
0006661
mod - symmetric-client/src/main/java/org/jumpmind/symmetric/io/HbaseDatabaseWriter.java Diff File
mod - symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/AbstractDatabaseWriter.java Diff File
mod - symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriter.java Diff File

SymmetricDS: 3.15 f1b6d182

2024-12-02 19:19:45

pmarzullo

Details Diff
0006661: Logging of exceptions on data load can show values used in the
wrong order when conflict resolution is in play
Affected Issues
0006661
mod - symmetric-client/src/main/java/org/jumpmind/symmetric/io/HbaseDatabaseWriter.java Diff File
mod - symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/AbstractDatabaseWriter.java Diff File
mod - symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriter.java Diff File

SymmetricDS: 3.16 462d4e7e

2024-12-02 19:19:45

pmarzullo

Details Diff
0006661: Logging of exceptions on data load can show values used in the
wrong order when conflict resolution is in play
Affected Issues
0006661
mod - symmetric-client/src/main/java/org/jumpmind/symmetric/io/HbaseDatabaseWriter.java Diff File
mod - symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/AbstractDatabaseWriter.java Diff File
mod - symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriter.java Diff File

Issue History

Date Modified Username Field Change
2024-12-02 19:10 pmarzullo New Issue
2024-12-02 19:10 pmarzullo Status new => assigned
2024-12-02 19:10 pmarzullo Assigned To => pmarzullo
2024-12-02 19:10 pmarzullo Tag Attached: data sync
2024-12-02 19:10 pmarzullo Tag Attached: logging
2024-12-02 19:14 pmarzullo Relationship added related to 0006662
2024-12-02 19:16 pmarzullo Relationship added related to 0006663
2024-12-02 19:20 pmarzullo Status assigned => resolved
2024-12-02 19:20 pmarzullo Resolution open => fixed
2024-12-02 19:20 pmarzullo Fixed in Version => 3.14.18
2024-12-02 20:00 pmarzullo Changeset attached => SymmetricDS 3.14 07050e9c
2024-12-02 20:00 pmarzullo Changeset attached => SymmetricDS 3.15 f1b6d182
2024-12-02 22:00 pmarzullo Changeset attached => SymmetricDS 3.16 462d4e7e