У меня очень странная проблема.
Эта ошибка появляется случайно в процессоре "EvaluateJsonPath 1.6.0". У меня есть 3 экземпляра этого процессора в моем рабочем процессе. Произошла ошибка случайным образом, она не появляется в одном месте.
Иногда поток работает нормально (очень редко). эта ошибка достаточно частая, но местоположение ошибки случайное.
поток такой: => запустить http URL -> eval результат Json -> получить больше URL -> вызвать эти http URL -> сделать eval -> ждать -> объединить весь результат -> запись в fs -> end
wait часть кода ждет около 30 мин.
каждое отношение имеет достаточно буфера (5 ГБ, 100000 фф). и я не вижу обратного давления.
системе достаточно памяти. также JVM работает с кучей 28 ГБ.
Я на версии 1.6.0
В чем может быть причина? это какой-то фоновый процесс, очищающий файл перед тем, как процесс его выпускает?
возможно, я настроил некоторую оптимизацию, которая заставляет nifi чистить папку содержимого?
Это не так, папка содержимого пуста, в ней все еще есть старые файлы, так что не может быть.
Я действительно смущен.
Я вижу следующую трассировку стека
`
2018-11-14 12:04:04,120 ERROR [Timer-Driven Process Thread-2] o.a.n.p.standard.EvaluateJsonPath EvaluateJsonPath[id=d9d338ca-5396-3f8c-e134-753aacda1ca6] EvaluateJsonPath[id=d9d338ca-5396-3f8c-e134-753aacda1ca6] failed to process session due to org.apache.nifi.processor.exception.MissingFlowFileException: Unable to find content for FlowFile; Processor Administratively Yielded for 1 sec: org.apache.nifi.processor.exception.MissingFlowFileException: Unable to find content for FlowFile
org.apache.nifi.processor.exception.MissingFlowFileException: Unable to find content for FlowFile
at org.apache.nifi.controller.repository.StandardProcessSession.handleContentNotFound(StandardProcessSession.java:3104)
at org.apache.nifi.controller.repository.StandardProcessSession.read(StandardProcessSession.java:2228)
at org.apache.nifi.controller.repository.StandardProcessSession.read(StandardProcessSession.java:2175)
at org.apache.nifi.processors.standard.AbstractJsonPathProcessor.validateAndEstablishJsonContext(AbstractJsonPathProcessor.java:77)
at org.apache.nifi.processors.standard.EvaluateJsonPath.onTrigger(EvaluateJsonPath.java:271)
at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1147)
at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:175)
at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
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)
Caused by: org.apache.nifi.controller.repository.ContentNotFoundException: Could not find content for StandardContentClaim [resourceClaim=StandardResourceClaim[id=1542197040430-4449, container=default, section=353], offset=844526, length=142607]
at org.apache.nifi.controller.repository.StandardProcessSession.getInputStream(StandardProcessSession.java:2167)
at org.apache.nifi.controller.repository.StandardProcessSession.read(StandardProcessSession.java:2192)
... 14 common frames omitted
Caused by: java.io.EOFException: null
at org.apache.nifi.stream.io.StreamUtils.skip(StreamUtils.java:242)
at org.apache.nifi.controller.repository.FileSystemRepository.read(FileSystemRepository.java:859)
at org.apache.nifi.controller.repository.StandardProcessSession.getInputStream(StandardProcessSession.java:2135)
... 15 common frames omitted
`