Repository: ignite Updated Branches: refs/heads/master e0cbaec4d -> d6154e143
IGNITE-10024: MVCC: Fixed stack overflow due to incorrect afgument in GridTimeoutProcessor callback. This closes #5192. Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d6154e14 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d6154e14 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d6154e14 Branch: refs/heads/master Commit: d6154e143f7b7ee1416bb6f659176071a8d47a7b Parents: e0cbaec Author: ipavlukhin <[email protected]> Authored: Mon Oct 29 20:30:48 2018 +0300 Committer: devozerov <[email protected]> Committed: Mon Oct 29 20:30:48 2018 +0300 ---------------------------------------------------------------------- .../cache/distributed/near/GridNearTxAbstractEnlistFuture.java | 4 ++-- .../internal/processors/timeout/GridTimeoutProcessor.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/d6154e14/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxAbstractEnlistFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxAbstractEnlistFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxAbstractEnlistFuture.java index 9691936..bd09424 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxAbstractEnlistFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxAbstractEnlistFuture.java @@ -150,7 +150,7 @@ public abstract class GridNearTxAbstractEnlistFuture<T> extends GridCacheCompoun else if (timeout > 0) timeoutObj = new LockTimeoutObject(); - while(true) { + while (true) { IgniteInternalFuture<?> fut = tx.lockFuture(); if (fut == GridDhtTxLocalAdapter.ROLLBACK_FUT) { @@ -345,7 +345,7 @@ public abstract class GridNearTxAbstractEnlistFuture<T> extends GridCacheCompoun } } finally { - if(cctx.topology().holdsLock()) + if (cctx.topology().holdsLock()) cctx.topology().readUnlock(); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/d6154e14/modules/core/src/main/java/org/apache/ignite/internal/processors/timeout/GridTimeoutProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/timeout/GridTimeoutProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/timeout/GridTimeoutProcessor.java index 405e321..7efcea9 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/timeout/GridTimeoutProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/timeout/GridTimeoutProcessor.java @@ -144,15 +144,15 @@ public class GridTimeoutProcessor extends GridProcessorAdapter { /** * Wait for a future (listen with timeout). * @param fut Future. - * @param timeout Timeout millis. -1 means expired timeout, 0 - no timeout. + * @param timeout Timeout millis. -1 means expired timeout, 0 means waiting without timeout. * @param clo Finish closure. First argument contains error on future or null if no errors, - * second is {@code true} if wait timed out. + * second is {@code true} if wait timed out or passed timeout argument means expired timeout. */ public void waitAsync(final IgniteInternalFuture<?> fut, long timeout, IgniteBiInClosure<IgniteCheckedException, Boolean> clo) { if (timeout == -1) { - clo.apply(null, false); + clo.apply(null, true); return; }
