Hi,
We experience currently the problem that we got an „Failed to export
StandardFlowFileRecord to HttpOutput due to org.eclipse.jetty.io.EofException“
exception which blocks incoming HTTP requests and with queued flow files
between the HandleHttpRequest and HandleHttpResponse connection until we
restart the corresponding node. and the event stream in total.
We have the following configuration:
[cid:9E4253D4-B4FD-4F50-922C-743D9B781936]
We get the following exception:
org.apache.nifi.processor.exception.FlowFileAccessException: Failed to export
StandardFlowFileRecord[uuid=fa00a5b5-7e54-4688-b389-7dcd012607b8,claim=StandardContentClaim
[resourceClaim=StandardResourceClaim[id=1444734001395-1,
container=default, section=1], offset=0,
length=147356],offset=0,name=10200723618730079,size=147356] to
HttpOutput@19fff77e{OPEN} due to org.eclipse.jetty.io.EofException
at
org.apache.nifi.controller.repository.StandardProcessSession.exportTo(StandardProcessSession.java:2305)
~[nifi-framework-core-0.3.0.jar:0.3.0]
at
org.apache.nifi.processors.standard.HandleHttpResponse.onTrigger(HandleHttpResponse.java:153)
~[na:na]
at
org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
~[nifi-api-0.3.0.jar:0.3.0]
at
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1077)
~[nifi-framework-core-0.3.0.jar:0.3.0]
at
org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:127)
[nifi-framework-core-0.3.0.jar:0.3.0]
at
org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:49)
[nifi-framework-core-0.3.0.jar:0.3.0]
at
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:119)
[nifi-framework-core-0.3.0.jar:0.3.0]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
[na:1.7.0_79]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
[na:1.7.0_79]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
[na:1.7.0_79]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
[na:1.7.0_79]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[na:1.7.0_79]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[na:1.7.0_79]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79]
Caused by: org.eclipse.jetty.io.EofException: null
at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:192)
~[jetty-io-9.2.11.v20150529.jar:9.2.11.v20150529]
at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:408)
~[jetty-io-9.2.11.v20150529.jar:9.2.11.v20150529]
at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:302)
~[jetty-io-9.2.11.v20150529.jar:9.2.11.v20150529]
at
org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:129)
~[jetty-io-9.2.11.v20150529.jar:9.2.11.v20150529]
at
org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:690)
~[jetty-server-9.2.11.v20150529.jar:9.2.11.v20150529]
at
org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:246)
~[jetty-util-9.2.11.v20150529.jar:9.2.11.v20150529]
at
org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:208)
~[jetty-util-9.2.11.v20150529.jar:9.2.11.v20150529]
at
org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:480)
~[jetty-server-9.2.11.v20150529.jar:9.2.11.v20150529]
at
org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:768)
~[jetty-server-9.2.11.v20150529.jar:9.2.11.v20150529]
at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:801)
~[jetty-server-9.2.11.v20150529.jar:9.2.11.v20150529]
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:147)
~[jetty-server-9.2.11.v20150529.jar:9.2.11.v20150529]
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:140)
~[jetty-server-9.2.11.v20150529.jar:9.2.11.v20150529]
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:355)
~[jetty-server-9.2.11.v20150529.jar:9.2.11.v20150529]
at org.apache.nifi.stream.io.StreamUtils.copy(StreamUtils.java:36)
~[nifi-utils-0.3.0.jar:0.3.0]
at
org.apache.nifi.controller.repository.FileSystemRepository.exportTo(FileSystemRepository.java:752)
~[nifi-framework-core-0.3.0.jar:0.3.0]
at
org.apache.nifi.controller.repository.FileSystemRepository.exportTo(FileSystemRepository.java:766)
~[nifi-framework-core-0.3.0.jar:0.3.0]
at
org.apache.nifi.controller.repository.StandardProcessSession.exportTo(StandardProcessSession.java:2300)
~[nifi-framework-core-0.3.0.jar:0.3.0]
... 13 common frames omitted
Caused by: java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcherImpl.write0(Native Method) ~[na:1.7.0_79]
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
~[na:1.7.0_79]
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
~[na:1.7.0_79]
at sun.nio.ch.IOUtil.write(IOUtil.java:65) ~[na:1.7.0_79]
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:488)
~[na:1.7.0_79]
at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:170)
~[jetty-io-9.2.11.v20150529.jar:9.2.11.v20150529]
... 29 common frames omitted
Unfortunately we`re right now unable to re-produce the problem predictable but
It seems that the sending part is closing the connection before
HandleHttpResponse is able to finish the job. In our assumption we expected
that, if that is the case, the HandleHttpResponse processor sends the event to
the failure relationship.
We`re using nifi-0.3.0, java 1.7.0_79 (OpenJDK) on an Ubuntu 12.04 LTS server.
The question is if the behavior is expected and we did something wrong or is
this a bug?
Thanks for your help,
Seb