saarbs created NIFI-13106:
-
Summary: Loadbalance does not handle all cases of ContentNotFound
correctly
Key: NIFI-13106
URL: https://issues.apache.org/jira/browse/NIFI-13106
Project: Apache NiFi
Issue Type: Bug
Components: Core Framework
Affects Versions: 1.22.0
Reporter: saarbs
In cases where the ContentRepositoryFlowFileAccess is able to skip to the
content but the content is cut in the middle then an EOF exception is thrown
and not handled accordingly
Log Sample:
[ERROR] [Load-Balanced Client Thread-5]
[o.a.n.c.q.c.c.a.n.NioAsyncLoadBalanceClient] Failed to communicate with Peer
localhost:8080
java.io.EOFException: Expected
StandardFlowFileRecord[uuid=848d2364-e7db-4071-a345-b9b3f66d3afc,claim=StandardContentClaim
[resourceClaim=StandardResourceClaim[id=1714171534814-132572,
container=default, section=476], offset=0,
length=1741],offest-0,name=848d2364-e7db-4071-a345-b9b3f66d3afc,size=1741] to
contain 1741 bytes but the content repository only had 0 bytes for it
at
org.apache.nifi.controller.queue.clustered.ContentRepositoryFlowFileAccess$1.ensureNotTruncated(ContentRepositoryFlowFileAccess.java:83)
at
org.apache.nifi.controller.queue.clustered.ContentRepositoryFlowFileAccess$1.read(ContentRepositoryFlowFileAccess.java:63)
at org.apache.nifi.stream.io.StreamUtils.fillBuffer(StreamUtils.java:89)
at
org.apache.nifi.controller.queue.clustered.client.async.nio.LoadBalanceSession.getFlowFileContent(LoadBalanceSession.java:298)
at
org.apache.nifi.controller.queue.clustered.client.async.nio.LoadBalanceSession.getDataFrame(LoadBalanceSession.java:253)
at
org.apache.nifi.controller.queue.clustered.client.async.nio.LoadBalanceSession.communicate(LoadBalanceSession.java:155)
at
org.apache.nifi.controller.queue.clustered.client.async.nio.NioAsyncLoadBalanceClient.communicate(NioAsyncLoadBalanceClient.java:265)
at
org.apache.nifi.controller.queue.clustered.client.async.nio.NioAsyncLoadBalanceClient.run(NioAsyncLoadBalanceClient.java:81)
at org.apache.nifi.engine.FlowEngine$2.run(FlowFileEngine.java:110)
at java.base/java.util.concurrent.Executer$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FututeTask.run(Unknown Source)
at
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)