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

When importing a flow from registry, Controller Service may lose track of Referencing Components

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.13.0
    • Core Framework
    • None

    Description

      Consider a flow with a Process Group "A". Within Process Group A is a child Process Group, B. Process Group B has a Controller Service and has a Processor that references it.

      Save Process Group A into NiFi Registry.

      Import Process Group A into NiFi. Step into the Process Group and configure the child Process Group (Group B). Go to the Controller Services tab and configure the Controller Service. The service will not show the Processor as a Referencing component.

      This can result in a few different problems:

      • The Controller Service can be disabled while it's still being used.
      • If the Controller Service is enabled, along with all Referencing Components, those missing components won't show up.
      • The Controller Service can be deleted while it's still being referenced.

       

      This can lead to the following types of logs messages:

      2020-10-23 13:43:41,898 ERROR [Timer-Driven Process Thread-7] o.a.n.processors.standard.ConvertRecord ConvertRecord[id=b07355c2-8bd7-33a5-35b5-264ade413185] Failed to process StandardFlowFileRecord[uuid=824f5522-99d9-44cd-a685-eab697bdcf29,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1603475011829-1, container=default, section=1], offset=63, length=14],offset=0,name=824f5522-99d9-44cd-a685-eab697bdcf29,size=14]; will route to failure: org.apache.nifi.controller.service.ControllerServiceDisabledException: Cannot invoke method public abstract org.apache.nifi.serialization.record.RecordSchema org.apache.nifi.serialization.RecordSetWriterFactory.getSchema(java.util.Map,org.apache.nifi.serialization.record.RecordSchema) throws org.apache.nifi.schema.access.SchemaNotFoundException,java.io.IOException on Controller Service with identifier ca57bde0-517e-306a-ce46-10d6b8d24706 because the Controller Service's State is currently DISABLED
      org.apache.nifi.controller.service.ControllerServiceDisabledException: Cannot invoke method public abstract org.apache.nifi.serialization.record.RecordSchema org.apache.nifi.serialization.RecordSetWriterFactory.getSchema(java.util.Map,org.apache.nifi.serialization.record.RecordSchema) throws org.apache.nifi.schema.access.SchemaNotFoundException,java.io.IOException on Controller Service with identifier ca57bde0-517e-306a-ce46-10d6b8d24706 because the Controller Service's State is currently DISABLED
              at org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:97)
              at com.sun.proxy.$Proxy139.getSchema(Unknown Source)
              at org.apache.nifi.processors.standard.AbstractRecordProcessor$1.process(AbstractRecordProcessor.java:149)
              at org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:2971)
              at org.apache.nifi.processors.standard.AbstractRecordProcessor.onTrigger(AbstractRecordProcessor.java:122)
              at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
              at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1173)
              at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:213)
              at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
              at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
              at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
              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:748)
      2020-10-23 13:43:51,907 ERROR [Timer-Driven Process Thread-6] o.a.n.processors.standard.ConvertRecord ConvertRecord[id=b07355c2-8bd7-33a5-35b5-264ade413185] Failed to process StandardFlowFileRecord[uuid=597d9e36-3926-49d2-8f88-9200a917e29c,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1603475011829-1, container=default, section=1], offset=77, length=14],offset=0,name=597d9e36-3926-49d2-8f88-9200a917e29c,size=14]; will route to failure: org.apache.nifi.controller.service.ControllerServiceDisabledException: Cannot invoke method public abstract org.apache.nifi.serialization.record.RecordSchema org.apache.nifi.serialization.RecordSetWriterFactory.getSchema(java.util.Map,org.apache.nifi.serialization.record.RecordSchema) throws org.apache.nifi.schema.access.SchemaNotFoundException,java.io.IOException on Controller Service with identifier ca57bde0-517e-306a-ce46-10d6b8d24706 because the Controller Service's State is currently DISABLED
      org.apache.nifi.controller.service.ControllerServiceDisabledException: Cannot invoke method public abstract org.apache.nifi.serialization.record.RecordSchema org.apache.nifi.serialization.RecordSetWriterFactory.getSchema(java.util.Map,org.apache.nifi.serialization.record.RecordSchema) throws org.apache.nifi.schema.access.SchemaNotFoundException,java.io.IOException on Controller Service with identifier ca57bde0-517e-306a-ce46-10d6b8d24706 because the Controller Service's State is currently DISABLED
              at org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:97)
              at com.sun.proxy.$Proxy139.getSchema(Unknown Source)
              at org.apache.nifi.processors.standard.AbstractRecordProcessor$1.process(AbstractRecordProcessor.java:149)
              at org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:2971)
              at org.apache.nifi.processors.standard.AbstractRecordProcessor.onTrigger(AbstractRecordProcessor.java:122)
              at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
              at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1173)
              at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:213)
              at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
              at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
              at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
              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:748)
      2020-10-23 13:44:01,900 ERROR [Timer-Driven Process Thread-3] o.a.n.processors.standard.ConvertRecord ConvertRecord[id=b07355c2-8bd7-33a5-35b5-264ade413185] Failed to process StandardFlowFileRecord[uuid=0d71b72b-db77-4175-9deb-5f9290ea9d60,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1603475011829-1, container=default, section=1], offset=91, length=14],offset=0,name=0d71b72b-db77-4175-9deb-5f9290ea9d60,size=14]; will route to failure: java.lang.NullPointerException
      java.lang.NullPointerException: null
              at org.apache.nifi.processors.standard.AbstractRecordProcessor$1.process(AbstractRecordProcessor.java:149)
              at org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:2971)
              at org.apache.nifi.processors.standard.AbstractRecordProcessor.onTrigger(AbstractRecordProcessor.java:122)
              at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
              at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1173)
              at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:213)
              at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
              at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
              at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
              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:748) 

      Attachments

        Issue Links

          Activity

            People

              markap14 Mark Payne
              markap14 Mark Payne
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h
                  1h