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

Variable Update Error when trying to change outside variable used inside a Process Group

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.10.0
    • 1.11.0
    • Core Framework
    • None
    • Host OS: Ubuntu 16.04
      Docker version 19.03.4, build 9013bf583a
      Docker Image: apache/nifi 1.10.0 4310dad3312f

    Description

      This works fine in NiFi 1.7.1 but fails in NiFi 1.10.1.

      Whenever I try to change the value of a variable that's defined outside a Process Group where it's used, NiFi fails during the Applying Updates with the following message (image also attached):

      Variable Update Error
      Unable to complete variable update request: Failed to update Variable Registry because failed while performing step: Applying updates to Variable Registry.

      To reproduce the problem:

      1. On the top-level canvas, create a variable named "myvar", and set it to "blah".
      2. Create a Process Group named "mypg".  Enter the group. 
      3. Inside "mypg", add a GenerateFlowFile and set its "Run Schedule" to "1 day" to get just one flow file when it's started.
      4. Still inside "mypg", add a LogMessage. Set its "Log prefix" to "MYLOG: " and its "Log message" to "My message is: '${myvar}'."
      5. Start both processors and see a message like this appeared in the application's log:  MYLOG: My message is: 'blah'.
      6. Now leave the "mypg" Process Group and go back to the top-level canvas. Try to set the "myvar" variable to a different value, like "blah-blah", and hit "Apply". NiFi starts the steps to make the change, but fails during the "Applying Updates" step with the above error message. In the log, the following error message appears:
      ERROR [Variable Registry Update Thread] o.a.nifi.web.api.ProcessGroupResource Failed to update variable registry for Process Group with ID 7f16c8da-016e-1000-aeb0-e65ea5e5f889
      java.lang.IllegalStateException: Cannot update variable 'myvar' because it is referenced by 1 components that are currently running. 

      Images and log file attached. The log file has the full exception trace.

       

      Attachments

        1. 1_Variable_Update_Error.png
          14 kB
          Marcio Sugar
        2. 2_Variables.png
          53 kB
          Marcio Sugar
        3. nifi-app.log
          129 kB
          Marcio Sugar

        Issue Links

          Activity

            People

              markap14 Mark Payne
              msugar Marcio Sugar
              Votes:
              0 Vote for this issue
              Watchers:
              7 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 - 20m
                  20m