<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Guys,<div><br></div><div>I see this in the code base:</div><div><br></div><div><a href="https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/interceptors/DistributionInterceptor.java#L247">https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/interceptors/DistributionInterceptor.java#L247</a></div><div><br></div><div>which has come in as a part of this commit:</div><div><br></div><div><a href="https://github.com/infinispan/infinispan/commit/e85204dc34e058c256846699acc21f4dd6f08c4d">https://github.com/infinispan/infinispan/commit/e85204dc34e058c256846699acc21f4dd6f08c4d</a></div><div><br></div><div>This is no good, since throwing an IllegalStateException *after* a transaction has prepared and is attempting to commit will leave the transaction in an inconsistent state. &nbsp;This is why I see heuristic exceptions when trying to stress a lot of transactions while having nodes join/leave.</div><div><br></div><div>A few points:</div><div><br></div><div>1) Mircea, are you aware of this, and is this a part of the transaction refactoring you are working on?</div><div>2) If not, it probably should be. &nbsp;;)</div><div>3) Vladimir, why is this check necessary in the first place? &nbsp;If prepares have happened on nodes A and B, and the commit should now go to nodes B and C due to a rehash, can't we send the commit to a union of A, B and C, and let the nodes that don't care about the tx anymore just ignore the commit?</div><div><br></div><div>Cheers</div><div>Manik</div><div><div>
<div><div>--</div><div>Manik Surtani</div><div><a href="mailto:manik@jboss.org">manik@jboss.org</a></div><div><a href="http://twitter.com/maniksurtani">twitter.com/maniksurtani</a></div><div><br></div><div>Lead, Infinispan</div><div><a href="http://www.infinispan.org">http://www.infinispan.org</a></div><div><br></div></div><br class="Apple-interchange-newline">
</div>
<br></div></body></html>