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

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

XMLWordPrintable

    • Hide

      Test being send soon to GitHub.

      Show
      Test being send soon to GitHub.

      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.

            sgrinove Sanne Grinovero
            sgrinove Sanne Grinovero
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: