Description
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:
[12:20:38,451][ERROR][main][CacheObjectBinaryProcessorImpl] Failed to get partition
The problematic code is in IgniteCacheObjectProcessorImpl.partition(...) method:
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; }
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.
Attachments
Attachments
Issue Links
- is duplicated by
-
IGNITE-500 CacheLoadingConcurrentGridStartSelfTest fails
- Resolved
- is part of
-
IGNITE-500 CacheLoadingConcurrentGridStartSelfTest fails
- Resolved
- links to