[infinispan-issues] [JBoss JIRA] (ISPN-2550) NoSuchElementException in Hot Rod Encoder

RH Bugzilla Integration (JIRA) jira-events at lists.jboss.org
Tue Dec 11 08:01:19 EST 2012


    [ https://issues.jboss.org/browse/ISPN-2550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12740571#comment-12740571 ] 

RH Bugzilla Integration commented on ISPN-2550:
-----------------------------------------------

Martin Gencur <mgencur at redhat.com> made a comment on [bug 875151|https://bugzilla.redhat.com/show_bug.cgi?id=875151]

Just a note about the test: When we create a RemoteCacheManager and passing just one address to it, it does *not* mean that all requsts through cache.put/get will go just to this one address but possibly to all nodes in the cluster. Is that right? AFAIK the HotRod client is dynamically getting the information about all clustered nodes and autonomously chooses one of the cluster nodes to send requests to. If my assumption is correct, we would need to use Memcached or REST client to properly test the storage-only example, not HotRod.
                
> NoSuchElementException in Hot Rod Encoder
> -----------------------------------------
>
>                 Key: ISPN-2550
>                 URL: https://issues.jboss.org/browse/ISPN-2550
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Remote protocols
>    Affects Versions: 5.2.0.Beta4
>            Reporter: Michal Linhard
>            Assignee: Galder Zamarreño
>            Priority: Blocker
>             Fix For: 5.2.0.Beta6
>
>
> Tomas noticed this a while ago in a specific functional test:
> https://bugzilla.redhat.com/show_bug.cgi?id=875151
> I'm creating a more general JIRA, cause I'm having this in resilience test.
> What I found by quick debug, is that here:
> https://github.com/infinispan/infinispan/blob/master/server/hotrod/src/main/scala/org/infinispan/server/hotrod/Encoders.scala#L106
> {code}
>                for (segmentIdx <- 0 until numSegments) {
>                   val denormalizedSegmentHashIds = allDenormalizedHashIds(segmentIdx)
>                   val segmentOwners = ch.locateOwnersForSegment(segmentIdx)
>                   for (ownerIdx <- 0 until segmentOwners.length) {
>                      val address = segmentOwners(ownerIdx % segmentOwners.size)
>                      val serverAddress = members(address)
>                      val hashId = denormalizedSegmentHashIds(ownerIdx)
>                      log.tracef("Writing hash id %d for %s:%s", hashId, serverAddress.host, serverAddress.port)
>                      writeString(serverAddress.host, buf)
>                      writeUnsignedShort(serverAddress.port, buf)
>                      buf.writeInt(hashId)
>                   }
>                }
> {code}
> we're trying to obtain serverAddress for nonexistent address and NoSuchElementException is not handled properly.
> It hapens after I kill a node in a resilience test and the exception appears when querying for the node in the members cache.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the infinispan-issues mailing list