Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-12662

Functional commands break in replicated caches on zero-capacity nodes


    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 12.0.1.Final, 12.1.0.Final
    • 12.0.0.Final
    • Core
    • None

      In replicated embedded caches, BaseDistributionInterceptor on the primary owner sends write commands (including functional write commands) to all the other cache members, using RpcManager.invokeCommandOnAll(). The write commands will execute on all the cache members, including zero-capacity nodes, and an exception response from any cache member will fail the operation.

      Functional commands like ReadWriteKeyCommand assume they can read the previous value for the affected key on any node where they execute. A zero-capacity node doesn't have the previous value, so it should ignore the command and pretend it was applied, but instead it wraps a null value in the invocation context and tries to invoke the lambda anyway.

      Clustered locks are affected by this issue, but it's hidden because of ISPN-12548.

            dberinde@redhat.com Dan Berindei (Inactive)
            dberinde@redhat.com Dan Berindei (Inactive)
            0 Vote for this issue
            1 Start watching this issue