[
https://issues.apache.org/jira/browse/IGNITE-3055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15367339#comment-15367339
]
Denis Magda commented on IGNITE-3055:
-------------------------------------
Vlad, please take a look at my review notes in the pull-request in addition
consider the following:
1) Total timeout must be applied in this part of {{doFlush}} method as well
{code}
for (int i = 0; i < activeFuts0.size(); i++) {
IgniteInternalFuture f = activeFuts0.get(i);
if (f == null)
doneCnt++;
else if (f.isDone()) {
f.get();
doneCnt++;
activeFuts0.set(i, null);
}
else
break;
}
{code}
2) In {{closeEx}} method you must use {{busyLock.tryBlock(timeout)}} instead of
{{busyLock.block();}}.
3) Test cases:
- check that timeout happens on {{addData}} methods;
- check that timeout happens on {{flush}} and {{close}} methods.
To emulate the timeout you can provide your own implementation of
{{StreamReceiver}} setting it with {{IgniteDataStreamer.receiver}} method.
Inside of receiver's implementation you can perform timeout emulation.
> IgniteDataStreamer can't be timed out
> -------------------------------------
>
> Key: IGNITE-3055
> URL: https://issues.apache.org/jira/browse/IGNITE-3055
> Project: Ignite
> Issue Type: Bug
> Components: streaming
> Affects Versions: 1.5.0.final
> Reporter: Valentin Kulichenko
> Assignee: Vladislav Pyatkov
> Priority: Critical
> Labels: community, customer, important
> Fix For: 1.7
>
>
> In current implementation there is no way to timeout the data streamer.
> Specifically, {{addData()}} can hang on the parallel operations semaphore and
> {{close()}} can infinitely wait on one of the futures to complete.
> We should introduce the configurable timeout and fail any data streamer
> operation if it's exceeded.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)