[
https://issues.jboss.org/browse/ISPN-8708?page=com.atlassian.jira.plugin....
]
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@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)