Details
-
Bug
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
1.22.0
-
None
-
None
Description
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)