Echo Lee created FLINK-20641:
--------------------------------
Summary: flink-connector-elasticsearch6 will deadlock
Key: FLINK-20641
URL: https://issues.apache.org/jira/browse/FLINK-20641
Project: Flink
Issue Type: Bug
Components: Connectors / ElasticSearch
Affects Versions: 1.11.1
Reporter: Echo Lee
Fix For: 1.13.0
flink vision: 1.11.1
elasticsearch connector version: 6.3.1
My job graph is [kafkaSource--> map–>elasticsearchSink], when I set a larger
degree of parallelism, stream processing will stop, I know es has an issue
[47599|[https://github.com/elastic/elasticsearch/issues/47599],] this is
unexpectedly the risk of deadlock when using flink-connector-elasticsearch6.
TaskManager stack is:
{code:java}
"elasticsearch[scheduler][T#1]" Id=15008 BLOCKED on
org.elasticsearch.action.bulk.BulkProcessor@61e178a6 owned by "Sink:
ProtoTraceLog (39/60)" Id=8781"elasticsearch[scheduler][T#1]" Id=15008 BLOCKED
on org.elasticsearch.action.bulk.BulkProcessor@61e178a6 owned by "Sink:
ProtoTraceLog (39/60)" Id=8781 at
org.elasticsearch.action.bulk.BulkProcessor$Flush.run(BulkProcessor.java:366) -
blocked on org.elasticsearch.action.bulk.BulkProcessor@61e178a6 at
org.elasticsearch.threadpool.Scheduler$ReschedulingRunnable.doRun(Scheduler.java:182)
at
org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at
java.util.concurrent.FutureTask.run(FutureTask.java:266) at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
...
Number of locked synchronizers = 1 -
java.util.concurrent.ThreadPoolExecutor$Worker@15659a74"
Sink: ProtoTraceLog (39/60)" Id=8781 WAITING on
java.util.concurrent.CountDownLatch$Sync@58bbbd7c at
sun.misc.Unsafe.park(Native Method) - waiting on
java.util.concurrent.CountDownLatch$Sync@58bbbd7c at
java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231) at
org.elasticsearch.action.bulk.BulkRequestHandler.execute(BulkRequestHandler.java:86)
at org.elasticsearch.action.bulk.BulkProcessor.execute(BulkProcessor.java:339)
...
{code}
TaskManager log is:
{code:java}
2020-12-16 14:36:35,291 ERROR
com.hundsun.flink.handler.HsActionRequestFailureHandler [] - Sink to es
exception ,exceptionData: index {[full_link_apm_span-2020-
12-16][apm][null], source[n/a, actual length: [5.8kb], max length: 2kb]}
,exceptionStackTrace: java.lang.InterruptedException
68224 at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:998)
68225 at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
68226 at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231)
68227 at
org.elasticsearch.action.bulk.BulkRequestHandler.execute(BulkRequestHandler.java:86)
68228 at
org.elasticsearch.action.bulk.BulkProcessor.execute(BulkProcessor.java:339)
68229 at
org.elasticsearch.action.bulk.BulkProcessor.executeIfNeeded(BulkProcessor.java:330)
68230 at
org.elasticsearch.action.bulk.BulkProcessor.internalAdd(BulkProcessor.java:288)
68231 at
org.elasticsearch.action.bulk.BulkProcessor.add(BulkProcessor.java:271)
68232 at
org.elasticsearch.action.bulk.BulkProcessor.add(BulkProcessor.java:267)
68233 at
org.elasticsearch.action.bulk.BulkProcessor.add(BulkProcessor.java:253)
68234 at
org.apache.flink.streaming.connectors.elasticsearch6.Elasticsearch6BulkProcessorIndexer.add(Elasticsearch6BulkProcessorIndexer.java:72)
68235 at
com.hundsun.flink.util.ElasticSearchSinkUtil$1.process(ElasticSearchSinkUtil.java:59)
68236 at
com.hundsun.flink.util.ElasticSearchSinkUtil$1.process(ElasticSearchSinkUtil.java:47)
68237 at
org.apache.flink.streaming.connectors.elasticsearch.ElasticsearchSinkBase.invoke(ElasticsearchSinkBase.java:310)
68238 at
org.apache.flink.streaming.api.operators.StreamSink.processElement(StreamSink.java:56)
68239 at
org.apache.flink.streaming.runtime.tasks.OneInputStreamTask$StreamTaskNetworkOutput.emitRecord(OneInputStreamTask.java:161)
68240 at
org.apache.flink.streaming.runtime.io.StreamTaskNetworkInput.processElement(StreamTaskNetworkInput.java:178)
68241 at
org.apache.flink.streaming.runtime.io.StreamTaskNetworkInput.emitNext(StreamTaskNetworkInput.java:153)
68242 at
org.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processInput(StreamOneInputProcessor.java:67)
68243 at
org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(StreamTask.java:345)
68244 at
org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxStep(MailboxProcessor.java:191)
68245 at
org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxLoop(MailboxProcessor.java:181)
68246 at
org.apache.flink.streaming.runtime.tasks.StreamTask.runMailboxLoop(StreamTask.java:558)
68247 at
org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:530)
68248 at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:721)
68249 at org.apache.flink.runtime.taskmanager.Task.run(Task.java:546)
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)