Timothy, I haven't seen anything that can cause this to hang, in the Groovy source code it might seem to "hang" [1] if there's a crazy large input; how big are your flow files going into the ExecuteScript processor? If size is not the issue, then perhaps there's an assumption about character sets that causes a problem, etc. Are your input files well-formed JSON, and if so, are they ROUSs? (Rodents Of Unusual Size)? Are they encoded with unicode or other character sets?
I'll try to reproduce this locally and get to the bottom of it, if it's a Groovy bug that has been fixed we can upgrade the version, if it's a bug that isn't fixed then hopefully there's a workaround with ValidateRecord. Lastly, may I ask what your script is doing to the flow files? Perhaps there are existing processors and/or techniques we could use to get it done... Regards, Matt [1] https://github.com/apache/groovy/blob/GROOVY_2_4_5/subprojects/groovy-json/src/main/java/groovy/json/internal/JsonParserCharArray.java#L108 On Tue, May 1, 2018 at 2:54 PM, Timothy Tschampel <[email protected]> wrote: > I have a flow which periodically hangs and messages begin to queue behind an > ExecuteScript component using groovy. Once this happens the component can’t > be stopped or restarted. Restarting alone does not move things along; only a > restart after purging the content/flow file repositories seems to help. I’m > not seeing any errors in the logs. Thread dumps show the same “ScriptXX.run” > running at the same place > (groovy.json.internal.JsonParserCharArray.decodeJsonObject(JsonParserCharArray.java:108)) > and possibly several others running in slightly different paths originated > from groovy.json.JsonSlurper.parseText(JsonSlurper.java:205). Is there > anything special about the groovy json parser with regards to configuring the > processor or using within a Nifi flow? I have attached 2 dumps of this > happening at different times. I have a suspicion that possibly a mangled > message is causing a problem, but I would have expected some sort of error in > this case.
