You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Igor Kamyshnikov (Jira)" <ji...@apache.org> on 2019/10/29 10:16:00 UTC
[jira] [Created] (IGNITE-12335) IgniteDataStreamer flush cannot be
really interrupted
Igor Kamyshnikov created IGNITE-12335:
-----------------------------------------
Summary: IgniteDataStreamer flush cannot be really interrupted
Key: IGNITE-12335
URL: https://issues.apache.org/jira/browse/IGNITE-12335
Project: Ignite
Issue Type: Bug
Components: cache
Affects Versions: 2.7.6, 2.5
Reporter: Igor Kamyshnikov
Attachments: DataStreamerFlushInterruptionTest.java, image-2019-10-29-13-05-25-969.png
IgniteDataStreamer flush operation cannot be interrupted:
1) datastreamer.close(true) does not interrupt flushing (though it has cancellation mode)
2) flushingThread.interrupt does not interrupt flushing (though IgniteInterruptedException is declared in the flush's method throws clause)
3) dataStreamer timeout does not work at all if flushingThread is interrupted
4) dataStreamer timeout does not stop flushing (after catching IgniteDataStreamerTimeoutException)
5) Ignition.closeAll(true) can even result in JVM halt if there was dataStreamer flush running
Cases on the diagram:
!image-2019-10-29-13-05-25-969.png|thumbnail!
Reproducer:
[^DataStreamerFlushInterruptionTest.java]
RCA:
For the cases with Thread.interrrupt:
1) Probably,
org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl.Buffer#flush method when it enters org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl#acquireRemapSemaphore does not trigger InterruptedException because it avoid all the operations on semaphore.
2) org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl#doFlush has a big while(true) loop that does not handle IgniteDataStreamerTimeoutException (treating it as just IgniteCheckedException leading to "Remaps needed - flush buffers.")
No RCA for dataStreamer.close(true).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)