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

Functional commands break in replicated caches on zero-capacity nodes

    XMLWordPrintable

    Details

      Description

      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.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              dan.berindei Dan Berindei
              Reporter:
              dan.berindei Dan Berindei
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: