Skip to content

1.1.3-alpha-2 canal RdbAdapter the truncate table dml won't works well #1408

@TheNorthMemory

Description

@TheNorthMemory

environment

  • canal version = 1.1.3-alpha-2
  • mysql version = 5.5.18

Issue Description

2019-01-11 00:19:03.356  INFO 6 --- [pool-7-thread-1] c.a.o.c.c.a.logger.LoggerAdapterExample  : DML: {"data":null,"database":"dbtest","destination":"test","es":1547137142000,"isDdl":null,"old":null,"pkNames":null,"sql":"truncate table `test`","table":"test","ts":1547137143334,"type":"TRUNCATE"}
2019-01-11 00:19:03.370 ERROR 6 --- [pool-7-thread-2] c.a.o.c.a.l.loader.CanalAdapterWorker    : java.util.concurrent.ExecutionException: java.lang.NullPointerException

java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.sync(RdbAdapter.java:171) ~[na:na]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.batchSync(AbstractCanalAdapterWorker.java:197) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.lambda$null$1(AbstractCanalAdapterWorker.java:61) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_181]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.lambda$null$2(AbstractCanalAdapterWorker.java:57) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_181]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181]
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:1.8.0_181]
	at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[na:1.8.0_181]
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.sync(RdbAdapter.java:168) ~[na:na]
	... 8 common frames omitted
Caused by: java.lang.NullPointerException: null
	at com.alibaba.otter.canal.client.adapter.rdb.support.SingleDml.dml2SingleDmls(SingleDml.java:67) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.lambda$sync$5(RdbSyncService.java:158) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.sync(RdbSyncService.java:98) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.sync(RdbSyncService.java:139) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.lambda$sync$2(RdbAdapter.java:160) ~[na:na]
	... 4 common frames omitted

2019-01-11 00:19:03.392 ERROR 6 --- [       Thread-7] c.a.o.c.a.l.loader.CanalAdapterWorker    : Outer adapter sync failed!  Error sync and rollback, execute times: 1
2019-01-11 00:19:03.911  INFO 6 --- [pool-7-thread-3] c.a.o.c.c.a.logger.LoggerAdapterExample  : DML: {"data":null,"database":"dbtest","destination":"test","es":1547137142000,"isDdl":null,"old":null,"pkNames":null,"sql":"truncate table `test`","table":"test","ts":1547137143911,"type":"TRUNCATE"}
2019-01-11 00:19:03.945 ERROR 6 --- [pool-7-thread-1] c.a.o.c.a.l.loader.CanalAdapterWorker    : java.util.concurrent.ExecutionException: java.lang.NullPointerException

java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.sync(RdbAdapter.java:171) ~[na:na]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.batchSync(AbstractCanalAdapterWorker.java:197) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.lambda$null$1(AbstractCanalAdapterWorker.java:61) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_181]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.lambda$null$2(AbstractCanalAdapterWorker.java:57) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_181]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181]
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:1.8.0_181]
	at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[na:1.8.0_181]
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.sync(RdbAdapter.java:168) ~[na:na]
	... 8 common frames omitted
Caused by: java.lang.NullPointerException: null
	at com.alibaba.otter.canal.client.adapter.rdb.support.SingleDml.dml2SingleDmls(SingleDml.java:67) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.lambda$sync$5(RdbSyncService.java:158) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.sync(RdbSyncService.java:98) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.sync(RdbSyncService.java:139) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.lambda$sync$2(RdbAdapter.java:160) ~[na:na]
	... 4 common frames omitted

2019-01-11 00:19:03.947 ERROR 6 --- [       Thread-7] c.a.o.c.a.l.loader.CanalAdapterWorker    : Outer adapter sync failed!  Error sync and rollback, execute times: 2
2019-01-11 00:19:04.449  INFO 6 --- [pool-7-thread-2] c.a.o.c.c.a.logger.LoggerAdapterExample  : DML: {"data":null,"database":"dbtest","destination":"test","es":1547137142000,"isDdl":null,"old":null,"pkNames":null,"sql":"truncate table `test`","table":"test","ts":1547137144449,"type":"TRUNCATE"}
2019-01-11 00:19:04.465 ERROR 6 --- [pool-7-thread-3] c.a.o.c.a.l.loader.CanalAdapterWorker    : java.util.concurrent.ExecutionException: java.lang.NullPointerException

java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.sync(RdbAdapter.java:171) ~[na:na]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.batchSync(AbstractCanalAdapterWorker.java:197) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.lambda$null$1(AbstractCanalAdapterWorker.java:61) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_181]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.lambda$null$2(AbstractCanalAdapterWorker.java:57) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_181]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181]
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:1.8.0_181]
	at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[na:1.8.0_181]
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.sync(RdbAdapter.java:168) ~[na:na]
	... 8 common frames omitted
