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

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

    XMLWordPrintable

Details

    • 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.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: