Alan

That is a great point.  We talk about this a little bit in our version
guide [1].  But I agree with you that we should make this a fully
documented concept in the developer guide (so they know what they
can/cannot do) and possibly the user guide (so they know what was done
to them).  We need to cover at least:

- I want to change the processor class name
- I want to change the processor package name
- I want to add processor relationships
- I want to remove processor relationships
- I want to add processor properties
- I want to remove processor properties
- I want to change a required property to optional
- I want to change an optional property to required
- I want to change the display name of a property
- I want to change the behavior of a processor that could have
different side effects despite the same configuration

Created a ticket for this [2].

[1] https://cwiki.apache.org/confluence/display/NIFI/Version+Scheme
[2] https://issues.apache.org/jira/browse/NIFI-1053

Thanks
Joe

On Wed, Oct 21, 2015 at 9:43 PM, Alan Jackoway <al...@cloudera.com> wrote:
> We should also check similar behavior for missing properties. I was
> thinking about this today while modifying a custom processor and decided it
> was safest to just make a new processor with the new properties.
>
> I tried to find info in the developer guide but couldn't. It would be good
> to document what changes in processors can be made safely unless we can
> definitely say that all changes are safe.
>
> Alan
> On Oct 21, 2015 9:31 PM, "Joe Witt" <joe.w...@gmail.com> wrote:
>
>> Ahhh - no need to send the logs now.  Totally understand.  We need to
>> do something for your case for sure.  We should startup and just have
>> some sort of ghost/placeholder processor in the flow and prompt the
>> user to select a new one.
>>
>> https://issues.apache.org/jira/browse/NIFI-1052
>>
>> On Wed, Oct 21, 2015 at 9:19 PM, Sumanth Chinthagunta <xmlk...@gmail.com>
>> wrote:
>> > My case  is simple and easy to reproduce:
>> > 1. Create a flow with custom processor (e.g.  abc.MyProcesser )
>> > 2. Make sure  flow is working. Then stop the server.
>> > 3. Replace nar in lib with new nar after refactoring processor's package
>> (
>> > e.g., xzy.MyProcesser)
>> > 4. When you try to start nifi , it fails with error in the log saying
>> class
>> > not found ( obviously coz deployed flow is still looking for old class)
>> >
>> > My expectation is system should at least start and only throw error when
>> > user try to start a flow that that had reference to class(processor)
>> which
>> > is no more available in the newly deployed nar.
>> > I can send the my error log tonight
>> >
>> > On Wed, Oct 21, 2015, 5:58 PM Joe Witt <joe.w...@gmail.com> wrote:
>> >
>> >> Sumanth,
>> >>
>> >> Do you happen to still have the stack traces around?  Unless we do
>> >> some breaking/API unfriendly thing such issues should simply not
>> >> occur.  Want to make sure we understand what is happening here.
>> >>
>> >> Thanks
>> >> Joe
>> >>
>> >> On Wed, Oct 21, 2015 at 8:56 PM, Sumanth Chinthagunta <
>> xmlk...@gmail.com>
>> >> wrote:
>> >> > I noticed similar error when I have my flow using older version of a
>> >> custom
>> >> > nar and when I deployed new version of nar with package refactoring.
>> >> > My workaround to bring the server back is to redeploy old nar, start
>> nifi
>> >> > and delete the flow then recreate the flow after deploying refactored
>> >> nar.
>> >> > Nifi should start even a nar file is replaced or removed.
>> >> >
>> >> > On Wed, Oct 21, 2015, 9:21 AM Joe Witt <joe.w...@gmail.com> wrote:
>> >> >
>> >> >> Ok so in seeing this part of the stackdump we know there is a
>> >> >> 'classpath thing' going on
>> >> >>
>> >> >>    "Caused by: java.lang.ClassNotFoundException:
>> >> >> org.mitre.nifi.NiFiNITFReader"
>> >> >>
>> >> >> And we see from your provided info that your jar does contain such a
>> >> class
>> >> >>
>> >> >>   "22243 Wed Oct 21 10:36:46 EDT 2015
>> >> org/mitre/nifi/NiFiNITFReader.class"
>> >> >>
>> >> >> And we see that you have a service loader manifest
>> >> >>
>> >> >>   "808 Wed Oct 21 10:36:42 EDT 2015
>> >> >> META-INF/services/org.apache.nifi.processor.Processor"
>> >> >>
>> >> >> QUESTIONS:
>> >> >> -------------------
>> >> >> Can you please provide content of that service manifest file?
>> >> >>
>> >> >> Also can you please provide the log information that writes out on
>> >> >> startup which shows the processors/extensions that load?
>> >> >>
>> >> >> It looks like this...
>> >> >>
>> >> >> 2015-10-21 09:20:32,520 INFO [main]
>> >> >> org.apache.nifi.nar.ExtensionManager Extension Type Mapping to
>> >> >> Classloader:
>> >> >>         === ProvenanceEventRepository type || Classloader ===
>> >> >>         org.apache.nifi.provenance.PersistentProvenanceRepository ||
>> >> >>
>> >> >>
>> >>
>> org.apache.nifi.nar.NarClassLoader[./work/nar/extensions/nifi-provenance-repository-nar-0.3.1-SNAPSHOT.nar-unpacked]
>> >> >>         org.apache.nifi.provenance.VolatileProvenanceRepository ||
>> >> >>
>> >> >>
>> >>
>> org.apache.nifi.nar.NarClassLoader[./work/nar/extensions/nifi-provenance-repository-nar-0.3.1-SNAPSHOT.nar-unpacked]
>> >> >>         === End ProvenanceEventRepository types ===
>> >> >>         === Processor type || Classloader ===
>> >> >>         org.apache.nifi.processors.hl7.RouteHL7 ||
>> >> >>
>> >> >>
>> >>
>> org.apache.nifi.nar.NarClassLoader[./work/nar/extensions/nifi-hl7-nar-0.3.1-SNAPSHOT.nar-unpacked]
>> >> >>         org.apache.nifi.processors.standard.MergeContent ||
>> >> >>
>> >> >>
>> >>
>> org.apache.nifi.nar.NarClassLoader[./work/nar/extensions/nifi-standard-nar-0.3.1-SNAPSHOT.nar-unpacked]
>> >> >>         org.apache.nifi.processors.standard.EncryptContent ||
>> >> >>
>> >> >>
>> >>
>> org.apache.nifi.nar.NarClassLoader[./work/nar/extensions/nifi-standard-nar-0.3.1-SNAPSHOT.nar-unpacked]
>> >> >>         org.apache.nifi.processors.aws.s3.PutS3Object ||
>> >> >>
>> >> >>
>> >>
>> org.apache.nifi.nar.NarClassLoader[./work/nar/extensions/nifi-aws-nar-0.3.1-SNAPSHOT.nar-unpacked]
>> >> >> .....
>> >> >>
>> >> >>
>> >> >> Thanks!
>> >> >> Joe
>> >> >>
>> >> >> On Wed, Oct 21, 2015 at 8:51 AM, Jones, Patrick L. <p...@mitre.org>
>> >> wrote:
>> >> >> > Howdy,
>> >> >> >
>> >> >> >                I have created my own processor which I have been
>> >> testing
>> >> >> with NiFi for a while now. This stuff used to work for me, now it
>> >> doesn't.
>> >> >> Today nifi won't start.  The nifi-app.log is below
>> >> >> > The processor reads in an image type NITF and does a few things
>> with
>> >> >> it.  I do a:
>> >> >> > $ mvn install
>> >> >> >
>> >> >> > from ~/nifi-0.3.0/nifi-mitre-bundle/ which is where my software
>> is. I
>> >> >> then
>> >> >> > $ cp
>> >> >>
>> >>
>> ~/nifi-0.3.0/nifi-mitre-bundle/nifi-mitre-nar/target/nifi-mitre-nar-1.0-SNAPSHOT.nar
>> >> >> ../lib/
>> >> >> >
>> >> >> > When I start nifi the nifi-app.log shows the below exception with
>> the
>> >> >> bottom line being
>> >> >> > Caused by: java.lang.ClassNotFoundException:
>> >> >> org.mitre.nifi.NiFiNITFReader
>> >> >> >
>> >> >> > I looked in my lib/nifi-mitre-nar-1.0-SNAPSHOT.nar it contains
>> >> >> >     0 Wed Oct 21 10:36:50 EDT 2015 META-INF/
>> >> >> >    152 Wed Oct 21 10:36:48 EDT 2015 META-INF/MANIFEST.MF
>> >> >> >      0 Wed Oct 21 10:36:48 EDT 2015 META-INF/bundled-dependencies/
>> >> >> > ...
>> >> >> > 22201 Wed Oct 21 10:36:48 EDT 2015
>> >> >> META-INF/bundled-dependencies/nifi-mitre-processors-1.0-SNAPSHOT.jar
>> >> >> > ...
>> >> >> >   2963 Wed Oct 21 10:36:48 EDT 2015 META-INF/DEPENDENCIES
>> >> >> > 11358 Wed Oct 21 10:36:48 EDT 2015 META-INF/LICENSE
>> >> >> >    155 Wed Oct 21 10:36:48 EDT 2015 META-INF/NOTICE
>> >> >> >      0 Wed Oct 21 10:36:50 EDT 2015 META-INF/maven/
>> >> >> >      0 Wed Oct 21 10:36:50 EDT 2015 META-INF/maven/mitre/
>> >> >> >      0 Wed Oct 21 10:36:50 EDT 2015
>> >> META-INF/maven/mitre/nifi-mitre-nar/
>> >> >> >   1562 Fri Oct 09 11:19:10 EDT 2015
>> >> >> META-INF/maven/mitre/nifi-mitre-nar/pom.xml
>> >> >> >    111 Wed Oct 21 10:36:48 EDT 2015
>> >> >> META-INF/maven/mitre/nifi-mitre-nar/pom.properties
>> >> >> >
>> >> >> > I then unjarred the .nar file and looked at
>> >> >> META-INF/bundled-dependencies/nifi-mitre-processors-1.0-SNAPSHOT.jar
>> >> >> >
>> >> >> > $ jar tvf
>> >> >>
>> >>
>> ~/dum/META-INF/bundled-dependencies/nifi-mitre-processors-1.0-SNAPSHOT.jar
>> >> >> >      0 Wed Oct 21 10:36:48 EDT 2015 META-INF/
>> >> >> >    412 Wed Oct 21 10:36:46 EDT 2015 META-INF/MANIFEST.MF
>> >> >> >      0 Wed Oct 21 10:36:42 EDT 2015 META-INF/services/
>> >> >> >      0 Wed Oct 21 10:36:44 EDT 2015 org/
>> >> >> >      0 Wed Oct 21 10:36:44 EDT 2015 org/mitre/
>> >> >> >      0 Wed Oct 21 10:36:46 EDT 2015 org/mitre/nifi/
>> >> >> >   2730 Wed Oct 21 10:36:42 EDT 2015 META-INF/DEPENDENCIES
>> >> >> > 11358 Wed Oct 21 10:36:42 EDT 2015 META-INF/LICENSE
>> >> >> >    162 Wed Oct 21 10:36:42 EDT 2015 META-INF/NOTICE
>> >> >> >    808 Wed Oct 21 10:36:42 EDT 2015
>> >> >> META-INF/services/org.apache.nifi.processor.Processor
>> >> >> >   2796 Wed Oct 21 10:36:46 EDT 2015
>> >> org/mitre/nifi/NiFiNITFReader$1.class
>> >> >> >   2025 Wed Oct 21 10:36:44 EDT 2015
>> >> org/mitre/nifi/NITFNiFiIoReader.class
>> >> >> > 22243 Wed Oct 21 10:36:46 EDT 2015
>> org/mitre/nifi/NiFiNITFReader.class
>> >> >> >      0 Wed Oct 21 10:36:48 EDT 2015 META-INF/maven/
>> >> >> >      0 Wed Oct 21 10:36:48 EDT 2015 META-INF/maven/mitre/
>> >> >> >      0 Wed Oct 21 10:36:48 EDT 2015
>> >> >> META-INF/maven/mitre/nifi-mitre-processors/
>> >> >> >   4053 Wed Oct 14 11:23:52 EDT 2015
>> >> >> META-INF/maven/mitre/nifi-mitre-processors/pom.xml
>> >> >> >    118 Wed Oct 21 10:36:48 EDT 2015
>> >> >> META-INF/maven/mitre/nifi-mitre-processors/pom.properties
>> >> >> >
>> >> >> > I see org/mitre/nifi/NiFiNITFReader.class in the jar file.
>> >> >> >
>> >> >> > Any thoughts on what the problem is?
>> >> >> >
>> >> >> > Thank you
>> >> >> >
>> >> >> > Patrick Jones
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > ------------- nifi-app.log ---
>> >> >> > ...
>> >> >> > 2015-10-21 10:44:44,147 INFO [main]
>> >> >> o.a.n.w.c.ApplicationStartupContextListener Starting Flow
>> Controller...
>> >> >> > 2015-10-21 10:44:44,484 WARN [main]
>> >> >> o.a.nifi.fingerprint.FingerprintFactory Unable to create Processor of
>> >> type
>> >> >> org.mitre.nifi.NiFiNITFReader due to
>> >> >> org.apache.nifi.controller.exception.ProcessorInstantiationException:
>> >> >> org.mitre.nifi.NiFiNITFReader; its default properties will be
>> >> fingerprinted
>> >> >> instead of being ignored.
>> >> >> > 2015-10-21 10:44:44,536 WARN [main]
>> >> >> o.a.nifi.fingerprint.FingerprintFactory Unable to create Processor of
>> >> type
>> >> >> org.mitre.nifi.NiFiNITFReader due to
>> >> >> org.apache.nifi.controller.exception.ProcessorInstantiationException:
>> >> >> org.mitre.nifi.NiFiNITFReader; its default properties will be
>> >> fingerprinted
>> >> >> instead of being ignored.
>> >> >> > 2015-10-21 10:44:44,607 INFO [main]
>> >> >> o.a.n.c.s.StandardControllerServiceProvider No Controller Services to
>> >> enable
>> >> >> > 2015-10-21 10:44:44,703 WARN [main]
>> >> >> org.eclipse.jetty.webapp.WebAppContext Failed startup of context
>> >> >> o.e.j.w.WebAppContext@59d5a6fd
>> >> >>
>> >>
>> {/nifi-api,file:/home/plj/nifi-0.3.0/work/jetty/nifi-web-api-0.3.0.war/webapp/,STARTING}{./work/nar/framework/nifi-framework-nar-0.3.0.nar-unpacked/META-INF/bundled-dependencies/nifi-web-api-0.3.0.war}
>> >> >> > org.apache.nifi.controller.FlowSynchronizationException:
>> >> >> org.apache.nifi.controller.exception.ProcessorInstantiationException:
>> >> >> org.mitre.nifi.NiFiNITFReader
>> >> >> >                at
>> >> >>
>> >>
>> org.apache.nifi.controller.StandardFlowSynchronizer.sync(StandardFlowSynchronizer.java:317)
>> >> >> ~[nifi-framework-core-0.3.0.jar:0.3.0]
>> >> >> >                at
>> >> >>
>> >>
>> org.apache.nifi.controller.FlowController.synchronize(FlowController.java:1160)
>> >> >> ~[nifi-framework-core-0.3.0.jar:0.3.0]
>> >> >> > ...
>> >> >> >                at org.apache.nifi.NiFi.main(NiFi.java:227)
>> >> >> [nifi-runtime-0.3.0.jar:0.3.0]
>> >> >> > Caused by:
>> >> >> org.apache.nifi.controller.exception.ProcessorInstantiationException:
>> >> >> org.mitre.nifi.NiFiNITFReader
>> >> >> >                at
>> >> >>
>> >>
>> org.apache.nifi.controller.FlowController.instantiateProcessor(FlowController.java:864)
>> >> >> ~[nifi-framework-core-0.3.0.jar:0.3.0]
>> >> >> > ...
>> >> >> >                ... 27 common frames omitted
>> >> >> > Caused by: java.lang.ClassNotFoundException:
>> >> >> org.mitre.nifi.NiFiNITFReader
>> >> >> >                at
>> >> >> java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>> >> ~[na:1.8.0_60]
>> >> >> > ...
>> >> >> >                at
>> >> >>
>> >>
>> org.apache.nifi.controller.FlowController.instantiateProcessor(FlowController.java:850)
>> >> >> ~[nifi-framework-core-0.3.0.jar:0.3.0]
>> >> >> >                ... 30 common frames omitted
>> >> >> > 2015-10-21 10:44:45,345 INFO [main]
>> >> >> o.e.jetty.server.handler.ContextHandler Started
>> >> >> o.e.j.w.WebAppContext@5fd8dd66
>> >> >> {/nifi-content-viewer,file:/home/plj/nifi-...
>> >> >> > 2015-10-21 10:44:45,631 INFO [main] org.eclipse.jetty.server.Server
>> >> >> Started @33273ms
>> >> >> > 2015-10-21 10:44:45,644 WARN [main]
>> >> >> org.apache.nifi.web.server.JettyServer Failed to start web server...
>> >> >> shutting down.
>> >> >> > org.apache.nifi.controller.FlowSynchronizationException:
>> >> >> org.apache.nifi.controller.exception.ProcessorInstantiationException:
>> >> >> org.mitre.nifi.NiFiNITFReader
>> >> >> >                at
>> >> >>
>> >>
>> org.apache.nifi.controller.StandardFlowSynchronizer.sync(StandardFlowSynchronizer.java:317)
>> >> >> ~[nifi-framework-core-0.3.0.jar:0.3.0]
>> >> >> > ...
>> >> >> >                at org.apache.nifi.NiFi.<init>(NiFi.java:137)
>> >> >> [nifi-runtime-0.3.0.jar:0.3.0]
>> >> >> >                at org.apache.nifi.NiFi.main(NiFi.java:227)
>> >> >> [nifi-runtime-0.3.0.jar:0.3.0]
>> >> >> > Caused by:
>> >> >> org.apache.nifi.controller.exception.ProcessorInstantiationException:
>> >> >> org.mitre.nifi.NiFiNITFReader
>> >> >> >                at
>> >> >>
>> >>
>> org.apache.nifi.controller.FlowController.instantiateProcessor(FlowController.java:864)
>> >> >> ~[nifi-framework-core-0.3.0.jar:0.3.0]
>> >> >> > ...
>> >> >> >                at
>> >> >>
>> >>
>> org.apache.nifi.controller.StandardFlowSynchronizer.sync(StandardFlowSynchronizer.java:271)
>> >> >> ~[nifi-framework-core-0.3.0.jar:0.3.0]
>> >> >> >                ... 27 common frames omitted
>> >> >> > Caused by: java.lang.ClassNotFoundException:
>> >> >> org.mitre.nifi.NiFiNITFReader
>> >> >> >                at
>> >> >> java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>> >> ~[na:1.8.0_60]
>> >> >> >                at
>> >> java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>> >> >> ~[na:1.8.0_60]
>> >> >> >                at
>> >> java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>> >> >> ~[na:1.8.0_60]
>> >> >> >                at java.lang.Class.forName0(Native Method)
>> >> ~[na:1.8.0_60]
>> >> >> >                at java.lang.Class.forName(Class.java:264)
>> >> ~[na:1.8.0_60]
>> >> >> >                at
>> >> >>
>> >>
>> org.apache.nifi.controller.FlowController.instantiateProcessor(FlowController.java:850)
>> >> >> ~[nifi-framework-core-0.3.0.jar:0.3.0]
>> >> >> >                ... 30 common frames omitted
>> >> >> > 2015-10-21 10:44:45,650 INFO [Thread-1] org.apache.nifi.NiFi
>> >> Initiating
>> >> >> shutdown of Jetty web server...
>> >> >>
>> >>
>>

Reply via email to