View Issue Details

IDProjectCategoryView StatusLast Update
0003196SymmetricDSBugpublic2017-10-27 08:24
ReporterarsreedhAssigned Tokstojanovska 
Status resolvedResolutionfixed 
Product Version3.8.27 
Target Version3.9.1Fixed in Version3.9.0 
Summary0003196: Behaviour changed for `sym_trigger` `use_stream_lobs` and `use_capture_lobs` fields
DescriptionCompared 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(
        at org.jumpmind.symmetric.service.impl.DataExtractorService.extract(
        at org.jumpmind.symmetric.web.PullUriHandler.pull(
        at org.jumpmind.symmetric.web.PullUriHandler.handleWithCompression(
        at org.jumpmind.symmetric.web.AbstractCompressionUriHandler.handle(
        at org.jumpmind.symmetric.web.SymmetricServlet.service(
        at javax.servlet.http.HttpServlet.service(
        at org.eclipse.jetty.servlet.ServletHolder.handle(
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(
        at org.jumpmind.symmetric.web.HttpMethodFilter.doFilter(
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(
        at org.eclipse.jetty.servlet.ServletHandler.doScope(
        at org.eclipse.jetty.server.session.SessionHandler.doScope(
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(
        at org.eclipse.jetty.server.Server.handle(
        at org.eclipse.jetty.server.HttpChannel.handle(
        at org.eclipse.jetty.server.HttpConnection.onFillable(
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(
        at org.eclipse.jetty.util.thread.QueuedThreadPool$
Caused by: java.lang.NullPointerException
        at org.jumpmind.symmetric.model.ProcessInfoDataWriter.write(
        at org.jumpmind.symmetric.service.impl.DataExtractorService.extractOutgoingBatch(
        at org.jumpmind.symmetric.service.impl.DataExtractorService.extractBatch(
        at org.jumpmind.symmetric.service.impl.DataExtractorService$
        at org.jumpmind.symmetric.service.impl.DataExtractorService$
        at java.util.concurrent.ThreadPoolExecutor.runWorker(
        at java.util.concurrent.ThreadPoolExecutor$
        ... 1 more
[corp-000] - DataExtractorService - Failed to extract batch 001-66

Steps To ReproduceExtending 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.

TagsNo tags attached.



2017-07-11 16:32

reporter   ~0001060

The database used is mysql 5.7 for both the nodes.


2017-07-12 13:02

administrator   ~0001061

This is because a change was put into 3.8 to treat binary fields like lob fields.


2017-07-13 01:44

reporter   ~0001063

Is there a workaround in 3.8 to have the 3.7 behaviour?


2017-07-18 12:40

administrator   ~0001066

There isn't. We will fix this in 3.8.29

Issue History

Date Modified Username Field Change
2017-07-11 16:28 arsreedh New Issue
2017-07-11 16:32 arsreedh Note Added: 0001060
2017-07-12 13:02 chenson Note Added: 0001061
2017-07-12 13:49 chenson Target Version => 3.8.28
2017-07-12 13:49 chenson Steps to Reproduce Updated View Revisions
2017-07-13 01:44 arsreedh Note Added: 0001063
2017-07-18 09:53 chenson Target Version 3.8.28 => 3.8.29
2017-07-18 09:53 chenson Assigned To => maxwellpettit
2017-07-18 09:53 chenson Status new => assigned
2017-07-18 12:40 chenson Note Added: 0001066
2017-08-01 09:47 chenson Assigned To maxwellpettit => gwilmer
2017-08-14 08:18 chenson Target Version 3.8.29 => 3.8.30
2017-09-22 10:55 chenson Target Version 3.8.30 => 3.9.0
2017-09-26 15:42 chenson Assigned To gwilmer => chenson
2017-10-05 11:01 chenson Target Version 3.9.0 => 3.9.1
2017-10-27 08:24 kstojanovska Assigned To chenson => kstojanovska
2017-10-27 08:24 kstojanovska Status assigned => resolved
2017-10-27 08:24 kstojanovska Resolution open => fixed
2017-10-27 08:24 kstojanovska Fixed in Version => 3.9.0