View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006662 | SymmetricDS | Bug | public | 2024-12-02 19:13 | 2024-12-04 14:29 |
Reporter | pmarzullo | Assigned To | pmarzullo | ||
Priority | normal | ||||
Status | closed | Resolution | fixed | ||
Product Version | 3.14.0 | ||||
Target Version | 3.15.11 | Fixed in Version | 3.15.11 | ||
Summary | 0006662: Logging of exceptions on data load can show values used in the wrong order when conflict resolution is in play | ||||
Description | When 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 Reproduce | 1. 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. | ||||
Tags | data sync, logging | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2024-12-02 19:13 | pmarzullo | New Issue | |
2024-12-02 19:13 | pmarzullo | Status | new => assigned |
2024-12-02 19:13 | pmarzullo | Assigned To | => pmarzullo |
2024-12-02 19:13 | pmarzullo | Tag Attached: data sync | |
2024-12-02 19:13 | pmarzullo | Tag Attached: logging | |
2024-12-02 19:14 | pmarzullo | Relationship added | related to 0006661 |
2024-12-02 19:16 | pmarzullo | Relationship added | related to 0006663 |
2024-12-02 19:25 | pmarzullo | Status | assigned => resolved |
2024-12-02 19:25 | pmarzullo | Resolution | open => fixed |
2024-12-02 19:25 | pmarzullo | Fixed in Version | => 3.15.11 |
2024-12-02 19:26 | pmarzullo | Product Version | 3.15.0 => 3.14.0 |
2024-12-04 14:29 | pbelov | Status | resolved => closed |
2024-12-04 14:29 | pbelov | Note Added: 0002535 |