Details
Description
It seems that a streamer could stuck forever flushing internal buffers on a client side.
It will stay in a busy-loop forever hoping on remapping but it's possible that it won't happen for example in case of long GC pauses on server(s) and long timeouts.
It that case a streamer would be trapped inside this loop.
Stack trace snippet:
java.lang.Thread.State: RUNNABLE at org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl$Buffer.flush(DataStreamerImpl.java:1706) at org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl.doFlush(DataStreamerImpl.java:1170) at org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl.closeEx(DataStreamerImpl.java:1365) at org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl.closeEx(DataStreamerImpl.java:1323) at org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl.close(DataStreamerImpl.java:1311) at org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl.close(DataStreamerImpl.java:1415)
It becomes possible when a
IgniteSpiOperationTimeoutException
is being thrown from
org.apache.ignite.internal.managers.communication.GridIoManager.sendToGridTopic()
Attachments
Issue Links
- links to