[infinispan-issues] [JBoss JIRA] (ISPN-8708) Remote iteration with limited batch sends finished segments too early
William Burns (JIRA)
issues at jboss.org
Wed Jan 24 17:03:00 EST 2018
[ https://issues.jboss.org/browse/ISPN-8708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13523420#comment-13523420 ]
William Burns commented on ISPN-8708:
-------------------------------------
I added a trace message to DistributedCacheStream$KeyWatchingCompletionListener and it seems the segments are getting mangled somewhere in between, thus notifying the incorrect ones.
{code}
16:51:57,339 FATAL (HotRod-MultiServerDistRemoteIteratorTest-ServerHandler-4-2:[]) [DistributedCacheStream] Received key: KeyValuePair{key=WrappedByteArray{bytes=[B0x034B00000007, hashCode=1042655216}, value=MetadataImmortalCacheEntry{key=[B0x034B00000007, value=[B0x0304090000003E6F..[192], metadata=EmbeddedExpirableMetadata{lifespan=-1, maxIdle=-1, version=NumericVersion{version=562962838323202}}}} notifying segments: {3-6 10 13-15 17 19 22 25 29-30 34 42 45-46 53-55}
16:51:57,340 TRACE (HotRod-MultiServerDistRemoteIteratorTest-ServerHandler-4-2:[]) [ContextHandler] Write response IterationNextResponse{version=27, messageId=51, cacheName='', clientIntel=3, operation=ITERATION_NEXT, status=Success, topologyId=9, iterationResult=IterableIterationResult{finishedSegments=[8, 9, 11, 20, 23, 27, 28, 32, 33, 38, 39, 41, 43, 44, 48, 56, 58, 59], statusCode=Success, entries=[MetadataImmortalCacheEntry{key=[B0x034B00000007, value=[B0x0304090000003E6F..[192], metadata=EmbeddedExpirableMetadata{lifespan=-1, maxIdle=-1, version=NumericVersion{version=562962838323202}}}], compatInfo=org.infinispan.server.hotrod.iteration.CompatInfo at 7c96b3a9, metadata=false}}
{code}
Trimmed for clarity:
{code}
notifying segments: {3-6 10 13-15 17 19 22 25 29-30 34 42 45-46 53-55}
finishedSegments=[8, 9, 11, 20, 23, 27, 28, 32, 33, 38, 39, 41, 43, 44, 48, 56, 58, 59]
{code}
I can confirm in my test that the original segments seem to be correct as shown by the key segment mapping just below (segment 45 is only in original):
{code}
16:51:57,340 TRACE (HotRod-client-async-pool-1:[]) [SegmentKeyTracker] ISPN004064: Tracking key [B0x034B00000007 belonging to segment 45, already tracked? = false
{code}
So somewhere between when they are notified and sending the response they can get corrupted.
> Remote iteration with limited batch sends finished segments too early
> ---------------------------------------------------------------------
>
> Key: ISPN-8708
> URL: https://issues.jboss.org/browse/ISPN-8708
> Project: Infinispan
> Issue Type: Bug
> Components: Server
> Affects Versions: 9.2.0.Beta2
> Reporter: Radim Vansa
> Assignee: William Burns
> Fix For: 9.2.0.Final
>
>
> When a remote cache is iterated and we limit maximum number of entries in one response, we might get the list of finished segments before the entry is actually sent to the client.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
More information about the infinispan-issues
mailing list