I am trying to do a bulk update (sync) to Elastic Search. The Bulk Update to Elastic Search is wrapped over a service and other application call that API to Bulk Update which internally calls ES Bulk API.
Application (Client) -> BulkUpdateToES (Wrapper Service) -> esclient.bulk()
Now, esclient.bulk() is failing with a socket timeout exception.
java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-44 [ACTIVE]\n\tat org.apache.http.nio.protocol.HttpAsyncRequestExecutor.timeout(HttpAsyncRequestExecutor.java:387)\n\tat org.apache.http.impl.nio.client.InternalIODispatch.onTimeout(InternalIODispatch.java:98)\n\tat org.apache.http.impl.nio.client.InternalIODispatch.onTimeout(InternalIODispatch.java:40)\n\tat org.apache.http.impl.nio.reactor.AbstractIODispatch.timeout(AbstractIODispatch.java:175)\n\tat org.apache.http.impl.nio.reactor.BaseIOReactor.sessionTimedOut(BaseIOReactor.java:261)\n\tat org.apache.http.impl.nio.reactor.AbstractIOReactor.timeoutCheck(AbstractIOReactor.java:506)\n\tat org.apache.http.impl.nio.reactor.BaseIOReactor.validate(BaseIOReactor.java:211)\n\tat org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:280)\n\tat org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)\n\tat org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:591)\n\t... 1 more
However, the service call seems to not timeout i.e the response from BulkUpdateToES is returned under 1 sec.
I am trying to reproduce the issue and will update the response data once I get it.
However, I could not understand even though the ES is using a sync bulk update. How did the Wrapper API call did not had a timeout issue though ES had a timeout issue.