]
Galder Zamarreño commented on ISPN-922:
---------------------------------------
Reopening cos this change breaks Infinispan 4.2.x:
[ERROR]
/Users/z/Go/code/infinispan.git/tree/src/main/java/org/infinispan/tree/TreeContext.java:[76,3]
method does not override or implement a method from a supertype
FlagContainer.isFlagsUninitialized() was removed but org.infinispan.tree.TreeContext has
not been modified accordingly.
Flags not being sent along with RpcCommands fail to affect remote
InvocationContext
-----------------------------------------------------------------------------------
Key: ISPN-922
URL:
https://issues.jboss.org/browse/ISPN-922
Project: Infinispan
Issue Type: Bug
Components: Locking and Concurrency, RPC
Affects Versions: 4.2.0.Final
Reporter: Sanne Grinovero
Assignee: Sanne Grinovero
Priority: Critical
Fix For: 4.2.1.CR2, 4.2.1.Final, 5.0.0.ALPHA3, 5.0.0.Final
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.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: