You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by "Joseph Witt (JIRA)" <ji...@apache.org> on 2016/04/27 18:10:13 UTC

[jira] [Resolved] (NIFI-1036) HandleHttpResponse not handling failures well when client closes connection

     [ https://issues.apache.org/jira/browse/NIFI-1036?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joseph Witt resolved NIFI-1036.
-------------------------------
    Resolution: Duplicate

would prefer to close the newer one but since it already has a PR I'm gonna close this one as a duplicate.

> HandleHttpResponse not handling failures well when client closes connection
> ---------------------------------------------------------------------------
>
>                 Key: NIFI-1036
>                 URL: https://issues.apache.org/jira/browse/NIFI-1036
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Extensions
>            Reporter: Mark Payne
>         Attachments: Bildschirmfoto 2015-10-13 um 13.17.57.png
>
>
> From the users@ mailing list, we received the following comment. It appears that when the http client closes the connection and we fail to write the response back, the session is rolled back and as a result we have FlowFiles queuing up. The FlowFile should be routed to failure instead.
> 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:
> << Image is an attachment: Bildschirmfoto 2015-10-13 um 13.17.57.png>>
>  
> 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



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)