http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryEntry.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryEntry.java index 88005d0..b05c275 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryEntry.java @@ -411,7 +411,7 @@ public class CacheContinuousQueryEntry implements GridCacheDeployable, Message { writer.incrementState(); case 8: - if (!writer.writeMessage("topVer", topVer)) + if (!writer.writeAffinityTopologyVersion("topVer", topVer)) return false; writer.incrementState(); @@ -500,7 +500,7 @@ public class CacheContinuousQueryEntry implements GridCacheDeployable, Message { reader.incrementState(); case 8: - topVer = reader.readMessage("topVer"); + topVer = reader.readAffinityTopologyVersion("topVer"); if (!reader.isLastRead()) return false;
http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java index 93a101b..d715362 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java @@ -688,7 +688,12 @@ public class IgniteTxHandler { private boolean needRemap(AffinityTopologyVersion expVer, AffinityTopologyVersion curVer, GridNearTxPrepareRequest req) { - if (expVer.equals(curVer)) + if (curVer.equals(expVer)) + return false; + + AffinityTopologyVersion lastAffChangedTopVer = ctx.exchange().lastAffinityChangedTopologyVersion(expVer); + + if (curVer.compareTo(expVer) <= 0 && curVer.compareTo(lastAffChangedTopVer) >= 0) return false; // TODO IGNITE-6754 check mvcc crd for mvcc enabled txs. http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxKey.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxKey.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxKey.java index efcb48b..2c3892f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxKey.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxKey.java @@ -191,4 +191,4 @@ public class IgniteTxKey implements Message { @Override public String toString() { return S.toString(IgniteTxKey.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLocksRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLocksRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLocksRequest.java index 94fe005..86109c8 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLocksRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLocksRequest.java @@ -149,13 +149,13 @@ public class TxLocksRequest extends GridCacheMessage { } switch (writer.state()) { - case 2: + case 3: if (!writer.writeLong("futId", futId)) return false; writer.incrementState(); - case 3: + case 4: if (!writer.writeObjectArray("txKeysArr", txKeysArr, MessageCollectionItemType.MSG)) return false; @@ -177,7 +177,7 @@ public class TxLocksRequest extends GridCacheMessage { return false; switch (reader.state()) { - case 2: + case 3: futId = reader.readLong("futId"); if (!reader.isLastRead()) @@ -185,7 +185,7 @@ public class TxLocksRequest extends GridCacheMessage { reader.incrementState(); - case 3: + case 4: txKeysArr = reader.readObjectArray("txKeysArr", MessageCollectionItemType.MSG, IgniteTxKey.class); if (!reader.isLastRead()) @@ -205,7 +205,7 @@ public class TxLocksRequest extends GridCacheMessage { /** {@inheritDoc} */ @Override public byte fieldsCount() { - return 4; + return 5; } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLocksResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLocksResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLocksResponse.java index a5c8f09..df5caa9 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLocksResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLocksResponse.java @@ -239,25 +239,25 @@ public class TxLocksResponse extends GridCacheMessage { } switch (writer.state()) { - case 2: + case 3: if (!writer.writeLong("futId", futId)) return false; writer.incrementState(); - case 3: + case 4: if (!writer.writeObjectArray("locksArr", locksArr, MessageCollectionItemType.MSG)) return false; writer.incrementState(); - case 4: + case 5: if (!writer.writeObjectArray("nearTxKeysArr", nearTxKeysArr, MessageCollectionItemType.MSG)) return false; writer.incrementState(); - case 5: + case 6: if (!writer.writeObjectArray("txKeysArr", txKeysArr, MessageCollectionItemType.MSG)) return false; @@ -279,7 +279,7 @@ public class TxLocksResponse extends GridCacheMessage { return false; switch (reader.state()) { - case 2: + case 3: futId = reader.readLong("futId"); if (!reader.isLastRead()) @@ -287,7 +287,7 @@ public class TxLocksResponse extends GridCacheMessage { reader.incrementState(); - case 3: + case 4: locksArr = reader.readObjectArray("locksArr", MessageCollectionItemType.MSG, TxLockList.class); if (!reader.isLastRead()) @@ -295,7 +295,7 @@ public class TxLocksResponse extends GridCacheMessage { reader.incrementState(); - case 4: + case 5: nearTxKeysArr = reader.readObjectArray("nearTxKeysArr", MessageCollectionItemType.MSG, IgniteTxKey.class); if (!reader.isLastRead()) @@ -303,7 +303,7 @@ public class TxLocksResponse extends GridCacheMessage { reader.incrementState(); - case 5: + case 6: txKeysArr = reader.readObjectArray("txKeysArr", MessageCollectionItemType.MSG, IgniteTxKey.class); if (!reader.isLastRead()) @@ -323,7 +323,7 @@ public class TxLocksResponse extends GridCacheMessage { /** {@inheritDoc} */ @Override public byte fieldsCount() { - return 6; + return 7; } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java index 586a043..ceea0a2 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java @@ -24,6 +24,7 @@ import java.io.ObjectOutput; import java.nio.ByteBuffer; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.internal.GridDirectTransient; +import org.apache.ignite.internal.IgniteCodeGeneratingFail; import org.apache.ignite.internal.processors.cache.CacheObject; import org.apache.ignite.internal.processors.cache.CacheObjectContext; import org.apache.ignite.internal.processors.cache.CacheObjectValueContext; @@ -39,6 +40,7 @@ import org.jetbrains.annotations.Nullable; /** * Raw versioned entry. */ +@IgniteCodeGeneratingFail public class GridCacheRawVersionedEntry<K, V> extends DataStreamerEntry implements GridCacheVersionedEntry<K, V>, GridCacheVersionable, Externalizable { /** */ @@ -381,4 +383,4 @@ public class GridCacheRawVersionedEntry<K, V> extends DataStreamerEntry implemen "valBytesLen", valBytes != null ? valBytes.length : "n/a", "super", super.toString()); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousMessage.java index ec04ac3..5e7cc9d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousMessage.java @@ -274,4 +274,4 @@ public class GridContinuousMessage implements Message { @Override public String toString() { return S.toString(GridContinuousMessage.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerRequest.java index f70ee9c..87313de 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerRequest.java @@ -369,7 +369,7 @@ public class DataStreamerRequest implements Message { writer.incrementState(); case 13: - if (!writer.writeMessage("topVer", topVer)) + if (!writer.writeAffinityTopologyVersion("topVer", topVer)) return false; writer.incrementState(); @@ -508,7 +508,7 @@ public class DataStreamerRequest implements Message { reader.incrementState(); case 13: - topVer = reader.readMessage("topVer"); + topVer = reader.readAffinityTopologyVersion("topVer"); if (!reader.isLastRead()) return false; http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerResponse.java index 4cb46e1..56f37c2 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerResponse.java @@ -169,4 +169,4 @@ public class DataStreamerResponse implements Message { @Override public byte fieldsCount() { return 3; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopDirectShuffleMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopDirectShuffleMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopDirectShuffleMessage.java index f6bddb6..e990cb3 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopDirectShuffleMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopDirectShuffleMessage.java @@ -18,6 +18,7 @@ package org.apache.ignite.internal.processors.hadoop.shuffle; import org.apache.ignite.internal.GridDirectTransient; +import org.apache.ignite.internal.IgniteCodeGeneratingFail; import org.apache.ignite.internal.processors.hadoop.HadoopJobId; import org.apache.ignite.internal.processors.hadoop.message.HadoopMessage; import org.apache.ignite.internal.util.tostring.GridToStringInclude; @@ -35,6 +36,7 @@ import java.nio.ByteBuffer; /** * Direct shuffle message. */ +@IgniteCodeGeneratingFail public class HadoopDirectShuffleMessage implements Message, HadoopMessage { /** */ private static final long serialVersionUID = 0L; @@ -268,4 +270,4 @@ public class HadoopDirectShuffleMessage implements Message, HadoopMessage { @Override public String toString() { return S.toString(HadoopDirectShuffleMessage.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffleMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffleMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffleMessage.java index 07b8c2f..2660e28 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffleMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffleMessage.java @@ -23,6 +23,7 @@ import java.io.ObjectOutput; import java.nio.ByteBuffer; import java.util.concurrent.atomic.AtomicLong; import org.apache.ignite.IgniteCheckedException; +import org.apache.ignite.internal.IgniteCodeGeneratingFail; import org.apache.ignite.internal.processors.hadoop.HadoopJobId; import org.apache.ignite.internal.processors.hadoop.message.HadoopMessage; import org.apache.ignite.internal.util.GridUnsafe; @@ -36,6 +37,7 @@ import org.apache.ignite.plugin.extensions.communication.MessageWriter; /** * Shuffle message. */ +@IgniteCodeGeneratingFail public class HadoopShuffleMessage implements Message, HadoopMessage { /** */ private static final long serialVersionUID = 0L; http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsAckMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsAckMessage.java index 5ae3fed..76a08f9 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsAckMessage.java @@ -195,4 +195,4 @@ public class IgfsAckMessage extends IgfsCommunicationMessage { @Override public byte fieldsCount() { return 3; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlockKey.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlockKey.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlockKey.java index 736525d..98bf306 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlockKey.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlockKey.java @@ -297,4 +297,4 @@ public final class IgfsBlockKey implements IgfsBaseBlockKey, Message, Externaliz @Override public String toString() { return S.toString(IgfsBlockKey.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlocksMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlocksMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlocksMessage.java index 2ec54b2..5448c50 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlocksMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlocksMessage.java @@ -176,4 +176,4 @@ public class IgfsBlocksMessage extends IgfsCommunicationMessage { @Override public byte fieldsCount() { return 3; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsCommunicationMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsCommunicationMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsCommunicationMessage.java index 412c45b..7f5daa6 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsCommunicationMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsCommunicationMessage.java @@ -77,4 +77,4 @@ public abstract class IgfsCommunicationMessage implements Message { @Override public byte fieldsCount() { return 0; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDeleteMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDeleteMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDeleteMessage.java index b5e9666..2c2c98c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDeleteMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDeleteMessage.java @@ -190,4 +190,4 @@ public class IgfsDeleteMessage extends IgfsCommunicationMessage { @Override public String toString() { return S.toString(IgfsDeleteMessage.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerRequest.java index bb605b8..c64b627 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerRequest.java @@ -157,4 +157,4 @@ public class IgfsFragmentizerRequest extends IgfsCommunicationMessage { @Override public byte fieldsCount() { return 2; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerResponse.java index 76793bf..f7857dc 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerResponse.java @@ -118,4 +118,4 @@ public class IgfsFragmentizerResponse extends IgfsCommunicationMessage { @Override public byte fieldsCount() { return 1; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsSyncMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsSyncMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsSyncMessage.java index 2b32084..2707de5 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsSyncMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsSyncMessage.java @@ -149,4 +149,4 @@ public class IgfsSyncMessage extends IgfsCommunicationMessage { @Override public byte fieldsCount() { return 2; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java index 6b976c2..7fdd5d6 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java @@ -220,7 +220,7 @@ public class GridQueryNextPageResponse implements Message { writer.incrementState(); case 6: - if (!writer.writeMessage("retry", retry)) + if (!writer.writeAffinityTopologyVersion("retry", retry)) return false; writer.incrementState(); @@ -310,7 +310,7 @@ public class GridQueryNextPageResponse implements Message { reader.incrementState(); case 6: - retry = reader.readMessage("retry"); + retry = reader.readAffinityTopologyVersion("retry"); if (!reader.isLastRead()) return false; http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/query/schema/message/SchemaOperationStatusMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/schema/message/SchemaOperationStatusMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/schema/message/SchemaOperationStatusMessage.java index 5f75e60..9e81d5a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/schema/message/SchemaOperationStatusMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/schema/message/SchemaOperationStatusMessage.java @@ -18,6 +18,7 @@ package org.apache.ignite.internal.processors.query.schema.message; import org.apache.ignite.internal.GridDirectTransient; +import org.apache.ignite.internal.IgniteCodeGeneratingFail; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.plugin.extensions.communication.MessageReader; @@ -30,6 +31,7 @@ import java.util.UUID; /** * Schema operation status message. */ +@IgniteCodeGeneratingFail public class SchemaOperationStatusMessage implements Message { /** */ private static final long serialVersionUID = 0L; http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskResultRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskResultRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskResultRequest.java index b8b4edb..f3ec0e8 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskResultRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskResultRequest.java @@ -171,4 +171,4 @@ public class GridTaskResultRequest implements Message { @Override public byte fieldsCount() { return 2; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskResultResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskResultResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskResultResponse.java index b9bb27c..88b42f5 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskResultResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskResultResponse.java @@ -217,4 +217,4 @@ public class GridTaskResultResponse implements Message { @Override public byte fieldsCount() { return 4; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/util/GridByteArrayList.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridByteArrayList.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridByteArrayList.java index 0200d77..e9c7d01 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridByteArrayList.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridByteArrayList.java @@ -491,4 +491,4 @@ public class GridByteArrayList implements Message, Externalizable { @Override public String toString() { return S.toString(GridByteArrayList.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/util/GridIntList.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridIntList.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridIntList.java index 53767d6..c03cf58 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridIntList.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridIntList.java @@ -599,4 +599,4 @@ public class GridIntList implements Message, Externalizable { } }; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/internal/util/GridLongList.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridLongList.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridLongList.java index 8d09539..1c022b0 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridLongList.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridLongList.java @@ -26,6 +26,7 @@ import java.io.ObjectOutput; import java.nio.ByteBuffer; import java.util.Arrays; import java.util.NoSuchElementException; +import org.apache.ignite.internal.IgniteCodeGeneratingFail; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.internal.util.typedef.internal.SB; @@ -38,6 +39,7 @@ import org.jetbrains.annotations.Nullable; * Minimal list API to work with primitive longs. This list exists * to avoid boxing/unboxing when using standard list from Java. */ +@IgniteCodeGeneratingFail public class GridLongList implements Message, Externalizable { /** */ private static final long serialVersionUID = 0L; http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageCollectionItemType.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageCollectionItemType.java b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageCollectionItemType.java index 2134912..2340dd9 100644 --- a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageCollectionItemType.java +++ b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageCollectionItemType.java @@ -84,7 +84,10 @@ public enum MessageCollectionItemType { IGNITE_UUID, /** Message. */ - MSG; + MSG, + + /** Topology version. */ + AFFINITY_TOPOLOGY_VERSION; /** Enum values. */ private static final MessageCollectionItemType[] VALS = values(); http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageReader.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageReader.java b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageReader.java index 0502042..6feee1a 100644 --- a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageReader.java +++ b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageReader.java @@ -23,6 +23,7 @@ import java.util.Collection; import java.util.LinkedHashMap; import java.util.Map; import java.util.UUID; +import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.lang.IgniteUuid; /** @@ -230,6 +231,14 @@ public interface MessageReader { public IgniteUuid readIgniteUuid(String name); /** + * Reads {@link AffinityTopologyVersion}. + * + * @param name Field name. + * @return {@link AffinityTopologyVersion}. + */ + public AffinityTopologyVersion readAffinityTopologyVersion(String name); + + /** * Reads nested message. * * @param name Field name. http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriter.java b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriter.java index 692955f..14d4417 100644 --- a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriter.java +++ b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriter.java @@ -22,6 +22,7 @@ import java.util.BitSet; import java.util.Collection; import java.util.Map; import java.util.UUID; +import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.lang.IgniteUuid; /** @@ -255,6 +256,15 @@ public interface MessageWriter { public boolean writeIgniteUuid(String name, IgniteUuid val); /** + * Writes {@link AffinityTopologyVersion}. + * + * @param name Field name. + * @param val {@link AffinityTopologyVersion}. + * @return Whether value was fully written. + */ + public boolean writeAffinityTopologyVersion(String name, AffinityTopologyVersion val); + + /** * Writes nested message. * * @param name Field name. http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingRequest.java b/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingRequest.java index 6ecb145..5f02804 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingRequest.java @@ -118,4 +118,4 @@ public class JobStealingRequest implements Message { @Override public String toString() { return S.toString(JobStealingRequest.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/HandshakeMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/HandshakeMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/HandshakeMessage.java index e3be9c9..f845b0b 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/HandshakeMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/HandshakeMessage.java @@ -19,6 +19,7 @@ package org.apache.ignite.spi.communication.tcp.messages; import java.nio.ByteBuffer; import java.util.UUID; +import org.apache.ignite.internal.IgniteCodeGeneratingFail; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.Message; @@ -29,6 +30,7 @@ import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi; /** * Handshake message. */ +@IgniteCodeGeneratingFail public class HandshakeMessage implements Message { /** */ private static final long serialVersionUID = 0L; http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/HandshakeMessage2.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/HandshakeMessage2.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/HandshakeMessage2.java index f27a825..2207813 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/HandshakeMessage2.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/HandshakeMessage2.java @@ -19,6 +19,7 @@ package org.apache.ignite.spi.communication.tcp.messages; import java.nio.ByteBuffer; import java.util.UUID; +import org.apache.ignite.internal.IgniteCodeGeneratingFail; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -26,6 +27,7 @@ import org.apache.ignite.plugin.extensions.communication.MessageWriter; /** * Updated handshake message. */ +@IgniteCodeGeneratingFail public class HandshakeMessage2 extends HandshakeMessage { /** */ private static final long serialVersionUID = 0L; http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/NodeIdMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/NodeIdMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/NodeIdMessage.java index 2c6aa30..12e2522 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/NodeIdMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/NodeIdMessage.java @@ -19,6 +19,7 @@ package org.apache.ignite.spi.communication.tcp.messages; import java.nio.ByteBuffer; import java.util.UUID; +import org.apache.ignite.internal.IgniteCodeGeneratingFail; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.Message; @@ -29,6 +30,7 @@ import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi; /** * Node ID message. */ +@IgniteCodeGeneratingFail public class NodeIdMessage implements Message { /** */ private static final long serialVersionUID = 0L; http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/RecoveryLastReceivedMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/RecoveryLastReceivedMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/RecoveryLastReceivedMessage.java index eef2655..95d43f6 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/RecoveryLastReceivedMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/messages/RecoveryLastReceivedMessage.java @@ -18,6 +18,7 @@ package org.apache.ignite.spi.communication.tcp.messages; import java.nio.ByteBuffer; +import org.apache.ignite.internal.IgniteCodeGeneratingFail; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.plugin.extensions.communication.MessageReader; @@ -27,6 +28,7 @@ import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi; /** * Recovery acknowledgment message. */ +@IgniteCodeGeneratingFail public class RecoveryLastReceivedMessage implements Message { /** */ private static final long serialVersionUID = 0L; http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNoAffinityExchangeTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNoAffinityExchangeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNoAffinityExchangeTest.java new file mode 100644 index 0000000..45c6f25 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNoAffinityExchangeTest.java @@ -0,0 +1,218 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache; + +import java.util.Collections; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.locks.Lock; +import org.apache.ignite.Ignite; +import org.apache.ignite.IgniteCache; +import org.apache.ignite.IgniteException; +import org.apache.ignite.cache.CacheAtomicityMode; +import org.apache.ignite.configuration.CacheConfiguration; +import org.apache.ignite.configuration.IgniteConfiguration; +import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; +import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; +import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder; +import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder; +import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryAbstractMessage; +import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryNodeAddFinishedMessage; +import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryNodeFailedMessage; +import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryNodeLeftMessage; +import org.apache.ignite.testframework.GridTestUtils; +import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; + +/** + * + */ +public class CacheNoAffinityExchangeTest extends GridCommonAbstractTest { + /** */ + private volatile boolean startClient; + + /** */ + private final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder().setShared(true); + + /** */ + private final TcpDiscoveryIpFinder CLIENT_IP_FINDER = new TcpDiscoveryVmIpFinder() + .setAddresses(Collections.singleton("127.0.0.1:47500")); + + /** {@inheritDoc} */ + @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { + IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); + + cfg.setDiscoverySpi(new TestDiscoverySpi().setIpFinder(IP_FINDER)); + + if (startClient) { + cfg.setClientMode(true); + + // It is necessary to ensure that client always connects to grid(0). + ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(CLIENT_IP_FINDER); + } + + return cfg; + } + + /** {@inheritDoc} */ + @Override protected void afterTest() throws Exception { + stopAllGrids(); + + super.afterTest(); + } + + /** + * @throws Exception If failed. + */ + public void testNoAffinityChangeOnClientJoin() throws Exception { + Ignite ig = startGrids(4); + + ig.cluster().active(true); + + IgniteCache<Integer, Integer> atomicCache = ig.createCache(new CacheConfiguration<Integer, Integer>() + .setName("atomic").setAtomicityMode(CacheAtomicityMode.ATOMIC)); + + IgniteCache<Integer, Integer> txCache = ig.createCache(new CacheConfiguration<Integer, Integer>() + .setName("tx").setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)); + + assertTrue(GridTestUtils.waitForCondition(() -> + new AffinityTopologyVersion(4, 3).equals(grid(3).context().discovery().topologyVersionEx()), + 5_000)); + + TestDiscoverySpi discoSpi = (TestDiscoverySpi) grid(2).context().discovery().getInjectedDiscoverySpi(); + + CountDownLatch latch = new CountDownLatch(1); + + discoSpi.latch = latch; + + startClient = true; + + startGrid(4); + + assertTrue(GridTestUtils.waitForCondition(() -> + new AffinityTopologyVersion(5, 0).equals(grid(0).context().discovery().topologyVersionEx()) && + new AffinityTopologyVersion(5, 0).equals(grid(1).context().discovery().topologyVersionEx()) && + new AffinityTopologyVersion(4, 3).equals(grid(2).context().discovery().topologyVersionEx()) && + new AffinityTopologyVersion(4, 3).equals(grid(3).context().discovery().topologyVersionEx()), + 10_000)); + + for (int k = 0; k < 100; k++) { + atomicCache.put(k, k); + txCache.put(k, k); + + Lock lock = txCache.lock(k); + lock.lock(); + lock.unlock(); + } + + for (int k = 0; k < 100; k++) { + assertEquals(Integer.valueOf(k), atomicCache.get(k)); + assertEquals(Integer.valueOf(k), txCache.get(k)); + } + + assertEquals(new AffinityTopologyVersion(5, 0), grid(0).context().discovery().topologyVersionEx()); + assertEquals(new AffinityTopologyVersion(5, 0), grid(1).context().discovery().topologyVersionEx()); + assertEquals(new AffinityTopologyVersion(4, 3), grid(2).context().discovery().topologyVersionEx()); + assertEquals(new AffinityTopologyVersion(4, 3), grid(3).context().discovery().topologyVersionEx()); + + latch.countDown(); + } + + /** + * @throws Exception If failed. + */ + public void testNoAffinityChangeOnClientLeft() throws Exception { + Ignite ig = startGrids(4); + + ig.cluster().active(true); + + IgniteCache<Integer, Integer> atomicCache = ig.createCache(new CacheConfiguration<Integer, Integer>() + .setName("atomic").setAtomicityMode(CacheAtomicityMode.ATOMIC)); + + IgniteCache<Integer, Integer> txCache = ig.createCache(new CacheConfiguration<Integer, Integer>() + .setName("tx").setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)); + + assertTrue(GridTestUtils.waitForCondition(() -> + new AffinityTopologyVersion(4, 3).equals(grid(3).context().discovery().topologyVersionEx()), + 5_000)); + + startClient = true; + + startGrid(4); + + TestDiscoverySpi discoSpi = (TestDiscoverySpi)grid(2).context().discovery().getInjectedDiscoverySpi(); + + CountDownLatch latch = new CountDownLatch(1); + + discoSpi.latch = latch; + + stopGrid(4); + + assertTrue(GridTestUtils.waitForCondition(() -> + new AffinityTopologyVersion(6, 0).equals(grid(0).context().discovery().topologyVersionEx()) && + new AffinityTopologyVersion(6, 0).equals(grid(1).context().discovery().topologyVersionEx()) && + new AffinityTopologyVersion(5, 0).equals(grid(2).context().discovery().topologyVersionEx()) && + new AffinityTopologyVersion(5, 0).equals(grid(3).context().discovery().topologyVersionEx()), + 10_000)); + + for (int k = 0; k < 100; k++) { + atomicCache.put(k, k); + txCache.put(k, k); + + Lock lock = txCache.lock(k); + lock.lock(); + lock.unlock(); + } + + for (int k = 0; k < 100; k++) { + assertEquals(Integer.valueOf(k), atomicCache.get(k)); + assertEquals(Integer.valueOf(k), txCache.get(k)); + } + + assertEquals(new AffinityTopologyVersion(6, 0), grid(0).context().discovery().topologyVersionEx()); + assertEquals(new AffinityTopologyVersion(6, 0), grid(1).context().discovery().topologyVersionEx()); + assertEquals(new AffinityTopologyVersion(5, 0), grid(2).context().discovery().topologyVersionEx()); + assertEquals(new AffinityTopologyVersion(5, 0), grid(3).context().discovery().topologyVersionEx()); + + latch.countDown(); + } + + /** + * + */ + public static class TestDiscoverySpi extends TcpDiscoverySpi { + /** */ + private volatile CountDownLatch latch; + + /** {@inheritDoc} */ + @Override protected void startMessageProcess(TcpDiscoveryAbstractMessage msg) { + if (msg instanceof TcpDiscoveryNodeAddFinishedMessage || msg instanceof TcpDiscoveryNodeLeftMessage || msg instanceof TcpDiscoveryNodeFailedMessage) { + CountDownLatch latch0 = latch; + + if (latch0 != null) + try { + latch0.await(); + } + catch (InterruptedException ex) { + throw new IgniteException(ex); + } + } + + super.startMessageProcess(msg); + } + } + +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java index 90d4e4e..36d8b41 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java @@ -845,8 +845,7 @@ public class IgniteClusterActivateDeactivateTest extends GridCommonAbstractTest checkCaches1(SRVS + CLIENTS); // Wait for late affinity assignment to finish. - grid(0).context().cache().context().exchange().affinityReadyFuture( - new AffinityTopologyVersion(SRVS + CLIENTS, 1)).get(); + awaitPartitionMapExchange(); final AffinityTopologyVersion STATE_CHANGE_TOP_VER = new AffinityTopologyVersion(SRVS + CLIENTS + 1, 1); http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheExchangeMergeTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheExchangeMergeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheExchangeMergeTest.java index 2e89922..93c1066 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheExchangeMergeTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheExchangeMergeTest.java @@ -457,6 +457,8 @@ public class CacheExchangeMergeTest extends GridCommonAbstractTest { * @throws Exception If failed. */ public void testMergeServerAndClientJoin1() throws Exception { + fail("https://issues.apache.org/jira/browse/IGNITE-10186"); + final IgniteEx srv0 = startGrid(0); mergeExchangeWaitVersion(srv0, 3); http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java index e9d9663..c5384b9 100644 --- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java @@ -18,6 +18,7 @@ package org.apache.ignite.testsuites; import junit.framework.TestSuite; +import org.apache.ignite.internal.processors.cache.CacheNoAffinityExchangeTest; import org.apache.ignite.internal.processors.cache.PartitionedAtomicCacheGetsDistributionTest; import org.apache.ignite.internal.processors.cache.PartitionedTransactionalOptimisticCacheGetsDistributionTest; import org.apache.ignite.internal.processors.cache.PartitionedTransactionalPessimisticCacheGetsDistributionTest; @@ -112,6 +113,8 @@ public class IgniteCacheTestSuite6 extends TestSuite { suite.addTestSuite(CacheParallelStartTest.class); + suite.addTestSuite(CacheNoAffinityExchangeTest.class); + //suite.addTestSuite(CacheClientsConcurrentStartTest.class); //suite.addTestSuite(GridCacheRebalancingOrderingTest.class); //suite.addTestSuite(IgniteCacheClientMultiNodeUpdateTopologyLockTest.class); http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/query/QueryTable.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/query/QueryTable.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/query/QueryTable.java index 54f5f03..ca6343c 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/query/QueryTable.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/query/QueryTable.java @@ -93,6 +93,7 @@ public class QueryTable implements Message { return false; writer.incrementState(); + } return true; @@ -121,6 +122,7 @@ public class QueryTable implements Message { return false; reader.incrementState(); + } return reader.afterMessageRead(QueryTable.class); http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2IndexRangeRequest.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2IndexRangeRequest.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2IndexRangeRequest.java index 7024884..186104a 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2IndexRangeRequest.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2IndexRangeRequest.java @@ -21,6 +21,7 @@ import java.nio.ByteBuffer; import java.util.List; import java.util.UUID; import org.apache.ignite.internal.GridDirectCollection; +import org.apache.ignite.internal.IgniteCodeGeneratingFail; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; @@ -30,6 +31,7 @@ import org.apache.ignite.plugin.extensions.communication.MessageWriter; /** * Range request. */ +@IgniteCodeGeneratingFail public class GridH2IndexRangeRequest implements Message { /** */ private UUID originNodeId; http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2IndexRangeResponse.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2IndexRangeResponse.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2IndexRangeResponse.java index 4fe660c..18814bb 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2IndexRangeResponse.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2IndexRangeResponse.java @@ -21,6 +21,7 @@ import java.nio.ByteBuffer; import java.util.List; import java.util.UUID; import org.apache.ignite.internal.GridDirectCollection; +import org.apache.ignite.internal.IgniteCodeGeneratingFail; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; @@ -30,6 +31,7 @@ import org.apache.ignite.plugin.extensions.communication.MessageWriter; /** * Range response message. */ +@IgniteCodeGeneratingFail public class GridH2IndexRangeResponse implements Message { /** */ public static final byte STATUS_OK = 0; http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java index 0bec66e..cca366a 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java @@ -29,6 +29,7 @@ import org.apache.ignite.internal.GridDirectCollection; import org.apache.ignite.internal.GridDirectMap; import org.apache.ignite.internal.GridDirectTransient; import org.apache.ignite.internal.GridKernalContext; +import org.apache.ignite.internal.IgniteCodeGeneratingFail; import org.apache.ignite.internal.binary.BinaryMarshaller; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.cache.mvcc.MvccSnapshot; @@ -50,6 +51,7 @@ import static org.apache.ignite.internal.processors.cache.query.GridCacheSqlQuer /** * Query request. */ +@IgniteCodeGeneratingFail public class GridH2QueryRequest implements Message, GridCacheQueryMarshallable { /** */ private static final long serialVersionUID = 0L; @@ -518,7 +520,7 @@ public class GridH2QueryRequest implements Message, GridCacheQueryMarshallable { writer.incrementState(); case 9: - if (!writer.writeMessage("topVer", topVer)) + if (!writer.writeAffinityTopologyVersion("topVer", topVer)) return false; writer.incrementState(); @@ -633,7 +635,7 @@ public class GridH2QueryRequest implements Message, GridCacheQueryMarshallable { reader.incrementState(); case 9: - topVer = reader.readMessage("topVer"); + topVer = reader.readAffinityTopologyVersion("topVer"); if (!reader.isLastRead()) return false; http://git-wip-us.apache.org/repos/asf/ignite/blob/a63a81a5/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessage.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessage.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessage.java index 18f8880..fd5b524 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessage.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessage.java @@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.query.h2.twostep.msg; import java.nio.ByteBuffer; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.internal.GridKernalContext; +import org.apache.ignite.internal.IgniteCodeGeneratingFail; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -28,6 +29,7 @@ import org.h2.value.Value; /** * Abstract message wrapper for H2 values. */ +@IgniteCodeGeneratingFail public abstract class GridH2ValueMessage implements Message { /** * Gets H2 value.