Caused by: java.lang.NullPointerException: null
	at com.alibaba.otter.canal.client.adapter.rdb.support.SingleDml.dml2SingleDmls(SingleDml.java:67) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.lambda$sync$5(RdbSyncService.java:158) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.sync(RdbSyncService.java:98) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.sync(RdbSyncService.java:139) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.lambda$sync$2(RdbAdapter.java:160) ~[na:na]
	... 4 common frames omitted

2019-01-11 00:19:04.481 ERROR 6 --- [       Thread-7] c.a.o.c.a.l.loader.CanalAdapterWorker    : Outer adapter sync failed!  Error sync and rollback, execute times: 3
2019-01-11 00:19:04.985  INFO 6 --- [pool-7-thread-1] c.a.o.c.c.a.logger.LoggerAdapterExample  : DML: {"data":null,"database":"dbtest","destination":"test","es":1547137142000,"isDdl":null,"old":null,"pkNames":null,"sql":"truncate table `test`","table":"test","ts":1547137144985,"type":"TRUNCATE"}
2019-01-11 00:19:04.998 ERROR 6 --- [pool-7-thread-2] c.a.o.c.a.l.loader.CanalAdapterWorker    : java.util.concurrent.ExecutionException: java.lang.NullPointerException

java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.sync(RdbAdapter.java:171) ~[na:na]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.batchSync(AbstractCanalAdapterWorker.java:197) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.lambda$null$1(AbstractCanalAdapterWorker.java:61) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_181]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.lambda$null$2(AbstractCanalAdapterWorker.java:57) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_181]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181]
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:1.8.0_181]
	at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[na:1.8.0_181]
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.sync(RdbAdapter.java:168) ~[na:na]
	... 8 common frames omitted
Caused by: java.lang.NullPointerException: null
	at com.alibaba.otter.canal.client.adapter.rdb.support.SingleDml.dml2SingleDmls(SingleDml.java:67) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.lambda$sync$5(RdbSyncService.java:158) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.sync(RdbSyncService.java:98) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.sync(RdbSyncService.java:139) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.lambda$sync$2(RdbAdapter.java:160) ~[na:na]
	... 4 common frames omitted

2019-01-11 00:19:05.027 ERROR 6 --- [       Thread-7] c.a.o.c.a.l.loader.CanalAdapterWorker    : Outer adapter sync failed!  Error sync and rollback, execute times: 4
2019-01-11 00:19:05.529  INFO 6 --- [pool-7-thread-3] c.a.o.c.c.a.logger.LoggerAdapterExample  : DML: {"data":null,"database":"dbtest","destination":"test","es":1547137142000,"isDdl":null,"old":null,"pkNames":null,"sql":"truncate table `test`","table":"test","ts":1547137145529,"type":"TRUNCATE"}
2019-01-11 00:19:05.541 ERROR 6 --- [pool-7-thread-1] c.a.o.c.a.l.loader.CanalAdapterWorker    : java.util.concurrent.ExecutionException: java.lang.NullPointerException

java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.sync(RdbAdapter.java:171) ~[na:na]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.batchSync(AbstractCanalAdapterWorker.java:197) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.lambda$null$1(AbstractCanalAdapterWorker.java:61) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_181]
	at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.lambda$null$2(AbstractCanalAdapterWorker.java:57) ~[client-adapter.launcher-1.1.3-SNAPSHOT.jar:na]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_181]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181]
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:1.8.0_181]
	at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[na:1.8.0_181]
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.sync(RdbAdapter.java:168) ~[na:na]
	... 8 common frames omitted
Caused by: java.lang.NullPointerException: null
	at com.alibaba.otter.canal.client.adapter.rdb.support.SingleDml.dml2SingleDmls(SingleDml.java:67) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.lambda$sync$5(RdbSyncService.java:158) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.sync(RdbSyncService.java:98) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.sync(RdbSyncService.java:139) ~[na:na]
	at com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter.lambda$sync$2(RdbAdapter.java:160) ~[na:na]
	... 4 common frames omitted

2019-01-11 00:19:05.559 ERROR 6 --- [       Thread-7] c.a.o.c.a.l.loader.CanalAdapterWorker    : Outer adapter sync failed!  Error sync but ACK!

Steps to reproduce

源库内执行 truncate table test, RdbAdapter 抛异常无法同步,log如上。

Expected behaviour

truncate table test 可同步。

Actual behaviour

Caused by: java.lang.NullPointerException: null
	at com.alibaba.otter.canal.client.adapter.rdb.support.SingleDml.dml2SingleDmls(SingleDml.java:67) ~[na:na]

...

Outer adapter sync failed! Error sync but ACK!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions