ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Denis Magda (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-3055) IgniteDataStreamer can't be timed out
Date Fri, 08 Jul 2016 07:23:11 GMT

    [ 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)

Mime
View raw message