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

Flags not being sent along with RpcCommands fail to affect remote InvocationContext

    Details

    • Steps to Reproduce:
      Hide

      Test being send soon to GitHub.

      Show
      Test being send soon to GitHub.

      Description

      Using the following sequence, using REPL_SYNC:

      [thread-A] nodeOne.put(K1, V1);
      [thread-B] nodeTwo.startBatch();
      [thread-B] nodeTwo.remove(K1);
      [thread-A] nodeOne.withFlags(Flag.SKIP_LOCKING).remove(K1);

      At the last line, thread-B is blocked waiting to end the batch to
      after thread-A finished. This results in thread-A to throw a

      "org.infinispan.util.concurrent.TimeoutException: Unable to acquire
      lock after [500 milliseconds] on key"

      Still if I run the same sequence of operation on two different threads
      on the same node, this will work just fine and not throw any error:

      [thread-A] nodeOne.put(K1, V1);
      [thread-B] nodeOne.startBatch();
      [thread-B] nodeOne.remove(K1);
      [thread-A] nodeOne.withFlags(Flag.SKIP_LOCKING).remove(K1);

      Looking into org.infinispan.interceptors.ReplicationInterceptor.handleCrudMethod(InvocationContext,
      WriteCommand), it seems that any Flag is not sent to remove nodes.
      Actually the whole org.infinispan.remoting.rpc.RpcManager interface is
      not interested in Flags.

      Test being send soon to GitHub.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  sannegrinovero Sanne GRINOVERO
                  Reporter:
                  sannegrinovero Sanne GRINOVERO
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: