Open
Description
environment
- canal version 1.1.8
- Elasticsearch Serverless 8.17
问题描述
ES配置管道后,同步数据会出现空指针,导致同步失效。
同步模式为TCP
管道已经用_simulate验证过没有问题
ERROR c.a.otter.canal.adapter.launcher.loader.AdapterProcessor - Elasticsearch exception [type=null_pointer_exception, reason=Cannot invoke "String.startsWith(String)" because "resourceName" is null]
org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception [type=null_pointer_exception, reason=Cannot invoke "String.startsWith(String)" because "resourceName" is null]
at org.elasticsearch.rest.BytesRestResponse.errorFromXContent(BytesRestResponse.java:178)
at org.elasticsearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:2484)
at org.elasticsearch.client.RestHighLevelClient.parseResponseException(RestHighLevelClient.java:2461)
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:2184)
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:2137)
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:2105)
at org.elasticsearch.client.RestHighLevelClient.bulk(RestHighLevelClient.java:620)
at com.alibaba.otter.canal.client.adapter.es8x.support.ESConnection$ES8xBulkRequest.bulk(ESConnection.java:374)
at com.alibaba.otter.canal.client.adapter.es8x.support.ES8xTemplate.commit(ES8xTemplate.java:170)
at com.alibaba.otter.canal.client.adapter.es.core.service.ESSyncService.commit(ESSyncService.java:873)
at com.alibaba.otter.canal.client.adapter.es.core.ESAdapter.sync(ESAdapter.java:86)
at com.alibaba.otter.canal.client.adapter.ProxyOuterAdapter.sync(ProxyOuterAdapter.java:42)
at com.alibaba.otter.canal.adapter.launcher.loader.AdapterProcessor.batchSync(AdapterProcessor.java:142)
at com.alibaba.otter.canal.adapter.launcher.loader.AdapterProcessor.lambda$null$1(AdapterProcessor.java:100)
at java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:895)
at com.alibaba.otter.canal.adapter.launcher.loader.AdapterProcessor.lambda$null$2(AdapterProcessor.java:97)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Suppressed: org.elasticsearch.client.ResponseException: method [POST], host [eshost], URI [/_bulk?timeout=1m], status line [HTTP/1.1 500 Internal Server Error]
{"error":{"root_cause":[{"type":"null_pointer_exception","reason":"Cannot invoke \"String.startsWith(String)\" because \"resourceName\" is null"}],"type":"null_pointer_exception","reason":"Cannot invoke \"String.startsWith(String)\" because \"resourceName\" is null"},"status":500}
at org.elasticsearch.client.RestClient.convertResponse(RestClient.java:347)
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:313)
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:288)
at org.elasticsearch.client.RestHighLevelClient.performClientRequest(RestHighLevelClient.java:2699)
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:2171)
... 16 common frames omitted
Metadata
Metadata
Assignees
Labels
No labels