Hi Everyone,
I have an InvokeHTTP processor experiencing the
error below on a small proportion of flowfiles. The
service it is accessing is running on another docker
on the same host, and I've adjusted the frequency of
requests to quite low - the processor is running
single threaded. The settings are pretty standard -
socket connect timeout 5 s, socket read timeout 600
sec, socket idle timeout 5mins, socket idle
connections 5. The processor is on a 1s schedule (I
don't want it to be that slow). My nifi setup is not
clustered.
Googling suggests that the error could be caused
by lack of disk space, but that doesn't appear to be
the case (all the nifi storage is on a drive with
plenty of space).
What else should I be looking for? The operation
does take a while to run, but nowhere near
10minutes. I've configured the web service to
support several workers with the intention of
processing many flowfiles quickly, but this error is
limiting what I can do. Sending the unsuccessful
flowfiles to the service using curl does wotk, so
not a problem with the data.
Any ideas?
2023-03-14 01:48:46,334 ERROR [Timer-Driven Process
Thread-36] o.a.nifi.processors.standard.InvokeHTTP
InvokeHTTP[id=cb72d2e0-d5c0-36c1-19b6-13a542a56e60]
Request Processing failed:
StandardFlowFileRecord[uuid=eff900e7-81ce-4312-abe2-218cb78d3ca1,claim=StandardContentClaim
[resourceClaim=StandardResourceClaim[id=1678758435916-5,
container=default, section=5], offset=11133732,
length=125544],offset=0,name=eff900e7-81ce-4312-abe2-218cb78d3ca1,size=125544]
org.apache.nifi.processor.exception.ProcessException:
IOException thrown from
InvokeHTTP[id=cb72d2e0-d5c0-36c1-19b6-13a542a56e60]:
java.net.SocketException: Broken pipe (Write failed)
at
org.apache.nifi.controller.repository.StandardProcessSession.read(StandardProcessSession.java:2716)
at
org.apache.nifi.controller.repository.StandardProcessSession.read(StandardProcessSession.java:2661)
at
org.apache.nifi.processors.standard.InvokeHTTP$1.writeTo(InvokeHTTP.java:1170)
at
okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:59)
at
okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)