View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003196 | SymmetricDS | Bug | public | 2017-07-11 20:28 | 2018-02-14 20:08 |
Reporter | arsreedh | Assigned To | kstojanovska | ||
Priority | high | ||||
Status | closed | Resolution | fixed | ||
Product Version | 3.8.27 | ||||
Target Version | 3.9.1 | Fixed in Version | 3.9.1 | ||
Summary | 0003196: Behaviour changed for `sym_trigger` `use_stream_lobs` and `use_capture_lobs` fields | ||||
Description | Compared to 3.7.x version in 3.8.x the behaviour for the use_stream_lobs and use_capture_lobs have changed. When we attempted an upgrade from 3.7.x to 3.8.x the tables with binary column as primary key throw an error extract failed. Is there a way to retain the 3.7.x behaviour in this scenario for 3.8.x ? java.lang.RuntimeException: java.lang.NullPointerException at org.jumpmind.symmetric.service.impl.DataExtractorService.extract(DataExtractorService.java:664) at org.jumpmind.symmetric.service.impl.DataExtractorService.extract(DataExtractorService.java:537) at org.jumpmind.symmetric.web.PullUriHandler.pull(PullUriHandler.java:130) at org.jumpmind.symmetric.web.PullUriHandler.handleWithCompression(PullUriHandler.java:100) at org.jumpmind.symmetric.web.AbstractCompressionUriHandler.handle(AbstractCompressionUriHandler.java:84) at org.jumpmind.symmetric.web.SymmetricServlet.service(SymmetricServlet.java:114) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) at org.jumpmind.symmetric.web.HttpMethodFilter.doFilter(HttpMethodFilter.java:62) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:499) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NullPointerException at org.jumpmind.symmetric.io.data.writer.StagingDataWriter.print(StagingDataWriter.java:116) at org.jumpmind.symmetric.io.data.writer.AbstractProtocolDataWriter.println(AbstractProtocolDataWriter.java:253) at org.jumpmind.symmetric.io.data.writer.AbstractProtocolDataWriter.write(AbstractProtocolDataWriter.java:182) at org.jumpmind.symmetric.io.data.writer.NestedDataWriter.write(NestedDataWriter.java:64) at org.jumpmind.symmetric.model.ProcessInfoDataWriter.write(ProcessInfoDataWriter.java:65) at org.jumpmind.symmetric.io.data.writer.NestedDataWriter.write(NestedDataWriter.java:64) at org.jumpmind.symmetric.io.data.writer.TransformWriter.write(TransformWriter.java:207) 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:897) at org.jumpmind.symmetric.service.impl.DataExtractorService.extractBatch(DataExtractorService.java:774) at org.jumpmind.symmetric.service.impl.DataExtractorService$1.call(DataExtractorService.java:604) at org.jumpmind.symmetric.service.impl.DataExtractorService$1.call(DataExtractorService.java:602) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ... 1 more [corp-000] - DataExtractorService - Failed to extract batch 001-66 | ||||
Steps To Reproduce | Extending the corp-store example add a new table : CREATE TABLE `corp`.`bin_test` ( `bin_uuid` BINARY(16) NOT NULL, `description` VARCHAR(45) NULL, PRIMARY KEY (`bin_uuid`)); CREATE TABLE `store`.`bin_test` ( `bin_uuid` BINARY(16) NOT NULL, `description` VARCHAR(45) NULL, PRIMARY KEY (`bin_uuid`)); INSERT INTO `corp`.`sym_trigger` (`trigger_id`, `source_table_name`, `channel_id`, last_update_time, create_time) VALUES ('bin_test', 'bin_test', 'sale_transaction', current_timestamp, current_timestamp); INSERT INTO `corp`.`sym_trigger_router` (`trigger_id`, `router_id`, `initial_load_order`, `create_time`, `last_update_time`) VALUES ('bin_test', 'corp_2_store', '100', current_timestamp, current_timestamp); UPDATE `corp`.`sym_channel` SET `contains_big_lob`='1' WHERE `channel_id`='sale_transaction'; UPDATE `corp`.`sym_trigger` SET `use_stream_lobs`='1', `use_capture_lobs`='1' WHERE `trigger_id`='bin_test'; Now when you do an insert into this table: insert into corp.bin_test(bin_uuid,description) values('9fad5e9eefdfb449', 'abc!'); It throws the above stated exception. Where as in 3.7.x this never threw an error. | ||||
Tags | No tags attached. | ||||
|
The database used is mysql 5.7 for both the nodes. |
|
This is because a change was put into 3.8 to treat binary fields like lob fields. |
|
Is there a workaround in 3.8 to have the 3.7 behaviour? |
|
There isn't. We will fix this in 3.8.29 |
SymmetricDS: 3.9 ec5ca317 2017-10-27 08:22:20 klementinastojanovska Details Diff |
0003196: Behaviour changed for `sym_trigger` `use_stream_lobs` and `use_capture_lobs` fields |
Affected Issues 0003196 |
|
mod - symmetric-android/src/main/java/org/jumpmind/symmetric/android/AndroidDatabasePlatform.java | Diff File | ||
mod - symmetric-client/src/main/java/org/jumpmind/symmetric/ClientSymmetricEngine.java | Diff File | ||
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/common/ParameterConstants.java | Diff File | ||
mod - symmetric-core/src/main/resources/symmetric-default.properties | Diff File | ||
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java | Diff File | ||
mod - symmetric-db/src/main/java/org/jumpmind/db/sql/SqlTemplateSettings.java | Diff File | ||
mod - symmetric-db/src/test/java/org/jumpmind/db/platform/AbstractDatabasePlatformTest.java | Diff File | ||
mod - symmetric-jdbc/src/main/java/org/jumpmind/db/platform/AbstractJdbcDatabasePlatform.java | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2017-07-11 20:28 | arsreedh | New Issue | |
2017-07-11 20:32 | arsreedh | Note Added: 0001060 | |
2017-07-12 17:02 | chenson | Note Added: 0001061 | |
2017-07-12 17:49 | chenson | Target Version | => 3.8.28 |
2017-07-12 17:49 | chenson | Steps to Reproduce Updated | View Revisions |
2017-07-13 05:44 | arsreedh | Note Added: 0001063 | |
2017-07-18 13:53 | chenson | Target Version | 3.8.28 => 3.8.29 |
2017-07-18 13:53 | chenson | Assigned To | => maxwellpettit |
2017-07-18 13:53 | chenson | Status | new => assigned |
2017-07-18 16:40 | chenson | Note Added: 0001066 | |
2017-08-01 13:47 | chenson | Assigned To | maxwellpettit => gwilmer |
2017-08-14 12:18 | chenson | Target Version | 3.8.29 => 3.8.30 |
2017-09-22 14:55 | chenson | Target Version | 3.8.30 => 3.9.0 |
2017-09-26 19:42 | chenson | Assigned To | gwilmer => chenson |
2017-10-05 15:01 | chenson | Target Version | 3.9.0 => 3.9.1 |
2017-10-27 12:24 | kstojanovska | Assigned To | chenson => kstojanovska |
2017-10-27 12:24 | kstojanovska | Status | assigned => resolved |
2017-10-27 12:24 | kstojanovska | Resolution | open => fixed |
2017-10-27 12:24 | kstojanovska | Fixed in Version | => 3.9.0 |
2017-12-22 19:58 | mmichalek | Fixed in Version | 3.9.0 => 3.9.1 |
2017-12-22 20:06 | mmichalek | Status | resolved => closed |
2018-02-14 20:08 | Changeset attached | => SymmetricDS 3.9 ec5ca317 |