Uploaded image for project: 'Apache NiFi'
  1. Apache NiFi
  2. NIFI-13106

Loadbalance does not handle all cases of ContentNotFound correctly

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 1.22.0
    • None
    • Core Framework
    • 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)

      Attachments

        Activity

          People

            Unassigned Unassigned
            saarbs saarbs
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: