View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002481 | SymmetricDS | Bug | public | 2016-01-19 02:44 | 2016-11-30 17:21 |
Reporter | ssasidha | Assigned To | elong | ||
Priority | urgent | ||||
Status | closed | Resolution | duplicate | ||
Product Version | 3.7.28 | ||||
Target Version | 3.7.37 | Fixed in Version | 3.7.37 | ||
Summary | 0002481: Unable to Sync | ||||
Description | I installed Master Node and client node and registration, config sync all went fine. But when any data is updated to be synced to server, getting following error in logs: 2016-01-18 12:00:27,812 ERROR [client-5B5C1799-9918-4C28-B978-05ACE9343F8E] [TransformService$TransformTableNodeGroupLink] [client-5b5c1799-9918-4c28-b978-05ace9343f8e-push-1] java.lang.NullPointerException at org.jumpmind.symmetric.io.data.transform.TransformTable.evaluateTargetDmlAction(TransformTable.java:254) at org.jumpmind.symmetric.io.data.writer.TransformWriter.perform(TransformWriter.java:323) at org.jumpmind.symmetric.io.data.writer.TransformWriter.transform(TransformWriter.java:229) at org.jumpmind.symmetric.io.data.writer.TransformWriter.write(TransformWriter.java:170) at org.jumpmind.symmetric.io.data.DataProcessor.forEachDataInTable(DataProcessor.java:200) at org.jumpmind.symmetric.io.data.DataProcessor.forEachTableInBatch(DataProcessor.java:170) at org.jumpmind.symmetric.io.data.DataProcessor.process(DataProcessor.java:116) at org.jumpmind.symmetric.service.impl.DataExtractorService.extractOutgoingBatch(DataExtractorService.java:746) at org.jumpmind.symmetric.service.impl.DataExtractorService.extract(DataExtractorService.java:544) at org.jumpmind.symmetric.service.impl.DataExtractorService.extract(DataExtractorService.java:454) at org.jumpmind.symmetric.service.impl.PushService.pushToNode(PushService.java:195) at org.jumpmind.symmetric.service.impl.PushService.execute(PushService.java:159) at org.jumpmind.symmetric.service.impl.NodeCommunicationService$2.run(NodeCommunicationService.java:396) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Its blocking and no sync happens. | ||||
Steps To Reproduce | Install sync as service at both client and server and update any data at client end with transform column set as PK having the client table PK + SOURCE_NODE_ID as the variable. | ||||
Additional Information | attached is engine file. | ||||
Tags | No tags attached. | ||||
|
|
|
Do you have a row in your configuration in sym_transform_column that has a null transform_expression? |
|
Hi, no, all the transform expression have values. I found that when I set auto.upgrade = false and auto.database.update=false in the engine file and had the initial tables updated from my end, got the issue resolved. But again, why is this failing when the DB is auto updated? Thanks, Sajeev |
|
I have this issue too. But I change data at server node and get the same error. Server node was upgraded from 3.6, client node is fresh install. |
|
In my case it was solved by deleting everything from sym_transform_table and sym_transform_columns. There were a couple of transformations introduced because of http://www.symmetricds.org/issues/view.php?id=1922. They converted "true" and "false" strings to 1 and 0 integer values. After removing these transformations sync went fine. Since the bug with BIT columns was fixed in 3.6.6, version 3.7.28 should pass correct integer values to client node. But then they get transformed to NULL because that's how transformation rules were written. And finally we get NullPointerException. It's clearly a bug. SymmetricDS should give an intelligible error message at least, if this configuration is erroneous. It should not silently fail. Here's data from these tables: /****** Object: Table [symmetricds].[sym_transform_table] Script Date: 02/08/2016 13:05:57 ******/ INSERT [symmetricds].[sym_transform_table] ([transform_id], [source_node_group_id], [target_node_group_id], [transform_point], [source_catalog_name], [source_schema_name], [source_table_name], [target_catalog_name], [target_schema_name], [target_table_name], [update_first], [delete_action], [transform_order], [column_policy], [create_time], [last_update_by], [last_update_time]) VALUES (N'bit_value_str_to_int', N'main', N'post', N'LOAD', NULL, NULL, N'regimes', NULL, NULL, N'regimes', 0, N'DEL_ROW', 1, N'IMPLIED', NULL, NULL, NULL) INSERT [symmetricds].[sym_transform_table] ([transform_id], [source_node_group_id], [target_node_group_id], [transform_point], [source_catalog_name], [source_schema_name], [source_table_name], [target_catalog_name], [target_schema_name], [target_table_name], [update_first], [delete_action], [transform_order], [column_policy], [create_time], [last_update_by], [last_update_time]) VALUES (N'bit_value_str_to_int2', N'main', N'post', N'LOAD', NULL, NULL, N'people', NULL, NULL, N'people', 0, N'DEL_ROW', 1, N'IMPLIED', NULL, NULL, NULL) INSERT [symmetricds].[sym_transform_table] ([transform_id], [source_node_group_id], [target_node_group_id], [transform_point], [source_catalog_name], [source_schema_name], [source_table_name], [target_catalog_name], [target_schema_name], [target_table_name], [update_first], [delete_action], [transform_order], [column_policy], [create_time], [last_update_by], [last_update_time]) VALUES (N'bit_value_str_to_int3', N'main', N'post', N'LOAD', NULL, NULL, N'cards', NULL, NULL, N'cards', 0, N'DEL_ROW', 1, N'IMPLIED', NULL, NULL, NULL) INSERT [symmetricds].[sym_transform_table] ([transform_id], [source_node_group_id], [target_node_group_id], [transform_point], [source_catalog_name], [source_schema_name], [source_table_name], [target_catalog_name], [target_schema_name], [target_table_name], [update_first], [delete_action], [transform_order], [column_policy], [create_time], [last_update_by], [last_update_time]) VALUES (N'bit_value_str_to_int4', N'main', N'post', N'LOAD', NULL, NULL, N'departments', NULL, NULL, N'departments', 0, N'DEL_ROW', 1, N'IMPLIED', NULL, NULL, NULL) INSERT [symmetricds].[sym_transform_table] ([transform_id], [source_node_group_id], [target_node_group_id], [transform_point], [source_catalog_name], [source_schema_name], [source_table_name], [target_catalog_name], [target_schema_name], [target_table_name], [update_first], [delete_action], [transform_order], [column_policy], [create_time], [last_update_by], [last_update_time]) VALUES (N'bit_value_str_to_int5', N'main', N'post', N'LOAD', NULL, NULL, N'employees_data', NULL, NULL, N'employees_data', 0, N'DEL_ROW', 1, N'IMPLIED', NULL, NULL, NULL) /****** Object: Table [symmetricds].[sym_transform_column] Script Date: 02/08/2016 13:05:57 ******/ INSERT [symmetricds].[sym_transform_column] ([transform_id], [include_on], [target_column_name], [source_column_name], [pk], [transform_type], [transform_expression], [transform_order], [create_time], [last_update_by], [last_update_time]) VALUES (N'bit_value_str_to_int', N'*', N'is_special', N'is_special', 0, N'copy', N'false=0 true=1', 1, NULL, NULL, NULL) INSERT [symmetricds].[sym_transform_column] ([transform_id], [include_on], [target_column_name], [source_column_name], [pk], [transform_type], [transform_expression], [transform_order], [create_time], [last_update_by], [last_update_time]) VALUES (N'bit_value_str_to_int2', N'*', N'1st_cat_pass', N'1st_cat_pass', 0, N'copy', N'false=0 true=1', 1, NULL, NULL, NULL) INSERT [symmetricds].[sym_transform_column] ([transform_id], [include_on], [target_column_name], [source_column_name], [pk], [transform_type], [transform_expression], [transform_order], [create_time], [last_update_by], [last_update_time]) VALUES (N'bit_value_str_to_int2', N'*', N'has_bag', N'has_bag', 0, N'copy', N'false=0 true=1', 1, NULL, NULL, NULL) INSERT [symmetricds].[sym_transform_column] ([transform_id], [include_on], [target_column_name], [source_column_name], [pk], [transform_type], [transform_expression], [transform_order], [create_time], [last_update_by], [last_update_time]) VALUES (N'bit_value_str_to_int2', N'*', N'has_bicycle', N'has_bicycle', 0, N'copy', N'false=0 true=1', 1, NULL, NULL, NULL) INSERT [symmetricds].[sym_transform_column] ([transform_id], [include_on], [target_column_name], [source_column_name], [pk], [transform_type], [transform_expression], [transform_order], [create_time], [last_update_by], [last_update_time]) VALUES (N'bit_value_str_to_int3', N'*', N'issued', N'issued', 0, N'copy', N'false=0 true=1', 1, NULL, NULL, NULL) INSERT [symmetricds].[sym_transform_column] ([transform_id], [include_on], [target_column_name], [source_column_name], [pk], [transform_type], [transform_expression], [transform_order], [create_time], [last_update_by], [last_update_time]) VALUES (N'bit_value_str_to_int4', N'*', N'is_leaser', N'is_leaser', 0, N'copy', N'false=0 true=1', 1, NULL, NULL, NULL) INSERT [symmetricds].[sym_transform_column] ([transform_id], [include_on], [target_column_name], [source_column_name], [pk], [transform_type], [transform_expression], [transform_order], [create_time], [last_update_by], [last_update_time]) VALUES (N'bit_value_str_to_int5', N'*', N'is_boss', N'is_boss', 0, N'copy', N'false=0 true=1', 1, NULL, NULL, NULL) INSERT [symmetricds].[sym_transform_column] ([transform_id], [include_on], [target_column_name], [source_column_name], [pk], [transform_type], [transform_expression], [transform_order], [create_time], [last_update_by], [last_update_time]) VALUES (N'bit_value_str_to_int5', N'*', N'sp_flag', N'sp_flag', 0, N'copy', N'false=0 true=1', 1, NULL, NULL, NULL) INSERT [symmetricds].[sym_transform_column] ([transform_id], [include_on], [target_column_name], [source_column_name], [pk], [transform_type], [transform_expression], [transform_order], [create_time], [last_update_by], [last_update_time]) VALUES (N'bit_value_str_to_int5', N'*', N'timetable_flag', N'timetable_flag', 0, N'copy', N'false=0 true=1', 1, NULL, NULL, NULL) |
|
This is fixed in 0002695 caused by the update_action being left as null. If you set the update_action, it should work for you. It is prevented in 3.7.37. |
Date Modified | Username | Field | Change |
---|---|---|---|
2016-01-19 02:44 | ssasidha | New Issue | |
2016-01-19 02:44 | ssasidha | File Added: station.properties | |
2016-01-19 12:15 | chenson | Note Added: 0000751 | |
2016-01-19 12:20 | ssasidha | Note Added: 0000752 | |
2016-02-05 13:56 | azarubkin | Note Added: 0000758 | |
2016-02-05 14:05 | azarubkin | Note Edited: 0000758 | View Revisions |
2016-02-08 10:15 | azarubkin | Note Added: 0000760 | |
2016-11-30 17:19 | elong | Relationship added | duplicate of 0002695 |
2016-11-30 17:20 | elong | Note Added: 0000917 | |
2016-11-30 17:21 | elong | Status | new => closed |
2016-11-30 17:21 | elong | Assigned To | => elong |
2016-11-30 17:21 | elong | Resolution | open => duplicate |
2016-11-30 17:21 | elong | Fixed in Version | => 3.7.37 |