[
https://issues.apache.org/jira/browse/IGNITE-4103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15669815#comment-15669815
]
Anton Vinogradov edited comment on IGNITE-4103 at 11/16/16 8:36 AM:
--------------------------------------------------------------------
Saikat,
I'm not sure why #partition() do this instead of throwing exception, but, case
you described will be covered by subsequent check
{noformat}
if (cache == null)
throw new IgniteCheckedException("Cache not created or already
destroyed.");
{noformat}
at DataStreamProcessor #localUpdate()
IgniteCacheObjectProcessorImpl #partition() have many usages and we have to
check theŃ all works in case of such improvement.
was (Author: avinogradov):
Saikat,
I'm not sure why #partition() do this instead of throwing exception, but, case
you described will be covered by subsequent check
{noformat}
if (cache == null)
throw new IgniteCheckedException("Cache not created or already
destroyed.");
{noformat}
at DataStreamProcessor #localUpdate()
IgniteCacheObjectProcessorImpl #partition()have many usages and we have to
check they all works in case of such improvement.
> IgniteDataStreamer doesn't throw exception if cache is destroyed
> ----------------------------------------------------------------
>
> Key: IGNITE-4103
> URL: https://issues.apache.org/jira/browse/IGNITE-4103
> Project: Ignite
> Issue Type: Bug
> Components: cache
> Affects Versions: 1.7
> Reporter: Valentin Kulichenko
> Assignee: Saikat Maitra
> Fix For: 1.8
>
> Attachments: StreamerTest.java
>
>
> Test reproducing the issue is attached.
> When a streamer streams the data and someone concurrently destroys the cache,
> {{addData}} doesn't throw an exception. Code continues to work and a lot of
> messages like this appear in the log:
> {noformat}
> [12:20:38,451][ERROR][main][CacheObjectBinaryProcessorImpl] Failed to get
> partition
> {noformat}
> The problematic code is in {{IgniteCacheObjectProcessorImpl.partition(...)}}
> method:
> {code}
> try {
> return cctx != null ?
> cctx.affinity().partition(obj, false) :
> ctx.kernalContext().affinity().partition0(ctx.cacheName(), obj, null);
> }
> catch (IgniteCheckedException e) {
> U.error(log, "Failed to get partition");
> return -1;
> }
> {code}
> There are two issues here:
> # Exception is completely ignored, it's not even printed out in {{U.error}}.
> # The exception should be actually rethrown so that streamer can stop adding
> data.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)